zendesk_messaging
Flutter plugin for Zendesk Messaging SDK. Provides in-app customer support messaging with multi-conversation support, real-time events, and JWT authentication.
3.4.0
9.6K downloads/mo
#2992 most downloaded on pub.dev
chyiiiiiiiiiiii/flutter_zendesk_messaging
What this package is like to depend on
Last release 2 months ago
19 Jun 2026
Release timing varies
gaps range from 1 weeks to 1.1 years
Nearly every release is documented
notes for 24 of 24 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
24 releases · first in 2021
8 releases in the last 12 months
see the full history below
Release timeline
24 releases · Oct 2021 to Jun 2026Releases
latest 24-
3.4.019 Jun 2026Release notes
Open source →New Features
- iOS: Add Swift Package Manager (SPM) support (#100). The plugin now ships a
Package.swiftalongside the existing podspec, so apps that have migrated to SPM can depend on it.- CocoaPods remains fully supported — both dependency managers reference the same sources and resolve the same
ZendeskSDKMessaging2.36.0 native SDK. Existing CocoaPods users are unaffected and need no changes. - SPM users only need an iOS deployment target of 14.0 (already the plugin's minimum).
- CocoaPods remains fully supported — both dependency managers reference the same sources and resolve the same
Implementation notes
SwiftPM does not allow mixing Objective-C and Swift in a single target, so the thin Objective-C plugin registrant was removed and the Swift class is now the registrant directly (exposed via
@objc(ZendeskMessagingPlugin)). The public class name and the generated registrant are unchanged.Verified by building the example app with both CocoaPods and Swift Package Manager, plus
flutter analyzeand the full test suite.Release notes
Open source →New Features
- iOS: Add Swift Package Manager (SPM) support (#100). The plugin now ships
a
Package.swiftalongside the existing podspec, so apps that have migrated to SPM can depend on it. CocoaPods remains fully supported — both dependency managers resolve the sameZendeskSDKMessaging2.36.0 native SDK, so existing CocoaPods users are unaffected and no app changes are required.
- iOS: Add Swift Package Manager (SPM) support (#100). The plugin now ships a
-
3.3.019 Jun 2026Release notes
Open source →New Features
- Locale: Add
setLocale(locale)to override the Zendesk messaging UI language at runtime (#97).- Android:
Locale.setDefault()+ application/activity resource configuration; runtime switch supported. - iOS: sets the
AppleLanguagesuser default; set it beforeinitialize(), and re-initialize to change it afterward.
- Android:
Build
- Android: Migrate to Flutter's built-in Kotlin so the plugin builds with Android Gradle Plugin (AGP) 9+ (#104). The Kotlin Gradle Plugin is now applied only on AGP < 9, and the deprecated
kotlinOptionsblock is replaced by thekotlin.compilerOptionsDSL. Apps on AGP < 9 are unaffected.
Release notes
Open source →New Features
- Locale: Add
setLocale(locale)to override the Zendesk messaging UI language at runtime (#97).- Android: Sets
Locale.setDefault()and updates the application/activity resource configuration. Can switch at runtime before launching the UI. - iOS: Sets the
AppleLanguagesuser default for SDK localization. Set it beforeinitialize(); to change after, callinvalidate()theninitialize()again.
- Android: Sets
Build
- Android: Migrate to Flutter's built-in Kotlin so the plugin builds with
Android Gradle Plugin (AGP) 9+ (#104). The Kotlin Gradle Plugin is now applied
only on AGP < 9, and the deprecated
kotlinOptionsblock is replaced by thekotlin.compilerOptionsDSL. Apps on AGP < 9 are unaffected.
- Locale: Add
-
3.2.305 Jun 2026Release notes
Open source →Bug Fixes
- iOS: Parse the APNs device token as hex before forwarding to
PushNotifications.updatePushNotificationToken. The previous code usedtoken.data(using: .utf8), which produced the UTF-8 bytes of the hex string instead of the 32-byte device token, so Zendesk registered a malformed token and never delivered iOS push. - Android: Use the application context (stored in
onAttachedToEngine) forhandleNotificationinstead of the Activity. The Activity is null in a background isolate / terminated state, so the previous code bailed withno_contextand background pushes never displayed.PushNotifications.displayNotificationonly needs aContext. - Android: Guard
initializeagainst a null Activity to return a clean error instead of aNullPointerException. Push display does not requireinitialize; it usesshouldBeDisplayed/handleNotification.
Documentation
- Correct the push notification token usage in all README translations and the
updatePushNotificationTokenAPI doc. On iOS, pass the APNs device token fromgetAPNSToken(), not the FCM token fromgetToken()— using the FCM token on iOS silently fails to deliver push. Token retrieval is now split per platform, andonTokenRefreshis guarded to Android (iOS APNs tokens are re-fetched on launch). - Document that
showConversationshould be called once per navigation. Rapid duplicate calls can make the underlying SDK open the default conversation instead of the requested one, so callers that may fire more than once for a single user action (e.g. a notification tap reaching multiple handlers) should de-duplicate.
- iOS: Parse the APNs device token as hex before forwarding to
-
3.2.209 Mar 2026Release notes
Open source →Bug Fixes
- iOS: Resolve root view controller from active scene for UISceneDelegate apps (#94)
-
3.2.107 Jan 2026Release notes
Open source →Documentation
- Add multi-language README support
- 繁體中文 (Traditional Chinese)
- 简体中文 (Simplified Chinese)
- Español (Spanish)
- Português (Brasil) (Portuguese)
- 日本語 (Japanese)
- 한국어 (Korean)
- Fix image URL for pub.dev compatibility (use absolute GitHub raw URL)
- Add multi-language README support
-
3.2.007 Jan 2026Release notes
Open source →Breaking Changes
- Flutter SDK: >=3.24.0 -> >=3.27.0
Improvements
- Add GitHub Actions CI workflow with automated testing
- Expand unit test coverage for plugin APIs
- Update README documentation
-
3.1.006 Jan 2026Release notes
Open source →New Features
- Push Notifications Support
updatePushNotificationToken(token)- Register FCM/APNs token with ZendeskshouldBeDisplayed(data)- Check if notification is from Zendesk messaginghandleNotification(data)- Display Zendesk push notificationhandleNotificationTap(data)- Handle notification tap and navigate to conversationZendeskPushResponsibilityenum - Notification classification (messagingShouldDisplay, messagingShouldNotDisplay, notFromMessaging)
Implementation Details
- Android: Uses official
PushNotificationsclass from Zendesk SDK - iOS: Uses official
PushNotificationsclass withhandleTapcompletion handler - Follows official Zendesk SDK documentation patterns
- Push Notifications Support
-
3.0.006 Jan 2026Release notes
Open source →Breaking Changes
- iOS minimum version: 12.0 -> 14.0
- Dart SDK: ^3.0.0 -> ^3.6.0
- Flutter SDK: >=3.10.0 -> >=3.24.0
Native SDK Updates
- Android SDK: 2.26.0 -> 2.36.1
- iOS SDK: 2.24.0 -> 2.36.0
- Kotlin: 1.9.24 -> 2.1.21
- Swift: 5.9
New Features
-
Full Event System: 24 event types via sealed class pattern
UnreadMessageCountChanged- unread count changes with conversation detailsAuthenticationFailed- auth errors with JWT expiration detectionConnectionStatusChanged- network state monitoringConversationAdded,ConversationStarted,ConversationOpened- conversation lifecycleMessagesShown- messages rendered with message dataSendMessageFailed- message send failuresFieldValidationFailed- conversation field validation errorsMessagingOpened,MessagingClosed- UI lifecycleProactiveMessageDisplayed,ProactiveMessageClicked- proactive messagingConversationWithAgentRequested,ConversationWithAgentAssigned,ConversationServedByAgent- agent eventsNewConversationButtonClicked,PostbackButtonClicked- UI interactionsArticleClicked,ArticleBrowserClicked- article eventsConversationExtensionOpened,ConversationExtensionDisplayed- extension eventsNotificationDisplayed,NotificationOpened- push notification events (Android)
-
Multi-Conversation Navigation
showConversation(conversationId)- navigate to specific conversationshowConversationList()- display conversation liststartNewConversation()- start new conversation directlygetUnreadMessageCountForConversation(conversationId)- per-conversation count
-
User Management
getCurrentUser()- get current user with auth typeZendeskUsermodel with id, externalId, authenticationTypeZendeskAuthenticationTypeenum (anonymous, jwt)
-
Connection Status
getConnectionStatus()- get SDK connection stateZendeskConnectionStatusenum (connected, connecting, disconnected, unknown)
-
New Models
ZendeskUser- user informationZendeskMessage- message data with id, conversationId, authorId, content, timestampZendeskLoginResponse- login response dataZendeskEventsealed class hierarchy
Improvements
- Modern Dart 3.x syntax with sealed classes and pattern matching
- Comprehensive API documentation
- Unit tests for method channels and event parsing
- Enhanced example app with all features demonstrated
- Backwards compatible
unreadMessagesCountStreamfor legacy code
Migration Guide
See README.md for detailed migration instructions from 2.x.
-
2.9.314 Nov 2024Release notes
Open source →- Update Dart SDK minimum version to 3.0.0 .
- Update Flutter SDK minimum version to 3.10.0 .
- Fix method channel calls never complete.
-
2.9.203 Nov 2024 -
2.9.118 Sep 2024 -
2.9.015 Sep 2024Release notes
Open source →- fix issue for logoutUser in iOS
- upgrade ios version to 2.24.0
- downgrade android version to 2.13.0
-
2.8.012 Dec 2023Release notes
Open source →- Upgrade zendesk-messaging sdk version to 2.16.0
- Minimum iOS version is now 12
- ADD conversation fields
-
2.7.729 Aug 2023 -
2.7.624 Aug 2023 -
2.7.518 May 2023Release notes
Open source →- Upgrade Flutter sdk version
- Upgrade zendesk-messaging sdk version to 2.11.0
-
2.7.417 Apr 2023Release notes
Open source →- Upgrade ZendeskSDKMessaging of iOS to v2.9.0 to be compatible with Xcode 14.3
-
2.7.312 Apr 2023 -
2.7.231 Jan 2023 -
2.6.027 Sep 2022 -
2.6.0+128 Sep 2022 -
0.0.319 Aug 2022 -
0.0.218 Feb 2022 -
0.0.111 Oct 2021