Integrations

Ometria: Telltide Seed Address Guide

Place Telltide seeds in Ometria segments and campaigns.

Ometria is a retail-focused customer data and marketing platform where contacts are called "profiles" (merged across data sources). Automation campaigns are always-on and check for qualifying contacts every few minutes, entering up to 1,000 contacts per evaluation cycle. The most important constraint for seed management: Ometria's mutual exclusivity feature can prevent a contact from being in two automation campaigns simultaneously - a seed already active in one campaign may be blocked from entering another. Configure mutual exclusivity settings carefully for seed contacts.

Quick reference

Send typeWhere to add seedsComplexity
Scheduled (Broadcast Campaign)Create seed profile via API; include in targeted segment or override with "Ignore frequency capping"Low-Medium
Ongoing (Automation Campaign)Create seed profile via API; ensure marketing_optin = true and send qualifying eventMedium

1. Scheduled / one-off sends (Broadcast Campaigns)

Ometria Broadcast Campaigns are one-time scheduled sends to a defined audience segment. Seeds must be contactable profiles with marketing_optin = true.

Where to add seed addresses

Ometria is primarily integration-driven - contacts are pushed in via API or ecommerce connectors, not manually added via UI in bulk. Create a seed profile via the Data API with a flag attribute (e.g., is_seed: true) to identify it, then build a segment targeting this flag for inclusion in broadcasts.

Step-by-step: Create a seed profile via Data API

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

{
  "id": "seed-monitor-001",
  "email": "seed@example.com",
  "marketing_optin": true,
  "timestamp_subscribed": "2026-01-01T00:00:00Z",
  "firstname": "Seed",
  "lastname": "Monitor",
  "is_seed": true,
  "date_of_birth": "1990-04-15",
  "@merge": true
}

Authentication: X-Ometria-Auth header with your API key. All requests via HTTPS.

marketing_optin: true - required to enable the profile to receive broadcast and automation campaign emails. Must be sent with timestamp_subscribed together to trigger a subscription event in Ometria.

timestamp_subscribed - ISO 8601 datetime when the subscription was set. Required alongside marketing_optin.

id - your unique identifier for this contact (customer ID). Required for ecommerce customers. Email is used for email-subscriber-only contacts.

@merge: true - enables partial update behavior: only the fields in this payload are updated; existing fields not in the payload are preserved. Always include this to prevent overwriting existing profile data.

Limits: 100 records per request maximum; 60KB per record.

API key location: Ometria account settings > Integrations > API key.

Alternative: Push endpoint (batch with multiple record types)

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

{
  "items": [
    {
      "@type": "contact",
      "id": "seed-monitor-001",
      "email": "seed@example.com",
      "marketing_optin": true,
      "timestamp_subscribed": "2026-01-01T00:00:00Z",
      "@merge": true
    }
  ]
}

The push endpoint is the primary method - it accepts contacts, orders, products, and custom events in a single batch call and processes them asynchronously.

Step-by-step: Include seed in a Broadcast Campaign

  1. Navigate to Campaigns > Broadcast Campaigns > Create new broadcast
  2. In the audience step, start with your main segment
  3. Add an additional variant with condition is_seed = true (OR logic)
  4. The "Ignore frequency capping" checkbox can be checked for this variant to ensure seeds always receive it
  5. Schedule and confirm

Profile attributes required

Seeds need:

  • Email address
  • marketing_optin = true with timestamp_subscribed set
  • id (customer ID) if the profile is an ecommerce customer
  • Values for any custom profile attributes referenced in the email template
  • Not on the custom suppression list

Ensuring seeds receive the same version as real recipients

Variant content: Broadcast campaigns support multiple variants with different content and different scheduled send times per variant. Mutual exclusivity across variants is enforced automatically - a contact can appear in only one variant. Seeds are assigned to the variant that matches their segment conditions.

"Ignore frequency capping" checkbox. In the broadcast builder, each variant can be configured to ignore the account-wide frequency cap. Enable this for seed variants to ensure seeds always receive the broadcast even if they have recently received other sends.

Gotchas

Mutual exclusivity across automation campaigns. Ometria's mutual exclusivity feature prevents a contact from being active in more than one automation campaign at a time (configurable per campaign pair). A seed currently in an active automation campaign may be blocked from entering another automation campaign if mutual exclusivity is configured between them. Review the mutual exclusivity settings for automation campaigns involved in your monitoring setup.

Frequency capping blocks sends. Ometria enforces a frequency cap (configurable: emails per day and per week). Seeds subject to the cap may not receive all sends during high-frequency testing. Use the "Ignore frequency capping" checkbox in broadcast campaigns, and configure automation campaigns to be excluded from the frequency cap (available per campaign in campaign settings).


2. Ongoing / automated journeys (Automation Campaigns)

Ometria Automation Campaigns are always-on, continuously running campaigns. Ometria evaluates entry conditions every few minutes and enters up to 1,000 qualifying contacts per evaluation cycle.

Automation campaign entry triggers

TriggerDescriptionSeed approach
Contact has subscribedmarketing_optin is set to trueCreate profile with marketing_optin = true and timestamp_subscribed
Contact has abandoned a basketBasket abandonment event receivedPass basket data via /v2/push or connected store
Contact has browsed (browse abandonment)Contact views a product N times without purchasingPass browse events via /v2/push
Contact has placed an orderPurchase event receivedPass order data via /v2/push or connected store
Contact's birthday is in X daysdate_of_birth matches "birthday in X days"Set date_of_birth on the seed profile
Custom date fieldAnniversary or any other date field matches a trigger windowSet the date field on the seed profile
Win-backLast order date exceeds the configured lapse thresholdSeed must have order history, or set a historical order timestamp
Custom eventAny custom event passed via the Data APITrack the event via /v2/push with seed's contact identifier

Creating trap profiles per journey type

Welcome / onboarding (Contact has subscribed trigger)

  • Trigger: Fires when a contact's marketing_optin is set to true (subscription event created)
  • Seed requirements: Profile with email, no existing subscription (so the opt-in event fires)
  • How to trigger: Create or update the seed profile via the contacts endpoint with marketing_optin = true and timestamp_subscribed:
POST https://api.ometria.com/v2/contacts
X-Ometria-Auth: {{api_key}}
Content-Type: application/json

{
  "id": "seed-monitor-001",
  "email": "seed@example.com",
  "marketing_optin": true,
  "timestamp_subscribed": "2026-04-15T10:00:00Z",
  "@merge": true
}

The subscription event triggers when Ometria processes this update and detects the opt-in state transition.

Abandoned basket (Contact has abandoned a basket trigger)

  • Trigger: Basket abandonment event - Ometria checks hourly for contacts with basket events and no subsequent purchase
  • Seed requirements: Profile with email and marketing_optin = true; basket data passed to Ometria
  • Via Data API push:
POST https://api.ometria.com/v2/push
X-Ometria-Auth: {{api_key}}
Content-Type: application/json

{
  "items": [
    {
      "@type": "basket",
      "id": "BASKET-TEST-001",
      "customer_id": "seed-monitor-001",
      "status": "open",
      "currency": "GBP",
      "url": "https://yourstore.com/cart",
      "lineitems": [
        {
          "product_id": "SKU-123",
          "variant_id": "SKU-123-DEFAULT",
          "sku": "SKU-123",
          "product_title": "Widget Pro",
          "price": 95.00,
          "quantity": 1,
          "image_url": "https://yourstore.com/img/widget.jpg",
          "url": "https://yourstore.com/products/widget"
        }
      ],
      "subtotal": 95.00,
      "timestamp": "2026-04-15T10:00:00Z"
    }
  ]
}

Wait for the abandonment evaluation window (checked hourly). If no order is placed, the automation triggers.

Browse abandonment (Contact has browsed trigger)

  • Trigger: Contact views a product N times in the past X hours without purchasing (configured in the automation trigger)
  • Seed requirements: Profile with marketing_optin = true; browse event(s) passed to Ometria
  • Via Data API push:
POST https://api.ometria.com/v2/push
{
  "items": [
    {
      "@type": "event",
      "event_type": "product_viewed",
      "customer_id": "seed-monitor-001",
      "timestamp": "2026-04-15T10:00:00Z",
      "data": {
        "product_id": "SKU-123",
        "product_title": "Widget Pro"
      }
    }
  ]
}

Winback / re-engagement (Win-back trigger)

  • Trigger: Last order date exceeds the configured lapse period (e.g., no order in 365 days)
  • Seed requirements: Profile with marketing_optin = true and historical order data
  • How to trigger: Create a historical order for the seed with a timestamp older than the lapse threshold:
POST https://api.ometria.com/v2/push
{
  "items": [
    {
      "@type": "order",
      "id": "TEST-ORD-001",
      "customer_id": "seed-monitor-001",
      "status": "complete",
      "currency": "GBP",
      "subtotal": 49.99,
      "timestamp": "2025-01-15T10:00:00Z",
      "lineitems": [
        {
          "product_id": "SKU-123",
          "product_title": "Widget Pro",
          "quantity": 1,
          "price": 49.99
        }
      ]
    }
  ]
}

Set timestamp to a date older than the automation's lapse window. Ometria uses this as the "last order date" for the win-back trigger evaluation.

Post-purchase (Contact has placed an order trigger)

  • Trigger: Purchase event received for the contact
  • Seed requirements: Profile with marketing_optin = true
  • How to trigger: Push an order record via the Data API (same as winback above, but with a recent timestamp):
{
  "@type": "order",
  "timestamp": "2026-04-15T10:00:00Z",
  "status": "complete"
}

Birthday / anniversary (Contact's birthday is in X days trigger)

  • Trigger: date_of_birth field matches "birthday in X days" (e.g., "birthday in 0 days" = today)
  • Seed requirements: Profile with marketing_optin = true and date_of_birth attribute set
  • Set the birthday attribute:
POST https://api.ometria.com/v2/contacts
X-Ometria-Auth: {{api_key}}
Content-Type: application/json

{
  "id": "seed-monitor-001",
  "email": "seed@example.com",
  "date_of_birth": "1990-04-15",
  "@merge": true
}
  • For same-day testing: Set the seed's date_of_birth so today's month and day match the stored value. Ometria evaluates birthday triggers in its recurring campaign checks; the seed enters when the condition is met.

Automation campaign settings affecting seeds

Re-entry conditions: Configure whether a contact can re-enter an automation after exiting. For a welcome campaign: no re-entry (person subscribes once). For abandoned basket: allow re-entry (person can abandon multiple baskets over time). For monitoring purposes, configure campaigns to allow re-entry if repeated test cycles are needed.

Exit conditions: Automation campaigns have exit conditions (e.g., "exit when contact places an order"). Seeds that satisfy exit conditions will leave the campaign mid-flow. For testing the full journey, ensure seeds do not satisfy exit conditions prematurely.

Mutual exclusivity: Automation campaigns can be configured to exclude contacts who are currently active in another specified campaign. If two monitored automation campaigns are mutually exclusive, the seed can only be in one at a time. Plan seed monitoring schedules around this constraint.

Automation testing mode: Campaigns can be put into "testing mode" which does not count sends toward the frequency cap. Use this when validating automation setup.


How to reset seeds for repeated automation testing

Subscription-triggered automations: Set marketing_optin = false, wait for Ometria to process the opt-out, then set marketing_optin = true with a new timestamp_subscribed. Each opt-in event triggers a new automation instance (if re-entry is configured to allow it).

Event-triggered automations: Push the trigger event again via the Data API. If the automation allows re-entry, the seed enters a new instance.

Order/basket triggered: Push a new order or basket record with a fresh timestamp.


3. Platform-specific considerations

API options

Create/update contact:

POST https://api.ometria.com/v2/contacts
X-Ometria-Auth: {{api_key}}

Push batch data (contacts, orders, events):

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

Accepts up to 100 records per request. 60KB per record limit. Asynchronous.

API key location: Ometria account settings > Integrations > API Keys.

Base URL: https://api.ometria.com/v2

Rate limits

ScopeLimit
Records per push request100 records maximum
Record size60KB per record
General APINot publicly documented; implement exponential backoff on errors

Duplicate contact handling

Ometria merges contact records from different sources into one profile using customer_id first, then email. The same person in multiple "collections" (ecommerce customer + email subscriber) is automatically merged into one profile.

@merge: true in the request payload enables partial update (upsert) behavior - only specified fields are updated. Without @merge: true, fields not included in the payload may be cleared.

Platform-specific terminology

Ometria termWhat it means
ProfileThe top-level merged identity record for a person (equivalent to a Contact/Lead in other platforms).
ContactA child record within a profile representing the person in a specific "collection" (store, email list).
CollectionA data source or integration - profiles can have contacts from multiple collections.
Broadcast CampaignA scheduled one-time email send to a defined audience segment.
Automation CampaignAn always-on event-triggered campaign that evaluates qualifying contacts every few minutes.
SegmentA dynamic audience filter used in broadcast and automation targeting.
Mutual exclusivityA campaign-level setting preventing a contact from being active in two specified automation campaigns simultaneously.
Frequency cappingAccount-level setting limiting emails per day and per week per contact.
marketing_optinBoolean field controlling whether the profile can receive broadcast and automation campaign emails.
timestamp_subscribedISO 8601 datetime required alongside marketing_optin = true to create a subscription event.
@mergeAPI request parameter enabling partial update behavior (preserve existing fields not in payload).
Data APIOmetria's primary API for pushing contact, order, basket, and event data. Authentication via X-Ometria-Auth header.
Entry wait nodeA scenario element that looks back in history to qualify contacts based on past behavior when the campaign launches.

Known limitations and workarounds

marketing_optin and timestamp_subscribed must be sent together. Sending marketing_optin = true without timestamp_subscribed does not trigger a subscription event. Always pair these two fields.

@merge: true is required for safe partial updates. Without it, fields not included in the payload may be overwritten with null/empty values. Always include @merge: true for seed profile updates.

Mutual exclusivity can silently block automation entry. If a seed is currently in an automation campaign that is mutually exclusive with another, the second campaign silently skips the seed. Check mutual exclusivity configuration across all monitored automation campaigns and plan test cycles accordingly.

Basket abandonment trigger is evaluated hourly. After pushing a basket record, there is a wait of up to one hour before the abandonment trigger evaluation fires. Plan seed monitoring cycles around this delay.

Push endpoint is asynchronous. A successful 200 response means the payload is queued, not processed. Allow time for records to be available in profiles before checking campaign entry or profile data.

Frequency cap applies to seeds by default. Seeds are real profiles and count toward the frequency cap. Use "Ignore frequency capping" in broadcast campaigns and configure automation campaigns as cap-exempt for test profiles (is_seed = true segment).

Start monitoring your Ometria sends

Place a Telltide seed in your Ometria audience, and we will tell you when an expected email did not land.

Start free