Integrations

Maropost Marketing Cloud: Telltide Seed Address Guide

Place Telltide seeds in Maropost contact lists and journeys.

Maropost uses a contact list model where contacts can belong to multiple lists simultaneously. Journeys are the primary automation builder, using a Trigger widget that defines how contacts enter. The most important constraint for seed management: the Do Not Mail (DNM) list is a global suppression list - contacts added to it receive no email from the account whatsoever, and the only way to include a DNM-listed contact in sends is to remove them from the list first.

Quick reference

Send typeWhere to add seedsComplexity
Scheduled (Campaign)Add seed contact to a list or segment included in the campaign audienceLow
Ongoing (Journey)Add seed contact to the trigger list, apply the trigger tag, or fire the API Event triggerMedium

1. Scheduled / one-off sends (Campaigns)

Maropost Campaigns are one-time or recurring email sends. The audience is built by selecting include lists, include segments, suppress lists, and suppress segments. Seeds must be on at least one included list or segment with active subscription status.

Where to add seed addresses

Add seed contacts to a dedicated "Telltide Seeds" contact list. Include that list in every campaign's audience. This ensures seeds always receive the campaign without needing to satisfy the main segment conditions.

Step-by-step: Create a seed contact via UI (manual add)

  1. Navigate to Contacts > Lists > [select target list]
  2. Open the Actions dropdown
  3. Select Add Contact (or equivalent single-contact add option)
  4. Enter the seed email address (required), first name, last name, and any custom field values
  5. Save

Step-by-step: Import seeds via CSV

  1. Navigate to Contacts > Lists > [target list]
  2. Click Actions > Import List
  3. Select File Import
  4. Upload your CSV file (email is the only required column)
  5. Map columns to Maropost contact fields
  6. Confirm and run the import

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

POST https://api.maropost.com/accounts/{account_id}/lists/{list_id}/contacts?auth_token={{auth_token}}
Content-Type: application/json

{
  "contact": {
    "email": "seed@example.com",
    "first_name": "Seed",
    "last_name": "Monitor",
    "subscribe": true,
    "add_tags": ["telltide-seed"]
  }
}

Authentication: auth_token is passed as a query string parameter on all requests (GET, POST, PUT, DELETE). Find your auth token at: your username (top right) > Connections > REST API tab.

subscribe: true: Ensures the contact is subscribed to the list. Without this, the contact is created but may not be in active subscription status.

add_tags: Applies tags to the contact. Tags can be used as trigger conditions in Journeys.

account_id: Your Maropost account identifier, visible in the account settings or URL.

list_id: The ID of the target contact list, visible in the list settings.

Profile attributes required

Seeds need:

  • Email address (required; unique identifier per list)
  • Active subscription status on the target list
  • Not on the Do Not Mail (DNM) list
  • Values for any custom fields or personalization tags referenced in the campaign email

Ensuring seeds receive the same version as real recipients

Segment-based audiences: If the campaign targets a segment (filter-based dynamic view), the seed must satisfy the segment conditions, or be included via a separate list (OR logic). The separate "Telltide Seeds" list approach bypasses segment filtering for seeds.

A/B testing campaigns: Maropost supports A/B split test campaigns for subject lines, content, and sender names. Seeds are assigned to one variant. Use multiple seed contacts to monitor all variants.

Gotchas

Do Not Mail (DNM) list blocks all sends. The DNM list is a global suppression list - it blocks all email from the account to that address, including campaigns, A/B campaigns, journey messages, and test sends. If a seed is on the DNM list, remove it before attempting any send.

Suppress workflows option. Campaigns have a "Suppress contacts currently in a journey" option. If enabled, seed contacts currently in an active journey are excluded from the campaign send. Disable this for seed testing or ensure seeds are not in active journeys when sending campaigns.


2. Ongoing / automated journeys (Journeys)

Maropost Journeys are visual drag-and-drop automation workflows. Every Journey requires a Trigger widget that defines how contacts enter the Journey. Journey Actions include: Send Email, Add/Remove Tag, Subscribe/Unsubscribe from List, Update Contact Field, Wait/Delay, Condition branching.

Journey trigger types

TriggerDescriptionSeed approach
New SubscriptionFires when a new subscriber is added to the selected listAdd seed to the trigger list as a new subscriber
Subscription ChangedFires when subscription status changes on the selected listChange seed's subscription status
Tag EventFires when a tag is added to or removed from a contactApply the trigger tag to the seed
Contact Field UpdatedFires when specified contact field(s) change valueUpdate the trigger field on the seed
Link ClicksFires when a contact clicks a specific link in a campaignClick the link in a sent campaign
Web FunnelFires on web funnel completion, abandonment, or recoveryTrigger via web funnel tracking
Segment EventFires when a contact enters or exits a specified segmentSet attributes to enter/exit the segment
API EventFires via POST API call for a specific contactCall the Journey API trigger endpoint

Creating trap profiles per journey type

Welcome / onboarding (New Subscription trigger)

  • Trigger: "New Subscription" - fires when a new subscriber is added to the trigger list
  • Seed requirements: Email address, not previously subscribed to the trigger list (so the subscription event fires)
  • How to trigger: Add the seed as a new contact to the trigger list via the API. The "New Subscription" trigger fires for new additions.
POST https://api.maropost.com/accounts/{account_id}/lists/{list_id}/contacts?auth_token={{auth_token}}
Content-Type: application/json

{
  "contact": {
    "email": "seed@example.com",
    "first_name": "Seed",
    "last_name": "Monitor",
    "subscribe": true
  }
}

If the seed already exists on the list, the "New Subscription" trigger does not re-fire. Use a different seed email, or use the "Subscription Changed" trigger variant by unsubscribing and re-subscribing.

Abandoned cart (API Event trigger or Web Funnel trigger)

  • Trigger: "API Event" - fired via API call from the ecommerce platform when abandonment is detected; or "Web Funnel" if using Maropost's web tracking
  • Seed requirements: Email address, subscribed to a list in the account
  • How to trigger via API Event:

Navigate to the Journey's Trigger settings to find the API Event trigger URL and required parameters. The trigger call format varies by account configuration. Example:

POST https://api.maropost.com/accounts/{account_id}/journeys/{journey_id}/trigger?auth_token={{auth_token}}
Content-Type: application/json

{
  "contact": {
    "email": "seed@example.com"
  },
  "trigger_data": {
    "cart_value": "95.00",
    "cart_product": "Widget Pro",
    "cart_url": "https://yourstore.com/cart"
  }
}

Refer to your Maropost account's REST API documentation (username > Connections > REST API) for the exact API Event trigger endpoint.

Browse abandonment (Web Funnel or API Event trigger)

  • Trigger: "Web Funnel" - fires based on web funnel stage (abandonment detected from tracked pages) or "API Event"
  • Seed requirements: Email address, web funnel tracking installed on the store
  • How to trigger: Web-based navigation with seed identified on tracked pages, or API Event call

Winback / re-engagement (Segment Event or Recurring Data Journey)

  • Trigger: "Segment Event" - fires when the contact enters a segment with condition last_purchase_date > 90 days ago; or use a Recurring Data Journey
  • Seed requirements: Contact with last_purchase_date custom field set to a date older than the threshold

Set the date field on the seed:

POST https://api.maropost.com/accounts/{account_id}/contacts?auth_token={{auth_token}}
Content-Type: application/json

{
  "contact": {
    "email": "seed@example.com",
    "last_purchase_date": "2025-01-15"
  }
}

Date/Time custom fields use format YYYY-MM-DD/HH:MM:SS-05:00 (ISO 8601 with timezone offset) in Maropost API calls.

Post-purchase (Subscription Changed or API Event trigger)

  • Trigger: "Subscription Changed" on a "Recent Purchasers" list (ecommerce integration adds contacts on purchase) or "API Event"
  • Seed requirements: Email address, subscribed to the trigger list
  • How to trigger: Add the seed to the "Recent Purchasers" trigger list via API after setting relevant order data fields

Birthday / anniversary (Contact Field Updated trigger + delay)

  • Trigger: "Contact Field Updated" on the date_of_birth (or equivalent) Date/Time custom field
  • Seed requirements: Contact with date_of_birth custom field populated
  • Journey setup: Trigger fires on field update > Journey Delay node set to "Wait until anniversary date of date_of_birth" > Send Birthday Email
  • Date/Time field format: YYYY-MM-DD/HH:MM:SS-05:00

Set the birthday field:

POST https://api.maropost.com/accounts/{account_id}/contacts?auth_token={{auth_token}}
Content-Type: application/json

{
  "contact": {
    "email": "seed@example.com",
    "date_of_birth": "1990-04-15/00:00:00-05:00"
  }
}

The trigger fires when this field value is set or updated. The Journey Delay advances the contact to the send step at the next anniversary of the stored date.


Manually triggering a Journey via API Event

For any Journey with an "API Event" trigger configured, call the trigger endpoint directly:

  1. In the Journey builder, click the Trigger widget
  2. Select "API Event" trigger type
  3. Note the auto-generated API endpoint URL
  4. Call the endpoint with the seed contact's email:
POST https://api.maropost.com/accounts/{account_id}/journeys/{journey_id}/contacts/trigger?auth_token={{auth_token}}
Content-Type: application/json

{
  "contact": {
    "email": "seed@example.com"
  }
}

Exact endpoint format may vary. Check the Journey's API Event trigger panel for the configured URL.


How to reset seeds for repeated Journey testing

New Subscription trigger: Subscribe the seed to a different list (or unsubscribe and re-subscribe from the trigger list) to fire a new subscription event.

Tag Event trigger: Remove the trigger tag, wait for the contact to exit the Journey, then re-apply the tag.

API Event trigger: Call the API trigger endpoint again. If the Journey allows re-entry, the seed enters again.

Contact Field Updated trigger: Change the trigger field to a different value, then back to the intended value to fire the update event again.

Pause/Restart from profile: Navigate to the seed contact's profile > Journeys & Email Series section > find the Journey > click Restart to remove and allow re-entry on the next trigger.


3. Platform-specific considerations

API options

Base URL: https://api.maropost.com/accounts/{account_id}/

All requests require auth_token as a query string parameter.

Add contact to list:

POST https://api.maropost.com/accounts/{account_id}/lists/{list_id}/contacts?auth_token={{auth_token}}

Update contact fields:

PUT https://api.maropost.com/accounts/{account_id}/contacts/{id}?auth_token={{auth_token}}

Get contact by email:

GET https://api.maropost.com/accounts/{account_id}/contacts/email?contact[email]=seed%40example.com&auth_token={{auth_token}}

API documentation location: Within the Maropost application: username (top right) > Connections > REST API tab. The full REST API reference is at api.maropost.com/api/.

Rate limits

Maropost does not publish specific rate limit numbers publicly. Implement exponential backoff on 429 responses.

Duplicate contact handling

Email address is the unique identifier per list. An optional custom uid field can be set to reference contacts by an external ID. If the same email is added to the same list again, the existing record is updated (not duplicated). A contact can appear on multiple lists independently.

Segments deduplicate contacts automatically - even if a contact appears on multiple included lists, they receive the campaign only once.

Platform-specific terminology

Maropost termWhat it means
ContactA person record in Maropost.
Contact ListA static grouping of contacts. A contact can be on multiple lists.
SegmentA dynamic filter-based view of contacts based on rules (engagement, purchase, field values, tags).
TagA label applied to contacts for segmentation and journey triggering.
CampaignA one-time or recurring email send.
JourneyAn automated multi-step workflow triggered by a Trigger widget.
Data JourneyA journey type triggered by data events (scheduled, recurring, file upload, campaign sent). More data-manipulation focused.
Trigger widgetThe required first element of every Journey that defines how contacts enter.
Do Not Mail (DNM) listGlobal suppression list. Contacts in it receive no email from the account at all.
Secure ListSuppression list that persists across platform boundaries, protecting against accidental sends to unsubscribed contacts.
auth_tokenAPI authentication parameter. Passed as a query string on all REST API requests.

Known limitations and workarounds

auth_token in query string is a security consideration. Unlike bearer token authentication, the auth_token parameter is visible in server logs and HTTP referrer headers. Use HTTPS on all API calls and restrict the token's permissions to the minimum required.

Do Not Mail list blocks all sends including tests. Remove seed addresses from the DNM list before any testing. Navigate to Contacts > Do Not Mail to manage list membership.

"New Subscription" trigger does not re-fire for existing subscribers. If a seed is already subscribed to the trigger list, re-adding them does not fire the "New Subscription" trigger. Unsubscribe the seed first, wait for the Journey exit, then re-subscribe to fire a fresh entry.

Contact Field Updated trigger fires on any field change, not just initial set. If the seed's trigger field is updated multiple times, the trigger fires each time (depending on Journey re-entry settings). Plan for this in test cycles to avoid duplicate Journey entries.

Date/Time fields require timezone offset in format. Maropost's Date/Time custom fields use YYYY-MM-DD/HH:MM:SS-05:00 format (not standard ISO 8601). Check your account's configured timezone offset before setting date fields via API.

Start monitoring your Maropost sends

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

Start free