Customer.io

Connect & Ingest data from Customer.io

Customer.io is a customer engagement platform that enables businesses to send automated emails, push notifications, SMS, and in-app messages based on user behavior. The Sling Customer.io connector extracts data from the Customer.io App API, supporting campaigns, broadcasts, newsletters, segments, activities, messages, and more.

circle-check

Setup

The following credentials and inputs are accepted:

Secrets:

  • app_api_key (required) -> Your Customer.io App API Key

Inputs (optional):

  • base_url (optional) -> API base URL. Use https://api-eu.customer.io for EU region. Defaults to https://api.customer.io.

  • anchor_date (optional) -> Starting date for first sync in ISO 8601 format (e.g., 2024-01-01T00:00:00Z). Defaults to 1 year ago.

Getting Your API Key

  1. Go to Settings > Account Settings > API Credentials

  2. Click the App API keys tab

  3. Click Create App API Key

  4. Give the key a name (e.g., "Sling Integration")

  5. Click Create and copy the key immediately — it is only shown once

circle-exclamation

Using sling conns

Environment Variable

See here to learn more about the .env.sling file.

Sling Env File YAML

See here to learn more about the sling env.yaml file.

EU Region

If your Customer.io workspace is hosted in the EU data center, add the base_url input:

Replication

Here's an example replication configuration to sync Customer.io data to a PostgreSQL database:

Endpoints

Messaging

Endpoint
Description
Incremental

campaigns

Campaign definitions and metadata

No

campaign_actions

Actions/steps within each campaign (child of campaigns)

No

broadcasts

One-time broadcast messages

No

broadcast_actions

Actions within each broadcast (child of broadcasts)

No

newsletters

Newsletter definitions

No

transactional_messages

Transactional message templates

No

Audience

Endpoint
Description
Incremental

segments

Audience segment definitions

No

segment_membership

Customer IDs in each segment (child of segments)

No

Activity & Messages

Endpoint
Description
Incremental

activities

Activity log (attribute changes, events, message sends)

Yes (cursor)

messages

Message delivery records (max 6 months lookback)

Yes (timestamp)

Reference Data

Endpoint
Description
Incremental

collections

Data collections for personalization

No

snippets

Reusable content snippets

No

sender_identities

Sender email identities

No

subscription_topics

Subscription preference topics

No

To discover available endpoints:

Parent-Child Endpoints

Some endpoints are children of parent endpoints and require the parent to run first:

  • campaign_actions -> Requires campaigns to run first (iterates through each campaign)

  • broadcast_actions -> Requires broadcasts to run first (iterates through each broadcast)

  • segment_membership -> Requires segments to run first (iterates through each segment)

When using these endpoints in a replication, Sling automatically handles the ordering via internal queues.

Incremental Sync

The Customer.io connector supports incremental sync for the following endpoints:

  • activities - Uses cursor-based pagination to resume from the last position

  • messages - Uses timestamp-based filtering with start_ts and end_ts parameters (maximum 6 months lookback)

How it works

  • First run: Fetches all available data (activities) or the last 6 months (messages)

  • Subsequent runs: Only fetches records created after the last sync position

Rate Limiting

The Customer.io App API enforces a rate limit of 10 requests per second. The connector automatically:

  • Limits to 10 requests/second

  • Limits concurrency to 3 parallel requests

  • Retries with exponential backoff on 429 (rate limit) responses

If you are facing issues connecting, please reach out to us at [email protected]envelope, on discordarrow-up-right or open a Github Issue herearrow-up-right.

Last updated

Was this helpful?