Customer.io Destination Setup Guide
8 minute read
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 | |||
|---|---|---|---|
| |||
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.ioorhttps://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 name | Assign a name to uniquely identify the destination. |
| Site ID | Enter your Customer.io site ID. Note that:
|
| API key | Enter your Customer.io API key. Note that:
|
| Data center | Choose your Customer.io data center from US or EU.
|
| API Version | Choose which Customer.io API delivers your events. This setting applies to cloud mode only — it has no effect on device mode delivery.
|
userId Identifier Type | Choose which Customer.io identifier your userId represents: ID, Email, Phone, or CIO ID.Note that:
|
Choose your userId Identifier Type carefully
- The destination sends
userIdas 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
userIdfail when API Version is v2.
Device mode credentials
| Setting | Description |
|---|---|
| Destination name | Assign a name to uniquely identify the destination. |
| Web SDK Version | Select 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.
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 ID | Enter your Customer.io site ID. Note that:
|
| API key | Enter your Customer.io API key. Note that:
|
| Data Pipelines Write Key | Enter 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 center | Choose your Customer.io data center from US or EU.
|
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 token | Enter 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 token | Enter 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 mode | If 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 token | Enter 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 mode | Automatically 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 queue | This 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 queue | This 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 Filtering | This 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 settings | Configure 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?
- Sign in to your Customer.io dashboard.
- In the left panel, click Settings and select Account Settings.
- Then, click API Credentials. You should find the site ID and API key for your project listed here.

Where do I find my Data Pipelines write key?
- In Customer.io, go to Data Pipelines > Connections > Sources.
- Create or select a JavaScript source connected to your Journeys workspace.
- 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.