Contacts, attributes and segments
The CDP is the single contact record every channel in Arino One writes to, so a person with a phone number, an Instagram handle and an email address is one record with three identifiers, not three separate ones. Segments are saved filters over that record's attributes, events and consent, and because they evaluate at the moment they're used rather than the moment they were built, a segment used by a campaign always reflects the current data.
What a contact record holds
- Identifiers — phone number, email, social handles (WhatsApp, Instagram, Messenger IDs) and an external CRM ID where one exists. Identity resolution matches new inbound contacts against these to avoid duplicates.
- Attributes — typed fields you define, such as plan, market, language or lifecycle stage. Attributes describe the current state of the contact.
- Events — a timestamped history of conversations, campaign sends, form submissions, automation runs and, where connected, device pings from Ping Me.
- Consent — recorded per channel and per purpose, each entry carrying a source (how it was captured — QR code, form, WhatsApp opt-in message) and a timestamp.
Setting up attributes properly
Go to Contacts → Attributes to create a new attribute. Choose a type — text, number, date, boolean or list — and write a short description of what it means and who is responsible for keeping it accurate. Attributes populated by more than one source (a form and a CRM sync, say) need an agreed rule for which one wins on conflict; without that rule, values drift and segments built on them silently degrade.
Building a segment
In Contacts → Segments, create a new segment and combine filters across attributes, events and consent — for example, "attribute: market = UK" AND "event: no conversation in 60 days" AND "consent: WhatsApp marketing = granted". Segments support AND/OR grouping so you can express reasonably complex audiences without exporting data elsewhere.
Because a segment is a live filter, not a snapshot, the audience count shown when you build it can differ from the count at send time. This is intentional: a contact who withdraws consent between build and send is excluded automatically, which is what keeps a campaign compliant.
Keeping segments accurate over time
| Risk | Effect | Mitigation |
|---|---|---|
| Undocumented free-text attribute | Values drift, spelling varies, segment misses contacts | Use typed attributes with a list of allowed values where possible |
| Stale consent record | Segment includes contacts who withdrew consent elsewhere | Rely on the run-time consent filter, don't cache audience lists |
| Duplicate identity | Same person split across two records, both under-counted | Confirm identity-resolution keys match your CRM's own dedupe logic |
| Orphaned CRM sync | Attributes stop updating after a sync fault | See crm-sync-issues for diagnosis |
How this differs by instance type
| Connection status | CDP setup | Notes |
|---|---|---|
| Connected ($50/month Arino Core connection) | Configured by your team, with Arino support available | Data is stored under your own Infobip account either way; Arino can help with attribute/segment design as part of the connection |
| Unconnected | Entirely your team's responsibility | No Arino support for attribute schema or segment design |
Costs to expect
The CDP itself — contacts, attributes, events and segment building — is a core part of every instance and does not carry a separate per-contact charge. Arino support for attribute and segment design is available as part of the optional $50/month Arino Core connection. Sending to a segment still incurs the normal message/conversation cost for whatever channel you send on, which is metered and not covered by the $50 — see billing-and-plans for current figures.
Frequently asked
How does identity resolution work across channels?
A contact record is matched on identifiers you configure — typically phone number first, then email or a CRM ID — so a person who messages on WhatsApp and later emails support is merged into one record rather than creating a duplicate.
Can I add my own attributes?
Yes, you define custom attributes with a type (text, number, date, boolean, list) in Contacts → Attributes. Undocumented free-text attributes are the most common source of unusable data within a few months, so name and describe each one when you create it.
Does a segment update automatically as contacts change?
Yes, a segment is a saved filter, not a static list. It is re-evaluated every time it is used — for a campaign send, an automation condition, or a dashboard view — so it always reflects current attribute, event and consent state.
What counts as an event versus an attribute?
An attribute is a current fact about a contact (plan, market, language); an event is something that happened at a point in time (a conversation, a campaign send, a form submission, a device ping). Segments can filter on both, e.g. "attribute plan = enterprise" and "event: no reply in 30 days".
Is consent stored per channel or per contact?
Per channel and per purpose, each with its own source and timestamp — a contact can have marketing consent for WhatsApp but not for SMS, and a segment used for a campaign must filter on the consent record for that specific channel and purpose.
Does the CDP sync with our CRM?
Where a CRM sync is configured, contact updates flow in both directions on the schedule set for that connector; see crm-sync-issues if records appear out of date or duplicated.
Apply this to your own deployment
This guide describes decisions we make on live instances. Tell us your channels, systems and region and we will map it to an architecture outline, a provisioning plan and an indicative commercial model — usually within one business day.