Export people data

You can export the data Customer.io stores for a single person, or export a group of people to a CSV. You might do this to test your integration when you're getting started, to answer a data request, or to transfer people to another workspace or external system.

Ways to export people

You can export people data from a few places in Customer.io, depending on how many people you need and what data you want:

Exports can take a little while. We email you when your export is complete, or you can find exports on the Exports page (under Configure data, click More).

After 60 days, the export expires, and we delete it from your workspace. If you need the export again, you can always generate a new one!

Export a single person’s data

Go to the person’s page and click Options > Export profile data in the top right.

This exports all the data we have for that person. The export appears on the Exports page when it’s ready:

There is a table titled Export. The first row shows the date of the export, that its a full customer export, the number of items exported, and the option to download the file.

Hover over the count of rows/items exported for more details.

Data in a single-person export

For each person, an export contains several types of data across multiple json files:

  • All current attribute values are stored in attributes.json.
  • Event data is split across two files, based on how long ago the events happened. Together, the files cover the person’s full event history, and no event appears in both.
    • events.json.gz contains the person’s more recent events.
    • events2.json.gz contains older events that Customer.io has moved to long-term storage. It isn’t a continuation of events.json.gz, so open both files to see everything. If a person has no events in long-term storage, the export doesn’t include events2.json.gz.
    • Both files list one event per line, along with the data attached to it. They’re compressed (.gz), so you’ll need to unzip them before you can read them.
    • If a person has more than 10,000 events in long-term storage, events2.json.gz includes only their 10,000 most recent ones and leaves out the oldest. In that case, the export also includes events2.truncated.json, which says how many events were included and how many were left out. If you don’t see this file, events2.json.gz is complete.
  • All relationships to objects are stored in relationships.json.
  • Mobile device data
    • This info is present if you send mobile device information to Customer.io.
    • devices.json contains the device ID, platform, and when the device was last used, for up to 25 devices you associate with a person (sorted by last_used).
  • Deliveries
    • All deliveries (messages and webhooks) for that person, with their full content, are stored in details.json.
    • Delivery metrics are stored in metrics.json and includes all individual delivery stats (timestamps for activities and meta information), one delivery per line.

Export multiple people

Go to the People page and click Export to CSV:

You see four options:

  • All attributes: Export all people and all their attributes.
  • Displayed attributes: Export all people with the attributes currently displayed in the People table (set with the Edit Displayed Attributes button ), plus id, city, state, and created_at.
  • Choose attributes: Pick which attributes to export across all the data you send to your workspace.
  • Export other: Export duplicate people or all devices in your workspace, with every attribute or a selection.

Export specific attributes

You can limit an export to specific attributes by clicking Choose attributes in the export dropdown.

You can combine this with exporting people who meet certain conditions to filter your export further.

Export people who meet certain conditions

You can filter the People page to export customers that meet certain conditions. You can’t export based on “Filter by: Email address”, only “Filter by: Conditions.”

  1. Click Conditions to filter people by attributes, mobile devices, event or message data, and more.
  2. Click Export to CSV and decide whether to export these people with All attributes, the Displayed attributes, or to export specific attributes through Choose attributes.
  3. Review your attribute selection and initiate export.

For example, if you export everyone in a specific segment, your CSV might look like this:

A CSV with column headers labeled id, email, _last_visit, _segment:25, and _segment:25_RCC3339.

The 13 in _segment:13 is the ID of the segment you filtered by. You can find it on the Segments page. The timestamp reflects when the person joined the segment, in UNIX format.

The column to the right _segment:13_RFC3339 is a more human-readable version of that timestamp in ISO 8601 format (UTC).

Export relationships

To include people’s relationships to custom objects, click an object type in the export modal and add your conditions.

You can identify people by their cio_id attribute in the relationships file. If you attempt to export more than two million relationships, the export fails.

The export only contains relationships to enabled object types.

If you have disabled object types, the relationship CSV does NOT contain relationships to them.

Export duplicate people

You can export a list of people who share the same attribute in your workspace. You might do this to deduplicate people in your workspace by a non-identifier value, or to troubleshoot integrations.

For example, if you don’t use email as an identifier in your workspace, you might export duplicates to figure out if you have multiple instances of the same email address. The same principle works for phone numbers as well!

Your export shows a list of people, grouped by the duplicate attribute, as shown below. Regardless of the attributes you choose to show, the list always includes your audience’s identifiers.

idcio_idemailfirst_name
1acb50600a307a401person@example.comAlex
123b41623a307a402person@example.comAlexandra

To export a list of people with the same attribute:

  1. Go to the People page.
  2. Click Export to CSV and click Export other.
    export duplicate people
  3. Pick the attribute you want to deduplicate on under All duplicates of….
  4. (Optional) Determine the specific attributes you want to export. This can help you limit the time it takes to export your file, and the amount of data you see.
  5. Click Export to CSV.

Export all devices

You might want to export a list of mobile devices to clean up bounced/suppressed devices in your workspace. Or, in rare cases where people share a device, you might export devices to find duplicate tokens: a single device token shared by more than one person in your workspace that might result in duplicate notifications.

  1. Go to the People page.
  2. Click Export to CSV and click Export other.
    export devices
  3. Select All devices in this workspace.
  4. (Optional) Determine the specific attributes you want to export. This can help you limit the time it takes to export your file, and the amount of data you see. Regardless of the attributes you choose to show, the list always includes your audience’s identifiers.
  5. Click Export to CSV.

The device_token_type column shows the kind of ID each FCM device uses: fid for a Firebase Installation ID, or token for an FCM registration token. The column is blank for devices registered without a type, like APNs devices and devices from older SDKs. An FCM device with a blank type is still an FID if its ID is 22 characters or fewer.

Export suppressed identifiers

You can export a list of the identifiers you’ve suppressed for GDPR compliance as a CSV file. You might do this if you need to verify that someone’s identifier (email or id) is suppressed, or to remove them from the suppression list.

  1. Go to > Workspace Settings > Workspace Suppressions.
  2. Under GDPR suppression list, click Export CSV. Customer.io queues the export.
  3. When the export is ready, download it from the Exports page.

See How to manage suppressions for more detail about the suppression list.

The CSV has three columns: cio_id, id_sha256, and email_sha256. We hash the id and email values with SHA-256 to protect the privacy of the people on the list. Because hashing is one-way, you can’t reverse the hash to the original identifier. To check whether an email address is on the list, hash the address with SHA-256 and look for the result in the email_sha256 column. We write hashes as lowercase hexadecimal. The same comparison works for id values and the id_sha256 column.

We don’t hash cio_id, Customer.io’s own identifier for a person. If you stored that value elsewhere, you can compare it against the export directly.

Are you looking for your ESP suppression list?

You, or your email service provider (ESP), can suppress email addresses so that the ESP doesn’t send messages to that address. This list is separate from Customer.io’s suppression list. You’ll either find it in your workspace settings or you’ll need to work with your ESP to get your ESP suppression list.

Updated October 23, 2026