Skip to main content

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

  1. Open your workspace in TaskJuice and navigate to Connections.
  2. Choose Customer.io and click Connect.
  3. 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.
  4. 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.
  5. Paste the Site ID, Track API key, and App API key into TaskJuice.
  6. Set the Track API host to track.customer.io and the App API host to api.customer.io for US workspaces, or to track-eu.customer.io and api-eu.customer.io for 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-event fires when Customer.io posts a Reporting Webhook for a campaign or transactional send. One POST carries one event, and the workflow receives the event_id, object_type, metric, timestamp, delivery_id, and the full data payload as a single activation. Filter by metric downstream 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-customer creates or updates a customer profile in Customer.io. Merges the supplied attributes into the customer record keyed by the supplied id.
  • customer-io/track-event records a behavioral event for a known customer with optional event data merged into liquid variables.
  • customer-io/track-anonymous-event records 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-attributes fetches the full attribute payload for one customer profile via the App API.
  • customer-io/send-transactional-email sends 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 (or track-eu.customer.io) and uses HTTP Basic with the Site ID and Track API key. App API reads and transactional sends go to api.customer.io (or api-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 metric inside 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.
Was this helpful?
Customer.io integration | TaskJuice Docs