Customer.io
Automated messaging platform for targeted emails, push notifications, SMS, and in-app messages based on real-time behavioural data.
Prerequisites
Complete these steps in Customer.io before configuring Signal.
Access your Customer.io account
Log in to the Customer.io dashboard at fly.customer.io. If you do not have an account, sign up or contact your Customer.io representative.
Find your Site ID and API Key
Navigate to Settings > API Credentials (under the Account Settings section). You will see your Site ID and API Key on this page. Copy both values.
Find your Tracking API Key
On the same API Credentials page, locate the Tracking API Key. This key is used specifically for the Track API (identifying users and tracking events). It may be listed separately from the general API key. Copy it.
Determine your region
Customer.io operates in two regions. Your region was selected when you created your account:
| Region | Track API Endpoint | App URL |
|---|---|---|
| US | track.customer.io | fly.customer.io |
| EU | track-eu.customer.io | fly-eu.customer.io |
Check your dashboard URL to determine your region. If your dashboard URL contains fly-eu.customer.io, you are in the EU region.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
site_id | string | Yes | Your Customer.io Site ID. Found in Settings > API Credentials. |
api_key | secret | Yes | Your Customer.io API key for the Track API. Found in Settings > API Credentials. |
tracking_api_key | secret | Yes | Your Customer.io Tracking API key for identifying users and tracking events. |
region | select | Yes | Your Customer.io data centre region (us or eu). Determines the API endpoint. |
Signal Setup
Quick Setup
- Navigate to Integrations in the sidebar.
- Open the Integration Library tab.
- Find Customer.io or filter by CDP.
- Click Install, and fill in the required fields with the credentials gathered above.
- Click Install Integration to create the integration with a ready-to-use default configuration.
API Setup
curl -X POST http://localhost:8084/v1/admin/integration-catalog/customer_io/install \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Customer.io",
"variant": "default",
"config": {
"site_id": "abc123def456",
"api_key": "xxxxxxxxxxxxxxxxxxxx",
"tracking_api_key": "xxxxxxxxxxxxxxxxxxxx",
"region": "us"
},
"delivery_mode": "server_side"
}'Event Mapping
Signal events are mapped to Customer.io API calls as follows:
| Signal Event | Customer.io Concept | Notes |
|---|---|---|
page | Page event | URL, title, and referrer sent as page event properties via the Track API |
track | Custom event | Event name and properties forwarded as Customer.io events for triggering campaigns |
identify | Customer identify/update | Customer ID and traits sent via the Track API to create or update customer profiles |
Customer.io requires a unique customer identifier for all events. The user_id or email from your Signal events is used as the Customer.io customer ID.
Delivery
Events are delivered server-side from your Datafly Signal infrastructure directly to the Customer.io Track API. No client-side scripts are loaded for this integration.
Testing
- After installing the integration, trigger a test event from your website or via the Signal event API.
- In Customer.io, navigate to People and search for the test user by ID or email to verify the profile was created.
- Click into the customer profile and check the Activity Log to verify events were received.
- In Signal, check the Live Events view to confirm the event was delivered with a
200response status.
Troubleshooting
| Symptom | Possible Cause | Resolution |
|---|---|---|
401 Unauthorized | Invalid Site ID or API key | Verify credentials in Customer.io Settings > API Credentials and update the integration config |
400 Bad Request | Missing customer identifier | Ensure events include a user_id or email property for Customer.io to identify the customer |
| Events not triggering campaigns | Campaign segment mismatch | Verify the campaign trigger conditions match the event name being sent from Signal |
| Wrong region | US/EU mismatch | Check your dashboard URL and ensure the region config matches (us or eu) |
Visit Customer.io documentation for full API reference and campaign setup details.