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

For a web source connected in device mode, the Customer.io SDK domain depends on the selected Web SDK Version:

  • v1 loads the legacy snippet from https://assets.customer.io.
  • v2 loads the Data Pipelines JavaScript client from https://cdp.customer.io or https://cdp-eu.customer.io (for the EU data center).

Based on your website’s content security policy, you might need to allowlist the applicable 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

Configure the below connection settings depending on your connection mode.

Cloud mode credentials

Setting
Description
Destination nameAssign a name to uniquely identify the destination.
Site IDEnter your Customer.io site ID.

Note that:

  • This field is required for cloud mode, mobile device mode, and web device mode using Web SDK Version v1.
  • It is optional only when the destination’s sole connection is web device mode using Web SDK Version v2.
API keyEnter your Customer.io API key.

Note that:

  • This field is required for cloud mode, mobile device mode, and web device mode using Web SDK Version v1.
  • It is optional only when the destination’s sole connection is web device mode using Web SDK Version v2.
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.

Device mode credentials

Setting
Description
Destination nameAssign a name to uniquely identify the destination.
Web SDK VersionSelect the Customer.io SDK for a web source connected in device mode. This setting is scoped to each web source connection and is visible only for web device mode.

  • v1 (Default): Loads the legacy Customer.io snippet and authenticates with the Site ID.
  • v2: Loads the Data Pipelines JavaScript client and requires a Data Pipelines Write Key.

New destinations default to v1, and existing destinations remain on v1. Switching an existing destination to v2 changes where its web events land — they enter Customer.io through the selected Data Pipelines source instead of going directly to Journeys.
Site IDEnter your Customer.io site ID.

Note that:

  • This field is required for cloud mode, mobile device mode, and web device mode using Web SDK Version v1.
  • It is optional only when the destination’s sole connection is web device mode using Web SDK Version v2.
API keyEnter your Customer.io API key.

Note that:

  • This field is required for cloud mode, mobile device mode, and web device mode using Web SDK Version v1.
  • It is optional only when the destination’s sole connection is web device mode using Web SDK Version v2.
Data Pipelines Write KeyEnter the write key for a Customer.io Data Pipelines JavaScript source connected to your Journeys workspace. This setting is scoped to each web source connection and is required for web device mode using Web SDK Version v2, where it’s the only credential the browser client needs. Find it under Data Pipelines > Connections > Sources in Customer.io.

The write key isn’t a secret field because the web SDK must include it in the page, just as Customer.io’s own snippet does. See Where do I find my Data Pipelines write key? for more information.
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.
Web SDK Version and Data Pipelines Write Key apply only to web sources connected in device mode. For mobile device mode sources, configure the Site ID and API key.

Configuration settings

Configure the below settings depending on your connection mode:

Cloud mode

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

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 support (v1 only)Toggle on this setting to send in-app messages to your website using the v1 native web SDK.

For more information on setting up in-app messages for your website, see the Customer.io documentation.
Enable in-app messages for anonymous users (v2 only)Toggle on this setting to load the Customer.io In-App Plugin for unidentified website visitors. Before enabling it, turn on in-app messaging under Settings > Workspace Settings > In-app in Customer.io and confirm that your Customer.io plan supports anonymous in-app messages.

Anonymous messages target only unidentified visitors; Customer.io excludes identified people. Profile variables such as {{customer.first_name}} cause an error for anonymous visitors unless you provide fallbacks. In-app messages for identified users require no additional setting on v2.

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.
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

Where do I find my Data Pipelines write key?

  1. In Customer.io, go to Data Pipelines > Connections > Sources.
  2. Create or select a JavaScript source connected to your Journeys workspace.
  3. Copy the source’s write key into Data Pipelines Write Key in the RudderStack destination settings.

The Data Pipelines write key is different from the Site ID and Tracking API key. It belongs to Customer.io Data Pipelines, not the Journeys credential system, and isn’t treated as a secret because the browser client includes it in the page.

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.