Integrations

Omnisend: Telltide Seed Address Guide

Place Telltide seeds in Omnisend audiences and automations.

Omnisend is ecommerce-focused and uses a single unified contact store. All contacts are subscribed or not; there are no separate lists (segments are dynamic filters). The most important constraint for seed management: creating a contact via the API triggers the Welcome workflow by default if one is active and the contact meets its entry conditions. Use sendWelcomeMessage: false in the API payload to suppress this when you want to create a seed without firing the welcome journey.

Quick reference

Send typeWhere to add seedsComplexity
Scheduled (Campaign)Create seed contact; target via tag or custom property filter in campaign audienceLow
Ongoing (Automation)Create seed contact; trigger the automation's entry event or set qualifying attributeMedium

1. Scheduled / one-off sends (Campaigns)

Omnisend Campaigns are one-time email sends. The audience is built using conditions (segments, tags, subscription status, contact properties, campaign activity). Seeds must exist as contacts in the Omnisend account.

Where to add seed addresses

The simplest approach: tag seed contacts with telltide-seed and add a condition to every campaign targeting contacts with that tag. This ensures seeds are always included without modifying the main audience logic.

Step-by-step: Create a seed contact via UI

  1. Navigate to Audience > All contacts
  2. Click Add contact (button top right)
  3. Enter the seed email address
  4. Set Email subscription status to Subscribed
  5. Fill in First Name, Last Name, and any other fields used in personalization
  6. Add a tag: telltide-seed
  7. Save

Step-by-step: Create a seed contact via API

POST https://api.omnisend.com/v5/contacts
X-API-Key: {{api_key}}
Content-Type: application/json

{
  "email": "seed@example.com",
  "firstName": "Seed",
  "lastName": "Monitor",
  "tags": ["telltide-seed"],
  "sendWelcomeMessage": false,
  "status": "subscribed",
  "statusDate": "2026-01-01T00:00:00Z",
  "customProperties": {
    "birthday": "1990-04-15"
  }
}

sendWelcomeMessage: false prevents the Welcome workflow from triggering for this contact. Include this on every API-created seed to avoid polluting your welcome journey data.

status: "subscribed" sets the contact as opted in. Without this, the contact defaults to nonSubscribed and receives no marketing emails.

statusDate is required alongside status - it records when the subscription was set.

Step-by-step: Add seed to a Campaign

In the campaign audience builder:

  1. Add a condition: Tags > contains > telltide-seed
  2. Set the condition operator to OR (so seeds are included alongside the main audience)
  3. The seed contact receives the campaign

Or configure the campaign's audience as the main segment plus the seed tag condition.

Profile attributes required

Seeds need:

  • Email address
  • status: subscribed (otherwise the contact is suppressed from marketing sends)
  • Values for any custom properties or merge tags referenced in the email template

Ensuring seeds receive the same version as real recipients

Segments in campaign audience: If the campaign uses a segment based on purchase history, engagement, or other behavioral data, the seed contact may not match the segment conditions. Use the tag-based inclusion method (separate OR condition) to bypass segment filtering for seeds.

A/B testing in Campaigns: Omnisend supports subject line and content A/B testing in campaigns. Each variant is sent to a portion of the audience. Seeds are assigned to one variant randomly. To monitor all variants: use multiple seed contacts.

Gotchas

sendWelcomeMessage: false only works for API-created contacts. If a seed is added via the UI or a form, the welcome message fires if one is configured. For UI-created seeds, temporarily disable the Welcome automation before adding the seed, then re-enable it.

Sunset policy / engagement-based unsubscribe: Omnisend can automatically manage contacts based on engagement history (configured in Audience > Manage Contacts > Sunset policies). Seeds with low engagement may eventually be unsubscribed. Check your account's sunset policy settings and ensure seeds are not subject to automatic suppression.


2. Ongoing / automated journeys (Automations)

Omnisend Automations are triggered email sequences. Each automation has a single entry trigger and optional filter conditions. Re-entry is controlled by the automation's frequency settings.

Automation entry triggers and seed approaches

TriggerDescriptionSeed approach
Subscribed to marketingContact's status changes to SubscribedCreate seed via UI with welcome message suppressed; or fire via API
Placed OrderOrder event for this contactUse Omnisend Orders API or test order in connected store
Order FulfilledFulfillment eventSame as Placed Order
Started CheckoutCheckout initiated eventFire via API or initiate test checkout in store
Added to CartCart add eventFire via API or perform in connected store
Product ViewedProduct page view eventFire via API or website tracker
BirthdayContact's birthday date matches todaySet seed's birthday attribute to today's date
Entered SegmentContact matches a segment filterSet contact properties to satisfy segment
Custom EventDeveloper-defined eventFire via API

Creating trap profiles per journey type

Welcome / onboarding (Subscribed to marketing trigger)

  • Trigger: "Subscribed to marketing" - fires when a contact's email status changes to Subscribed
  • Seed requirements: Email address, not currently subscribed (so the status change fires the trigger)
  • How to trigger: Create a new seed contact via the UI with subscription status set to Subscribed. The trigger fires automatically.
  • Important: When creating via API, set sendWelcomeMessage: true (or omit the field) if you specifically want the welcome automation to trigger. Use sendWelcomeMessage: false for all other seed creation where you don't want to fire the welcome journey.

Abandoned cart (Started Checkout trigger)

  • Trigger: "Started Checkout" event - fires when an order-in-progress (checkout initiated) event is tracked for the contact
  • Seed requirements: Email address, subscribed status
  • For connected Shopify/BigCommerce/WooCommerce: Initiate a real test checkout using the seed email address and abandon before completing payment
  • Via Omnisend Events API (custom):
POST https://api.omnisend.com/v5/events
X-API-Key: {{api_key}}
Content-Type: application/json

{
  "email": "seed@example.com",
  "eventName": "started checkout",
  "fields": {
    "orderID": "CART-TEST-001",
    "cartSum": 95.00,
    "currency": "USD",
    "products": [
      {
        "productID": "SKU-123",
        "title": "Widget Pro",
        "price": 95.00,
        "quantity": 1
      }
    ]
  }
}

Browse abandonment (Product Viewed trigger)

  • Trigger: "Product Viewed" event
  • Seed requirements: Email address, subscribed status
  • Via Events API:
POST https://api.omnisend.com/v5/events
X-API-Key: {{api_key}}
Content-Type: application/json

{
  "email": "seed@example.com",
  "eventName": "viewed product",
  "fields": {
    "productID": "SKU-123",
    "title": "Widget Pro",
    "url": "https://yourstore.com/products/widget",
    "imageUrl": "https://yourstore.com/img/widget.jpg",
    "price": 49.99,
    "currency": "USD"
  }
}

Winback / re-engagement (Entered Segment trigger)

  • Trigger: "Entered Segment" - fires when a contact first qualifies for a defined segment
  • Seed requirements: Contact with lastPurchaseDate custom property set to a date older than the lapse threshold (e.g., 90 days ago)
  • Set the date property on the seed:
PATCH https://api.omnisend.com/v5/contacts/{contactID}
X-API-Key: {{api_key}}
Content-Type: application/json

{
  "customProperties": {
    "lastPurchaseDate": "2025-01-01"
  }
}

Then define a segment with filter lastPurchaseDate is before 90 days ago. The seed enters the segment and triggers the winback automation.

Post-purchase (Placed Order trigger)

  • Trigger: "Placed Order" event
  • Seed requirements: Email address, subscribed status
  • For connected stores: Complete a real (or test) order using the seed email address
  • Via Orders API:
POST https://api.omnisend.com/v5/orders
X-API-Key: {{api_key}}
Content-Type: application/json

{
  "email": "seed@example.com",
  "orderID": "TEST-ORD-001",
  "orderNumber": "TEST-001",
  "orderSum": 149.99,
  "currency": "USD",
  "orderStatus": "pending",
  "products": [
    {
      "productID": "SKU-123",
      "title": "Widget Pro",
      "quantity": 1,
      "price": 149.99,
      "currency": "USD"
    }
  ]
}

Birthday / anniversary (Birthday trigger)

  • Trigger: "Birthday" - fires when today's date matches the contact's birthday (month and day)
  • Seed requirements: Email address, subscribed status, birthday attribute set on the contact
  • Birthday field: Dedicated built-in field (not a generic custom property). Format: YYYY-MM-DD
  • Set the birthday field:
PATCH https://api.omnisend.com/v5/contacts/{contactID}
X-API-Key: {{api_key}}
Content-Type: application/json

{
  "birthday": "1990-04-15"
}
  • For same-day testing: Set the seed's birthday to today's date. Omnisend evaluates birthday triggers daily; the seed enters the automation at the next evaluation after the birthday is set.

Automation frequency settings

Each automation has a frequency configuration on the trigger:

  • At any time in the past - the contact qualifies once ever (useful for welcome; prevents re-entry)
  • In the last X days - the contact re-qualifies after X days pass since they last triggered (useful for cart abandonment monitoring)
  • Disabled - the contact can re-enter unlimited times (useful for repeated test cycles)

For monitoring purposes, set the frequency to "Disabled" on test-facing automations so the seed can re-trigger on each monitoring cycle.


How to reset seeds for repeated testing

Activity-triggered automations: Change the frequency setting to "Disabled" and fire the trigger event again.

Segment-triggered automations: Remove the seed from the qualifying segment (update the attribute that caused qualification), wait for the segment to refresh, then re-add the qualifying attribute.

Birthday automations: Change the seed's birthday to today's date for each test cycle.


3. Platform-specific considerations

API options

Create contact:

POST https://api.omnisend.com/v5/contacts
X-API-Key: {{api_key}}

Update contact:

PATCH https://api.omnisend.com/v5/contacts/{contactID}

Get contact by email:

GET https://api.omnisend.com/v5/contacts?email=seed%40example.com

Create/update order:

POST https://api.omnisend.com/v5/orders

Track custom event:

POST https://api.omnisend.com/v5/events

API key location: Account settings > Integrations > API keys > Generate API key.

Rate limits

ScopeLimit
General APIPlan-dependent; returns HTTP 429 when exceeded
Contacts per bulk request100 per request (recommended batch size)

Implement exponential backoff on 429 responses.

Duplicate contact handling

Email address is the unique identifier. If POST /v5/contacts is called with an existing email, the existing contact is updated - no duplicate is created. Phone number (if used) is also a unique identifier.

Platform-specific terminology

Omnisend termWhat it means
ContactA person record in Omnisend (equivalent to a Subscriber/Profile in other platforms).
Subscription statusThe email marketing opt-in state: subscribed, unsubscribed, nonSubscribed.
CampaignA one-time email send (equivalent to a Broadcast/Blast in other platforms).
AutomationA triggered multi-step email/SMS workflow.
SegmentA dynamic filter-based group of contacts (evaluated in real time).
TagA label applied to contacts for targeting and filtering.
Custom PropertiesContact-level custom data fields.
sendWelcomeMessageAPI parameter that controls whether adding a contact fires the Welcome automation. Set to false to suppress.
Sunset policyAccount-level setting that automatically manages contacts with low engagement. May unsubscribe inactive seeds.
Birthday fieldDedicated built-in date field (distinct from generic custom properties). Format: YYYY-MM-DD.

Known limitations and workarounds

sendWelcomeMessage: false is API-only. UI-added contacts always fire welcome automations if one is active and conditions are met. Temporarily disable the welcome automation when manually adding seeds via the UI.

Segments are dynamic with no manual override. You cannot force a contact into a segment - they must actually satisfy the segment's conditions. For segment-triggered automations, set the seed's attributes to satisfy the conditions, not just add them to a static list.

Birthday trigger evaluates daily. There is a delay between setting the birthday attribute and the seed entering the birthday automation. The seed enters at the next daily evaluation, not immediately.

Automation frequency "At any time in the past" is not re-triggerable. Once a contact has triggered an automation under this setting, they cannot trigger it again ever (until the frequency setting is changed or the contact is deleted and re-created). Use "Disabled" or "In the last X days" for monitoring cycles.

Start monitoring your Omnisend sends

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

Start free