batch_flutter
Batch SDK Flutter Plugin allows you to build meaningful communication experiences in your app through highly personalized push notifications and In-App messages.
3.1.0
6.3K downloads/mo
#3517 most downloaded on pub.dev
What this package is like to depend on
Last release 4 months ago
22 Apr 2026
Release timing varies
gaps range from 3 weeks to 1.4 years
Nearly every release is documented
notes for 12 of 12 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
14 releases · first in 2021
2 releases in the last 12 months
see the full history below
Release timeline
14 releases · Jun 2021 to Apr 2026Releases
latest 14-
3.1.022 Apr 2026Release notes
Open source →Plugin
- Updated Batch to 3.3
Profile
- Added
setTopicPreferences(List<String>? topics)toBatchProfileAttributeEditorclass to set or reset the profile topic preferences. - Added
addToTopicPreferences(List<String> topics)toBatchProfileAttributeEditorclass to add topics to the profile topic preferences. - Added
removeFromTopicPreferences(List<String> topics)toBatchProfileAttributeEditorclass to remove topics from the profile topic preferences. - Profile string attributes now support up to 300 characters for the Customer Engagement Platform (CEP). The limit for the Mobile Engagement Platform (MEP) remains 64 characters. Attributes set via
BatchProfileAttributeEditor.setStringAttribute()longer than 64 characters will only be applied to the CEP. - Event string attributes now support up to 300 characters for the Customer Engagement Platform (CEP). The limit for the Mobile Engagement Platform (MEP) remains 200 characters. Attributes set via
BatchEventAttributes.putString()longer than 200 characters will only be applied to the CEP.
Push
- Added
requestNotificationAuthorizationAsync()to request notification authorization and return a promise that resolve with the authorization result.
-
3.0.023 Sep 2025Release notes
Open source →Plugin
- Updated Batch to 3.1
- Batch requires iOS 15.0 or higher and Xcode 16.4
- Batch is now distributed as a dynamic framework
- Added support for strict concurrency in Swift 6
- Batch now compiles with SDK 36 (Android 16 'Baklava').
Push
- Added
setShowNotificationsmethod to control whether android push notifications should be displayed. - Added
shouldShowNotificationsmethod to check current android notification display settings.
Messaging
- Added support for Mobile Landings within the Customer Engagement Platform.
- Added support for In-App Automations within the Customer Engagement Platform.
-
2.1.014 Nov 2024Release notes
Open source →Plugin
- Updated Batch to 2.1
- Batch requires iOS 13.0 or higher.
- Batch requires to compile with SDK 35 (Android 15).
iOS
- Added support for Swift Package Manager. Since, as of writing, Flutter's support of SPM is still under development, this may not work in future versions of Flutter. Batch is still backwards compatible with CocoaPods.
Profile
- Added
setPhoneNumberAPI to theBatchProfileAttributeEditorclass. This requires to have a user identifier registered or to call theidentifymethod beforehand. - Added
setSMSMarketingSubscriptionAPI to theBatchProfileAttributeEditorclass.
-
2.0.025 Jul 2024Release notes
Open source →This is a major release, please see our migration guide for more info on how to update your current Batch implementation.
Plugin
- Updated Batch to 2.0. For more information see the ios and android changelog .
- Batch requires iOS 13.0 or higher.
- Batch requires a
minSdklevel of 21 or higher.
iOS
- Removed deprecated
canUseIDFAproperty fromBatchPluginConfiguration. - Removed
canUseAdvancedDeviceInformationproperty fromBatchPluginConfiguration. You should now use thesetAutomaticDataCollectionAPI. - Added
profileCustomIdMigrationEnabledproperty to disable the profile custom id migration. This can also be done from theInfo.plistfile. See our documentation for info. - Added
profileCustomDataMigrationEnabledproperty to disable the profile custom data migration. This can also be done from theInfo.plistfile. See our documentation for info.
Android
- Removed deprecated
canUseAdvertisingIDmethod fromBatchPluginConfiguration. - Removed
setCanUseAdvancedDeviceInformationandcanUseAdvancedDeviceInformationmethod fromBatchPluginConfiguration. You should now use the newsetAutomaticDataCollectionAPI. - Added
setProfileCustomIdMigrationEnabledmethod to disable the profile custom id migration. This can also be done from theAndroidManifestmeta-data. See our documentation for info. - Added
setProfileCustomDataMigrationEnabledmethod to disable the profile custom data migration. This can also be done from theAndroidManifestmeta-data. See our documentation for info.
Core
- Added method
isOptedOutto checks whether Batch has been opted out from or not. - Added method
setAutomaticDataCollectionto fine-tune the data you authorize to be tracked by Batch.
User
- Removed method
trackTransactionwith no equivalent. - Removed method
BatchUser.newEditorand the related classBatchUserDataEditor, you should now useBatchProfile.instance.newEditor()which return an instance ofBatchProfileAttributeEditor. - Added method
clearInstallationDatawhich allows you to remove the installation data without modifying the current profile.
Event
This version introduced two new types of attribute that can be attached to an event : Array and Object.
- Removed
trackEventAPIs from the user module. You should now useBatchProfile.instance.trackEvent. BatchEventDatahas been renamed intoBatchEventAttributes.- Added support of type Array and Object with the following:
- Added
putObjectmethod toBatchEventAttributes. - Added
putObjectListmethodBatchEventAttributes. - Added
putStringListmethodBatchEventAttributes.
- Added
- Removed
addTagAPI fromBatchEventDataYou should now use the$tagskey inBatchEventAttributeswith theputStringListmethod. - Removed parameter
labelfromtrackEventAPI. You should now use the$labelkey inBatchEventAttributeswith theputStringmethod.
Profile
Introduced
BatchProfile, a new module that enables interacting with profiles. Its functionality replaces most of BatchUser used to do.- Added
identifyAPI as replacement ofBatchUser.instance.newEditor().setIdentifier. - Added
newEditormethod to get a new instance of aBatchProfileAttributeEditoras replacement ofBatchUserDataEditor. - Added
trackEventAPI as replacement of theBatchUser.instance.trackEventmethods. - Added
trackLocationAPI as replacement of theBatchUser.instance.trackLocationmethod.
-
1.4.023 Jan 2024Release notes
Open source →Plugin
- Dart 2.15+ is now required.
- Updated Batch to 1.21.0.
- Batch requires iOS 12.0 or higher.
- Batch now compiles with and targets SDK 34 (Android 14).
User
- Removed automatic collection of the advertising id:
- Android's Methods
setCanUseAdvertisingIDandcanUseAdvertisingIDfromBatchPluginConfigurationare now deprecated and do nothing. - Android's manifest configuration
com.batch.flutter.use_gaidhas been removed. - iOS's property
canUseIDFAfromBatchPluginConfigurationis now deprecated and does nothing. - iOS's Info.plist property
BatchFlutterCanUseIDFAhas been removed. - You need to collect it from your side and pass it to Batch via the added
setAttributionIdentifier(String? id)method. Batch will persist it across starts.
- Android's Methods
- Added
setEmail(String? email)method toBatchUserDataEditor. This requires to have a user identifier registered or to call thesetIdentifiermethod on the editor instance beforehand. - Added
setEmailMarketingSubscriptionState(BatchEmailSubscriptionState state)method toBatchUserDataEditor.
Inbox
- Added
hasLandingMessageproperty toBatchInboxNotificationContent. - Added
displayNotificationLandingMessage(BatchInboxNotificationContent notification)method toBatchInboxFetcher.
-
1.3.015 Sep 2022Release notes
Open source →Plugin
- Updated Batch to 1.19.2.
Bumping your Android project's
compileSdkVersionto33might be required. Xcode 13.3 required if your project uses bitcode.
Push
- Added Android implementation of the
batch.push.requestNotificationAuthorization()API. This allows you to request for the new notification permission introduced in Android 13. See the documentation for more info.
- Updated Batch to 1.19.2.
Bumping your Android project's
-
1.2.005 Apr 2022Release notes
Open source →Plugin
- Updated Batch to 1.19.0.
Bumping your Android project's
compileSdkVersionto31might be required. Xcode 13.3 required if your project uses bitcode.
Inbox
- Silent notifications are now filtered on Android rather than throwing an exception when fetched.
- Updated Batch to 1.19.0.
Bumping your Android project's
-
1.1.417 Feb 2022 -
1.1.315 Feb 2022Release notes
Open source →Plugin
- Updated dependencies so that the project can be built using Flutter 2.10.
Bumping your Android project'scompileSdkVersionto31might be required.
- Updated dependencies so that the project can be built using Flutter 2.10.
-
1.1.121 Dec 2021Release notes
Open source →Plugin
- Update Batch iOS to 1.18.1
- Work around a Flutter issue where a wrong nullability annotation resulted in a debug app crashing when started from the home screen. The scenario is still unsupported by Flutter, but the app will not crash anymore.
-
1.1.029 Nov 2021Release notes
Open source →Plugin
- Update Batch to 1.18
User
- Added support for the URL attribute and event data type.
-
1.0.009 Sep 2021Release notes
Open source →Initial stable release 🎉
Changes since RC:
Inbox
- Removed
isDeletedonBatchInboxNotificationContentas it doesn't work like it does on the native SDK due to plugin limitations.
- Removed
-
1.0.0-rc.229 Jul 2021 pre-release -
1.0.0-rc.125 Jun 2021 pre-releaseNothing published for this version