Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.omneo.io/llms.txt

Use this file to discover all available pages before exploring further.

There are two distinct approaches to suppressing a profile in Omneo, depending on what you want to suppress: communications opt-out (stop sending to this profile) and operational suppression (exclude this profile from processing, imports, or incentive logic).

Suppressing a profile from communications

The recommended approach is to set the relevant opt-out flags on the profile’s comms attributes. These are read by connected comms platforms (Klaviyo, Emarsys, etc.) and respected by Omneo’s own notification logic.
curl -X PUT https://api.[tenant].getomneo.com/api/v3/profiles/{profileId} \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "comms_attributes": {
      "email_optout": true,
      "sms_optout": true,
      "push_optout": true
    }
  }'
Set only the channels that apply. Opt-out flags are synced in real time to connected comms platforms. See Comms Preferences for the full list of opt-out and opt-in fields.

Using tags for operational suppression

Tags are the simplest way to flag a profile for exclusion in integrations, bulk operations, or reaction conditions. Apply a dedicated tag and then filter on it wherever suppression should be enforced.
curl -X PUT https://api.[tenant].getomneo.com/api/v3/profiles/{profileId} \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "tags": ["suppressed"]
  }'
Updating tags replaces the entire tag array. Read the current tags first and include them in the update to avoid losing existing values.
To add a tag without replacing existing ones:
# 1. Read current tags
curl -X GET https://api.[tenant].getomneo.com/api/v3/profiles/{profileId} \
  -H "Authorization: Bearer ${TOKEN}"

# 2. Append your tag and send the full array
curl -X PUT https://api.[tenant].getomneo.com/api/v3/profiles/{profileId} \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "tags": ["existing-tag", "suppressed"]
  }'
You can then use the suppressed tag as a filter in reaction conditions to exclude these profiles from automation, or as a query parameter when browsing profiles.

Using statuses for structured suppression

For more formal suppression — for example, flagging a profile as a known fraudster or a test account — create a dedicated Status definition in CX Manager and apply it via the API. Statuses carry metadata, can be time-limited, and are available in reaction conditions via flattened_statuses.
curl -X POST https://api.[tenant].getomneo.com/api/v3/profiles/{profileId}/statuses \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "status_id": 14
  }'
Use a reaction condition of flattened_statuses does not contain "suppressed" to exclude these profiles from incentive automations.

Blocking values at creation

If you want to prevent certain email addresses, phone numbers, or names from ever being created as profiles (for example, known spam addresses or internal test values), use the profile validation rules API. Validation rules define matching criteria (exact, domain, prefix, or regex) and the operations they block (create, update, import, or all). A 422 error is returned when a blocked value is submitted.
# Create a validation rule blocking a specific email domain
curl -X POST https://api.[tenant].getomneo.com/api/v3/profiles/validation-rules \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "email",
    "rule_type": "domain",
    "applies_to": "all",
    "is_active": true
  }'
Then add the blocked domain as a value on the rule:
curl -X POST https://api.[tenant].getomneo.com/api/v3/profiles/validation-rules/{ruleId}/values \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "value": "example-spam-domain.com",
    "is_active": true
  }'