Customer.io Customer.io
  • Log In
Book demo Start trial
  • Platform
  • Pricing
  • Customers
  • Docs

Request Demo Sign In
  • Get Started
    • Welcome to Customer.io
    • Quick start guide
    • 1. Create your workspace
    • 2. Set up message channels
    • 3. Integrate with Customer.io
    • 4. Add people
    • 5. Send events and make segments
    • 6. Start sending campaigns and workflows
  • Journeys
    • Introduction to Journeys
    • People & Events
    • Objects & non-people data
    • Segmentation
    • Design Studio
    • Campaigns & Workflows
    • Message Channels
    • Liquid & Personalization
    • Metrics
  • Integrations
    • Integration Directory
    • Get Started
    • Data In
    • Data Out
    • APIs
      • Pipelines API
      • Track API
      • App API
      • Reporting Webhooks
    • Mobile SDKs
      • iOS
      • Android
      • React Native
      • Expo
      • Flutter
    • Account Verification
    • Billing
    • Your Account
    • Workspaces
    • Privacy & Security
    • Troubleshooting
  • Releases
    Releases

    Latest features at Customer.io

    Embed dynamic content in your app with inline messages
    2025-06-30

    Inline messages help you deliver relevant content like onboarding tips, feature announcements, and promotions exactly where users need them—without …

    Use human opens and clicks in your workflows
    2025-06-30

    You can now create segments and conditions that target when people have opened or clicked on emails. This means you can trigger campaigns based on …

    See real deliverability metrics for your audience
    2025-06-19

    Understanding email deliverability used to mean juggling multiple reports, subscribing to expensive third-party tools, or relying on generic industry …

  • Videos
  • Welcome to Customer.io
  • Quick start guide
  • 1. Create your workspace
  • 2. Set up message channels
  • 3. Integrate with Customer.io
  • 4. Add people
  • 5. Send events and make segments
  • 6. Start sending campaigns and workflows
  • Introduction to Journeys
      • Anonymous people
      • Anonymous activity
      • Merging anonymous activity
    • People and their profiles
    • Add people
    • Manually add/update people
    • Import people or events via CSV
    • Storing and using JSON
      • User Attributes
      • Events
      • Anonymous Events
      • What's the Last Visited field, and how do I use it?
      • How do I create multiple subscription types?
    • Resolve duplicate people
      • Exporting Data for a Single Person
      • Exporting Data for Many People
      • Delete people and suppress profile IDs
      • Searching and filtering people
      • Filtering Your Activity Logs
      • Using your data index
      • How do I know what data I have available?
    • Manage devices
    • Shortcuts to external services
    • Overview: Objects vs Collections
      • Objects: how they work
      • Objects: video tutorials
      • Object types
      • Objects
      • Relationships
      • Import objects or relationships via CSV
      • Export objects or relationships via CSV
      • Objects and relationships in campaigns
      • Use objects in liquid
      • Upsell: monetize power users
      • Adoption: drive feature usage
      • Awareness: announce events
      • Conversion: activate people on your event waitlist
    • Collections
    • Segmentation Overview
    • Build segments with AI
    • Data-driven segments
    • Manual Segments
    • Segment mobile device audiences
    • Ad Audiences
    • Timestamp Conditions
    • Using JSON in segments
    • Timestamp Conditions FAQ
    • Timestamp Rules for Building Segments
    • Why don't people match 'within the past X days' conditions?
    • Setting Up Segments for Specific Purposes
    • Welcome to Design Studio!
      • Manage your files
      • Keyboard shortcuts
      • Set global styles
      • Localize emails
        • Get started
        • Style your messages
        • Add & preview liquid
        • Get started
        • Validate your email
          • MJML framework
          • CSS inlining
          • Formatting
          • Set URL parameters for a single message
          • CSS cleanup
          • CSS variables
          • Accessibility fixes
        • Use Emmet syntax
        • Use MSO syntax
        • How to support dark mode
      • Code custom, responsive styles
      • Preview email in Design Studio
      • Connect an email to an automation
      • Edit connected messages
      • Disconnect an email from an automation
      • Understand components
      • Add components to your message
      • Understand and style standard components
        • Create a component
        • Create modifiable, placeholder content
        • Style custom components
        • Delete a component
          • Understand syntax
          • Add conditionals & directives
          • Loop through data
          • Create a stylesheet
      • How to collaborate
      • Submit & manage feedback
      • Manage version history
      • Send a test message
    • Campaigns, broadcasts, and transactional messages
    • Tags
      • Edit triggers, filters, or frequencies in live campaigns
      • Edit goals in live campaigns
      • Edit workflows in live campaigns
      • Edit live API-triggered broadcasts
      • Campaign concepts & settings
      • Create a campaign
      • Campaigns page
      • Triggers, filters, and frequencies
      • When to use filters
      • Goals & conversion criteria
      • Exit conditions
      • Change the state of a campaign
        • Webhook campaigns
        • Send event
        • Batch update
        • Follow up on NPS responses
        • Sync customers from Stripe to Customer.io
        • Campaign for syncing Mixpanel cohorts
        • Slack notification for support tickets
      • Grace periods
      • Send a Welcome Email
      • Birthday and Anniversary Campaigns
      • Cart Abandonment
      • Double Opt-In
      • Onboarding Campaign
      • Optimize emails with Just Words
      • Trial expiration reminders
      • Cohort tests
      • Trigger campaigns based on Roles
      • RSS Feed Email Campaign
      • Reminders for multiple upcoming trips
      • Introduction to broadcasts
      • Newsletters
      • API-triggered broadcasts
      • Using trigger data in your messages
      • Formatting API-Triggered Broadcasts
      • Common API-Triggered Broadcast errors
      • Getting Started: Key Concepts
      • Set up a transactional email
      • Set up a transactional push
      • Set up a transactional SMS
      • Transactional examples
      • Common transactional API errors
      • Frequently Asked Questions
      • Transactional Campaigns
      • Workflow builder
      • Send event
      • Batch update
      • Branches
      • Action conditions
      • Holdout tests
      • A/B tests
      • Copy workflow items
        • Delivery Time Window
        • Wait Until...
        • Create or update person
        • Fix typos in attributes
        • Reformat timestamp attributes
      • Getting started
      • Set up your localization attribute
      • Localize campaigns
      • Localize broadcasts and newsletters
      • Default sending settings
      • Sending behavior options
      • Why did my campaign not send someone a message?
      • Queue Draft for Campaign QA
      • Send messages in users' timezones
      • Supported time zone formats
      • Message Limits
      • Email: Getting Started
      • Transitioning to Customer.io as a sender
      • Introduction to Creating Emails
      • Testing Your Emails
      • Email Attachments
        • Email Deliverability Best Practices
        • Domain Authentication
        • Delete a domain
        • Domain warming
        • Track links with your domain
        • IP addresses: shared vs dedicated
        • Email suppression lists
        • Google Postmaster Tools
        • Custom unsubscribe links (RFC 8058)
        • Authenticating for Apple Private Email Relay
        • Verify deliverable email addresses with Kickbox
          • Use Your Own SMTP Server
          • Using Multiple SMTP servers
          • Use your Mailgun Account
          • Use your Mailjet Account
          • Use your Mandrill Account
          • Use your Postmark Account
          • Use your SendGrid Account
          • Use your Sparkpost Account
          • Use your Oracle Dyn Account
        • Choosing the Right Email Editor
        • Drag-and-Drop Emails: The Basics
        • Drag-and-Drop Editor FAQ
        • Troubleshooting Your Drag-and-Drop Emails
        • Email code editor
        • Introduction to Email Layouts
        • Customizing Email Layouts
        • Archiving Old Layouts
        • HTML and CSS Email vs. Web
        • CSS pre-processing
        • AMP for email
        • Adding a view in browser link
        • Resources for templates, code, and best practices
        • Adapting Foundation's Basic template
        • Adapting MailChimp's Two-Column template
        • How do I add an avatar/logo to my emails?
        • Set Custom Email Headers
        • Set custom preheader/preview text
        • What does the Fake BCC option do?
        • Create multiple from addresses
        • Welcome Email Copy
        • Gmail Promotions
        • Send data from Customer.io to Salesforce, Highrise or another CRM
        • Code editor: send Trustpilot reviews
      • Get started
      • Integrate your app
      • Migrate from another provider
      • Registering device tokens
      • Send push notifications
      • Custom push payloads
      • Test push notifications
      • Push metrics and message statuses
      • Best practices for push notifications
      • Frequently Asked Questions
      • Troubleshooting mobile issues
      • Get Started
      • Send SMS/MMS messages
      • Link shortening
      • Senders
      • Tracking
      • Frequently Asked Questions
      • SMS Opt-Out Keywords
      • Validate Mobile Phone Numbers
      • Get Started
      • Create content templates
      • Send a WhatsApp Message
      • Frequently Asked Questions
      • Get started
      • Set up your website
      • Anonymous messages
      • Send in-app messages
      • Inline messages
      • Multi-step messages
      • Surveys
      • In-app metrics
      • Test your messages
      • Localize messages
      • In-App FAQ
        • NPS Surveys
        • Promotions and offers
        • Promote upcoming event
        • Milestones and achievements
        • Feature adoption
        • The visual editor
        • In-app component reference
        • Legacy in-app editor
      • Get Started
      • Send and receive data with webhooks
      • Send in-app messages using webhooks
      • Web push with webhooks
      • Send direct mail with Lob
      • Link Tracking
      • Checking Link Status
      • Adding URL parameters to links
      • Track universal links and app links in email
      • HTTPS Link Tracking
      • Overview of subscription options
      • Global unsubscribes
      • Subscription center
      • Brand your subscription pages
      • Subscription FAQs
      • Multi-language support for the subscription center
      • Migrate subscription preferences
      • Set preferences outside of the subscription center
    • Send from a personal support rep
    • Find messages using the Message Library
    • Image requirements
    • The Asset Library
    • Message Statuses
    • Deliveries & Drafts data
    • Liquid upgrade
    • Liquid syntax list
    • Personalizing messages with liquid
    • Personalize actions with JavaScript
    • Reusing content with snippets
    • Composer errors
    • Metrics Overview
    • Campaign and Broadcast Metrics
    • Workspace Dashboard
    • Analysis page & reports
    • Email deliverability metrics
    • Understanding your A/B test results
    • Getting conclusive results from A/B tests
    • Failed and attempted messages
  • Integration Directory
    • Quick start guide
    • Understanding Integrations in Customer.io
    • Troubleshooting
    • Data Compliance and Privacy
    • Introduction
      • Understanding incoming data
      • Identify
      • Group
      • Page
      • Screen
      • Track
      • Alias
      • Common fields
    • Custom events
      • Understanding Semantic Events
      • A/B Test events
      • Customer.io events
      • Ecommerce Events
      • Email events
      • Live chat events
      • Mobile App Lifecycle Events
      • Video playback events
    • Backfill historical data
      • Customer.io API
      • Journeys Message Metrics
      • Mobile App Sources
        • Get started
        • Formstack
        • Jotform
        • Squarespace
        • Typeform
        • Unbounce
        • Webflow
        • Wordpress with WPForms
        • Custom JS integrations
        • Facebook Lead Ads
        • Use form data in Customer.io
        • Forms API (backend integrations)
        • Edit or disconnect forms
        • Getting Started
        • Method Reference
        • Migrate from another service
        • Managing identities
        • Cookies and identity management
        • Utility Methods and Performance
        • In-app messages
        • Proxying the JavaScript client
          • Get started
          • Identify people
          • Track and page events
          • In-app messages
          • Content Security Policy (CSP)
        • Add a Classic Track API integration
        • Advanced: transform data
        • Invalid Track API Requests
        • About Reverse ETL
        • Amazon Redshift
        • Google BigQuery
        • Microsoft SQL Server
        • MySQL
        • PostgreSQL
        • Snowflake
          • Reverse ETL Overview
          • Amazon Redshift
          • Google BigQuery
          • Microsoft SQL server
          • MySQL
          • PostgreSQL
          • Snowflake
        • Getting Started
        • Use Salesforce data in Customer.io
        • Map data to other services
        • Scheduled syncs
        • Deleting Data
        • API Call Calculator
        • Node.js
        • Python
        • Go
        • Segment
        • Segment data-in (classic)
        • Rudderstack (Legacy)
        • mParticle (Legacy)
        • Using Zapier with the Track API
        • Zoho integration
        • Hubspot integration
    • Getting Started
    • Add a data-out integration
    • Actions
      • Introduction
      • Standard integrations
      • Advanced Integrations
    • Filtering and mapping actions
    • Resend past data
      • Actable Predictive
      • Adobe Target
      • Algolia Insights
      • Amazon Redshift
      • Amazon Redshift (Advanced)
      • Amazon S3
      • Amazon S3 (Advanced)
      • Amplitude
      • Amplitude (Message Metrics)
      • Attio
      • Azure blob storage
      • Bing Ads
      • Braze
      • Braze Cohorts
      • Clevertap
      • Close
      • CommandBar
      • Cordial
      • Criteo Audiences
      • Customer.io
      • Facebook Conversions API
      • Friendbuy
      • FullStory
      • Gainsight PX
      • Google Ad Conversions
      • Google Ads (Gtag)
      • Google Analytics
      • Google BigQuery
      • Google BigQuery (Advanced)
      • Google Cloud Storage
      • Google Cloud Storage (Advanced)
      • Google Sheets
      • Google Tag Manager (GTM)
      • Heap
      • Hubspot
      • Intercom
      • Koala
      • LaunchDarkly
      • LiveLike
      • LogRocket
      • Meta (Facebook) Pixel
      • Metronome
      • Mixpanel
      • Mixpanel (Message Metrics)
      • Moengage
      • MS Azure Blob Storage (Advanced)
      • Pinterest Conversions
      • Pipedrive
      • PlayerZero
      • Qualtrics
      • Ripe
      • Rudderstack (legacy)
        • About this integration
        • Sent messages as tasks
        • Frequently Asked Questions
      • SalesWings
      • Segment
      • Segment (Message Metrics)
      • SendGrid Marketing Campaigns
      • Slack
      • Snowflake
      • Snowflake (Advanced)
      • Sprig
      • Talon.One
      • TikTok Conversions
      • Twilio
      • Twilio Engage Messaging
      • Twilio Studio
      • Twitter Pixel
      • Visual Website Optimizer (VWO)
      • Webhooks
      • Wisepops
      • Yandex
      • Zendesk
      • Reporting Webhooks
    • About our APIs
    • Pipelines API
    • Track API
    • App API
    • Journeys Webhooks
      • Quick Start Guide
        • How it works
        • Authentication
        • Packages and Configuration Options
        • Troubleshooting
        • Identify people
        • Track events
        • Screen tracking
        • Mobile Lifecycle events
        • Anonymous activity
        • Set up push notifications
        • Set up rich push
        • Deep Links
        • Push metrics
        • Sound in push notifications
        • Provisional Push
        • Push service certificates
        • Test your push implementation
        • Set up in-app messaging
        • Inline in-app messages
        • Page rules
        • In-app event listeners
        • 2.x -> 3.x
        • 1x -> 2.x
        • Changelog
        • Get Started
        • Identify people
        • Track events
        • Push notifications
        • Rich push notifications
        • In-app messages
        • Test support
        • Changelog
        • Get Started
        • Identify people
        • Track events
        • Push notifications
        • In-app messages
        • Test support
        • Update from 2.10 to 2.11
        • Migrate from an earlier version
        • Troubleshooting
        • Changelog
      • Quick Start Guide
        • How it works
        • Authentication
        • Packages and Configuration Options
        • Troubleshooting
        • Identify people
        • Screen tracking
        • Mobile Lifecycle events
        • Anonymous activity
        • Track events
        • Push notifications
        • Deep Links
        • Push service certificates
        • Test your push implementation
        • In-app messages
        • In-app event listeners
        • Inline in-app messages
        • Page rules
        • 3.x -> 4.x
        • 2.x -> 3.x
        • Changelog
        • Get Started
        • Identify people
        • Track events
        • Push notifications
        • In-app messages
        • Test support
        • Migrate from an earlier version
        • Troubleshooting
        • Changelog
        • Get Started
        • Identify people
        • Track events
        • Push notifications
        • Rich push notifications
        • Test support
        • Migrate from an earlier version
        • Changelog
      • Quick Start Guide
        • How it works
        • Authentication
        • Packages and Configuration Options
        • Troubleshooting
        • Identify people
        • Track events
        • Screen tracking
        • Mobile Lifecycle events
        • Anonymous activity
        • Set up push notifications
        • Deep Links
        • Handling Multiple Push Providers
        • Capture Push Metrics
        • Set up in-app messages
        • Inline in-app messages
        • Handling and dismissing actions
        • 4.x -> 4.3
        • 3.4x -> 4.x
        • 3.x -> 3.4
        • 2.x -> 3.x
        • Changelog
        • Get Started
        • Identify people
        • Track events
          • Set up push notifications
          • Deep Links
          • Handling Multiple Push Providers
          • Capture Push Metrics
          • Set up in-app messages
          • Handling and dismissing actions
          • Migrate from an earlier version
          • Troubleshooting
          • Changelog
        • Get Started
        • Identify people
        • Track events
          • Set up push notifications
          • Deep Links
          • Handling Multiple Push Providers
          • Capture Push Metrics
          • Set up in-app messages
          • Handling and dismissing actions
          • Migrate from an earlier version
          • Update to version 3.4
          • Troubleshooting
          • Changelog
      • Quick Start Guide
        • How it works
        • Authentication
        • Packages and Configuration Options
        • Troubleshooting
        • Identify people
        • Track events
        • Screen tracking
        • Mobile Lifecycle events
        • Anonymous activity
        • Set up push notifications
        • Deep Links
        • Capture Push Metrics
        • Multiple push providers
        • Inline in-app messages
        • Set up in-app messages
        • Handle in-app message responses
        • 1x -> 2.x
        • Changelog
        • Get Started
        • Identify people
        • Track events
          • Set up push notifications
          • Deep Links
          • Capture Push Metrics
          • Set up in-app messages
          • Handling and dismissing actions
          • Troubleshooting
          • Changelog
      • Quick Start Guide
        • How it works
        • Authentication
        • Configuration Options
        • Troubleshooting
        • Identify people
        • Mobile Lifecycle events
        • Anonymous activity
        • Screen tracking
        • Track events
        • Set up push notifications
        • Deep links
        • Handling multiple push providers
        • Capture push metrics
        • In-app messages
        • Inline in-app messages
        • Handling and dismissing actions
        • Update iOS
        • Troubleshooting
        • Changelog
        • 2.x -> 2.2
        • Upgrade to Flutter 2.x
        • Changelog
        • Get Started
        • Identify people
        • Track events
        • Update Flutter SDK
          • Set up push notifications
          • Deep Links
          • Handling Multiple Push Providers
          • Capture Push Metrics
          • In-app messages
          • Handling and dismissing actions
          • Update iOS
          • Troubleshooting
          • Changelog
  • Account Verification
  • UI Changes in 2025
    • How We Bill
    • Reducing billing overages
    • Payment Problems
    • Canceling Your Account
    • Plan Features
    • Edit Account Information
    • Manage team members
    • Manage your API credentials
    • Security Best Practices
    • Two-Factor Authentication
    • Single Sign-on (SSO)
    • Account Regions (US and EU)
    • Enable experimental features
    • Workspaces in Customer.io
    • Date and Time Data in Customer.io
    • Case sensitivity and your data
    • Session cookies and expiration
    • Allowlist our IP addresses
    • Customer.io, GDPR, and you!
    • Security
    • Mobile and App Store Privacy
    • Privacy
    • Respecting your users' privacy
    • Customer.io Security Qualifications
    • Troubleshooting login and browser issues
    • Create a HAR file for help troubleshooting

    Changelog

    Check out release history for stable releases of iOS SDKs. Stable releases have been tested thoroughly and are ready for use in your production apps.

    Need to upgrade?

    Select your current version to see all the features and fixes from your version to the latest release.

    Breaking Changes

    Features

    Bug Fixes

    3.x Releases


      • 3.10.7

        June 26, 2025code changes

        Internal

        • Added base classes around Inline views to support communication of inline view with Wrapper SDKs (#933) (2a4dbb9)
      • 3.10.6

        June 25, 2025code changes

        Bug Fixes

        • Sanitize unsupported numeric values (#930) (2a848e4)
      • 3.10.5

        June 4, 2025code changes

        Bug Fixes

        • Fix in-app messages not overlaying safe area top and bottom (#925) (8ed7d7b)
      • 3.10.4

        June 2, 2025code changes

        Bug Fixes

        • Fixed an issue where the SDK enforced a strict version of firebase messaging, preventing integration with newer versions. (#929) (a0211d3)
      • 3.10.3

        May 30, 2025code changes

        Bug Fixes

        • premature deallocation of the rich push http client (1edb75c)
        • premature deallocation of the rich push http client (#924) (9a985c1)
      • 3.10.2

        May 27, 2025code changes

        Bug Fixes

        • Fixes the bug where multi screen in-app messages might dismiss earlier (#920) (0426e06)
      • 3.10.1

        May 26, 2025code changes

        Bug Fixes

        • Fixed an issue that caused duplicate internal calls for setting device tokens (#922) (0f5d7f0)
        • Improved detection of UNUserNotificationCenterDelegate method implementations by explicitly tracking completion handler calls, ensuring more reliable notification handling across different integration scenarios (#922) (0f5d7f0)
      • 3.10.0

        May 23, 2025code changes

        ⚠ BREAKING TOOLING CHANGES

        • Support for FCM 11.12.0 (#918) (dcc21e0) is added which requires Xcode 16.2 or later, so you will need to update xcode if you are utilizing the FCM module.
      • 3.9.0

        May 15, 2025code changes

        Improvements

        • Swizzling replacement:
          • We’ve replaced the old “swizzling” method for handling push notifications with a clearer, more reliable system.
          • New AppDelegate classes (CioAppDelegate and CioAppDelegateWrapper) make integration easier, more explicit, and more maintainable.
        • Deep Linking:
          • Added a new deepLinkingCallback to fix issues with some libraries (like Firebase) that don’t properly handle application(_:continue:restorationHandler:).
          • This ensures deep links work more consistently across different setups.
        • Sample Applications:
          • Updated to show how to implement the new AppDelegate setup and deep linking — making it easier to follow and integrate.

        Deprecations

        • The old swizzling-based push notification setup is now deprecated. It still works, but we recommend switching to the new method as it will be removed in a future release.
        • The previous deep-linking approach is also deprecated, replaced by the new deepLinkingCallback.
      • 3.8.2

        April 22, 2025code changes

        Bug Fixes

        • Parse region leniently and fall back to default region if parsing fails instead of blocking initialization (#879)
        • Hardcoded the upper limit of FCM version to avoid the issues with compilation of Cocoapods SDK (#880)
      • 3.8.1

        April 2, 2025code changes

        Bug Fixes

        • Fixed an issue where the “Application Installed” event was incorrectly triggered on every app launch instead of only after the initial installation.

        Improvement

        • Updated libraries to the latest versions to improve stability.
      • 3.8.0

        January 30, 2025code changes

        Features

        • Added support for inline in-app messages. Inline in-app messages act like a part of the content on your page. They let you dynamically populate parts of your app and talk to your customers without interrupting their experience. (#864) (35fba9b)

        Fixes

        • Incorrectly scrolling content for in-app modal messages positioned top/bottom. #858
      • 3.7.2

        January 8, 2025code changes

        Bug Fixes

        • Fixes in-app messages overlay background color being ignored from in-app message payload (#843)
      • 3.7.1

        January 6, 2025code changes

        Bug Fixes

        • Fixes the intermittent crash with in-app messages when triggered on background thread (#840) (93200a4)
      • 3.7.0

        January 1, 2025code changes

        Features

        • Added ability to disable forwarding screen events to destinations/servers. Apps can still send screen events for local processing and use them for page rules in in-app messages by just updating SDK configuration during initialization. (#844) (486e228)

        Fixes

        • Handle fragments (#) when you open a web page from in-app via “Open the web” action. #842
      • 3.6.0

        November 13, 2024code changes

        Features

        • This release introduces support for displaying larger in-app messages. (#831) (3731f68)

        Fixes

        • Resolve an issue that prevented push metrics from being reported for customers who set the region to the EU region. (https://github.com/customerio/customerio-ios/pull/836)

        Improvement

        • Updated our SDK to use the v2 version of our in-app messages API. This will provide a more reliable experience for in-app messages. (https://github.com/customerio/customerio-ios/pull/834)
      • 3.5.1

        October 25, 2024code changes

        Bug Fixes

        • This fix dismisses keyboard when an in-app message appears to allow uninterrupted user interaction (#828) (faad28a)
      • 3.5.0

        October 16, 2024code changes

        Improvement

        • This release includes changes needed to support for data pipelines in the our React Native SDK. There are no new features for customers utilizing our native Android SDK only. (#819) (171dfdc)
      • 3.4.1

        October 1, 2024code changes

        Features

        • This update extends support to newer Firebase SDK versions. (#792)

        Bug Fixes

        • Fixes an edge case where the in-app queue would not maintain its integrity when autoScreenTracking is turned on and screens are frequently changed. (#820) (62268a4)
      • 3.4.0

        September 17, 2024code changes

        Features

        • Revamped the in-app messaging module to enhance performance by optimizing local processing, accelerating message loading during page transitions, and implementing a state-driven architecture for better responsiveness and control. [#815] (5cd651b)
        • We highly recommend upgrading to the new in-app editor to ensure optimal performance.

        Fixes

        • We reduced the chance of duplicate in-app messages by keeping a local store of messages already displayed.
      • 3.3.3

        August 8, 2024code changes

        Bug Fixes

        • Resolved issue for customers who use the tool, Tuist, to install the Customer.io iOS SDK. (#791) (cd1346a)
      • 3.3.2

        June 27, 2024code changes

        Bug Fixes

        • This release addresses a compatibility issue for apps that have installed two or more third-party SDKs (besides Customer.io SDK) that handle push notifications. While this issue was primarily reported by our Flutter customers, it could also affect native iOS and React Native applications. (#751) (ca5abb3)
      • 3.3.1

        June 25, 2024code changes

        Bug Fixes

        • This release resolves a scenario where in-app messages with page rules enabled are sent to a device but is never shown if the app is killed and re-opened. (#746) (cfae57d)
      • 3.3.0

        June 17, 2024code changes

        Features

        • When using page rules and when an in-app messages need a second to load, the in-app message might appear after a user navigates to another page. We made changes to ensure the page-rules are checked after the message is loaded and immediately before it’s displayed in order to resolve this issue. (#731) (cb1d014)
      • 3.2.3

        June 13, 2024code changes

        Bug Fixes

        • For users of our Flutter SDK and React Native SDK, this resolves a compatibility issue with 3rd party FCM Flutter and React Native SDKs. In some cases, the issue prevented push notifications from showing while the app was in the foreground when the 3rd party SDK and CIO SDK were both installed. (#736) (ccb0f47)
      • 3.2.2

        May 29, 2024code changes

        Bug Fixes

        • Resolves an issue that prevented actions from being tracked for in-app messages. (#728) (c1f69c1)
      • 3.2.1

        May 27, 2024code changes

        Bug Fixes

        • Resolves an issue that caused a crash on the emulator while in developing. (#725) (7ca2dc2)
      • 3.2.0

        May 7, 2024code changes

        Features

        • Segment compatibility (#685) (7298783)
      • 3.1.3

        April 24, 2024code changes

        Bug Fixes

        • update segment internal SPM dependencies with fixed version (#708) (c02742e)
      • 3.1.2

        April 16, 2024code changes

        Bug Fixes

        • track bq migration for identify profile events with no attributes (2fb4827)
      • 3.1.1

        April 15, 2024code changes

        Bug Fixes

        • added alias for Region (#693) (1619c72)
      • 3.1.0

        April 10, 2024code changes

        Features

        • privacy manifest files (#677) (e5c6dc7)
      • 3.0.2

        April 9, 2024code changes

        Bug Fixes

        • [visionos] Minor project cleanup (#688) (d2934fe)
      • 3.0.1

        March 21, 2024code changes

        Bug Fixes

        • install 3.0 with Swift Package Manager from Xcode (#660) (45b0367)
      • 3.0.0

        March 20, 2024code changes

        ⚠ BREAKING CHANGES

        • iOS as a source for Data Pipelines (#659)

        Features

        • iOS as a source for Data Pipelines (#659) (0a68373)
        • migration module to cater to all migration tasks (#530) (2feb1d4)

        Bug Fixes

        • add attributes to properties (#649) (4b02e92)
        • all sdk modules can only be initialized once (ae46c7f)
        • app crash on identify method (#458) (13e9862)
        • compilation for test (f14b773)
        • compilation issue (420a61e)
        • eventbus handler ref (#469) (8c8ef91)
        • journey id in migration payload (#653) (3b649c9)
        • prevent duplicate automatic screenview events from being tracked (fea9ec5)
        • pushEventHandler test (dc80fc2)
        • remove occurrence of autoTrackDeviceAttributes from all push modules (#505) (8dc6507)
        • removed last_used from properties (#477) (b0b9631)
        • sample app issues (#551) (05544b3)
        • use git commit instead of git branch for segment dependency (d245015)

    2.x Releases


      • 2.14.2

        October 7, 2024code changes

        Features

        • This update extends support to the newer versions of the Firebase SDK (>11), ensuring compatibility with the latest Firebase features and improvements. (#822) (ab53cf6)
      • 2.14.1

        August 21, 2024code changes

        Bug Fixes

        • Explicitly switched threads to avoid forcing identify calls to be made on main thread. The SDK now automatically switches to appropriate thread, regardless of the thread used to make identify calls. (#795) (9fc527b)
      • 2.14.0

        August 21, 2024code changes

        Features

        • Reduced the time for first in-app message to be shown for newly identified profiles. For new profiles, in-app messages are now fetched as soon as the profile is identified. (#794) (13032c6)
      • 2.13.2

        June 21, 2024code changes

        Bug Fixes

        • This release addresses a compatibility issue for apps that have installed two or more third-party SDKs (besides Customer.io SDK) that handle push notifications. While this issue was primarily reported by our Flutter customers, it could also affect native iOS and React Native applications. (#743) (c3573fc)
      • 2.13.1

        June 12, 2024code changes

        Bug Fixes

        • For users of our Flutter SDK and React Native SDK, this resolves a compatibility issue with 3rd party FCM Flutter and React Native SDKs. In some cases, the issue prevented push notifications from showing while the app was in the foreground when the 3rd party SDK and CIO SDK were both installed.(#735) (b0a7772)
      • 2.13.0

        April 10, 2024code changes

        Features

        • privacy manifest files (#679) (c801004)
      • 2.12.5

        March 18, 2024code changes

        Bug Fixes

        • do not bundle .md files in cocoapods deployments (15dbb48)
      • 2.12.4

        March 13, 2024code changes

        Bug Fixes

        • call completionHandler if push handler does not implement optional function (9996872)
        • forward push received app in foreground events to 3rd party callbacks (bd55e2b)
        • forward push response events to 3rd party callback functions, for CIO push (121b157)
        • open deep link from main thread as required by UIKit (7d7867f)
      • 2.12.3

        March 5, 2024code changes

        Bug Fixes

        • expo users reported app crash on didFailToRegisterForRemoteNotificationsWithError (#575) (ac70292)
      • 2.12.2

        February 23, 2024code changes

        Bug Fixes

        • rich push image downloading path conflict when its already downloaded (#561) (67cbfd6)
      • 2.12.1

        February 15, 2024code changes

        Bug Fixes

        • fixes an issue with multiple timers being scheduled (#529) (ec383f1)
      • 2.12.0

        February 15, 2024code changes

        Features

        • use new header to set polling interval (#519) (05a1ebd)
      • 2.11.1

        February 14, 2024code changes

        Bug Fixes

        • enable logging for gist (#524) (c786897)
      • 2.11.0

        February 12, 2024code changes

        Features

        • automatic push click handling (#403) (47e94c4)
      • 2.10.2

        January 18, 2024code changes

        Bug Fixes

        • ensure messages are only shown once (#468) (5cc6625)
      • 2.10.1

        November 22, 2023code changes

        Bug Fixes

        • cocoapods APN customers app not compiling (#414) (e7aaa23)
      • 2.10.0

        November 8, 2023code changes

        Features

        • auto fetch device token and auto register device (apns) (#391) (2fce84d)
      • 2.9.2

        November 7, 2023code changes

        Bug Fixes

        • memory exception during SDK initialization async tasks (#399) (3404523)
      • 2.9.1

        November 7, 2023code changes

        Bug Fixes

        • add priority field to message and sorting by priority within local store (#401) (8315118)
      • 2.9.0

        October 31, 2023code changes

        Features

        • get currently registered device token (#398) (cdedab0)
      • 2.8.5

        October 27, 2023code changes

        Bug Fixes

        • when queue cannot find task, expect queue runs next task (#397) (01ea7a6)
      • 2.8.4

        October 18, 2023code changes

        Bug Fixes

        • in-app positioning and persistence (#393) (b5a2f18)
      • 2.8.3

        October 11, 2023code changes

        Bug Fixes

        • prevent registering device with empty identifier existing BQ tasks (#392) (867619f)
      • 2.8.2

        September 7, 2023code changes

        Bug Fixes

        • reduce memory and cpu usage while running background queue (#379) (87a7eed)
      • 2.8.1

        August 31, 2023code changes

        Bug Fixes

        • added url path encoding (#376) (fbfa384)
      • 2.8.0

        August 31, 2023code changes

        Features

        • filter automatic screenview tracking events (#367) (1a535f9)
      • 2.7.8

        August 14, 2023code changes

        Bug Fixes

        • cache queue inventory for lower CPU usage while running queue (#368) (fdcb24c)
      • 2.7.7

        July 26, 2023code changes

        Bug Fixes

        • support json array in attributes (#358) (a634358)
      • 2.7.6

        July 21, 2023code changes

        Bug Fixes

        • apps initializing sdk multiple times in short amount of time may make SDK ignore requests (#360) (09829e0)
      • 2.7.5

        July 20, 2023code changes

        Bug Fixes

        • deinit cleanup repo bad memory access (#356) (0483fb0)
      • 2.7.4

        July 17, 2023code changes

        Bug Fixes

        • save device token in SDK even if no profile identified (#354) (a49f72c)
      • 2.7.3

        July 17, 2023code changes

        Bug Fixes

        • prevent api calls when identifier is empty (#353) (10b5db7)
      • 2.7.2

        July 12, 2023code changes

        Bug Fixes

        • gist migration to CIO (#338) (#351) (5520a7c)
      • 2.7.1

        July 4, 2023code changes

        Bug Fixes

        • bad memory access crash (#342) (b83e6bd)
      • 2.7.0

        June 21, 2023code changes

        Features

        • include FCM SDK as a dependency to make FCM push setup easier (#333) (233fc22)
      • 2.6.1

        May 26, 2023code changes

        Bug Fixes

        • internal module Common clashing with other Common modules in customers app (#328) (817dd56)
      • 2.6.0

        May 26, 2023code changes

        Features

        • in-app dismiss message (#320) (e067001)
      • 2.5.3

        May 26, 2023code changes

        Bug Fixes

        • in-app universal link redirection support (#329) (51470e8)
      • 2.5.2

        May 19, 2023code changes

        Bug Fixes

        • exact version for gist (#321) (4b75cc5)
      • 2.5.1

        May 12, 2023code changes

        Bug Fixes

        • sdk wrappers not having device token registered because of application lifecycle (#285) (da7fc51)
      • 2.5.0

        April 27, 2023code changes

        Features

        • expose current SDK config options for reference (#298) (6ac739b)
      • 2.4.1

        April 27, 2023code changes

        Bug Fixes

        • auto update gist in CocoaPods (#303) (6096d17)
      • 2.4.0

        April 27, 2023code changes

        Features

        • get the version of the SDK (#299) (38a6b00)
      • 2.3.0

        April 19, 2023code changes

        Features

        • in app click tracking (#284) (4ed8edb)
      • 2.2.0

        April 18, 2023code changes

        Features

        • ui for new sample app with apns (#282) (06e4a6b)
      • 2.1.2

        March 10, 2023code changes

        Bug Fixes

        • delete tasks that returns http 400 (#276) (aabfe9e)
      • 2.1.1

        March 8, 2023code changes

        Bug Fixes

        • cocoapods app extension targets able to compile (#277) (8dbca8f)
      • 2.1.0

        February 22, 2023code changes

        Features

        • add in-app event listener (#211) (737d43b)
        • in-app feature no longer requires orgId (#252) (acd12da)

        Bug Fixes

        • access modifier for metric (#263) (e641982)
        • added reusable code for wrapper SDKs (#247) (36adf15)
        • in-app missing event (#259) (43b3e97)
        • modify in-app event listener action parameters to new name (#255) (b46528a)
        • region visibility modifier to be used by wrappers (#260) (f0edfbc)
        • update the gist version in podspec (#256) (5451488)
      • 2.0.6

        February 15, 2023code changes

        Bug Fixes

        • universal links deep links open host app (#268) (29c95b5)
      • 2.0.5

        February 10, 2023code changes

        Bug Fixes

        • universal links when touch a push notification open host app (#265) (7dcaf73)
      • 2.0.4

        January 17, 2023code changes

        Bug Fixes

        • async running BQ operations in loop (#250) (f0a3d9c)
      • 2.0.3

        January 11, 2023code changes

        Bug Fixes

        • revert 2.0.2 as it was found unstable (#249) (51b5831)
      • 2.0.2

        January 6, 2023code changes

        It’s recommended to avoid installing this version of the iOS SDK as issues have been reported with it. Until a newer release is out, it’s recommended to use 2.0.1

        Bug Fixes

        • prevent stackoverflow while executing background queue with lots of tasks in it (#245) (ef0c428)
      • 2.0.1

        December 22, 2022code changes

        Bug Fixes

        • download rich push images from CDN (#237) (b30cf02)
      • 2.0.0

        December 13, 2022code changes

        ⚠ BREAKING CHANGES

        • make delivered push metric more reliable (0478e52)
        • remove FCM dependency from cocoapods (#210)
        • singleton API only way to use SDK now (#209)
        • SDK should not modify custom attributes casing (#234) (8160fdf)

        Bug Fixes

        • add sdkwrapperconfig to rich push SDK config (#226) (e43b4cf)
        • fix compile time errors notification service extensions (#214) (bd5911b)
        • sdk not able to compile in ios app (#225) (e4d1b3f)
        • make delivered push metric more reliable (0478e52)
        • SDK should not modify custom attributes casing (#234) (8160fdf)

        Code Refactoring

        • remove FCM dependency from cocoapods (#210) (3547076)
        • singleton API only way to use SDK now (#209) (72b7477)

    1.x Releases


      • 1.2.7

        December 6, 2022code changes

        Bug Fixes

        • push images and processing simple push (#230) (f109f04)
      • 1.2.6

        November 17, 2022code changes

        Bug Fixes

        • device attributes shows sdk version instead of wrapper version (e2462b9)
      • 1.2.5

        November 14, 2022code changes

        1.2.5 (2022-11-14)

        Bug Fixes

        • fix compile time errors notification service extensions (#216) (6e8484a)
        • 3.10.7
        • 3.10.6
        • 3.10.5
        • 3.10.4
        • 3.10.3
        • 3.10.2
        • 3.10.1
        • 3.10.0
        • 3.9.0
        • 3.8.2
        • 3.8.1
        • 3.8.0
        • 3.7.2
        • 3.7.1
        • 3.7.0
        • 3.6.0
        • 3.5.1
        • 3.5.0
        • 3.4.1
        • 3.4.0
        • 3.3.3
        • 3.3.2
        • 3.3.1
        • 3.3.0
        • 3.2.3
        • 3.2.2
        • 3.2.1
        • 3.2.0
        • 3.1.3
        • 3.1.2
        • 3.1.1
        • 3.1.0
        • 3.0.2
        • 3.0.1
        • 3.0.0
        • 2.14.2
        • 2.14.1
        • 2.14.0
        • 2.13.2
        • 2.13.1
        • 2.13.0
        • 2.12.5
        • 2.12.4
        • 2.12.3
        • 2.12.2
        • 2.12.1
        • 2.12.0
        • 2.11.1
        • 2.11.0
        • 2.10.2
        • 2.10.1
        • 2.10.0
        • 2.9.2
        • 2.9.1
        • 2.9.0
        • 2.8.5
        • 2.8.4
        • 2.8.3
        • 2.8.2
        • 2.8.1
        • 2.8.0
        • 2.7.8
        • 2.7.7
        • 2.7.6
        • 2.7.5
        • 2.7.4
        • 2.7.3
        • 2.7.2
        • 2.7.1
        • 2.7.0
        • 2.6.1
        • 2.6.0
        • 2.5.3
        • 2.5.2
        • 2.5.1
        • 2.5.0
        • 2.4.1
        • 2.4.0
        • 2.3.0
        • 2.2.0
        • 2.1.2
        • 2.1.1
        • 2.1.0
        • 2.0.6
        • 2.0.5
        • 2.0.4
        • 2.0.3
        • 2.0.2
        • 2.0.1
        • 2.0.0
        • 1.2.7
        • 1.2.6
        • 1.2.5

    Platform
    • Platform overview
    • Platform features
    • Journeys
    • Data Pipelines
    • Parcel
    • Pricing
    Resources
    • Documentation
    • Release Notes
    • Blog
    • Community
    • Competitors
    • API
    • Guides
    Company
    • About
    • Careers
    • Support
    • Partners
    • Startup Program
    • Contact
    Customer.io
    win@customer.io

    9450 SW Gemini Dr
    Suite 43920
    Beaverton, Oregon 97008-7105 US
    LinkedIn
    Twitter (X)
    Youtube
    Instagram
    Status Terms of Service Privacy Policy @2024 Peaberry Software, Inc.