Skip to main content
A Profile in Omneo is the record representing a single known person. Most other data types (transactions, incentives, interactions, addresses, and identities) link back to a Profile via the profile ID. Profiles are not limited to customers. They can represent staff members, corporate accounts, dependants, or system-level placeholders depending on the profile type in use.

Profile types

Omneo supports several profile types to cover different use cases: For the distinction between deleting, purging, and depersonalising a profile, see Deletions, purges, and depersonalisation.

What a profile contains

Profiles are rich data objects with several layers of information.

Core profile fields

Fundamental identifying information: first name, last name, email, mobile phone, date of birth, gender, currency, and join details. See Core fields for the full field reference.

Attribute tables

Extended data linked to the profile:

Activity tables

Records of what the customer has done:

Incentive tables

Current incentive state:

Mutation semantics on POST and PUT

The Profiles API accepts several nested collections in the request body (addresses, tags, statuses, identities, custom_attributes, dates_attributes, comms_attributes, regions, organisations). These collections do not all behave the same way when included on POST /v3/profiles or PUT /v3/profiles/{profile}. The semantic falls into one of three categories. Two general rules follow from this:
  • Omitting a key entirely from the request body never modifies that collection. If you do not want to touch addresses, do not send addresses at all.
  • Sending an empty array (addresses: [], tags: [], etc.) for a destructive-replace field will clear it. For an upsert field, an empty array is a no-op.
The destructive-replace fields are the most common source of accidental data loss when integrators reuse a “GET profile -> mutate -> PUT profile” pattern. If the GET response omits a sub-resource the integrator does not care about, a naive PUT can silently destroy it.For fine-grained add, update, and delete on the destructive-replace fields, prefer the dedicated sub-resource endpoints over the main profile PUT:

Known vs Guest customers

A Known Customer is a profile with at least a name and contact details, to which transactions and interactions can be attributed. A Guest is an anonymous shopper who has chosen not to create a profile. The value of Omneo is in the Known Customer: the ability to personalise, incentivise, and maintain a relationship with an individual over time.

Profile lifecycle

  1. Created: when a customer signs up in-store, online, or via API
  2. Enriched: as more attributes, transactions, and interactions are recorded
  3. Merged: if duplicate profiles are found and consolidated
  4. Deleted: soft-deleted; removed from API responses and reporting but recoverable
  5. Purged: fully and permanently removed from all systems; cannot be recovered
  6. Depersonalised: record remains for reporting but all PII is removed and replaced with unidentifiable values; often done to comply with a customer’s right to be forgotten
See Deletions, purges, and depersonalisation for detail on each process.

Core fields

The full reference for all default profile fields.

Identities

How external system IDs link to a profile.

Tags and statuses

How labels and status types work on a profile.

Profiles API

Create, read, update, and delete profiles via the API.