Connectors

/

Sources

/

Customer.io

  • Source
  • Marketing Analytics
  • Generally available
  • 18 entities
  • Read & write

Move Customer.io data anywhere it matters.

Stream Customer.io campaigns, campaigns actions and newsletters to any warehouse or AI app.

Source

Customer.io

  • Snowflake
  • BigQuery
  • Postgres
  • Databricks
  • Claude
Streams
21
Entities
18
Actions
6
Destinations
50+
Standard support
1.1.3

Overview

What is the Airbyte Customer.io connector?

The Airbyte Customer.io connector extracts data from Customer.io and loads it into 50+ destinations such as Snowflake, BigQuery, Databricks or Postgres, with full refresh and incremental sync. It publishes 21 streams you can select per connection.

  • 01

    Sync to your warehouse

    Land 21 Customer.io tables in 50+ destinations on a schedule you control.

  • 02

    Live entity actions

    Read, create and update Customer.io records at runtime through typed entity actions.

  • 03

    Context store search

    Query synced Customer.io data with filters, sorting and semantic search, without spending Customer.io API rate limits.

  • 04

    Incremental syncs

    Pull only the records that changed since the last run instead of reloading everything.

21 streams

Every table you can sync from Customer.io

  • campaigns
    Primary keyid
    Sync modesFullIncr.
  • campaigns_actions
    Primary keyid
    Sync modesFullIncr.
  • newsletters
    Primary keyid
    Sync modesFullIncr.
  • broadcasts
    Primary keyid
    Sync modesFullIncr.
  • broadcast_actions
    Primary keybroadcast_id, id
    Sync modesFullIncr.
  • newsletter_variants
    Primary keynewsletter_id, id
    Sync modesFullIncr.

Setup

Live in six steps

  1. Check that you can manage API credentials: you need to be an Account Admin, or a Member with the account-level Manage API credentials permission (Manage your API credentials).

  2. In Customer.io, go to Account Settings > API Credentials (Where can you find them?).

  3. Add an App API key: give it a name and select the workspace you want to sync (Adding new credentials). Track API keys send data into a workspace and do not work here (Track API Keys vs App API Keys). If you restrict the key's scope, make sure it includes the data you want to sync (Authentication).

Configuration fields

Customer.io configuration fields
FieldTypeDescription
app_api_key*stringApp API key for the Customer.io workspace you want to sync. In Customer.io, go to Account Settings > API Credentials and create an App API key for that workspace. Copy it right away, because Customer.io shows it only once. Track API keys do not work.
activities_lookback_daysintegerHow many days before the last synced activity each incremental sync of the activities stream reads again. Customer.io can record an activity with a time well before it processes it, for example when it merges an anonymous person's events into a profile or receives a backdated event, and an incremental sync skips activities that arrive later than this window. Customer.io keeps 30 days of activities. A longer window skips fewer late activities, but every sync then requests one page per 100 activities in the window. Enter 1 to 30 days. Defaults to 7.
esp_suppression_domainsarrayThe domains you send email from, in lowercase, for example mail.example.com. Customer.io lists them under Settings > Workspace Settings > Email. The esp_suppressions stream reads each suppression list once per domain and records the domain on every row. Customer.io suppresses an address on the domain where it bounced or was reported as spam, so if you send from more than one domain, enter them all. Leave empty to read each list once without a domain filter; the domain column is then empty. Not needed if you send through your own SMTP server.
messages_lookback_daysintegerHow many days before the last synced message each incremental sync of the messages stream reads again, so that opens, clicks, conversions, bounces and unsubscribes recorded after a message was sent reach the destination. Customer.io can record a conversion up to 90 days after a message is sent, opened or clicked, and records opens and clicks for up to 6 months. A longer window keeps these metrics more complete, but every sync then requests one page per 1,000 messages sent in the window. Enter 1 to 180 days. Defaults to 30.
num_workersintegerHow many requests Airbyte sends to Customer.io at the same time, across all streams. They all count against the 10 requests per second Customer.io allows for your workspace, so beyond about 5 a sync rarely gets faster. Enter 2 to 10. Defaults to 3.
regionstringThe data center region of your Customer.io account. Account Admins can see it under Settings > Account Settings > Data and Privacy. If the region does not match your account, requests fail with an authentication (401) error.
start_datestringOnly sync records created or last updated at or after this UTC date and time, in the format YYYY-MM-DDTHH:MM:SSZ: creation time for messages, event time for activities. Streams that support only full refresh, such as newsletter variants, people, segment memberships and ESP suppressions, sync every record. Leave blank to sync all records.

Supported Customer.io actions

  • List

    Read live records straight from the Customer.io API.

  • Get

    Fetch a single record by ID.

  • Context Store Search

    Query synced data with filters and sorting, with no API rate limits.

  • Semantic Search

    Natural-language search across synced Customer.io records.

  • Create

    Write a new record back into Customer.io.

  • Update

    Patch fields on an existing record.

Full parameter-level details live in the Customer.io entity reference.

Hybrid deployment

Sovereign by architecture, not by policy.

The data plane runs in your environment. Records, credentials and keys stay with you; the control plane only receives configuration and job metadata.

  • Cloud
  • OSS
  • Hybrid

Your environment

DataConnectorsCredentialsKeys

↕ metadata only

Airbyte control plane

OrchestrationMonitoringUI

What teams build with Customer.io

List all campaigns in Customer.io

Get the details of the first campaign in my workspace

List the actions for the first campaign in my workspace

Show me the details of the first action of my most recent campaign

Show me all newsletters

Show me the details of the most recent newsletter

What segments are defined in my workspace?

Show me the details of the first segment

List all sender identities

Show me the details of the first sender identity

Show me all reporting webhooks

What snippets do we have?

List all collections

Show recent activities

List recent messages

List all transactional message templates

Show me the details of the first transactional message template

Show the content variants of the first transactional template

Create a snippet called 'footer' with content '<p>Thanks!</p>'

Update the snippet 'header' to say 'Welcome back!'

Create a new collection called 'products'

Create a reporting webhook for email events

Create a manual segment called 'VIP Customers'

Export all customers matching a segment

Send a transactional email using the first transactional message template to the email address of the first sender identity

Which campaigns are currently active?

Find newsletters sent in the last month

What are the most recent email deliveries?

Which exports have completed?

FAQ

Customer.io connector questions

Do I need more than one Customer.io connection?

No. One Customer.io authorization powers both the scheduled syncs that land data in your destination and the entity actions your agents call at runtime.

Do Customer.io entity actions need a sync to run first?

No. Entity actions read and write through the Customer.io API as they are called, so they work immediately. Context store search is the exception: it queries data Airbyte has already synced, which is what lets it filter and sort without spending API rate limits.

What data can I sync from Customer.io with Airbyte?

21 streams, including campaigns, campaigns actions, newsletters, broadcasts, broadcast actions, newsletter variants, transactional messages, sender identities and more.

Does the Customer.io connector support incremental sync?

Yes. The Customer.io connector supports incremental sync on selected streams, and full refresh on every stream.

Where can I run the Customer.io connector?

Run the Customer.io connector on Cloud, OSS, Hybrid. Hybrid deployments keep the data plane in your environment while the control plane orchestrates syncs.

Didn't find your answer? Talk to sales

Start syncing Customer.io in minutes.

Free 14-day trial. One connection powers your scheduled syncs and your live Customer.io actions.