Do these 11 steps in order, in a development environment. Each step lists where to go, what to do, what to check, what you must know, and the questions interviewers ask about it.
Step 1
Define journeys & KPIs
Where
Outside AJO — journey use case catalog
What you do
List journeys (welcome, abandonment, re-engagement, transactional), their entry trigger, exit/goal and KPIs.
Tips
Separate transactional from marketing journeys from the start.
Check before moving on
Use case catalog signed off.
Must know
Separate transactional messages (confirmations, delays) from marketing messages from day one; they follow different consent and frequency rules.
Every journey needs an entry trigger, an exit or goal, a KPI and an owner.
Journeys are for multi-step, individual flows; campaigns are for one-off or scheduled sends to an audience.
Interview questions tap to reveal a model answer
Journey vs. campaign in AJO?
A journey orchestrates multi-step, event- or audience-triggered flows per person; a campaign sends one message to an audience on a schedule or via API.
Transactional vs. marketing message?
Transactional messages relate to something the customer did or owns (booking, delay) and can go to people who opted out of marketing; marketing messages need marketing consent.
What KPIs would you set for a cart abandonment journey?
Recovered revenue, conversion rate of entrants, and unsubscribe/complaint rates, compared against a holdout.
Screenshot Journey use case catalogAdd screenshots/ajo/step-01.pngStep 2
Confirm data & events
Where
Data management > Schemas / Datasets; Customer > Profiles
What you do
Confirm the entry-trigger events and profile attributes exist, are populated and arrive fast enough.
Tips
A late event looks like a broken journey — measure latency.
Check before moving on
Event readiness checklist passed.
Must know
AJO reads profiles and events from AEP, so schemas, identities and consent must be ready first.
Journeys keyed on an identity namespace need that identity present on the event and the profile.
Check event latency; a late event looks like a broken journey.
Interview questions tap to reveal a model answer
What does AJO need from AEP?
Profile-enabled schemas and datasets, a consistent identity namespace, consent attributes, and the events and audiences that trigger journeys.
Why does the namespace on an event matter?
AJO uses it to find the profile; if the event carries a different identity than the journey expects, the person never enters.
How do you check data readiness?
Look up test profiles, send test events and confirm they arrive with the right identity and fields within the expected latency.
Screenshot Profile showing the trigger eventAdd screenshots/ajo/step-02.pngStep 3
Delegate the sending subdomain
Where
Administration > Channels > Email settings > Subdomains > Set up subdomain
What you do
Delegate a subdomain to Adobe (full delegation recommended) so SPF, DKIM and MX are managed for you.
Tips
Plan DMARC and IP warm-up with the deliverability team.
Check before moving on
Subdomain status shows success.
Must know
Email sending needs subdomains delegated to Adobe (full delegation is recommended; CNAME is the alternative).
New sending IPs must be warmed up gradually to build sender reputation.
IP pools let you separate transactional from marketing traffic so one cannot hurt the other's reputation.
Interview questions tap to reveal a model answer
Full subdomain delegation vs. CNAME?
With full delegation Adobe manages the DNS records for the subdomain; with CNAME the client keeps DNS and points records to Adobe. Full delegation is simpler to maintain.
What is IP warm-up?
Gradually increasing volume from new IPs so mailbox providers learn to trust them, avoiding spam-foldering.
Why separate IP pools?
So a marketing campaign's complaints or bounces do not damage delivery of critical transactional messages.
Create configurations for email (sender, reply-to, IP pool), push (app), and SMS (provider, number).
Tips
For mobile channels, the guided channel setup can auto-create resources.
Check before moving on
Configurations submitted and active.
Must know
Channel configurations (formerly surfaces) hold the sender details for each channel: subdomain, IP pool, from name and address, reply-to.
Mark each configuration as marketing or transactional.
Push, Mobile Message (SMS, MMS and RCS, merged in 2026), in-app and web channels each need their own setup (app credentials, SMS provider, web subdomain).
Interview questions tap to reveal a model answer
What is a channel configuration?
The reusable sending setup for a channel (sender, subdomain, IP pool, message type) that messages and journeys select.
What do you need for push notifications?
The mobile app configured with the Mobile SDK and push credentials, plus a push channel configuration in AJO.
How do you prevent marketing emails going to opted-out customers?
Use marketing-type configurations, which respect marketing consent, and keep transactional configurations for genuine service messages.
Define unitary events with schema, payload fields and the identity used to find the profile.
Tips
Use the event ID condition carefully so only real triggers fire.
Check before moving on
Test event received in the event list.
Must know
Unitary events are about one person (cart abandoned, booking made) and carry an identity.
Business events are not tied to one person (flight delayed, item back in stock); the journey then reads an audience to find the people affected.
System-generated event IDs need the Orchestration eventID field group in the schema; rule-based events use a condition on the payload. Unitary events must be people-based.
Interview questions tap to reveal a model answer
Unitary vs. business event?
A unitary event triggers a journey for one person; a business event triggers a journey that reads an audience, e.g. everyone booked on a delayed flight.
How would you model a flight delay alert?
A business event "flight delayed" with flight number and date, then a Read Audience step to target passengers booked on that flight.
An event fires but nobody enters the journey. Why?
Wrong identity namespace, event ID or rule mismatch, the person is not on a profile-enabled schema, or re-entrance rules block them.
Build reusable templates and fragments; add personalization tokens from profile attributes.
Tips
Give every token a fallback value.
Check before moving on
Previews render for a profile with missing data.
Must know
Build reusable templates and fragments (header, footer, legal text) so changes happen in one place.
Personalization uses the expression editor with profile attributes, event context and helper functions.
Always set fallback values for personalized fields.
Interview questions tap to reveal a model answer
How do you personalize an email in AJO?
Insert profile or event attributes with the expression editor, add conditional content for segments, and set defaults for missing values.
Why use fragments?
A change to a shared fragment (like a footer) updates every message that uses it, saving time and keeping content consistent.
How do you use journey context in a message?
Reference attributes from the triggering event, such as flight number or cart items, in the message through the expression editor.
Screenshot Email designer with personalization tokensAdd screenshots/ajo/step-06.pngStep 7
Build the journey
Where
Journey management > Journeys > Create journey
What you do
Add the entry (event or Read audience), conditions, wait steps, message actions and exit criteria.
Tips
Set re-entry and timeout rules in journey properties.
Check before moving on
Every branch ends cleanly.
Must know
A journey has an entry (event, read audience or audience qualification), then activities: waits, Optimize (which replaced Condition in April 2026 and adds path experimentation and targeting), the Action activity and an end.
Re-entrance settings decide whether someone can enter again and how long they must wait.
Once a journey is live it is read-only apart from names and descriptions; you create a new version from the latest one, and the old version closes to new entries.
Interview questions tap to reveal a model answer
Walk me through building an abandoned-cart journey.
Entry on the cart event, wait one hour, an Optimize (conditions) step for "no purchase since", send email, wait 24 hours, check again, send push, exit on purchase.
How do you change a live journey?
Create a new version, edit and test it, then publish; profiles already in the old version finish in that version.
What is re-entrance?
A setting that controls whether a profile can enter the same journey again and the waiting period before it can.
Create frequency-capping rule sets and confirm suppression and opt-out handling.
Tips
Urgent transactional journeys may need to bypass marketing caps.
Check before moving on
Overlap test profile gets the capped experience.
Must know
Business rules (rule sets) cap how many messages a person receives per channel and period.
Hard bounces and spam complaints go on the suppression list immediately; soft bounces only after repeated retries. Unsubscribes are handled as consent, not suppression.
Urgent transactional messages should not be blocked by marketing frequency caps.
Interview questions tap to reveal a model answer
How do you cap message frequency in AJO?
Create business rule sets with channel caps (e.g. three marketing emails a week) and apply them to journeys and campaigns.
What is the suppression list?
Addresses AJO will not send to, such as hard bounces and spam complaints, maintained automatically.
How do you stop a promo going to someone mid-trip?
Exclude an "in-trip" audience in the journey condition or audience, and apply frequency rules to marketing only.
Screenshot Business rules (frequency capping) screenAdd screenshots/ajo/step-08.pngStep 9
Test the journey
Where
Journey canvas > Test mode; message Simulate content / proofs
What you do
Run test profiles through every branch; send proofs to seed inboxes and devices.
Tips
Test the unhappy paths, not just the happy path.
Check before moving on
Journey QA log complete.
Must know
Test mode runs a journey with test profiles only, and really sends the messages to them.
Dry run walks real production profiles through the paths but sends nothing; simulation uses temporary simulated profiles.
Send proofs and render previews for every channel, device and branch.
Interview questions tap to reveal a model answer
How do you test a journey?
Use test profiles in test mode, trigger the entry event, follow each branch, send proofs, and check the journey report.
What is a test profile?
A profile flagged as a test profile so it can be used in journey test mode and message proofs.
Test mode vs. dry run?
Test mode runs the journey for test profiles and sends real messages to them; dry run uses production data to check paths without sending anything.
Screenshot Test mode with test profile pathAdd screenshots/ajo/step-09.pngStep 10
Publish & monitor
Where
Journey canvas > Publish; journey live and all-time reports
What you do
Publish (phased if possible) and watch entries, step conversion, bounces and complaints daily.
Tips
Expand to 100% once metrics are healthy.
Check before moving on
First-week metrics reviewed.
Must know
Publish in phases, starting with low volumes on new IPs.
Monitor deliveries, bounces, complaints, errors and journey step events.
Journey step events land back in AEP datasets for analysis in CJA or Query Service.
Interview questions tap to reveal a model answer
What do you monitor after publishing a journey?
Entries, exits, errors per step, delivery and open rates, bounces, complaints and conversions against the KPI.
Where can you analyse journey performance beyond AJO reports?
In CJA or Query Service, using the journey step event and message feedback datasets written to AEP.
Bounce rate is high on launch. What do you do?
Pause or slow sending, check list quality and authentication, clean bounced addresses, and review IP warm-up.
Screenshot Journey live reportAdd screenshots/ajo/step-10.pngStep 11
Optimize
Where
Message action > Content experiment; CJA
What you do
Run A/B tests on content or send time; retire weak branches; analyze impact in CJA.
Tips
Define the success metric before starting the test.
Check before moving on
Optimization backlog updated.
Must know
Test content with experiments and compare against a holdout to prove impact.
Use Decisioning (decision items, selection strategies and ranking; it replaces the legacy Decision management) to pick the best offer per person instead of hard-coding.
Review journeys regularly: retire low performers, tune waits and conditions.
Interview questions tap to reveal a model answer
How do you prove a journey works?
Compare the conversion of people who received it with a randomly held-out control group.
What is Decisioning in AJO?
Rules, eligibility and ranking that choose which decision item (offer) to show each person from a catalogue. It replaces the older Decision management (offer decisioning), which is now legacy.
What would you optimise first in a weak journey?
Entry criteria and timing, then subject lines and content via experiments, then channel mix.
How to use: do each step in your sandbox using the “How to do it” column, then read across the row to see how the same step changes by domain. Each domain column follows one journey from top to bottom. Add a screenshot and what you learned in the last column.
Travel & Airlines · practice brand: SkyLumen Airways
flight.statusChanged streamed from operations; upcomingTrips[] on each profile to find who is on the flight.
How (any domain): Check the trigger data streams into AEP (batch data can’t trigger a journey) and the profile fields you need are populated. Where: Datasets, Customer > Profiles.
Check: Test profile shows the event and fields in the Profile viewer.
Screenshot Confirm data & events · Travel & AirlinesAdd screenshots/ajo/travel-02.png
Separate notify subdomain for disruption alerts; offers on the marketing subdomain.
How (any domain): Administration > Channels > Email settings > Subdomains. Full delegation recommended; plan IP warm-up.
Check: Subdomain status shows success; DNS checks pass.
Screenshot Delegate the subdomain · Travel & AirlinesAdd screenshots/ajo/travel-03.png
Transactional push, SMS and email for disruptions; marketing email for offers.
How (any domain): Administration > Channels > Channel configurations: choose marketing or transactional, sender details, IP pool.
Check: Each journey action points to the right configuration type.
Business event flight.statusChanged (flight number, date, status) — no identity; AJO adds a Read audience step.
How (any domain): Administration > Configurations > Events. Unitary = about one person (needs an identity); business = not about a person. Pick schema, payload fields, event ID condition.
Check: Test event appears under the event’s preview; fields map correctly.
checkout.started from the Web SDK with SKUs and prices; purchase event available for the exit.
How (any domain): Check the trigger data streams into AEP (batch data can’t trigger a journey) and the profile fields you need are populated. Where: Datasets, Customer > Profiles.
Check: Test profile shows the event and fields in the Profile viewer.
Screenshot Confirm data & events · E-commerce & RetailAdd screenshots/ajo/retail-02.png
One subdomain for marketing, one for order emails; warm up IPs well before holiday peak.
How (any domain): Administration > Channels > Email settings > Subdomains. Full delegation recommended; plan IP warm-up.
Check: Subdomain status shows success; DNS checks pass.
Screenshot Delegate the subdomain · E-commerce & RetailAdd screenshots/ajo/retail-03.png
Marketing email and push; in-app for app users.
How (any domain): Administration > Channels > Channel configurations: choose marketing or transactional, sender details, IP pool.
Check: Each journey action points to the right configuration type.
How (any domain): Administration > Configurations > Events. Unitary = about one person (needs an identity); business = not about a person. Pick schema, payload fields, event ID condition.
Check: Test event appears under the event’s preview; fields map correctly.
In Phase 1, prioritize cart abandonment, browse abandonment, post-purchase, and replenishment journeys as Wave 1.
In Phase 3, plan for peak-season send-volume throttling ahead of holiday spikes.
Healthcare
Lab use case: Appointment reminder
Profile: B2C (patients) + B2B (providers, payers). Compliance focus: HIPAA, HITRUST, consent-first data collection, no PHI in standard analytics tools without a BAA-covered environment.
What changes in this domain: Appointment reminders, care-gap nudges built only on consented, non-PHI attributes
Special considerations: Extra legal review of message copy; opt-out must be immediate and honored across channels
Appointment reminder (transactional) at 72 h and 24 h before the visit. KPI: no-show rate. Only non-PHI attributes may be used.
How (any domain): List each journey with its entry trigger, exit/goal, KPI and owner; mark it transactional or marketing. Output: use case catalog.
Check: Every journey has a trigger, exit, KPI, owner and message type.
appointment.scheduled streamed from the scheduling system: date/time and clinic only — no diagnosis or procedure codes. Consent field populated.
How (any domain): Check the trigger data streams into AEP (batch data can’t trigger a journey) and the profile fields you need are populated. Where: Datasets, Customer > Profiles.
Check: Test profile shows the event and fields in the Profile viewer.
Screenshot Confirm data & events · HealthcareAdd screenshots/ajo/health-02.png
Separate service subdomain for patient mail (e.g. care.example.org); legal approves the sender name.
How (any domain): Administration > Channels > Email settings > Subdomains. Full delegation recommended; plan IP warm-up.
Check: Subdomain status shows success; DNS checks pass.
Screenshot Delegate the subdomain · HealthcareAdd screenshots/ajo/health-03.png
Transactional email and SMS for reminders; SMS opt-in recorded; no health details in SMS text.
How (any domain): Administration > Channels > Channel configurations: choose marketing or transactional, sender details, IP pool.
Check: Each journey action points to the right configuration type.
Unitary appointment.scheduled; identity = patient CRM ID (no names in the payload).
How (any domain): Administration > Configurations > Events. Unitary = about one person (needs an identity); business = not about a person. Pick schema, payload fields, event ID condition.
Check: Test event appears under the event’s preview; fields map correctly.
transaction.flagged streamed from the fraud engine: amount, merchant, last 4 card digits only.
How (any domain): Check the trigger data streams into AEP (batch data can’t trigger a journey) and the profile fields you need are populated. Where: Datasets, Customer > Profiles.
Check: Test profile shows the event and fields in the Profile viewer.
Screenshot Confirm data & events · BFSIAdd screenshots/ajo/bfsi-02.png
Dedicated alerts subdomain so marketing complaints never hurt fraud-alert delivery; strict DMARC.
How (any domain): Administration > Channels > Email settings > Subdomains. Full delegation recommended; plan IP warm-up.
Check: Subdomain status shows success; DNS checks pass.
Screenshot Delegate the subdomain · BFSIAdd screenshots/ajo/bfsi-03.png
Transactional push, SMS and email for alerts; marketing configurations kept separate.
How (any domain): Administration > Channels > Channel configurations: choose marketing or transactional, sender details, IP pool.
Check: Each journey action points to the right configuration type.
How (any domain): Administration > Configurations > Events. Unitary = about one person (needs an identity); business = not about a person. Pick schema, payload fields, event ID condition.
Check: Test event appears under the event’s preview; fields map correctly.
In Phase 1, separate transactional journeys (statement-ready, fraud alert) from marketing journeys at the entry-source level.
In Phase 3, confirm transactional channels are exempt from marketing opt-out rules per regulation, and document this explicitly.
Media & Telecom
Lab use case: Churn prevention
Profile: B2C subscription + B2B advertising. Compliance focus: Consent for ad personalization, churn-sensitive data models, high-volume streaming events.
What changes in this domain: Onboarding, usage-milestone, churn-prevention, win-back journeys
Special considerations: Subscription fatigue; strict frequency capping
Churn prevention when usage drops. KPI: 60-day retention vs. a holdout group.
How (any domain): List each journey with its entry trigger, exit/goal, KPI and owner; mark it transactional or marketing. Output: use case catalog.
Check: Every journey has a trigger, exit, KPI, owner and message type.
Screenshot Define journeys & KPIs · Media & TelecomAdd screenshots/ajo/media-01.png
Usage arrives as a nightly batch, so build an audience “usage down 50% in 14 days” instead of an event.
How (any domain): Check the trigger data streams into AEP (batch data can’t trigger a journey) and the profile fields you need are populated. Where: Datasets, Customer > Profiles.
Check: Test profile shows the event and fields in the Profile viewer.
Screenshot Confirm data & events · Media & TelecomAdd screenshots/ajo/media-02.png
Marketing subdomain; watch complaint rate closely at high volume.
How (any domain): Administration > Channels > Email settings > Subdomains. Full delegation recommended; plan IP warm-up.
Check: Subdomain status shows success; DNS checks pass.
Screenshot Delegate the subdomain · Media & TelecomAdd screenshots/ajo/media-03.png
Push and in-app first, email second.
How (any domain): Administration > Channels > Channel configurations: choose marketing or transactional, sender details, IP pool.
Check: Each journey action points to the right configuration type.
Screenshot Channel configurations · Media & TelecomAdd screenshots/ajo/media-04.png
No event — the journey starts from audience qualification on “usage down 50%”.
How (any domain): Administration > Configurations > Events. Unitary = about one person (needs an identity); business = not about a person. Pick schema, payload fields, event ID condition.
Check: Test event appears under the event’s preview; fields map correctly.
Screenshot Configure events · Media & TelecomAdd screenshots/ajo/media-05.png
Personal picks from viewing history plus a retention offer from decisioning.
How (any domain): Content templates and fragments; personalization tokens with a fallback for every token.
Check: Proofs render for a profile with missing data.
Screenshot Templates & content · Media & TelecomAdd screenshots/ajo/media-06.png
Audience qualification → email offer → wait 7 days → usage recovered? → if not, in-app offer.
How (any domain): Journeys > Create journey: entry, conditions, waits, actions, exit criteria; set re-entry rules.
Check: Every branch ends; exit criteria set.
Screenshot Build the journey · Media & TelecomAdd screenshots/ajo/media-07.png
Strict caps — e.g. one retention offer per 30 days.
How (any domain): Administration > Business rules: channel rule set (caps, quiet hours), journey rule set (entry/concurrency).
Check: Rule set attached to marketing actions only.
Screenshot Frequency & suppression rules · Media & TelecomAdd screenshots/ajo/media-08.png
Holdout gets nothing; the “usage recovered” branch works.
How (any domain): Test mode with test profiles, proofs to seed inboxes, Dry Run on real profiles without sending.
Check: QA log complete for every branch.
Screenshot Test the journey · Media & TelecomAdd screenshots/ajo/media-09.png
Retention vs. holdout at 30 and 60 days.
How (any domain): Publish; journey reports; query journey_step_events; set alerts.
Check: First-week metrics reviewed and logged.
Screenshot Publish & monitor · Media & TelecomAdd screenshots/ajo/media-10.png
Test offer types: discount vs. content upgrade.
How (any domain): Content experiments; retire weak branches; analyse in CJA.
Check: Backlog updated with the next test.
Screenshot Optimize · Media & TelecomAdd screenshots/ajo/media-11.png
Extra steps for this domain
In Phase 1, build onboarding, usage-milestone, churn-prevention, and win-back journeys.
In Phase 6, apply strict frequency capping given subscription fatigue risk.
Manufacturing / B2B
Lab use case: Lead nurture
Profile: B2B, long sales cycles. Compliance focus: Account-based data models, CRM/ERP integration depth, smaller but higher-value data volumes.
What changes in this domain: Lead-nurture, event-follow-up, renewal-reminder journeys tied to account stage
Special considerations: Longer wait steps (days/weeks); sales-notification steps into CRM
Lead nurture by account stage, lasting weeks. KPI: MQL-to-SQL conversion.
How (any domain): List each journey with its entry trigger, exit/goal, KPI and owner; mark it transactional or marketing. Output: use case catalog.
Check: Every journey has a trigger, exit, KPI, owner and message type.
Marketo/CRM activity plus account fields (stage, tier); contacts linked to an account ID.
How (any domain): Check the trigger data streams into AEP (batch data can’t trigger a journey) and the profile fields you need are populated. Where: Datasets, Customer > Profiles.
Check: Test profile shows the event and fields in the Profile viewer.
Screenshot Confirm data & events · Manufacturing / B2BAdd screenshots/ajo/b2b-02.png
Coordinate with Marketo so SPF/DKIM authorize both senders on shared domains.
How (any domain): Administration > Channels > Email settings > Subdomains. Full delegation recommended; plan IP warm-up.
Check: Subdomain status shows success; DNS checks pass.
Screenshot Delegate the subdomain · Manufacturing / B2BAdd screenshots/ajo/b2b-03.png
Email only in AJO; sales tasks go to CRM through a custom action.
How (any domain): Administration > Channels > Channel configurations: choose marketing or transactional, sender details, IP pool.
Check: Each journey action points to the right configuration type.
Audience qualification on “Account reached MQL”, or unitary form.submitted with CRM ID.
How (any domain): Administration > Configurations > Events. Unitary = about one person (needs an identity); business = not about a person. Pick schema, payload fields, event ID condition.
Check: Test event appears under the event’s preview; fields map correctly.