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
curl -X POST https://api.[tenant].getomneo.com/api/v3/profiles \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@example.com",
"mobile_phone": "+61412345678"
}'
A successful response returns the created profile with its id.
Reading a profile
By Omneo profile ID:
GET /api/v3/profiles/{profileId}
By identity (e.g., Shopify customer ID):
GET /api/v3/profiles/{shopifyCustomerId}?identity[handle]=shopify
Searching profiles
GET /api/v3/profiles?search=jane@example.com
The search endpoint supports name, email, mobile, and other fields. Omneo uses Algolia for instant, typo-tolerant search.
Updating a profile
curl -X PUT https://api.[tenant].getomneo.com/api/v3/profiles/{profileId} \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"birth_day": 15,
"birth_month": 9,
"birth_year": 1985
}'
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:
POST /api/v3/profiles/sync
This is the recommended approach for eCommerce integrations where you don’t always know if a profile exists.
Deleting a profile
DELETE /api/v3/profiles/{profileId}
This soft-deletes the profile. For a full GDPR-compliant erasure, use the Purge endpoint:
POST /api/v3/profiles/{profileId}/purge
Bulk import
For large-scale profile imports, use the batch import endpoint or the CSV import tool in CX Manager under the Import Jobs section.
POST /api/v3/profiles/batch
Content needed: field validation rules, error response reference, and bulk import file format specification.