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 type | Where to add seeds | Complexity |
|---|---|---|
| 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 event | Medium |
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
- Navigate to Campaigns > Broadcast Campaigns > Create new broadcast
- In the audience step, start with your main segment
- Add an additional variant with condition
is_seed = true(OR logic) - The "Ignore frequency capping" checkbox can be checked for this variant to ensure seeds always receive it
- Schedule and confirm
Profile attributes required
Seeds need:
- Email address
marketing_optin = truewithtimestamp_subscribedsetid(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
| Trigger | Description | Seed approach |
|---|---|---|
| Contact has subscribed | marketing_optin is set to true | Create profile with marketing_optin = true and timestamp_subscribed |
| Contact has abandoned a basket | Basket abandonment event received | Pass basket data via /v2/push or connected store |
| Contact has browsed (browse abandonment) | Contact views a product N times without purchasing | Pass browse events via /v2/push |
| Contact has placed an order | Purchase event received | Pass order data via /v2/push or connected store |
| Contact's birthday is in X days | date_of_birth matches "birthday in X days" | Set date_of_birth on the seed profile |
| Custom date field | Anniversary or any other date field matches a trigger window | Set the date field on the seed profile |
| Win-back | Last order date exceeds the configured lapse threshold | Seed must have order history, or set a historical order timestamp |
| Custom event | Any custom event passed via the Data API | Track 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_optinis set totrue(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 = trueandtimestamp_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 = trueand 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_birthfield matches "birthday in X days" (e.g., "birthday in 0 days" = today) - Seed requirements: Profile with
marketing_optin = trueanddate_of_birthattribute 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_birthso 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
| Scope | Limit |
|---|---|
| Records per push request | 100 records maximum |
| Record size | 60KB per record |
| General API | Not 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 term | What it means |
|---|---|
| Profile | The top-level merged identity record for a person (equivalent to a Contact/Lead in other platforms). |
| Contact | A child record within a profile representing the person in a specific "collection" (store, email list). |
| Collection | A data source or integration - profiles can have contacts from multiple collections. |
| Broadcast Campaign | A scheduled one-time email send to a defined audience segment. |
| Automation Campaign | An always-on event-triggered campaign that evaluates qualifying contacts every few minutes. |
| Segment | A dynamic audience filter used in broadcast and automation targeting. |
| Mutual exclusivity | A campaign-level setting preventing a contact from being active in two specified automation campaigns simultaneously. |
| Frequency capping | Account-level setting limiting emails per day and per week per contact. |
marketing_optin | Boolean field controlling whether the profile can receive broadcast and automation campaign emails. |
timestamp_subscribed | ISO 8601 datetime required alongside marketing_optin = true to create a subscription event. |
@merge | API request parameter enabling partial update behavior (preserve existing fields not in payload). |
| Data API | Ometria's primary API for pushing contact, order, basket, and event data. Authentication via X-Ometria-Auth header. |
| Entry wait node | A 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