Linking Customer.io as a source

Alpha release

This source is currently in alpha. The interface and available tables may change.

Connect your Customer.io workspace using an App API key. PostHog uses the key to pull campaigns, broadcasts, segments, newsletters, and more, and to register a reporting webhook for realtime message activity.

Adding a data source

  1. Go to the sources tab of the data pipeline section in PostHog.
  2. Click + New source and then click Link next to Customer.io.
  3. Generate an App API key in Customer.io under API Credentials > App API Keys. PostHog uses this key both to pull the list endpoints and to manage the reporting webhook automatically. Also note your workspace RegionUS (api.customer.io) or EU (api-eu.customer.io).
  4. Back in PostHog, paste the App API key in the App API key field, select your Region, and click Next.
  5. To capture realtime message activity, PostHog tries to register a reporting webhook for you using your App API key. Customer.io doesn't return the signing key in the API response, so copy the Signing key from the Reporting Webhooks page in Customer.io (under Integrations) and paste it into the Signing key field. If auto-registration failed, add a Reporting Webhook integration manually in Customer.io, paste the webhook URL PostHog shows, select the events you want, save and enable it, then copy the signing key.
  6. Select the tables you want to sync, set the sync method and frequency, then click Import.

Once the syncs are complete, you can start using Customer.io data in PostHog.

Available tables

The App API list endpoints sync via full refresh, and the webhook-backed event tables capture realtime message activity from Customer.io's reporting webhook.

TableDescriptionSync method
broadcastsBroadcasts in your workspaceFull refresh
campaignsCampaigns in your workspaceFull refresh
collectionsCollections (data sets)Full refresh
newslettersNewslettersFull refresh
object_typesObject type definitionsFull refresh
segmentsSegmentsFull refresh
sender_identitiesSender identitiesFull refresh
snippetsReusable content snippetsFull refresh
subscription_topicsSubscription topicsFull refresh
transactionalTransactional messagesFull refresh
customer_eventsCustomer subscription activity from the reporting webhookWebhook
email_eventsEmail delivery activity from the reporting webhookWebhook
push_eventsPush notification activity from the reporting webhookWebhook
sms_eventsSMS delivery activity from the reporting webhookWebhook
in_app_eventsIn-app message activity from the reporting webhookWebhook
slack_eventsSlack message activity from the reporting webhookWebhook
webhook_eventsWebhook delivery activity from the reporting webhookWebhook

Full refresh tables reload all data on each sync. Webhook tables are populated in realtime as Customer.io sends reporting-webhook events to PostHog.

Configuration

OptionDescription
App API key
Type: password
Required: True

Generate a key under API Credentials > App API Keys. PostHog needs this key both for pulling list endpoints and for managing the reporting webhook automatically.

Region
Type: select
Required: True

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
customer_events

Customer subscription events delivered via the Customer.io reporting webhook.

Webhook only
email_events

Email message activity events (sent, delivered, opened, clicked, bounced, etc.) delivered via the reporting webhook.

Webhook only
push_events

Push notification activity events delivered via the reporting webhook.

Webhook only
sms_events

SMS message activity events delivered via the reporting webhook.

Webhook only
in_app_events

In-app message activity events delivered via the reporting webhook.

Webhook only
slack_events

Slack message activity events delivered via the reporting webhook.

Webhook only
webhook_events

Outgoing webhook (reporting) action events delivered via the reporting webhook.

Webhook only
broadcasts

A broadcast — a one-time message sent to a segment or list of recipients.

Full refresh
campaigns

A campaign — an automated, triggered messaging workflow.

Full refresh
collections

A collection — structured reference data you can use in message content.

Full refresh
newsletters

A newsletter — a one-off email sent to a segment of customers.

Full refresh
object_types

An object type — a category of non-person objects (e.g. companies, accounts) in the workspace.

Full refresh
segments

A segment — a group of customers defined by attributes or behavior.

Full refresh
sender_identities

A sender identity — a configured from-name/address used to send messages.

Full refresh
snippets

A snippet — a reusable block of content for message templates.

Full refresh
subscription_topics

A subscription topic — a category customers can opt in or out of.

Full refresh
transactional

A transactional message — a template for one-off, triggered messages such as receipts or password resets.

Full refresh

Community questions

Was this page useful?

Questions about this page? or post a community question.