Track Custom Data on a Contact
What you will end up with
Business data stored on a contact — order number, plan tier, membership id — that agents can see and automations can use in replies and branching.
Before you start
- Permission to edit contacts and manage settings.
Steps
1. Define the attribute

- Open Settings → Custom Attributes.
- Add an attribute with a clear key, for example
nomor_pesananortier. - Choose its type and save.
The key is what you will reference in automations, so keep it lowercase and stable. Renaming it later means updating every Journey that uses it.
2. Fill it in
Three ways, and you will probably use all three:
- By hand. Open a conversation; the contact panel on the right has a custom attributes section.
- From an automation. A Journey can capture a reply and write it to an attribute, so asking “what is your order number?” stores the answer.
- From your own system. Write it over the API — see Contact Fields. This is how most teams keep a plan tier or loyalty level current.
3. Use it
Reference an attribute in message copy with {{nomor_pesanan}}, and branch on it in
a Journey condition. A common pattern is to greet returning customers differently:
Condition: {{tier}} == "vip"
→ route to the priority queue
Default
→ normal handling
How to check it worked
Set the attribute on one test contact, then send that contact through the automation and
confirm the value appears where you expect. An unresolved variable renders as the literal
{{name}} text, which is an obvious tell that the key does not match.
When it does not work
- The variable prints literally. The key in the message does not match the key in settings. They are case-sensitive.
- It is empty for most contacts. Attributes are per-contact and start empty. Backfill from a CSV import or the API rather than expecting them to populate themselves.