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 type | Where to add seeds | Complexity |
|---|---|---|
| Scheduled (Campaign) | Create seed contact; target via tag or custom property filter in campaign audience | Low |
| Ongoing (Automation) | Create seed contact; trigger the automation's entry event or set qualifying attribute | Medium |
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
- Navigate to Audience > All contacts
- Click Add contact (button top right)
- Enter the seed email address
- Set Email subscription status to
Subscribed - Fill in First Name, Last Name, and any other fields used in personalization
- Add a tag:
telltide-seed - 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:
- Add a condition: Tags > contains >
telltide-seed - Set the condition operator to OR (so seeds are included alongside the main audience)
- 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
| Trigger | Description | Seed approach |
|---|---|---|
| Subscribed to marketing | Contact's status changes to Subscribed | Create seed via UI with welcome message suppressed; or fire via API |
| Placed Order | Order event for this contact | Use Omnisend Orders API or test order in connected store |
| Order Fulfilled | Fulfillment event | Same as Placed Order |
| Started Checkout | Checkout initiated event | Fire via API or initiate test checkout in store |
| Added to Cart | Cart add event | Fire via API or perform in connected store |
| Product Viewed | Product page view event | Fire via API or website tracker |
| Birthday | Contact's birthday date matches today | Set seed's birthday attribute to today's date |
| Entered Segment | Contact matches a segment filter | Set contact properties to satisfy segment |
| Custom Event | Developer-defined event | Fire 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. UsesendWelcomeMessage: falsefor 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
lastPurchaseDatecustom 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,
birthdayattribute 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
birthdayto 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
| Scope | Limit |
|---|---|
| General API | Plan-dependent; returns HTTP 429 when exceeded |
| Contacts per bulk request | 100 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 term | What it means |
|---|---|
| Contact | A person record in Omnisend (equivalent to a Subscriber/Profile in other platforms). |
| Subscription status | The email marketing opt-in state: subscribed, unsubscribed, nonSubscribed. |
| Campaign | A one-time email send (equivalent to a Broadcast/Blast in other platforms). |
| Automation | A triggered multi-step email/SMS workflow. |
| Segment | A dynamic filter-based group of contacts (evaluated in real time). |
| Tag | A label applied to contacts for targeting and filtering. |
| Custom Properties | Contact-level custom data fields. |
| sendWelcomeMessage | API parameter that controls whether adding a contact fires the Welcome automation. Set to false to suppress. |
| Sunset policy | Account-level setting that automatically manages contacts with low engagement. May unsubscribe inactive seeds. |
| Birthday field | Dedicated 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