Customer.io Customer.io
Try search with AI ✨
  • 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

    Official release: build segments with AI
    2025-06-11

    Build a segment with AI to help you get up and running quickly and find gaps in your current conditions. Generate a segment from a brief prompt or …

    Send in-app messages to the right pages with exclusion rules
    2025-06-04

    It’s now easier to show in-app messages on the exact pages where you want them to appear. Instead of writing complex regular expressions or listing …

    It's easier to set up in-app messaging than ever before
    2025-05-29

    Setting up in-app messaging for your website used to mean finding your Site ID (which was buried in our UI) and asking your development team to update …

  • 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
        • 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
      • 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
      • Exit conditions
      • Change the state of a campaign
      • Tags
        • 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
      • 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 Coming Soon
    • 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)
        • Connect Journeys data to destinations
        • 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 Beta
        • 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 Beta
        • 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
        • 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
        • 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
        • 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

    1.x Releases


      • 1.2.9

        January 6, 2023code changes

        Bug Fixes

        • 1.2.8 initialize in-app with debug logs no longer crashes SDK (#243) (98962f7)
      • 1.2.8

        December 22, 2022code changes

        Bug Fixes

        • snake_case bug fix via configuration (#238) (b1f3729)
      • 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

        Bug Fixes

        • fix compile time errors notification service extensions (#216) (6e8484a)
      • 1.2.4

        November 11, 2022code changes

        Bug Fixes

        • updated gist version in podspec (ab231b1)
      • 1.2.3

        November 10, 2022code changes

        1.2.3 (2022-11-10)

        Bug Fixes

        • install in-app bug fix via gist 2.2.1 (38d64fd)
        • 1.2.9
        • 1.2.8
        • 1.2.7
        • 1.2.6
        • 1.2.5
        • 1.2.4
        • 1.2.3

    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.