Track Event

customer_io.track_event
ActionCRM & salesconnection required

Calls the Customer.io API with the connection's credentials.

Send an event for a known person, which can start an automation or feed a segment and is available to Liquid in the messages it triggers.

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
Customer.io
Secret shape
{"site_id": "…", "api_key": "…", "app_api_key": "…"} — the Site ID and Track API key for the Track nodes, the App API key for the rest
Config it needs
region, workspace_id
Resolved by
config.connection_id, else node.connection_id

Configuration

6 fields, 2 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
identifier
How this person is addressed in the Track API: their id, their email address, or their Customer.io id prefixed with 'cio_'. A phone number is read as an id here, so it will not match.
stringYes——ada@example.com
name
The event name, as it will be referenced in automations and segments.
stringYes——purchase_completed
data
Event properties, as a JSON object. These are available to Liquid in any message the event triggers.
objectNo———
event_type
The kind of event. Anything other than a page view or a mobile screen view is a plain 'event', which is also the default.
stringNo—one of "event", "page", "screen"—
timestamp
When the event happened, as a Unix timestamp in seconds. Customer.io uses the time of receipt when this is blank, and only events from the last 72 hours can start an automation.
numberNo—≥ 0—
event_id
An optional ULID Customer.io uses to drop a repeated event; sending the same value twice records the event once.
stringNo———

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "identifier": "ada@example.com",
  "name": "purchase_completed"
}

Output

One shape.

result

FieldTypeExample
accepted
True when Customer.io queued the write. Track writes are applied asynchronously, so this reports acceptance, not that the change is live.
boolean—
identifier
The identifier the person was addressed by.
string—
name
The event name that was sent.
string—
type
The event type Customer.io recorded it as.
string—
{
  "accepted": false,
  "identifier": "",
  "name": "",
  "type": ""
}

See Track Event run in a workflow.

In a technical demo we add the Customer.io connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.