Ometria

Datafly Signal delivers events to Ometria server-to-server using the Data API push endpoint. Events are pushed as Ometria custom events, linked to a contact by email, and become available for segmentation, journeys, and cross-channel campaigns (email, SMS, push) — without any client-side Ometria tag.

Why route Ometria through Datafly Signal

  • Profiles are updated from the server, not the browser. Events reach Ometria even when a tracker blocker or a failed page unload would have dropped a client-side call, so the profile reflects what actually happened.
  • Delivery is batched, rate-limited, and retried. Signal buffers to Kafka, respects the Ometria rate limit, and retries on 429 or transient failure rather than dropping the event.
  • One consent decision governs every destination. Ometria is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

Prerequisites

Before configuring Ometria in Signal, you need an Ometria account with a Data API key, and the custom event types you intend to send must be set up in Ometria.

Step 1: Generate a Data API key

  1. In Ometria, go to Settings > API keys.
  2. Create a key with push / write access to the Data API.
  3. Copy the key — it is sent in the X-Ometria-Auth header on every request.
⚠️

This is the Data API key, not the Website Personalisation (Query API) key. The Query API uses Basic authentication on a different host and will not work with this integration.

Step 2: Set up your custom events in Ometria

Ometria accepts a custom event push immediately, but it will not act on an unknown event type until that type is configured.

  1. Go to Settings > Custom events.
  2. Create each event type you plan to send (for example product_viewed, cart_add, order_completed).
  3. Define the properties you want available in templates and segments.

Event type names should be kept under 512 characters — longer values are truncated by Ometria.

Configure in Signal

Configuration Fields

FieldRequiredDescription
api_keyYesYour Ometria Data API key with push access. Found in Settings > API keys. Sent in the X-Ometria-Auth header.

Management UI Setup

Add the integration

Go to Integrations > Add Integration > Ometria.

Choose a preset

Select the Retail preset for the standard e-commerce funnel (product views, cart, checkout, purchase), or start from Default.

Enter your API key

Paste your Ometria Data API key into the api_key field.

Choose the consent category that governs this integration (typically marketing).

Save

Click Save. Signal begins delivering matching events to Ometria.

API Endpoint

POST https://api.ometria.com/v2/push
X-Ometria-Auth: {api_key}
Content-Type: application/json

The request body is a JSON array of records (up to 100 per request). A single request contains only one record type — Signal sends custom_event records. A successful push returns 202 Accepted.

Identity Signals

Server-side custom_event records for Ometria’s Data API push endpoint: the retail funnel (product viewed, wishlist, cart add and remove, checkout started, order completed) with product IDs as a products-list field, linked to the Ometria contact by identity_email (trimmed, lowercased), identity_account_id (the Signal user_id) or identity_phone_number (E.164). Events with no identifier are not sent.

FieldSourceNotes
identity_emailtraits.emailTrimmed and lowercased.
identity_account_iduser_idYour customer ID in Ometria.
identity_phone_numbertraits.phoneE.164.

Event Mapping

Blueprint 0.4.0, reviewed against the vendor’s documentation on 2026-09-23. Each preset maps the events below; every other event is dropped. Events use the canonical names from the event specs (transaction_id, value, items[], search_term); the legacy order_id, revenue and flat product fields are still read as a fallback.

Retail / E-commerce (ecommerce)

Pushes the retail funnel to Ometria’s Data API push endpoint as custom_event records (the core funnel plus page views and search): product viewed, wishlist add, cart add and remove, checkout started and order completed, with the product IDs as a products-list field (an array of product IDs), prices as numbers and the currency upper-cased. Each record names the contact by identity_email (trimmed, lowercased), identity_account_id (the Signal user_id) and identity_phone_number (E.164); Ometria needs at least one, so anonymous events are not sent. Create each custom event type and its fields in Ometria first.

Datafly eventVendor event / callFields
pagepage_viewpage_title, referrer
searchsearchsearch_term
view_itemproduct_viewedproduct_id, product_name, variant_id, product_price, currency
add_to_wishlistwishlist_addproduct_id, product_name, variant_id, product_price, currency
add_to_cartcart_addproduct_id, product_name, variant_id, product_price, currency, product_quantity
remove_from_cartcart_removeproduct_id, product_name, variant_id, product_price, currency, product_quantity
begin_checkoutcheckout_startedvalue, currency, coupon, product_id
purchaseorder_completedorder_id, total, currency, tax, shipping, coupon, product_id

Default (default)

Pushes the retail funnel to Ometria’s Data API push endpoint as custom_event records (the core funnel): product viewed, wishlist add, cart add and remove, checkout started and order completed, with the product IDs as a products-list field (an array of product IDs), prices as numbers and the currency upper-cased. Each record names the contact by identity_email (trimmed, lowercased), identity_account_id (the Signal user_id) and identity_phone_number (E.164); Ometria needs at least one, so anonymous events are not sent. Create each custom event type and its fields in Ometria first.

Datafly eventVendor event / callFields
view_itemproduct_viewedproduct_id, product_name, variant_id, product_price, currency
add_to_wishlistwishlist_addproduct_id, product_name, variant_id, product_price, currency
add_to_cartcart_addproduct_id, product_name, variant_id, product_price, currency, product_quantity
remove_from_cartcart_removeproduct_id, product_name, variant_id, product_price, currency, product_quantity
begin_checkoutcheckout_startedvalue, currency, coupon, product_id
purchaseorder_completedorder_id, total, currency, tax, shipping, coupon, product_id

An identified purchase (preset ecommerce) is delivered as:

POST https://api.ometria.com/v2/push
{
  "@type": "custom_event",
  "event_type": "order_completed",
  "id": "3f2b8c1e-9d4a-4e7b-8f6a-2c1d0e9b",
  "identity_account_id": "crm-user-7",
  "identity_email": "jane.doe@example.com",
  "identity_phone_number": "+447700900123",
  "properties": {
    "coupon": "SUMMER",
    "currency": "GBP",
    "order_id": "T-1001",
    "page_url": "https://shop.example.co.uk/p/helmet",
    "product_id": [
      "SKU_1",
      "SKU_2"
    ],
    "shipping": 4.99,
    "tax": 73.33,
    "total": 439.99
  },
  "timestamp": "2025-09-23T04:00:00Z"
}

Testing Your Integration

Trigger a test event

Identify a contact and fire a tracked event on your site (for example, view a product).

Check Signal’s event debugger

In the Management UI, open the Event Debugger for the integration and confirm the event was delivered with a 202 response.

Verify in Ometria

In Ometria, open the contact’s profile and confirm the custom event appears in their activity, or check the custom-event listing for the event type.

Troubleshooting

ProblemSolution
403 Forbidden on every pushThe API key is missing, invalid, or is a Query API (Website Personalisation) key rather than a Data API push key. Generate a Data API key under Settings > API keys.
Push returns 202 but the event never appears against the contactThe event_type is not configured in Ometria. Create it under Settings > Custom events.
Event delivered but not linked to a customeridentity_email is missing. Call datafly.identify() with the contact’s email before tracking.
400 Bad RequestThe batch mixed record types or exceeded 100 records, or the body was malformed. Signal sends only custom_event records in batches of up to 100, so check for a custom Field Mapping change.
Event type appears truncatedEvent type names over 512 characters are truncated by Ometria. Use a shorter event_type.

Rate Limits & Batching

LimitValue
Records per push request100 (Signal batches automatically)
Record types per request1 (Signal sends only custom events)

Signal batches events automatically, sending up to 100 custom events per push request. The default settings are sufficient for most deployments.