Skip to main content
Profiles are the central object in Omneo. This guide covers the core CRUD operations and common patterns for working with profiles programmatically.

Creating a profile

A successful response returns the created profile with its id.

Reading a profile

By Omneo profile ID:
By identity (e.g., Shopify customer ID):

Searching profiles

The search endpoint supports name, email, mobile, and other fields. Omneo uses Algolia for instant, typo-tolerant search.

Updating a profile

Syncing profiles (upsert)

The sync endpoint creates a profile if it doesn’t exist, or updates it if it does. It matches on email or mobile phone:
This is the recommended approach for eCommerce integrations where you don’t always know if a profile exists.

Claiming a mobile number

Mobile numbers are unique across all Profiles. If a customer’s number already belongs to another Profile (for example, a Profile created by a staff member at the point of sale, or by an old account the customer forgot about), sync and update requests for that number fail. Use the mobile claim flow to resolve this with the customer present, after they have proved ownership of the number by SMS code or another verification step you control. Call it only once ownership is confirmed. First, check who else holds the number:
The response lists every other Profile holding that number, without naming them: whether each has a transaction, point, reward, credit, or benefit worth recovering, and a masked hint of its email (for example da***@***eo.io). An empty list means nobody else holds the number. Then, make the number the current Profile’s primary mobile:
This takes the number off every other Profile that holds it in a single transaction. Each Profile that loses the number is tagged mobile-number-claimed and records who took it and when in its mobile_claim custom attributes, so customer care can find it later and decide whether to merge the Profiles. The claiming Profile’s previous primary mobile becomes its secondary_phone. Comms and consent settings on any Profile are left unchanged.

Deleting a profile

This soft-deletes the profile. For a full GDPR-compliant erasure, use the Purge endpoint:

Bulk import

For large-scale profile imports, use the batch import endpoint or the CSV import tool in Console under the Import Jobs section.
Content needed: field validation rules, error response reference, and bulk import file format specification.