klaviyo_flutter_sdk
A Flutter plugin that provides a wrapper around the native Klaviyo SDKs for iOS and Android.
0.2.0
2.9K downloads/mo
#4695 most downloaded on pub.dev
klaviyo/klaviyo-flutter-sdk
What this package is like to depend on
Last release 3 months ago
05 May 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 2 of 2 stable releases
Nothing withdrawn
no release was ever pulled
5 months old
3 releases · first in 2026
3 releases in the last 12 months
see the full history below
Release timeline
3 releases · Mar 2026 to May 2026Releases
latest 3-
0.2.005 May 2026Release notes
Open source →What's New
-
Form lifecycle events — New
onFormLifecycleEventstream emits typedFormShown,FormDismissed, andFormCtaClickedevents for in-app forms. Use Dart pattern matching for exhaustive handling. (#75) -
Native SDK upgrade — Now consuming
KlaviyoSwift ~> 5.3.1andklaviyo-android-sdk 4.4.0, which brings:- Push notification action buttons (up to 3 tappable buttons per Klaviyo push, configured in the Klaviyo dashboard — no integration changes required)
- Floating (Android) / Flyout (iOS) in-app form presentation styles
- Cross-platform form lifecycle hooks (surfaced through the new
onFormLifecycleEventstream above)
See klaviyo-android-sdk 4.4.0 and klaviyo-swift-sdk 5.3.0 for full native release notes. (#88)
Bug Fixes
- Android push tap events —
onPushNotificationnow correctly emitspush_notification_openedwhen a user taps a Klaviyo push. Previously the tap event was silently dropped on Android due to acom.klaviyo.namespace prefix mismatch in the intent extras. (#83) - Re-initialization —
KlaviyoSDK().initialize()no longer silently swallows subsequent calls with a different API key, enabling runtime account switching for multi-tenant apps. TheapiKeyis now updated only after the native call succeeds, so a failed re-init does not corrupt state. (#80) - Flutter version compatibility — Relaxed the
metadependency constraint from^1.17.0to^1.15.0so the SDK resolves cleanly against Flutter 3.24.x–3.37.x (these versions pinmetatransitively viaflutter_test). (#82)
Other Changes
- Documentation — README updated to cover push action buttons, the new floating/flyout form layouts, and the typed
onFormLifecycleEventAPI. - Example app — Deferred the Android notification permission prompt to the Push tab so it fires on user opt-in rather than at app launch. (#84)
- Example app — Differentiated pure silent pushes from standard pushes with
content-availablein the iOSAppDelegate, with matching docs in the README's Silent Push section. (#72) - Build & CI — Migrated release workflow to OIDC-based pub.dev publishing (replaces the credential-based
PUB_CREDENTIALSsecret with the Dart team's reusable workflow). (#71) - Build & CI — Fixed local SDK setup script, JitPack branch version handling (
/→~), and pegged the example app's iOSMARKETING_VERSIONto the plugin version. (#74, #76, #89) - README — Removed WIP status banner. (#65)
Full Changelog:
0.1.0...0.2.0What's Changed
- Migrate release workflow to OIDC-based pub.dev publishing by @ab1470 in #71
- Update README to remove WIP status by @ajaysubra in #65
- [MAGE-218] feat(example/ios): differentiate silent from standard push with content-available by @aahiltn in #72
- Fix JitPack branch version: replace / with ~ in branch names by @evan-masseau in #74
- chore(android) Fix android local SDK setup by @evan-masseau in #76
- fix(deps): relax meta constraint to ^1.15.0 for Flutter 3.24.x-3.37.x compat by @ab1470 in #82
- fix(example): defer notification permission to Push tab by @ab1470 in #84
- chore(scripts): peg example app version to plugin version by @ab1470 in #89
- docs(readme): update for 0.2.0 (Android 4.4.0 / iOS 5.3.0) by @ab1470 in #90
- docs(changelog): fill in 0.2.0 entry by @ab1470 in #92
- fix(scripts): verify newly synced files in bump_version.sh by @ab1470 in #93
- fix(forms): tighten form lifecycle event handling for cross-platform parity by @ab1470 in #94
- docs(forms): add form lifecycle events section to README by @evan-masseau in #95
- Version 0.2.0 Release by @evan-masseau in #77
Full Changelog: 0.1.0...0.2.0
Release notes
Open source →What's New
-
Form lifecycle events — New
onFormLifecycleEventstream emits typedFormShown,FormDismissed, andFormCtaClickedevents for in-app forms. Use Dart pattern matching for exhaustive handling. (#75) -
Native SDK upgrade — Now consuming
KlaviyoSwift ~> 5.3.1andklaviyo-android-sdk 4.4.0, which brings:- Push notification action buttons (up to 3 tappable buttons per Klaviyo push, configured in the Klaviyo dashboard — no integration changes required)
- Floating (Android) / Flyout (iOS) in-app form presentation styles
- Cross-platform form lifecycle hooks (surfaced through
onFormLifecycleEventabove)
See klaviyo-android-sdk 4.4.0 and klaviyo-swift-sdk 5.3.0 for full native release notes. (#88)
Bug Fixes
- Android push tap events —
onPushNotificationnow correctly emitspush_notification_openedwhen a user taps a Klaviyo push. Previously the event was silently dropped on Android due to acom.klaviyo.namespace prefix mismatch in the intent extras. (#83) - Re-initialization —
KlaviyoSDK().initialize()no longer silently swallows subsequent calls with a different API key, enabling runtime account switching for multi-tenant apps. (#80) - Flutter version compatibility — Relaxed the
metadependency constraint from^1.17.0to^1.15.0so the SDK resolves cleanly against Flutter 3.24.x–3.37.x. (#82)
Documentation
- README updated to cover push action buttons, floating/flyout form layouts, and the typed
onFormLifecycleEventAPI. (#90)
Platform Support
- iOS: Minimum deployment target 13.0, wraps Klaviyo Swift SDK ~> 5.3.1
- Android: Minimum SDK version 23, wraps Klaviyo Android SDK 4.4.0
- Flutter: Minimum Flutter 3.24.0, Dart 3.0.0+
-
-
0.1.026 Mar 2026Release notes
Open source →This is the initial beta release of our Flutter SDK, containing a few bug fixes from the 0.1.0-alpha.1 version.
This beta contains a backwards-compatibility layer from the klaviyo_flutter community plugin; see the Migration Guide for more details.
What's Changed
- Create AI context files by @ab1470 in #54
- Add
configure-sdk.shfor switching native SDK versions by @ab1470 in #55 - Fix pub.dev release automation by removing v prefix from tag pattern by @ajaysubra in #56
- Fix setProfile silently dropping location data on iOS and Android by @ab1470 in #59
- Add KlaviyoCore pod override to
configure-sdk.shby @ab1470 in #62 - Remove standalone setLocation method by @ab1470 in #63
- Add backwards compatibility bridge for community SDK migration by @ab1470 in #58
- Add isKlaviyoNotification Map extension by @ab1470 in #66
- Refresh README documentation by @ab1470 in #67
- Bump native SDK versions (iOS 5.2.2, Android 4.3.1) by @ab1470 in #68
- Run version bump script by @ab1470 in #70
Full Changelog: 0.1.0-alpha.1...0.1.0
-
0.1.0-alpha.106 Mar 2026 pre-releaseRelease notes
Open source →Initial alpha release of the Klaviyo Flutter SDK.
Features
- SDK Initialization: Initialize with your Klaviyo public API key
- Profile Management: Set and get profile identifiers (email, phone number, external ID), set full profiles with custom properties and location, and reset profiles on logout
- Event Tracking: Track custom events with properties and timestamps via
createEvent - Push Notifications:
- Register for push notifications (APNs on iOS, FCM on Android)
- Automatic push token capture and forwarding to Klaviyo
- Push notification open tracking
- Silent push support (iOS)
- Rich push support (images in notifications)
- Badge count management (iOS)
- Stream-based push event listener (
onPushNotification)
- In-App Forms: Register/unregister for in-app forms with optional configuration, with stream-based form event listener (
onFormEvent). Forms module can be excluded to reduce SDK size. - Geofencing: Register/unregister for geofence monitoring. Location module is opt-in to avoid unnecessary dependency on location services.
- Deep Linking: Handle Klaviyo universal tracking links with
handleUniversalTrackingLinkfor click tracking and link resolution - Logging: Configurable log levels (none, error, warning, info, debug)
Platform Support
- iOS: Minimum deployment target 13.0, wraps Klaviyo Swift SDK ~> 5.2.2
- Android: Minimum SDK version 23, wraps Klaviyo Android SDK 4.3.1
- Flutter: Minimum Flutter 3.24.0, Dart 3.0.0+