Reference architecture
Data foundation first
| Layer | Practice | Examples |
|---|---|---|
| Profile | Govern durable attributes and consent | CRM ID, loyalty tier, language |
| Experience events | Consistent XDM structures | productView, cartAdd, purchase |
| Lookup | Reusable reference data | Products, stores, offers |
| Identity | One shared identifier strategy | CRM ID, ECID, email |
Journey design
- One measurable objective per journey
- The right trigger: event, audience qualification, read audience or business event
- Explicit entry and exit criteria
- Every wait documented with a reason
- Reusable content and decisioning instead of hard-coded logic
- Naming that includes owner, business unit, purpose and version
Scale and guardrails
Design for platform guardrails from the start. Adobe documents a limit on activities per journey; keep journeys small and modular and split large flows into sub-journeys. Validate content size, throughput, rate limits, capping and error handling before high-volume launches.
Decisioning
Separate offers from orchestration. Eligibility answers can this person receive it?; ranking answers which eligible option is best? Always provide a fallback and test with known, unknown, partial and ineligible profiles.
Consent and governance
- Channel-level consent requirements documented
- Suppression and opt-out behaviour defined
- Least-privilege roles
- Data usage policies applied to custom actions and integrations
- Audit trail for production changes
Channel foundations
| Channel | Foundation | Testing |
|---|---|---|
| Subdomains, authentication, templates | Seeds, rendering, links | |
| SMS | Provider, sender, consent | Opt-in/out, failures |
| Push | Mobile SDK, permissions | Devices, deep links |
| Web / code-based | Web SDK, datastream, surfaces | Display and interaction events |
Testing and release
- Payload and schema validation
- Identity resolution
- Audience qualification
- Consent and suppression
- Personalisation and fallbacks
- Rendering and links
- Timeouts, errors and retries
- End-to-end conversion measurement
- Production-volume throughput
Use test mode and dry runs, and change live journeys through new versions.
Monitoring
| Metric family | Examples |
|---|---|
| Journey health | Entries, completions, errors, exits |
| Delivery | Sends, bounces, opt-outs |
| Engagement | Clicks, app and web interactions |
| Business | Conversion, retention, incremental lift |
Frequently asked questions
Should every campaign be a journey?
No. Fixed-date broadcasts are simpler as campaigns; use journeys for per-person, event-driven flows.
How do I avoid huge journeys?
Give each journey one objective and split long flows into smaller, reusable sub-journeys.
Last updated: