InTouch Hub · Blue Isle Software

Customer.io

Track customer events and manage people via the Customer.io Track API — identify/update people, send behavioral events that trigger email and push campaigns, read attributes, and delete people.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

customeremailmarketing-emailsync

Customer.io

Track customer events and manage people via the Customer.io Track API. Use it to keep your Customer.io workspace in sync with InTouch automations: create or update people, fire behavioral events that trigger email/push campaigns and segment membership, read a person's stored attributes, and delete people for GDPR/CCPA requests.

What it does

Calls the Customer.io Track API:

The tool uses the standard library only (urllib, json, base64) — no third-party packages. Response bodies are capped at ~5 MB.

Operations

operation HTTP Purpose
identify PUT /customers/{identifier} Create or update a person and set attributes
track POST /customers/{identifier}/events Send a behavioral event (triggers campaigns / segments)
get GET /customers/{identifier}/attributes Read a person's current attributes
delete DELETE /customers/{identifier} Permanently delete a person (GDPR/CCPA)

Authentication / apiKey setup

The Track API uses HTTP Basic auth, base64-encoding the pair site_id:api_key.

  1. In Customer.io, go to Settings → API Credentials → Track API Keys.
  2. Copy your Site ID and your Track API Key.
  3. Join them with a single colon and pass that as the apiKey input:

apiKey = "<site_id>:<api_key>"

For example apiKey = "abc123siteid:def456trackkey".

The tool base64-encodes this string and sends it as Authorization: Basic <encoded>. No OAuth, JWT, or token exchange is required — a single credential string is sufficient.

Inputs

input required default notes
apiKey yes — site_id:api_key
operation yes — identify | track | get | delete
identifier for all "" Person id or email used in the URL path
eventName for track "" e.g. signed_up
attributes identify "" JSON object string of attributes
eventData track "" JSON object string of event data
region no us us or eu

Outputs

Examples

Identify / update a person

operation:  identify
identifier: 42
attributes: {"email": "[email protected]", "plan": "pro", "first_name": "Jane"}

Track a behavioral event (triggers a campaign)

operation:  track
identifier: 42
eventName:  purchased
eventData:  {"product": "Pro Plan", "amount": 49}

Read a person's attributes

operation:  get
identifier: [email protected]

Delete a person (GDPR)

operation:  delete
identifier: 42

Publishes

The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.

Input Properties

Every property this tool accepts, from its own tool.iml.

Property Type Required Default Description
apiKey string yes — DEPRECATED — bind an API Key credential to the task with credentialName instead. A key pasted here is stored in the workflow definition in clear and appears in every export of it. Still honoured for workflows built before the change.
operation string yes — One of: identify, track, get, delete
identifier string no — Unique person identifier (id or email) used in the URL path. Required for all operations.
eventName string no — Event name for the track operation (e.g. 'signed_up', 'purchased'). Required when operation=track.
attributes string no — JSON object string of person attributes to set on identify (e.g. '{"email":"[email protected]","plan":"pro"}').
eventData string no — JSON object string of event data for the track operation (e.g. '{"plan":"pro","amount":49}').
region string no us Data region: 'us' (track.customer.io) or 'eu' (track-eu.customer.io). Defaults to us.