Integrations

Adobe Journey Optimizer: Telltide Seed Address Guide

Place Telltide seeds in Adobe Journey Optimizer audiences and journeys.

Product scope: This guide covers Adobe Journey Optimizer (AJO), built natively on Adobe Experience Platform (AEP) and using AEP's Real-Time Customer Profile as its identity layer.

AJO does not have a dedicated "seed address" record type. Instead, seeds are regular AEP profiles, optionally flagged with testProfile: true. Test profiles are used in Journey Test mode and Campaign proof sends. They are not automatically injected into live running journeys alongside real recipients. For ongoing live monitoring, the seed must be a real AEP profile that naturally qualifies for the journey trigger (event, audience qualification, or read audience), with testProfile left unset or false.

Quick reference

Send typeWhere to add seedsComplexity
Scheduled (Campaign)Proof send to test profile, or include seed profile in audienceLow to Medium
Ongoing (Journey, event-triggered)Seed must receive the trigger experience event via Streaming Ingestion or source dataMedium
Ongoing (Journey, audience qualification)Seed must qualify for the trigger audience (streaming or batch)Medium
Ongoing (Journey, read audience)Seed must be a member of the audience at each scheduled runMedium
Test mode (pre-live validation)Activate Test mode on the journey, select a testProfile to injectLow

1. Scheduled / one-off sends (Campaigns)

AJO Campaigns are one-time or recurring sends to a defined audience. Two types exist: Scheduled (audience-based, runs at a set time) and API-triggered (fires per-profile via API call).

For proof validation before a campaign goes live, use proof sends. AJO can send the campaign content to a test profile before the campaign runs. For ongoing receipt monitoring after the campaign is live, the seed profile must be a member of the audience the campaign targets.

Non-technical path

For CRM managers using only the AJO UI.

Create a seed profile in the UI:

  1. Navigate to Audiences > Profiles in AJO (or Profiles in the AEP UI)
  2. Click Create test profile (or Create profile for a live-monitoring seed)
  3. Choose the identity namespace (typically Email) and enter the seed email address
  4. Fill in profile attributes referenced by personalization (first name, last name, etc.)
  5. Set consents.marketing.email.val = y so AJO does not suppress the send
  6. For a Test mode profile, leave the Test profile flag on. For a live-monitoring seed, leave it off so the profile behaves like a real recipient
  7. Save

Add the seed to a campaign audience:

  1. Open Audiences > Browse, locate the audience the campaign targets, and confirm the seed qualifies. If it does not, create an "always-include" audience that targets the seed directly (a segment rule like personalEmail.address equals seed@example.com)
  2. In the campaign Audience step, click Combine audiences and add the always-include audience with OR logic alongside the main audience
  3. Save the campaign. The seed now receives every send, not only proofs

Send a proof of campaign content:

  1. Open the campaign's email content in the Email Designer
  2. Click Simulate content
  3. Open the Test profiles tab and pick the seed
  4. Click Send proof. The seed receives the rendered email for review

Technical path

For developers using the AEP Profile and Streaming Ingestion APIs.

Test profiles and live-monitoring profiles are AEP profiles ingested via Streaming Ingestion against a profile-enabled dataset. This requires an IMS access token and a configured streaming connection (also called an inlet).

Step 1, get an IMS access token (OAuth Server-to-Server):

POST https://ims-na1.adobelogin.com/ims/token/v3
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id={{client_id}}&client_secret={{client_secret}}&scope=openid,AdobeID,read_organizations,additional_info.projectedProductContext

JWT (Service Account) credentials are no longer accepted as of 1 March 2026. Use OAuth Server-to-Server. Tokens expire after 24 hours.

Step 2, stream the profile record:

POST https://dcs.adobedc.net/collection/{CONNECTION_ID}
Authorization: Bearer {{ims_access_token}}
Content-Type: application/json
sandbox-name: {{sandbox_name}}

{
  "header": {
    "schemaRef": {
      "id": "https://ns.adobe.com/{TENANT_ID}/schemas/{SCHEMA_ID}",
      "contentType": "application/vnd.adobe.xed-full+json;version=1"
    },
    "imsOrgId": "{{IMS_ORG_ID}}",
    "datasetId": "{{PROFILE_DATASET_ID}}",
    "source": {
      "name": "Telltide seed profile"
    }
  },
  "body": {
    "xdmMeta": {
      "schemaRef": {
        "id": "https://ns.adobe.com/{TENANT_ID}/schemas/{SCHEMA_ID}",
        "contentType": "application/vnd.adobe.xed-full+json;version=1"
      }
    },
    "xdmEntity": {
      "_id": "seed-monitor-001",
      "testProfile": false,
      "personalEmail": {
        "address": "seed@example.com"
      },
      "person": {
        "name": {
          "firstName": "Seed",
          "lastName": "Monitor"
        },
        "birthDate": "1990-04-15"
      },
      "consents": {
        "marketing": {
          "email": { "val": "y" }
        }
      }
    }
  }
}

Set testProfile: true only if the profile is for Test mode or proof sends. For live monitoring (seed receives real campaigns), set testProfile: false or omit it.

Credential locations:

  • CONNECTION_ID: AEP > Sources > Streaming HTTP API connection. Older docs and UI may still call this an "inlet ID"
  • IMS_ORG_ID, client_id, client_secret: Adobe Developer Console (console.adobe.io) > Your project > OAuth Server-to-Server credentials
  • PROFILE_DATASET_ID: AEP > Datasets, find your profile-enabled dataset
  • SCHEMA_ID, TENANT_ID: AEP > Schemas, open the profile schema and read the $id

Synchronous validation (optional): Append ?syncValidation=true to the streaming endpoint to get inline schema validation feedback. Synchronous validation requires the VA7 data centre.

Note: Streaming ingestion is asynchronous. Allow a few minutes for the profile to be queryable in the Real-Time Customer Profile and to appear in audiences.

Verify the profile is queryable:

GET https://platform.adobe.io/data/core/ups/access/entities?schema.name=_xdm.context.profile&entityIdNS=Email&entityId=seed%40example.com
Authorization: Bearer {{ims_access_token}}
x-api-key: {{client_id}}
x-gw-ims-org-id: {{IMS_ORG_ID}}
x-sandbox-name: {{sandbox_name}}

Always-on flow coverage

For recurring scheduled campaigns where the seed must receive every send, not only proofs.

  1. Audience membership. Confirm the seed qualifies for the campaign's primary audience. If audience qualification depends on profile attributes (loyalty tier, region, lifecycle stage), set those attributes on the seed so it qualifies organically. If you do not want to fake those attributes, create a small "Telltide seed" audience (rule: personalEmail.address equals seed@example.com) and combine it with the campaign audience using OR in the campaign's audience step.
  2. Source data feed. If the campaign audience is built from an external data source (CRM export, data warehouse query, or batch ingestion), include the seed in that source so the audience continues to contain it after each refresh.
  3. Recurring run cadence. For a recurring campaign, verify the audience is recomputed before each run. For batch audiences, the snapshot must include the seed at evaluation time. Enable Trigger after batch audience evaluation on the schedule so the campaign runs against the latest snapshot.
  4. Consent and suppression. Re-check the seed's consents.marketing.email.val is y and that the seed email is not on the AJO suppression list before each launch.

Profile attributes required

Seeds need:

  • Email address mapped to the Email identity namespace in AEP
  • testProfile: true only if the seed is used for proof sends or Journey Test mode; leave it false (or unset) for live monitoring
  • Consent set to allow email sends (consents.marketing.email.val = y on a profile-enabled schema with the Consents and Preferences field group)
  • Values for any profile attributes referenced in personalization ({{profile.person.name.firstName}} etc.)
  • Email address not present on the AJO suppression list

Ensuring seeds receive the same version as real recipients

Content experiments (A/B): AJO Campaigns support content experiments with multiple treatments. Seeds assigned to the audience receive one treatment variant based on the experiment split. Use multiple seed profiles to monitor all treatments, or run the experiment with deterministic variant assignment based on profile identity.

Conditional content: AJO uses Expression Editor conditions based on profile attributes. The seed receives the content block matching its own profile data. Set profile attributes to match the audience segment you want to monitor.

Gotchas

Consent and communication preferences: AJO enforces AEP consent attributes by default. If the seed profile's email consent is not set to allow, the send is suppressed. Set consents.marketing.email.val = y (or the equivalent in your profile schema) on the seed.

Suppression list: AJO maintains a suppression list (Administration > Channels > Email configuration > Suppression list). Email addresses added due to hard bounce, spam complaint, or manual entry receive no sends. Check and remove the seed email before testing.

Frequency capping (Business Rules): AJO Business Rules (Administration > Business rules) enforce frequency caps by channel. In Test mode, sends are exempt from frequency capping. In production, all profiles, including profiles flagged testProfile: true, are subject to the caps. If a single seed sits in many monitored journeys, raise the cap or use a separate seed per journey.


2. Ongoing / automated journeys (Journeys)

AJO Journeys are event-driven or audience-driven automation flows that operate on the Real-Time Customer Profile.

Journey entry types

Entry typeHow it worksSeed approach
Unitary (event-triggered)A single profile triggers the journey by generating a qualifying AEP experience eventSeed must receive the qualifying event via Streaming Ingestion or the source system
Audience qualificationProfiles enter the journey when they enter (or exit) an AEP audienceSeed must qualify for the trigger audience
Read audienceAll profiles in an audience are processed once or on a recurring schedule (default 5,000 profiles per second)Seed must be a member of the audience at the run time
Business eventA business-level event triggers a batch of profiles to enterSeed must match the business-event filter

Non-technical path

For CRM managers using only the AJO and AEP UI.

  1. Create the seed profile in the UI. Audiences > Profiles > Create profile. Enter the seed email under the Email namespace, set personalisation attributes, set consents.marketing.email.val to y, and leave Test profile off for a live-monitoring seed.
  2. Add the seed to the journey's trigger audience (audience qualification or read audience journeys). Open Audiences > Browse, find the journey's trigger audience, and either: - Add an OR clause that lets the seed in directly (rule: personalEmail.address equals seed@example.com), or - Adjust the seed's profile attributes so it qualifies organically (loyalty tier, lifecycle stage, last-purchase date).
  3. Wait for audience evaluation. Streaming audiences refresh near real time but propagate from Edge to Hub in 15 to 30 minutes. Batch audiences refresh on their schedule (often nightly). The journey will not pick up the seed until the audience snapshot includes it.
  4. For event-triggered journeys. Trigger the qualifying experience event from the UI is not supported for live journeys. Either fire the event from the source system that normally generates it (a real cart abandon, a real form submit), or use the Technical path below.
  5. Validate first with Test mode. Toggle Test on the journey, click Trigger an event or Trigger audience, and pick a profile flagged testProfile: true. Test mode does not replace live monitoring but proves the journey configuration before launch.

Technical path

For developers using AEP Streaming Ingestion to push qualifying events and profile updates.

For each journey type below, the seed profile must already exist in AEP (see the Section 1 technical path for the profile-streaming call). The snippets below show the qualifying experience event you stream to make the seed enter the journey.

Welcome / onboarding (unitary event-triggered, subscription event)

  • Trigger: AEP experience event of type "subscription" or "profile created" (depends on journey configuration)
  • Seed requirements: Test profile with email and consent attributes set
  • How to trigger: Stream a qualifying event for the seed profile's identity:
POST https://dcs.adobedc.net/collection/{CONNECTION_ID}
Authorization: Bearer {{ims_access_token}}
Content-Type: application/json
sandbox-name: {{sandbox_name}}

{
  "header": {
    "schemaRef": {
      "id": "https://ns.adobe.com/{TENANT_ID}/schemas/{EVENT_SCHEMA_ID}",
      "contentType": "application/vnd.adobe.xed-full+json;version=1"
    },
    "imsOrgId": "{{IMS_ORG_ID}}",
    "datasetId": "{{EVENT_DATASET_ID}}",
    "source": { "name": "Telltide seed event" }
  },
  "body": {
    "xdmMeta": {
      "schemaRef": {
        "id": "https://ns.adobe.com/{TENANT_ID}/schemas/{EVENT_SCHEMA_ID}",
        "contentType": "application/vnd.adobe.xed-full+json;version=1"
      }
    },
    "xdmEntity": {
      "_id": "event-seed-001",
      "timestamp": "2026-04-15T10:00:00Z",
      "eventType": "subscription",
      "identityMap": {
        "Email": [
          {
            "id": "seed@example.com",
            "primary": true
          }
        ]
      }
    }
  }
}

Replace eventType with the specific event type your welcome journey listens for.

Abandoned cart (unitary event-triggered, commerce event)

  • Trigger: AEP commerce experience event (commerce.cartAbandons or a custom event type)
  • Seed requirements: Test profile with email; cart data attributes for personalization
  • How to trigger: Stream an experience event with commerce.cartAbandons set and product list items:
{
  "xdmEntity": {
    "_id": "event-seed-cart-001",
    "timestamp": "2026-04-15T10:00:00Z",
    "eventType": "commerce.cartAbandons",
    "identityMap": {
      "Email": [{ "id": "seed@example.com", "primary": true }]
    },
    "commerce": {
      "cartAbandons": { "value": 1 }
    },
    "productListItems": [
      {
        "SKU": "SKU-123",
        "name": "Widget Pro",
        "priceTotal": 95.00,
        "quantity": 1
      }
    ]
  }
}

Important: Abandoned cart journeys typically include a wait step (e.g., 1 hour) before the first send. The seed waits in the journey alongside real profiles. If the journey has a condition checking for a subsequent purchase event, ensure the seed does not receive a purchase event during the wait window or it will exit the journey prematurely.

Browse abandonment (unitary event-triggered, web event)

  • Trigger: AEP experience event of type web.webpageDetails.pageViews (or custom browse event) without subsequent purchase
  • Seed requirements: Test profile with email; browse data (product viewed) for personalization
  • How to trigger: Stream a web/product view event for the seed profile. Same Streaming Ingestion API structure as above with the appropriate eventType and product details.

Winback / re-engagement (audience qualification)

  • Trigger: Profile qualifies for a "lapsed customer" audience (e.g., lastPurchaseDate more than 90 days ago)
  • Seed requirements: Profile with lastPurchaseDate attribute set to a date older than the lapse threshold
  • How to trigger: Update the seed's lastPurchaseDate attribute via Streaming Ingestion (a profile-record update against the profile-enabled dataset). Wait for AEP audience evaluation. Streaming audiences propagate from Edge to Hub in 15 to 30 minutes; batch audiences refresh on their schedule. Once the seed enters the audience, the audience-qualification journey fires.

Post-purchase (unitary event-triggered, order event)

  • Trigger: AEP commerce event commerce.purchases
  • Seed requirements: Test profile with email; order data for personalization
  • How to trigger:
{
  "xdmEntity": {
    "_id": "event-seed-order-001",
    "timestamp": "2026-04-15T10:00:00Z",
    "eventType": "commerce.purchases",
    "identityMap": {
      "Email": [{ "id": "seed@example.com", "primary": true }]
    },
    "commerce": {
      "purchases": { "value": 1 },
      "order": {
        "purchaseID": "TEST-ORD-001",
        "priceTotal": 149.99,
        "currencyCode": "USD"
      }
    },
    "productListItems": [
      {
        "SKU": "SKU-123",
        "name": "Widget Pro",
        "priceTotal": 149.99,
        "quantity": 1
      }
    ]
  }
}

Birthday / anniversary (audience qualification)

  • Trigger: Profile qualifies for an audience where person.birthDate month and day match today
  • Seed requirements: Profile with person.birthDate set so today's month and day match
  • Audience rule example (AEP Audience Builder): Month of person.birthDate equals currentMonth AND Day of person.birthDate equals currentDay
  • For same-day testing: Set the seed's person.birthDate to today's date. Wait for the next audience evaluation cycle. Once the seed qualifies, it enters the journey.
  • Date format: ISO 8601 date (YYYY-MM-DD) in AEP profile attributes.

Always-on flow coverage

For long-running event-triggered, audience qualification, and read audience journeys where the seed must enter every cycle.

  1. Seed must satisfy the journey's qualification trigger. - For audience qualification journeys, the seed must enter the trigger audience. Edit the audience definition to include an OR clause that matches the seed (rule: personalEmail.address equals seed@example.com), or set the seed's profile attributes so it qualifies organically. - For read audience journeys, the seed must be a member of the audience at the moment the read audience activity runs. For batch audiences, enable Trigger after batch audience evaluation so the journey reads the latest snapshot. - For unitary event-triggered journeys, the seed must receive the qualifying experience event. Either fire it from the source system (a real action by the seed) or stream it via the Streaming Ingestion call shown above on the same cadence as real customer events.
  2. Add OR clauses to read-audience and qualification rules. Rather than fake business attributes on the seed (loyalty tier, region, lifecycle stage), add an explicit OR branch in the AEP Audience Builder that admits the seed by email or by a telltideSeed = true custom attribute. This keeps the seed in the audience even after the underlying business rules change.
  3. Ingest the seed into source data feeds. If the audience is built from a CRM export, data warehouse query, or batch dataset, the seed must be present in that source so it survives every audience refresh. Add the seed once to the upstream source, or run a periodic Streaming Ingestion call to keep the seed's profile attributes current.
  4. Re-entry settings. Many journey types disable re-entry by default. For monitoring journeys, enable re-entry with no waiting period (or a 24-hour period that matches the test cadence). Without re-entry, the seed enters once and never enters again.
  5. Frequency capping. Business Rules apply to live profiles, including a seed that has testProfile: false. If the seed is part of multiple monitored journeys, raise its per-channel cap or use a dedicated email per journey.
  6. Edge-to-Hub propagation. Plan for a 15 to 30 minute lag between a streaming audience qualifying the seed and the audience-qualification journey acting on it. Read audience journeys at default 5,000 profiles per second comfortably include the seed once it appears in the snapshot.

Journey Test mode

Before setting a journey live, activate Test mode to validate the journey flow with test profiles. This is the recommended approach for pre-live validation - it does not replace live production monitoring.

  1. Open the journey in draft state
  2. Toggle Test in the journey header
  3. The journey enters test mode - sends from test mode are clearly marked

For event-triggered journeys in test mode:

  1. Click Trigger an event (bottom of the canvas)
  2. Select the namespace and identity value for your test profile
  3. Optionally provide event field values (e.g., cart items for an abandoned cart journey)
  4. Click Send - the test profile enters the journey

For audience-triggered journeys in test mode:

  1. With Test mode active, click Trigger audience
  2. Select up to 100 test profiles to inject into the journey
  3. The selected profiles proceed through the journey steps

Test mode limits:

  • Only profiles with testProfile: true can be used in Test mode
  • Test mode sends do not count toward real frequency caps
  • Test mode journeys run with accelerated wait times (configurable: up to 1000x speed)
  • Maximum 100 test profiles per test run

How to reset seeds for repeated Journey testing

Journey re-entry settings: Journeys have configurable re-entry settings. If re-entry is disabled (default for many journey types), the same profile cannot re-enter until the re-entry waiting period expires.

Re-entry workarounds:

  1. Edit re-entry settings: Enable re-entry with no waiting period for monitoring journeys (if journey logic allows)
  2. Profile exit: Wait for the profile to complete or exit the journey, then re-trigger
  3. Test mode: Use Test mode with accelerated waits to cycle through journey steps quickly before going live

Streaming event re-trigger: For event-triggered journeys, stream a new qualifying event for the seed profile (new timestamp, new event _id). If re-entry is enabled, the seed enters a new journey instance.


3. Platform-specific considerations

API options

Get IMS access token (OAuth Server-to-Server):

POST https://ims-na1.adobelogin.com/ims/token/v3
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id={{client_id}}&client_secret={{client_secret}}&scope=openid,AdobeID,read_organizations,additional_info.projectedProductContext

Stream profile or event data:

POST https://dcs.adobedc.net/collection/{CONNECTION_ID}
Authorization: Bearer {{ims_access_token}}
Content-Type: application/json
sandbox-name: {{sandbox_name}}

Add ?syncValidation=true to receive inline schema validation feedback (VA7 data centre only).

Read a profile (for verification):

GET https://platform.adobe.io/data/core/ups/access/entities?schema.name=_xdm.context.profile&entityIdNS=Email&entityId=seed%40example.com
Authorization: Bearer {{ims_access_token}}
x-api-key: {{client_id}}
x-gw-ims-org-id: {{IMS_ORG_ID}}
x-sandbox-name: {{sandbox_name}}

Trigger an API-triggered Campaign: AJO exposes a per-org Message API for API-triggered campaigns. The exact base URL is org and region-specific and is shown in the campaign's Send via API panel after publishing. Refer to your AJO instance's API documentation for the endpoint.

Credential location: Adobe Developer Console (console.adobe.io) > Select your project > OAuth Server-to-Server credentials.

Region-specific API bases: AEP/AJO API endpoints vary by region. Confirm your org's region from AEP > Settings or the Adobe Admin Console.

Rate limits

Adobe Experience Platform Streaming Ingestion is designed for high throughput. For seed management (low volume), rate limits are not a concern. For bulk profile backfills, use AEP Batch Ingestion instead of Streaming Ingestion.

Audience qualification journeys process up to 5,000 transactions per second. Read audience journeys default to 5,000 profiles per second and can be configured between 500 and 20,000.

IMS access tokens expire after 24 hours (86,399 seconds). Automated seed management scripts must refresh tokens. Cache the token and refresh before expiry using the OAuth Server-to-Server endpoint. JWT (Service Account) credentials are no longer accepted as of 1 March 2026.

Duplicate contact handling

AEP uses an identity graph to merge profiles from multiple sources. Two records with the same email address are linked via the Email identity namespace and merged into a single Real-Time Customer Profile. There is no "duplicate profile" issue from the journey's perspective - the identity graph resolves them to one profile.

Seeds should use a dedicated email address not used by any real customer to prevent accidental identity merges.

Platform-specific terminology

AJO / AEP termWhat it means
Real-Time Customer ProfileThe merged profile built from all data sources in AEP. The identity that journeys operate on.
Identity namespaceThe type of identifier used to link records (Email, Phone, ECID, CRMID, custom).
Identity graphThe graph linking all known identities for a single person across namespaces.
Experience EventAn immutable time-series event (page view, purchase, click) stored in AEP and used to trigger journeys.
XDM (Experience Data Model)Adobe's standardized data schema framework. All data in AEP conforms to XDM schemas.
Streaming IngestionReal-time data ingestion via HTTP into AEP datasets and the profile store.
testProfileBoolean attribute (true/false) on an AEP profile. Marks the profile for use in Journey Test mode and proof sends.
JourneyAn automated flow triggered by events or audience membership. Equivalent to an Automation/Program in other platforms.
Campaign (AJO)A one-time or recurring scheduled message send to an audience segment, or an API-triggered per-profile message. Not the same concept as an Adobe Campaign "Campaign".
Test modeA journey state that allows test profiles to enter and traverse the journey with accelerated wait times, without affecting real recipients.
Proof sendSending a Campaign or email content to test profiles for review before the campaign goes live.
AudienceA segment of AEP profiles defined by rules or by upload. Entry point for audience-triggered journeys and campaigns.
Audience qualificationA journey entry event that fires when a profile enters or exits a defined AEP audience.
Business RulesAJO feature for frequency capping - limits the number of messages a profile can receive per channel per time window.
Suppression listAJO-managed list of email addresses blocked from receiving sends (hard bounces, spam complaints, manual entries).
SandboxAn isolated AEP environment (production or development). All API calls target a specific sandbox via the x-sandbox-name header.
Streaming connection (inlet)An HTTPS endpoint configured in AEP Sources for Streaming Ingestion. Required for API-based event and profile data. The path segment is the CONNECTION_ID.
DatastreamA separate AEP construct that maps client-side Web SDK events to datasets. Distinct from a streaming connection.
Read audienceJourney entry activity that pulls all profiles from an audience once or on a recurring schedule. Default 5,000 profiles per second.
Edge-to-Hub propagationThe 15 to 30 minute delay between a streaming audience qualifying a profile at the Edge and the journey acting on it at the Hub.
Adobe Developer ConsoleAdobe's developer portal (console.adobe.io) where API credentials (OAuth Server-to-Server) are managed.

Known limitations and workarounds

testProfile: true is required for Journey Test mode. Profiles without this flag cannot be used in Test mode. Set the flag at profile creation time - updating it on an existing profile requires a profile update via API or UI.

Test mode is pre-live only. Journey Test mode does not inject seeds into a live running journey. For live monitoring, the seed must qualify for the journey trigger organically (receive the qualifying event, or be in the qualifying audience).

Audience evaluation delay. Read audience and audience qualification journeys rely on AEP audience membership. Batch audiences evaluate on a schedule (typically daily or every few hours). Streaming audiences evaluate near real time but propagate from Edge to Hub in 15 to 30 minutes before journeys act on them. Plan seed timing around the slower of these.

IMS tokens expire after 24 hours. All Adobe API tokens (including for Streaming Ingestion and Profile API) expire after 24 hours. Implement token caching and refresh logic for automated seed management workflows.

Consent attribute must be set correctly. AJO respects AEP consent fields. A profile with email consent unset or denied receives no email sends, even in live production journeys. Set consents.marketing.email.val = y on seed profiles.

Journey re-entry is often disabled by default. Many journey types (especially welcome and post-purchase) disable re-entry to prevent repeat sends to the same profile. For repeated seed monitoring cycles, configure re-entry with an appropriate waiting period, or use separate seed email addresses per monitoring cycle.

Suppression list persists across journeys. If a seed's email address is added to the AJO suppression list (from a hard bounce or spam complaint during a previous test), it is blocked from all future sends. Check Administration > Channels > Email configuration > Suppression list and remove the address if present.

Streaming Ingestion is asynchronous. A successful 200 response from the Streaming Ingestion API means the data is accepted, not immediately available in the Real-Time Customer Profile. Allow a few minutes for the profile to be queryable and for event-based journey triggers to fire.

Start monitoring your Adobe Journey Optimizer sends

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

Start free