- Documentation
Customer.io integration
Sync customer profiles, ingest behavioral events, send transactional email, and react to delivery lifecycle webhooks on behalf of your clients.
What it does
The Customer.io integration lets your agency drive a client's lifecycle marketing program from inside a workflow. Connect a client's Customer.io workspace once and your workflows can identify customers and merge attributes through the Track API, log behavioral events for known customers and anonymous visitors, read full attribute payloads back from the App API, send transactional email by template id, and react in real time when Customer.io posts a Reporting Webhook for a delivery, open, click, bounce, conversion, or unsubscribe.
Connect a Customer.io account
- Open your workspace in TaskJuice and navigate to Connections.
- Choose Customer.io and click Connect.
- In a new tab, sign in to Customer.io as the client and open Settings, Workspace Settings, API Credentials. Copy the Site ID and the Track API key.
- Open Settings, Account Settings, App API Keys. Click Create App API Key, scope it to the actions your workflows need (Customers, Send Email), and copy the key value.
- Paste the Site ID, Track API key, and App API key into TaskJuice.
- Set the Track API host to
track.customer.ioand the App API host toapi.customer.iofor US workspaces, or totrack-eu.customer.ioandapi-eu.customer.iofor EU workspaces.
To rotate or revoke either key, return to the Customer.io app, regenerate the credential, and update the TaskJuice connection. The Track and App keys rotate independently.
Triggers
customer-io/reporting-eventfires when Customer.io posts a Reporting Webhook for a campaign or transactional send. One POST carries one event, and the workflow receives theevent_id,object_type,metric,timestamp,delivery_id, and the fulldatapayload as a single activation. Filter bymetricdownstream to react to specific lifecycle states (delivered, opened, clicked, bounced, converted, unsubscribed).
Each trigger publishes an inbound URL. Paste it into Customer.io under Account Settings, Reporting Webhooks, and copy the webhook signing key from the same screen into the TaskJuice trigger. TaskJuice verifies the HMAC-SHA256 signature Customer.io places in X-CIO-Signature against v0:${timestamp}:${rawBody} on every inbound POST before activating the workflow.
Actions
customer-io/identify-customercreates or updates a customer profile in Customer.io. Merges the supplied attributes into the customer record keyed by the supplied id.customer-io/track-eventrecords a behavioral event for a known customer with optional event data merged into liquid variables.customer-io/track-anonymous-eventrecords a behavioral event for a visitor without a known customer id (cookie or session id), which Customer.io will merge with a customer profile once they are identified.customer-io/get-customer-attributesfetches the full attribute payload for one customer profile via the App API.customer-io/send-transactional-emailsends a transactional email by referencing a transactional message id from the Customer.io app and merging the supplied data into the template.
Known limitations
- The Track API and the App API use different keys and different hostnames. Track ingest goes to
track.customer.io(ortrack-eu.customer.io) and uses HTTP Basic with the Site ID and Track API key. App API reads and transactional sends go toapi.customer.io(orapi-eu.customer.io) and use the App API key as a Bearer token. A key-host mismatch surfaces as a 401 from Customer.io. - Per-workspace rate limits, daily ingest caps, and feature entitlements are governed by the client's Customer.io plan, not by TaskJuice. When Customer.io returns a 429, the action surfaces as a retryable rate-limit error and honors the recommended backoff.
- Reporting Webhooks are configured at the account level in Customer.io. To route different metric classes to different workflows, subscribe to one webhook with the full metric set and branch on
metricinside the workflow. - The Send Transactional Email action requires the transactional message id of a template already published in the Customer.io app. Create or import the template under Transactional, Messages before referencing it from a workflow.
- Customer.io rejects writes from a region that does not match the workspace. EU workspaces must use the EU host pair; US workspaces must use the US host pair.