Attributes
Define the attributes ARCY may store for a user or account, and check whether the values your identify() calls send are arriving and accepted.
Autopilot > Attributes is the list of attributes ARCY is allowed to store. A key your code
sends through identify() that is not defined here is ignored, so define first, then send.
Before you start
Defining, editing and deleting attributes takes an organization admin. A member sees the list and its status pills without the buttons.
Status pills read the environment picked in the sidebar. Sending the attribute from your Product is described on Quickstart.
Setting it up
Press New attribute and fill in:
- Display name: what you see in the dashboard. Changeable later.
- Code name: the key your code sends. Permanent once created. Lowercase letters, numbers
and underscores only, starting with a letter, no trailing underscore, up to 64 characters.
A prefix of
user_,organization_orplan_puts the attribute in that group. - Data type: Text, Number, Datetime, True/false, List, Object or Object list. A value of the wrong type is refused, never converted. Changeable later.
- Description: optional. For an Object, write what the document contains, since ARCY never reads inside it.
Then send the key from your Product. Nothing shows on a user profile until your front end sends it.
Edit attribute changes the display name, description and, for an attribute you defined,
the data type. Delete attribute archives it: stored values stay, and defining the same code
name again brings it back. Attributes marked Set by ARCY are computed by ARCY, refuse any
value sent through identify(), and cannot be deleted.
What it changes
Every defined attribute can be used in text visitors read: a widget text, a flow's public
name or step question, a Persona field. Type {{ in the field or press Insert attribute.
Object and Object list are the exception. ARCY stores the document as a whole, so these two reach a Persona field only, filter only by whether they are set, and cannot split a report. To filter or greet on one field inside the document, send that field as its own attribute. Each value is limited to 10 KB, 5 levels of nesting, 200 items in an array and 50 keys in an object, and one profile holds at most 64 KB of attributes in total. A value over a limit is refused and the rest of the payload is kept.
Each row carries a status pill for the selected environment:
| Pill | Meaning |
|---|---|
| Never seen | Nothing has arrived for this key. |
| Arriving but refused | Every value so far was refused. Hover for the reason. |
| Arriving, nothing stored | The key arrives, but the current value is empty. A call clears a value by sending null. |
| Last seen | Values are arriving and stored. |
The list stores no sample values, only whether something arrived and was accepted.
When it goes wrong
Every row reads Never seen. Your Product is not sending attributes to this environment
yet. Check the token and the identify() call on Installation.
A row reads Arriving but refused. The reason is in the pill's tooltip: wrong data type, over the size limit, a key that ARCY computes itself, a value that failed a built-in check, or a key that arrived before it was defined. Fix the value in your code or change the data type here.
A refused key names the whole profile. The profile has reached 64 KB of attributes. Nothing stored was removed; send less, or send a summary instead of a document.