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.
CLI Pro Required: APIs require a CLI Pro token or Platform Plan.
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. Usehttps://api-eu.customer.iofor EU region. Defaults tohttps://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
Log in to your Customer.io account
Go to Settings > Account Settings > API Credentials
Click the App API keys tab
Click Create App API Key
Give the key a name (e.g., "Sling Integration")
Click Create and copy the key immediately — it is only shown once
Important: Use an App API Key, not a Track API Key. Track API keys are for sending data to Customer.io, while App API keys are for reading data from Customer.io.
Using sling conns
sling connsEnvironment 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
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
segments
Audience segment definitions
No
segment_membership
Customer IDs in each segment (child of segments)
No
Activity & Messages
activities
Activity log (attribute changes, events, message sends)
Yes (cursor)
messages
Message delivery records (max 6 months lookback)
Yes (timestamp)
Reference Data
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
campaignsto run first (iterates through each campaign)broadcast_actions -> Requires
broadcaststo run first (iterates through each broadcast)segment_membership -> Requires
segmentsto 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_tsandend_tsparameters (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], on discord or open a Github Issue here.
Last updated
Was this helpful?