LogoLogo
  • Contributing to RudderStack
  • Destination_Name
  • LICENSE
  • RudderStack Docs
  • docs
    • FAQ
    • Identity Resolution
    • Home
    • cloud-extract-sources
      • ActiveCampaign Source
      • Bing Ads
      • Chargebee
      • Common Settings
      • Facebook Ads
      • Freshdesk
      • Google Ads Source
      • Google Analytics
      • Google Search Console
      • Google Sheets
      • Cloud Extract Sources
      • Intercom v2
      • Intercom
      • Mailchimp
      • Marketo
      • Mixpanel
      • NetSuite
      • Pipedrive
      • QuickBooks
      • Salesforce Pardot
      • Sendgrid Source
      • Stripe Source
      • Xero
      • Zendesk Chat
      • Zendesk
      • hubspot
        • HubSpot Data Model and Schema Information
        • HubSpot
      • salesforce
        • Salesforce
        • Schema Comparison: RudderStack vs. Segment
    • connections
      • Connection Modes: Cloud Mode vs. Device Mode
    • data-governance
      • Data Governance
      • RudderTyper
      • Data Governance API
      • RudderTyper
      • tracking-plans
        • Tracking Plans
        • Tracking Plan Spreadsheet
    • data-warehouse-integrations
      • Amazon Redshift
      • Azure Data Lake
      • Azure Synapse
      • ClickHouse
      • Databricks Delta Lake
      • Google Cloud Storage Data Lake
      • Google BigQuery
      • Identity Resolution
      • Warehouse Destinations
      • Microsoft SQL Server
      • PostgreSQL
      • Amazon S3 Data Lake
      • Snowflake
      • FAQ
      • Warehouse Schema
    • destinations
      • Destinations
      • Webhooks
      • advertising
        • Bing Ads
        • Criteo
        • DCM Floodlight
        • Facebook App Events
        • Facebook Custom Audience
        • Facebook Pixel
        • Google Ads (gtag.js)
        • Google AdWords Enhanced Conversions
        • Google Adwords Remarketing Lists (Customer Match)
        • Advertising
        • LinkedIn Insight Tag
        • Lotame
        • Pinterest Tag
        • Reddit Pixel
        • Snap Pixel
        • TikTok Ads
      • analytics
        • Amplitude
        • AWS Personalize
        • Chartbeat
        • Firebase
        • FullStory
        • Google Analytics 360
        • Google Analytics
        • Heap.io
        • Hotjar
        • Analytics
        • Indicative
        • Keen
        • Kissmetrics
        • Kubit
        • Lytics
        • Mixpanel
        • Pendo
        • PostHog
        • Quantum Metric
        • Singular
        • adobe-analytics
          • Adobe Analytics Heartbeat Measurement
          • Mobile Device Mode Settings
          • Web Device Mode Settings
          • E-commerce Events
          • Adobe Analytics
          • Setting Up Adobe Analytics in RudderStack
        • google-analytics-4
          • Cloud Mode
          • Device Mode
          • Google Analytics 4
          • Setting up Google Analytics 4
        • profitwell
          • ProfitWell
          • Cloud Mode
          • Device Mode
      • attribution
        • Adjust
        • AppsFlyer
        • Branch
        • Attribution
        • Kochava
        • TVSquared
      • business-messaging
        • Business Messaging
        • Intercom
        • Kustomer
        • Slack
        • Trengo
      • continuous-integration
        • Visual Studio App Center
        • Continuous Integration
      • crm
        • Delighted
        • HubSpot
        • CRM
        • Salesforce
        • Variance
        • Zendesk
      • customer-data-platform
        • Customer Data Platform
        • Segment
      • error-reporting
        • Bugsnag
        • Error Reporting
        • Sentry
      • marketing
        • ActiveCampaign
        • AdRoll
        • Airship
        • Appcues
        • Autopilot
        • Blueshift
        • Braze
        • CleverTap
        • Customer.io
        • Gainsight PX
        • Gainsight
        • Marketing
        • Iterable
        • Klaviyo
        • Leanplum
        • Mailchimp
        • Marketo Lead Import
        • Marketo
        • MoEngage
        • Ometria
        • Pardot
        • Post Affiliate Pro
        • Qualtrics
        • SendGrid
        • Salesforce Marketing Cloud
        • Userlist
        • drip
          • Cloud Mode
          • Device Mode
          • Drip
          • Setting Up Drip in RudderStack
      • productivity
        • Google Sheets
        • Productivity
      • storage-platforms
        • Amazon S3
        • DigitalOcean Spaces
        • Google Cloud Storage
        • Storage Platforms
        • Azure Blob Storage
        • MinIO
        • Redis
      • streaming-platforms
        • Amazon EventBridge
        • Amazon Kinesis Firehose
        • Amazon Kinesis
        • Azure Event Hubs
        • BigQuery Stream
        • Confluent Cloud
        • Google Pub/Sub
        • Streaming Platforms
        • Apache Kafka
      • tag-managers
        • Google Tag Manager
        • Tag Managers
      • testing-and-personalization
        • Algolia Insights
        • Candu
        • Google Optimize
        • A/B Testing & Personalization
        • LaunchDarkly
        • Monetate
        • Optimizely Full Stack
        • Optimizely Web
        • Split.io
        • Statsig
        • VWO (Visual Website Optimizer)
    • get-started
      • RudderStack Cloud vs. RudderStack Open Source
      • Glossary
      • Get Started
      • RudderStack Architecture
    • reverse-etl
      • Amazon Redshift
      • Amazon S3
      • ClickHouse
      • FAQ
      • Google BigQuery
      • Reverse ETL
      • PostgreSQL
      • Snowflake
      • common-settings
        • Importing Data using Models
        • Importing Data using Tables
        • Common Settings
        • Sync Modes
        • Sync Schedule
      • features
        • Airflow Provider
        • Features
        • Models
        • Visual Data Mapper
    • rudderstack-api
      • Data Regulation API
      • HTTP API
      • RudderStack API
      • Personal Access Tokens
      • Pixel API
      • Test API
      • api-specification
        • Application Lifecycle Events Specification
        • API Specification
        • Video Events Specification
        • rudderstack-ecommerce-events-specification
          • Browsing
          • Coupons
          • E-Commerce Events Specification
          • Ordering
          • Promotions
          • Reviewing
          • Sharing
          • Wishlist
        • rudderstack-spec
          • Alias
          • Common Fields
          • Group
          • Identify
          • RudderStack Event Specification
          • Page
          • Screen
          • Track
    • rudderstack-cloud
      • Audit Logs
      • Dashboard Overview
      • Destinations
      • RudderStack Cloud
      • Live Events
      • Connection Modes: Cloud Mode vs. Device Mode
      • Sources
      • Teammates (User Management)
      • connections
        • Adding a Destination
        • Connections
    • rudderstack-open-source
      • Control Plane Setup
      • RudderStack Open Source
      • installing-and-setting-up-rudderstack
        • Developer Machine Setup
        • Docker
        • Data Plane Setup
        • Kubernetes
        • Sending Test Events
    • stream-sources
      • App Center
      • AppsFlyer
      • Auth0
      • Braze
      • Customer.io
      • Extole
      • Event Stream Sources
      • Iterable
      • Looker
      • PostHog
      • Segment
      • Shopify
      • Webhook Source
      • rudderstack-sdk-integration-guides
        • Client-side Event Filtering
        • SDKs
        • AMP Analytics
        • Cordova
        • .NET
        • Go
        • Java
        • Node.js
        • PHP
        • Python
        • React Native
        • Ruby
        • Rust
        • Unity
        • SDK FAQs
        • rudderstack-android-sdk
          • Adding Application Class
          • Flushing Events Periodically
          • Android
        • rudderstack-flutter-sdk
          • Flutter SDK v1
          • Flutter v2
          • Flutter
        • rudderstack-ios-sdk
          • iOS
          • tvOS
          • watchOS
        • rudderstack-javascript-sdk
          • Data Storage in Cookies
          • Detecting Ad-blocked Pages
          • JavaScript
          • JavaScript SDK Enhancements
          • JavaScript SDK FAQs
          • Querystring API
          • Quick Start Guide
          • Version Migration Guide
          • consent-managers
            • Consent Managers
            • OneTrust
    • transformations
      • Access Token
      • FAQ
      • Transformations
      • Transformations API
    • user-guides
      • User Guides
      • administrators-guide
        • Troubleshooting Guide
        • Alerting Guide
        • Bucket Configuration Settings for Event Backups
        • Configuration Parameters
        • Event Replay
        • High Availability
        • Horizontal Scaling
        • Administrator's Guides
        • Infrastructure Provisioning
        • Monitoring and Metrics
        • Okta SSO Setup
        • OneLogin SSO Setup
        • RudderStack Grafana Dashboard
        • Software Releases
      • how-to-guides
        • How to Use Custom Domains
        • How to Develop Integrations for RudderStack
        • How to Configure a Destination via the Event Payload
        • How to Filter Events using Different Methods
        • How to Filter Selective Destinations
        • How to Submit a Pull Request for a New Integration
        • How-to Guides
        • How to Debug Live Destination Events
        • How to Use AWS Lambda Functions with RudderStack
        • create-a-new-destination-transformer-for-rudder
          • Best Practices for Coding Transformation Functions in JavaScript
          • How to Create a New Destination Transformation for RudderStack
        • implement-native-js-sdk-integration
          • How to Add a Device Mode SDK to RudderStack JavaScript SDK
          • How to Implement a Native JavaScript SDK Integration
        • rudderstack-jamstack-integration
          • How to Integrate RudderStack with Your JAMstack Site
          • How to Integrate Rudderstack with Your Angular App
          • How to Integrate Rudderstack with Your Astro Site
          • How to Integrate Rudderstack with Your Eleventy Site
          • How to Integrate Rudderstack with Your Ember.js App
          • How to Integrate Rudderstack with a Gatsby Website
          • How to Integrate Rudderstack with a Hugo Site
          • How to Integrate Rudderstack with Your Jekyll Site
          • How to Integrate Rudderstack with Your Next.js App
          • How to Integrate Rudderstack with Your Nuxt.js App
          • How to Integrate Rudderstack with Your Svelte App
          • How to Integrate Rudderstack with Your Vue App
      • migration-guides
        • Migrating from Blendo to RudderStack
        • Migrating Your Warehouse Destination from Segment to RudderStack
        • Migration Guides
        • Migrating from Segment to RudderStack
  • src
    • @rocketseat
      • gatsby-theme-docs
        • text
          • Home
Powered by GitBook
On this page
  • Getting started
  • Supported events
  • Common data mappings
  • Email events
  • Customer events
  • SMS events
  • Push notification events
  • Webhook events
  • Slack events
  • Event transformation
  • Contact us

Was this helpful?

  1. docs
  2. stream-sources

Customer.io

Step-by-step guide on ingesting your event data from Customer.io into RudderStack.

PreviousBrazeNextExtole

Last updated 2 years ago

Was this helpful?

is a popular marketing platform for sending targeted emails and push and SMS notifications to improve customer engagement and thereby the overall conversion rate. It leverages real-time behavioral data and advanced segmentation techniques across the web and mobile platforms to improve your customers' overall experience.

By adding a reporting webhook in Customer.io, you can send your Customer.io email events to RudderStack. These include events such as email delivered, opened, bounced, and more.

This guide will help you set up Customer.io as a source in RudderStack.

Getting started

Follow these steps to set up your Customer.io source in the RudderStack dashboard:

  • Go to your and click on Add Source. Then, select CustomerIO from the list of Event Stream sources, as shown:

  • Assign a source name and click on Next.

To connect this source to a RudderStack warehouse destination, the source name should match the name of your warehouse schema.

  • Your Customer.io source is now configured. Note the source Write key - this will be required to configure the endpoint URL in the following steps.

  • Head over to your Customer.io account and navigate to the Integrations page from the sidebar. Then, look for the integration Reporting Webhooks, as shown:

  • Click on Add Webhook and add the webhook URL as shown on the source settings page in your RudderStack dashboard.

The webhook URL is of the format:

<DATA_PLANE_URL>/v1/webhook?writeKey=<WRITE_KEY>

A sample webhook URL is shown below:

https://hosted.rudderlabs.com/v1/webhook?writeKey=1bCenS7ynqHh8ETX8s5Crjh22J

Make sure you add the source write key as query parameter to the URL. This is required to prevent the webhook from failing because of an invalid write key.

  • Finally, save the webhook.

Supported events

The following sections list the Customer.io event types supported by RudderStack.

Common data mappings

The common data mappings for each of the supported event types is listed in the following table:

Customer.io property
RudderStack property

data.customer_id

userId

data.event_id

properties.eventId

data.identifiers.id

userId

Email events

RudderStack supports the following Customer.io email events:

Email Event

Description

Delivered

The delivery provider's report that the email was delivered to the inbox of the recipient.

Opened

An email was opened by the recipient.

Clicked

A tracked link in an email was clicked by the recipient/customer.

Bounced

The delivery provider's report that it was unable to deliver the email to the recipient.

Spammed

An email was marked as spam by the recipient.

Unsubscribed

The customer unsubscribed via a particular email.

Failed

The email was not successfully delivered to the recipient.

Dropped

The email was not sent as the recipient was suppressed.

Attempted

Customer.io retried sending the email to the email provider.

Converted

The conversion goal attributed to the email was matched.

Sent

The email was successfully sent to the recipient.

Drafted

The sender created an email draft.

Customer.io property
RudderStack property

data.action_id

properties.actionId

data.broadcast_id

properties.broadcastId

data.delivery_id

properties.deliveryId

data.href

properties.link.url

data.link_id

properties.link.id

data.recipient

context.traits.email

data.subject

properties.emailSubject

data.failure_message

properties.reason

data.campaign_id

properties.campaignId

data.content_id

properties.contentId

data.newsletter_id

properties.newsletterId

Customer events

RudderStack supports the following Customer.io customer events:

Customer Event

Description

Subscribed

The customer was subscribed to a campaign.

Unsubscribed

The customer was unsubscribed from a campaign.

Customer.io property
RudderStack property

data.email_address

context.traits.email

SMS events

RudderStack supports the following Customer.io SMS events:

SMS Event

Description

Failed

The SMS could not be sent to the delivery provider.

Click

The recipient tapped the link present in the SMS notification.

Sent

The SMS notification was sent successfully.

Attempted

The SMS was attempted for delivery.

Drafted

The SMS notification was drafted.

Delivered

The SMS notification was delivered to the recipient.

Converted

The conversion goal attributed to the SMS was matched.

Bounced

The delivery provider's report that it was unable to deliver the SMS to the recipient.

Customer.io property
RudderStack property

data.action_id

properties.actionId

data.broadcast_id

properties.broadcastId

data.delivery_id

properties.deliveryId

data.href

properties.link.url

data.recipient

context.traits.email

data.failure_message

properties.reason

data.campaign_id

properties.campaignId

data.link_id

properties.link.id

Push notification events

RudderStack supports the following Customer.io push notification events:

Push Event

Description

Failed

The push notification could not be sent to the delivery provider.

Click

The recipient tapped the link present in the push notification.

Sent

A push notification was sent.

Attempted

A push notification was attempted unsuccessfully.

Drafted

A push notification was drafted.

Opened

A push notification was opened by the recipient.

Converted

The conversion goal attributed to the push notification was matched.

Bounced

An invalid device token was reported by the delivery provider.

Dropped

The push notification was not sent to the recipient as the device token bounced.

Customer.io property
RudderStack property

data.action_id

properties.actionId

data.broadcast_id

properties.broadcastId

data.delivery_id

properties.deliveryId

data.href

properties.link.url

data.link_id

properties.link.id

data.recipient

context.traits.email

data.device_id

properties.deviceId

data.failure_message

properties.reason

data.recipients

properties.recipients

data.campaign_id

properties.campaignId

data.device_platform

properties.devicePlatform

Webhook events

RudderStack supports the following Customer.io webhook events:

Webhook Event

Description

Failed

The webhook payload failed and was not sent to the recipient.

Click

The link in the webhook payload was clicked by the recipient.

Sent

A webhook payload was sent from Customer.io.

Attempted

A webhook event was attempted unsuccessfully and would be retried.

Drafted

A webhook draft was created by the sender.

Customer.io property
RudderStack property

data.action_id

properties.actionId

data.broadcast_id

properties.broadcastId

data.delivery_id

properties.deliveryId

data.href

properties.link.url

data.link_id

properties.link.id

data.recipient

context.traits.email

data.failure_message

properties.reason

Slack events

RudderStack supports the following Customer.io Slack events:

Slack Event

Description

Failed

The Slack message failed and was not delivered to the recipient.

Click

The recipient clicked the link in the Slack message.

Sent

A Slack message was successfully sent to the recipient.

Attempted

A Slack message was attempted unsuccessfully and would be retried.

Drafted

A Slack message was drafted by the sender.

Customer.io property
RudderStack property

data.action_id

properties.actionId

data.broadcast_id

properties.broadcastId

data.delivery_id

properties.deliveryId

data.href

properties.link.url

data.link_id

properties.link.id

data.recipient

context.traits.email

data.failure_message

properties.reason

data.campaign_id

properties.campaignId

The following image highlights the setup in the Customer.io dashboard:

Event transformation

The Customer.io webhook events are ingested into RudderStack after converting them into the RudderStack event format. The customer_id set by Customer.io is set as userId. In cases where Customer.io does not send the customer_id, the email address of the user is set as anonymousId.

Contact us

Refer to the section for more information.

The supported property mappings in addition to the listed above are as follows:

The supported property mappings in addition to the listed above is shown:

The supported property mappings in addition to the listed above are as follows:

The supported property mappings in addition to the listed above are as follows:

The supported property mappings in addition to the listed above are as follows:

The supported property mappings in addition to the listed above are as follows:

For queries on any of the sections covered in this guide, you can or start a conversation in our community.

data plane URL
contact us
Slack
common mappings
common mappings
common mappings
common mappings
common mappings
common mappings
Customer.io
RudderStack dashboard
Customer.io event settings
Customer.io source write key
Customer.io reporting webhooks
Customer.io webhook URL
Customer.io source in RudderStack