Profile attributes
Profiles carry structured attributes beyond name and phone number: loyalty tier, favorite store, preferred category, and anything else your CRM holds. You use them to build segments, target journeys and personalize messages.
No setup required
Section titled “No setup required”You do not declare attributes before sending them. Push any key you like: unknown keys are auto-registered as custom attributes on first use. Send values as a flat map of strings:
{ "external_id": "crm-customer-4815", "attributes": { "tier": "gold", "favorite_store": "lyon-part-dieu" }}Keep keys stable once you start using them: segments and journeys reference them by name.
Two ways to set them
Section titled “Two ways to set them”- Inline on the profile upsert (
POST /v1/profiles): sendattributesalongside the profile. The profile is created or updated and the attributes are applied in the same call. - On their own (
POST /v1/profiles/{profile_id}/attributes): set attributes on an existing profile. Unlike the upsert, this does not lazy-create the profile: it returns404if the reference resolves to no profile.
Read them back with GET /v1/profiles/{profile_id}/attributes.
Values and types
Section titled “Values and types”Over the API, attribute values are always sent as strings: represent a number or a boolean as its string form ("1450", "true"). Do not nest objects or arrays in a value.
The type lives on the attribute, not on each value. In the Noticia app, under Integrations -> Attribute catalog, you can declare an attribute as text, number, boolean or date (recommended). The declared type drives correct comparisons in segments: a number range, a boolean toggle, a date window, rather than plain string matching. An auto-registered attribute defaults to text until you give it a type.