Customer.io Destination Setup Guide

Set up and configure Customer.io as a destination in RudderStack.

This guide helps you set up Customer.io as a destination in the RudderStack dashboard. It also lists the configuration settings required to correctly send data from the supported sources to Customer.io.

Connection compatibility

Destination Information
  • Status: Generally Available
  • Supported sources: Android (Java) , Android (Kotlin) , iOS (Obj-C) , iOS (Swift) , Web, Unity, AMP , Cloud, Warehouse, React Native , Flutter, Cordova, Shopify
  • Refer to it as Customer IO in the Integrations object.
Connection Modes
SourceCloud modeDevice modeHybrid mode
AMPsupportednot supportednot supported
Android (Java)supportedsupportednot supported
Android (Kotlin)supportednot supportednot supported
Cloudsupportednot supportednot supported
Cordovasupportednot supportednot supported
Fluttersupportednot supportednot supported
iOS (Obj-C)supportedsupportednot supported
iOS (Swift)supportednot supportednot supported
React Nativesupportednot supportednot supported
Shopifysupportednot supportednot supported
Unitysupportednot supportednot supported
Warehousesupportednot supportednot supported
Websupportedsupportednot supported
Supported Message Types
SourceIdentifyPageTrackScreenGroupAliasRecordAudienceList
Cloud mode
Supported sourcessupportedsupportedsupportedsupportedsupportedsupportedsupportednot supported
Device mode
Websupportedsupportedsupportednot supportednot supportednot supportednot supportednot supported

In the web device mode integration, that is, using the JavaScript SDK as a source, RudderStack loads the Customer.io native SDK from the https://assets.customer.io/ domain.

Based on your website’s content security policy, you might need to allowlist this domain to load the Customer.io SDK successfully.

Setup

In your RudderStack dashboard, add a source. Then, from the list of destinations, select Customer.io.

Connection settings

Setting
Description
Destination nameAssign a name to uniquely identify the destination.
Site IDEnter your Customer.io site ID.
API keyEnter your Customer.io API key.
Data centerChoose your Customer.io data center from US or EU.

To send events to the EU data center using RudderStack Open Source, you should be using rudder-transformer v1.42.0 or later.
API VersionChoose which Customer.io API delivers your events. This setting applies to cloud mode only — it has no effect on device-mode delivery.

  • v1: Events go to Customer.io’s per-endpoint APIs.
  • v2 (default): Events go to Customer.io’s unified batch API. Existing connections keep their current behavior unless you switch.
userId Identifier TypeChoose which Customer.io identifier your userId represents: ID, Email, Phone, or CIO ID.

Note that:

  • This setting is visible only if API Version is v2, and required in that case.
  • This setting applies to cloud mode only — it has no effect on device-mode delivery.
  • If you select Phone, the value must be in E.164 format (for example, +15551234567). Separators and spacing are tolerated, but a number that cannot be read as E.164 fails.

Choose your userId Identifier Type carefully

  • The destination sends userId as that identifier for every event — there is no fallback. For example, choosing ID and sending an email address sends that value as an ID.
  • Pick the option that matches how profiles are identified in your Customer.io workspace. Choosing the wrong type attaches events to the wrong profile or creates new ones, and you cannot reverse that after the fact.
  • Events without a userId fail when API Version is v2.

Configuration settings

Configure the below settings depending on your connection mode:

Cloud mode settings

Setting
Description
Event sent after setting device tokenEnter the name of the event that RudderStack fires immediately after setting the device token. This lets RudderStack send the device token to Customer.io immediately.

Device mode settings

Configure the below device mode settings depending on your source:

Web SDK
Setting
Description
Event sent after setting device tokenEnter the name of the event that RudderStack fires immediately after setting the device token. This lets RudderStack send the device token to Customer.io immediately.
Send page name in SDK modeIf this setting is toggled on, RudderStack sends the page name to Customer.io. Otherwise, Customer.io fetches the page name in the form of a URL.
Enable in-app message supportToggle on this setting to send in-app messages to your website using the native web SDK.

For more information on setting up in-app messages for your website, see the Customer.io documentation.
Mobile SDK
Setting
Description
Event sent after setting device tokenEnter the name of the event that RudderStack fires immediately after setting the device token. This lets RudderStack send the device token to Customer.io immediately.
Automatically track device attributes in SDK modeAutomatically track device attributes in the SDK mode through the Customer.io mobile SDK.

This setting is toggled on by default - toggle it off to track the attributes manually.
Minimum number of tasks in background queueThis setting is available only for the Android (Java) source and lets you specify the minimum number of tasks to be kept in the background queue.

By default, RudderStack sets this value to 10.
Delay in seconds for background queueThis setting is available only for the Android (Java) source and lets you specify the delay (in seconds) for the events to be kept in the background queue.

By default, RudderStack sets this value to 30.

Other settings

Setting
Description
Client-side Events FilteringThis setting lets you specify which events should be blocked or allowed to flow through to Customer.io.

See the Client-side Events Filtering guide for more information.
Setting
Description
Consent management settingsConfigure the consent management settings for the specified source by choosing the Consent management provider from the dropdown and entering the relevant consent category IDs.

See Consent Management in RudderStack for more information on this feature.

Next steps

FAQ

Where can I find the Customer.io API key and site ID?

  1. Sign in to your Customer.io dashboard.
  2. In the left panel, click Settings and select Account Settings.
  3. Then, click API Credentials. You should find the site ID and API key for your project listed here.
Customer.io site ID and API key

Questions? Let's figure it out together.

Join the RudderStack Slack community to connect with other users, customers, and the RudderStack team — or reach out for direct support.