Skip to content
Components

Customer IO

The Customer IO data source connector uses the Customer IO Beta API to extract customers, campaigns, segments, and activities from your Customer.io account.

To use this connector, you need a bearer token, known as an App API Key from Customer.io. You can generate a key with a defined scope in your account settings. Learn more about bearer authorization in Customer.io.

Create a new configuration of the Customer IO connector.

Then insert the API key you obtained from Customer.io.

API Key

Continue configuring other parameters. Once finished, don’t forget to save everything.

Select one of the following two load types:

  • Incremental Update — updates the result tables based on the primary key consisting of all selected dimensions.
  • Full Load — overwrites the destination table each time, with no primary keys.

Load type

Continue by selecting what data you want to download.

A campaign is a workflow that people in an audience trigger and traverse. Note that the JSON and Array objects in the actions and tags columns are represented as text.

Columns:

columnexample
actions[{‘id’: 3, ‘type’: ‘email’}, {‘id’: 7, ‘type’: ‘email’}]
activeFALSE
created1591294006
created_byLeos
customer_id123x
date_attribute
deduplicate_id123123:29:00
first_started0
frequency
id1
nameOnboarding Campaign
start_hour
start_minutes
statedraft
tags[‘Sample’]
timezone

Segments are groups of people, subsets of your audience. You get information about segments and the customers contained by a segment.

Example output:

deduplicate_iddescriptionidnameprogressstatetagstype
26521567:45:00Includes all people1Signed upfinisheddynamic
26582936:15:00Anyone associated with active customer account.13Active Customersfinisheddynamic

Next, select the messages, customers, and/or activities that you wish to download.

This table contains metadata about messages. You may filter the messages by their type: email, webhook, twilio, urban_airship, slack, push.

Learn more.

You can select the Continue since last run option. When checked, only those messages that appeared since the last run will be downloaded.

To backfill without changing this attribute, click the Reset State button.

Load type

When downloading customers, you can filter them using JSON. You can also select only the attributes you want to see.

An additional filter condition in JSON format. The filter language is defined here. If left empty, all users are downloaded.

Example values:

  • Find the first 2 customers in segment 7 and segment 5 =>: {"and":[{"segment":{"id":7}},{"segment":{"id":5}}]}
  • Find the first 10 unsubscribed customers =>: {"attribute":{"field":"unsubscribed","operator":"eq","value":"true"}}}

A comma-separated list of required customer attributes. Each customer may have a different set of columns. This is to limit only to attributes you need. All attributes are downloaded if left empty.

Activities are cards in campaigns, broadcasts, etc. They might be messages, webhooks, attribute changes, etc. You can select the activity types you are interested in. Also, there are two modes of result parsing available to choose from. When done, remember to save your configuration before you run it.

Each activity type may have different columns and table structure. For this reason, the data source connector allows fetching data in two modes: PARSED_DATA and SINGLE_TABLE.

  1. PARSED_DATA will generate structured table for each activity type. E.g., the type event will generate the table activity_event:
customer_iddata_descriptiondata_projectdata_startidnametimestamptype
Davidtest1234dinactive project1609808524event
Tomtest22020-10-19T11:18:55Z3467genroll1603120800event
CarldescTS_Test667676hcredit grant1616382356event
  1. SINGLE_TABLE will populate single activities_all table with data unparsed as column. The data will be present in a data folder as a JSON string.

Example:

customer_iddatadelivery_iddelivery_typeidtimestamptype
David{‘daysofinactivity’: 76, ‘lastactivitydate’: ‘2020-10-21’, ‘project’: ‘test’, ‘projecturl’: ‘example.com’}1234d1609808524event
Tom{‘project’: ‘test2’, ‘start’: ‘2020-10-19T11:18:55Z’}01EN0Q41603120800event
Ask Kai

Ask anything about Keboola — I'll search the docs and cite the pages I use.