
Configuring Customer.io as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Customer.io option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
You’ll need your Customer.io API token for this connection. This can be obtained from your Customer.io account settings (or through this link). Once you have it, add the account access and click Next.2. Select streams
Choose which data streams you want to sync - you can select all streams or pick specific ones that matter most to you. The available streams include activities, customers, transactional messages, metrics, and message details.Tip: The stream can be found more easily by typing its name.Select the streams and click Next.
3. Configure data streams
Customize how you want your data to appear in your catalog. Select a name for each table (which will contain the fetched data) and the type of sync.- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix and make this process faster!
- Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
- Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
- Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
4. Configure data source
Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can determine when to execute a full sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while. Once you are ready, click Next to finalize the setup.5. Check your new source
You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.Streams and Fields
Below you’ll find all available data streams from Customer.io and their corresponding fields:Activities
Activities
Stream for tracking customer activities and interactions with your messages and campaigns.Key Fields:
id: Unique identifier for the activitycustomer_id: ID of the customer who performed the activitycustomer_identifiers: Object containing customer identification detailsemail: Customer’s email addressid: Customer’s numeric IDcio_id: Customer.io assigned ID
type: Type of activity performedtimestamp: Unix timestamp when the activity occurreddata: Activity data as JSON string (structure varies by activity type)delivery_id: ID of the message delivery associated with this activitydelivery_type: Type of delivery (email, push, etc.)
Customers
Customers
Stream containing basic customer identification information.Key Fields:
id: The customer’s unique system IDemail: The customer’s email addresscio_id: The Customer.io assigned ID
Transactional Messages
Transactional Messages
Stream for managing transactional messages configured in your Customer.io account.Key Fields:
id: Unique identifier for the transactional messagename: Name of the transactional messagecreated_at: Unix timestamp when the message was createdupdated_at: Unix timestamp when the message was last updatedtype: Type of transactional messagestatus: Current status of the transactional messagetemplate_id: ID of the template useddescription: Description of the messagesend_to_unsubscribed: Whether this message is sent to unsubscribed userslink_tracking: Whether link tracking is enabledopen_tracking: Whether open tracking is enabledhide_message_body: Whether the message body is hidden in the interfacequeue_drafts: Whether draft messages are queuedtrigger_name: Name of the trigger associated with this message
Transactional Metrics
Transactional Metrics
Stream providing metrics and performance data for your transactional messages over time.Key Fields:
transactional_id: ID of the transactional message these metrics belong toattempted: Array of message attempt counts over timebounced: Array of bounced message counts over timeclicked: Array of clicked message counts over timehuman_clicked: Array of human-generated clicks over timeprefetch_clicked: Array of machine/prefetch clicks over timeconverted: Array of conversion counts over timecreated: Array of message creation counts over timedeferred: Array of deferred message counts over timedelivered: Array of delivered message counts over timedrafted: Array of drafted message counts over timefailed: Array of failed delivery counts over timeopened: Array of opened message counts over timehuman_opened: Array of human-generated opens over timeprefetch_opened: Array of machine/prefetch opens over timesent: Array of sent message counts over timespammed: Array of spam report counts over timesuppressed: Array of suppressed message counts over timeundeliverable: Array of undeliverable message counts over timetopic_unsubscribed: Array of topic unsubscribe counts over timeunsubscribed: Array of unsubscribe counts over time
Transactional Message Details
Transactional Message Details
Stream providing detailed information about individual transactional message deliveries. This stream retrieves data from the last year.Key Fields:
id: Unique identifier for the message deliverytransactional_id: ID of the parent transactional messagededuplicate_id: ID used for deduplicationmsg_template_id: ID of the message template usedaction_id: ID of the action that triggered this messagecustomer_id: ID of the customer who received the messageidentifiers: Object containing customer identification detailsemail: Customer’s email addressid: Customer’s numeric IDcio_id: Customer.io assigned ID
recipient: Email address or identifier of the recipientsubject: Subject line of the messagemetrics: Object containing message performance metricsbounced: Timestamp when the message bouncedclicked: Timestamp when the message was clickedhuman_clicked: Human-generated click count (reliable from April 20, 2025)prefetch_clicked: Machine-generated click count (reliable from April 20, 2025)converted: Timestamp when conversion occurredcreated: Timestamp when the message was createddelivered: Timestamp when the message was delivereddrafted: Timestamp when the message was drafteddropped: Timestamp when the message was droppedfailed: Timestamp when delivery failedopened: Timestamp when the message was openedhuman_opened: Human-generated open count (reliable from March 20, 2025)prefetch_opened: Machine-generated open count (reliable from March 20, 2025)sent: Timestamp when the message was sentspammed: Timestamp when marked as spamundeliverable: Timestamp when marked undeliverableunsubscribed: Timestamp when user unsubscribed
created: Unix timestamp when the message was createdfailure_message: Error message if delivery failednewsletter_id: ID of associated newsletter (if applicable)content_id: ID of the content usedcampaign_id: ID of associated campaign (if applicable)broadcast_id: ID of associated broadcast (if applicable)type: Type of message (email, push, SMS, etc.)forgotten: Whether the message has been forgotten/deleted