Segment.com: Customer.io as a Destination

By setting up Customer.io as a Segment Destination, you can pipe data from any one of Segment’s hundreds of Source integrations.

You can find complete detail on the Customer.io Destination page{target="_blank"} in Segment’s documentation.

Getting Started

Head over the to “Integrations” page within your Customer.io account and find the “Segment Destination” integration. You’ll be presented with a step-by-step process for configuring the integration, or you can set it up yourself with the provided API credentials.

Segment Suppression and Deletion

To help comply with GDPR and CCPA regulations, Segment supports a set of Suppression and Deletion tools{target="_blank"}. These tools are separate from Customer.io’s own suppression and deletion tools.

In Segment, suppressed users are blocked across all sources; any message sent to Segment via a suppressed userId is blocked at their API (with the exception of device-mode destinations). Suppressions are not synchronized between Segment and Customer.io, however when you choose to suppress and delete a customer via Segment’s UI, that deletion will be passed along to Customer.io to ensure the user is removed.

Segment Alias Call

Customer.io does not support alias calls or anonymous event from Segment. They use ananonymousId trait to identify users, and it’s not possible to connect anonymous user data with a newly created id in Customer.io. As a result, you might end up with duplicates. You might have come across this issue if:

  • You’re integrated via Segment and are changing ids.
  • You have a list of pre-signup emails that may then create accounts later on.

How this might happen is: if you send us an identify call with some attributes attached, we first look at the id associated with that call. If the id is new, a new user is created with those attributes. If that id already exists, we update only the attributes that are different compared to the previous call. We do not update or change the id. So if the id is new to Customer.io, a new (duplicate) user is created, even if you may have just wanted to update a previous one.

What can I do?

There are a couple of options here, and this depends if you’re concerned about duplicates of existing users, or if these customers are new ones that haven’t yet signed up.

For existing users

In the cases of existing duplicates, we use the following process:

  1. Export a CSV of your customers from the People page by clicking on the Export to CSV button.
  2. Identify the duplicates. We recommend keeping the first instance of each— the one with an older created_at timestamp.
  3. Create a new CSV file with all of the user ids to delete.
  4. Delete those users with our API.

New users

If these are new users, however, the process is a little more complex. We have a couple options here:

  1. Do not call identify until the user signs up for an account.
  2. Filter identify calls so that they’re not sent to Customer.io (you can do this by using selective integrations).

Anonymous Events from Segment

For some of the same reasons that Alias calls aren’t supported, events without an idare ignored when sending from Segment into Customer.io.

For cases when you need to message a customer before they’ve signed up (ie ‘newsletter sign up’ or ‘referral invite’), events can be sent directly into Customer.io through our Anonymous Event API.

More information about how to use this API can be found in our documentation Anonymous invite emails, which was the original use-case for when users of an app send invitations to others to join them.

As always, if you need any help with this process or have any questions, please let us know!