Customer.io Destination

  Sign up for early access!

Apply for early access to be among the first to try out Customer.io Data Pipelines. Bear with us: it may take a few weeks for us to approve your request as we're actively working on CDP.

About this integration

Sending data into your Customer.io workspace lets you take advantage of various sources to gather customer data, personalize messages, and trigger complex workflows. You can send data to different workspaces, to gather data for different messaging use cases.

Getting started

  1. Go to the CDP tab and click Connections.

  2. Click Add New under Destinations.

  3. Select the Customer.io destination.

  4. (Optional) Select the sources that you want to connect to this destination. You can always connect sources to your destination later. We’ll only show you eligible sources.

  5. Configure your destination.

    1. Site Id: Customer.io site ID. This can be found on your API Credentials page.

    2. Api Key: Customer.io API key. This can be found on your API Credentials page.

    3. Account Region: Learn about Account Regions.

    Setup your destination
    Setup your destination

  6. Click Enable Destination.

Actions

When you’re done setting up your destination, you can go to the Actions tab to see how we map source events to your destination.

You may need to add actions for this destination

While we often have default triggers for actions, we don't always add those actions as defaults. You may need to add actions to make sure that you're sending all the data that you want to send to your destination. See our actions page for help setting up actions.

Create or update a person (identify)

Incoming identify calls add and update people in your workspace. We map traitsInformation that you know about a person, captured from identify events in Customer.io Data Pipelines (CDP). Traits are analogous to attributes in Customer.io Journeys. in source calls to attributesA key-value pair that you associate with a person or an object—like a person’s name, the date they were created in your workspace, or a company’s billing date etc. Use attributes to target people and personalize messages. for people in your workspace.

By default, we send this event when you identify a person—like when they submit their email address on your website requesting more information, or when they create an account with you.

With every identify call, you can pass attributesA key-value pair that you associate with a person or an object—like a person’s name, the date they were created in your workspace, or a company’s billing date etc. Use attributes to target people and personalize messages.—things that you know about a person, like their first name, their interests, etc. You can also pass relationships to one or more objects—like classes a person is enrolled in or accounts they belong to.

{
  "type": "identify",
  "traits": {
    "first_name": "cool",
    "last_name": "person",
    "email": "cool.person@example.com",
    "plan": "premium"
  },
  "userId": "97980cfea0067",
  "created_at": "1679407797",
}

Add and update people by ID or email

In Customer.io, you can identify people by an id or an email address, which provides a way to work with people if they provide an email address but haven’t generated a backend ID (like when someone signs up as a lead but hasn’t yet become a paying customer). When you send identify events to this destination, they’ll add or update people in Customer.io depending whether or not the corresponding email or ID exists.

If an identify request contains either a userId or an email trait, and that person doesn’t already exist, we’ll create a person in Customer.io

If an identify request contains either a userId or an email trait, and that person already exists, we’ll update the person in Customer.io

If an identify request contains both a userId and an email trait, but one of those values wasn’t associated with the person, we’ll add the new identifierThe attributes you use to add, modify, and target people. Each unique identifier value represents an individual person in your workspace. to the person and update their profile.

flowchart LR a(incoming identify event)-->b{Does it have
email or ID} b-->|yes|c{Does email
or ID exist?} b-.->|no|d(Not sent to destination) c-->|yes|e(Update person) c-->|no|f(Add new person)

Create or update an object (group)

Similar to an identify call, this event creates or updates objectsNot to be confused with a JSON object, an object in Customer.io is a non-person entity that you can associate with one or more people—like a company, account, or online course. You can use objects to message people based on changes to their company, account, or colege course itinerary.—non-people entities like accounts, online classes, or recreational leagues. When you identify an object

This event lets you create or update people. By default, we send this event when you identify a person—like when they submit their email address on your website requesting more information, or when they create an account with you.

With every identify call, you can pass attributesA key-value pair that you associate with a person or an object—like a person’s name, the date they were created in your workspace, or a company’s billing date etc. Use attributes to target people and personalize messages.—things that you know about a person, like their first name, their interests, etc.

{
  "messageId": "4vl6zh",
  "timestamp": "2022-11-24T22:56:14.144Z",
  "type": "group",
  "projectId": "sqsv42VjV1e2d8ha2SHxM6",
  "traits": {
    "name": "Example Co, Inc.",
    "industry": "edtech",
    "plan": "enterprise"
  },
  "groupId": "example-company",
  "userId": "97980cfea0067"
}

Create or update a device

When a person uses your mobile app or mobile website, you can capture and send device information to Customer.io. We capture this information with two specific events: installed and opened. These represent the times when you’ll typically register for a token and associate a device with a person.

{
  "messageId": "i6yatl",
  "timestamp": "2022-11-24T22:48:17.593Z",
  "type": "track",
  "email": "cool.person@example.com",
  "projectId": "sqsv42VjV1e2d8ha2SHxM6",
  "properties": {
    "device_id": "cEFolG5uRDGPizsaUh4X4m:APA91bFsKwjW9zUaiuJMCGqa3fLRiJ8fv1riQ6U-1iI72aSFZx5wxiqGnqbL-S2g3kZ5RrRUUo3AAVh_LhpFbjDlSqEoC4rqHmH8Z1BGgqaD9jStahy63cGXueW-vOr6mTOekmXgWSww"
  },
  "userId": "97980cfea0067",
  "event": "Application Installed"
}

Delete device

We automatically remove a device when we register an event called Application Uninstalled. Our SDK automatically sends this event when people uninstall your app.

However, device tokens are transient tokens can expire based on your push provider, and you’ll likely register for a new device token whenever someone closes and re-opens your app. We automatically prune devices from our messaging platform when tokens are invalidated, but we don’t do this as a part of event subscriptions. You may want to send additional calls to delete previous devices as we prune them from your Journeys tab.

{
  "messageId": "i6yatl",
  "timestamp": "2022-11-24T22:48:17.593Z",
  "type": "track",
  "email": "cool.person@example.com",
  "projectId": "sqsv42VjV1e2d8ha2SHxM6",
  "properties": {
    "device_id": "cEFolG5uRDGPizsaUh4X4m:APA91bFsKwjW9zUaiuJMCGqa3fLRiJ8fv1riQ6U-1iI72aSFZx5wxiqGnqbL-S2g3kZ5RrRUUo3AAVh_LhpFbjDlSqEoC4rqHmH8Z1BGgqaD9jStahy63cGXueW-vOr6mTOekmXgWSww"
  },
  "userId": "97980cfea0067",
  "event": "Application Uninstalled"
}

Track event

The track call represents an activity someone performs—typically in your app or on your website. If you send this event and the person you reference in the event doesn’t exist, we’ll create them.

{
  "messageId": "i6yatl",
  "timestamp": "2022-11-24T22:48:17.593Z",
  "type": "track",
  "email": "cool.person@example.com",
  "projectId": "sqsv42VjV1e2d8ha2SHxM6",
  "properties": {
    "class_name": "Customer.io Basics",
    "class_code": "cio101",
    "start_date": 1679410730
  },
  "userId": "97980cfea0067",
  "event": "enrolled"
}

Page views and screens

There are two special kinds of track events: page and screen calls. These represent the page(s) people visit on your website and the screens people visit in your mobile app respectively. You can use these events to monitor the places people do and don’t visit in your website or app. You might also use page and screen calls to follow up with people, to see if they were still interested in a particular product, online class, and so on.

{
  "messageId": "efxqsi",
  "timestamp": "2022-11-24T22:55:59.498Z",
  "type": "page",
  "email": "cool.person@example.com",
  "projectId": "sqsv42VjV1e2d8ha2SHxM6",
  "properties": {
    "session_started": 1679410730,
    "url": "http://www.example.com"
  },
  "userId": "97980cfea0067",
  "name": "home"
}
{
  "messageId": "9zk6c",
  "timestamp": "2023-03-20T22:56:06.259Z",
  "type": "screen",
  "email": "cool.person@example.com",
  "projectId": "sqsv42VjV1e2d8ha2SHxM6",
  "properties": {
    "session_started": 1679410730
  },
  "userId": "97980cfea0067",
  "name": "home"
}
Copied to clipboard!
  Contents
Is this page helpful?