Skip to content
ActionCustomer.ioUpdated May 2026

How do I update Customer.io person attributes?

Short answer: Drop the "Customer.ioIdentify Person" action anywhere in your workflow, map the inputs from upstream nodes, and publish.

Inputs

The fields this action accepts.

Every field can be mapped from an upstream trigger, AI step, table row, or hard-coded literal.

FieldTypeRequiredDescription
Identifier
identifier
stringRequiredUnique identifier — typically email or internal user ID
Email
email
stringOptionalEmail. e.g. "user@example.com"
First Name
first_name
stringOptionalFirst Name. e.g. "John"
Last Name
last_name
stringOptionalLast Name. e.g. "Doe"
Plan
plan
stringOptionalCustomer plan/tier for segmentation
Created At
created_at
stringOptionalUnix timestamp of when the customer signed up
Sample request
{
"identifier": "user@example.com",
"email": "user@example.com",
"first_name": "John",
"last_name": "Doe",
"plan": "e.g. pro"
}
Returns
{
"success": true
}

Use these fields in downstream nodes for routing, logging, or error handling.

Triggered by

Apps that pair well as the trigger for Identify Person.

Any of these apps can fire this action as part of a workflow.

FAQ

Questions about Identify Person.

What does the Identify Person action do in Customer.io?
Upserts person-level attributes (plan, country, signup_date, lifetime_value). The state update that drives segmentation and journey targeting. For "external state change → reflect in CIO for accurate audience filtering" sync.
What inputs does Identify Person require?
Required: Identifier. Every input accepts a static value or a variable from any upstream node in your workflow.
Can I use dynamic inputs from earlier workflow nodes?
Yes. Any field on this action can pull values from upstream nodes, whether that's a form response, a trigger payload, an AI output, or a lookup result.
What happens if Customer.io returns an error?
The workflow pauses on the failed node, the error message is captured in the run log, and you can retry the run with one click. Auto-retry policies are configurable per workflow with exponential backoff up to 5 attempts.
Does Identify Person support batch operations?
Yes. Run Identify Person inside a Loop node to process arrays. Tiny Command handles Customer.io's rate limits automatically so you don't have to throttle manually.
More actions

Other Customer.io actions.

Send identify person from your workflows.

Triggered by anything in the catalog. Free tier available. No credit card.