# Journey: <journey name>

File: `martech-context/tracking-plan/<journey-slug>.md`
Status: proposed
Plan version: 1
Last reviewed: YYYY-MM-DD

## Decision

- Decision this plan supports: <one sentence naming the choice someone will make>
- Action if the result is poor: <what changes, and who changes it>
- Linked metric: <metric_id from martech-context/metrics.md>

## Scope

- Primary actor: <role>
- Population: <who can reasonably complete the journey>
- Exclusions: <internal accounts, test accounts, invited users, unsupported plans>
- Counting unit: <person | account | workspace | order | subscription>
- Entry: <event and condition>
- Outcome: <event and condition>
- Window: <duration from entry, inclusive start, exclusive end>
- Repeat policy: <does a second attempt start a new journey>
- Complete-data cutoff: <how the report knows the window has fully arrived>

## Event envelope (every event in this plan)

- event_name, event_id (plain UUID for the occurrence, reused on retry), occurred_at (UTC, source clock), received_at (UTC, ingestion)
- message_id (UUIDv5 of event_id, emitted name and emitter; the value of every destination dedupe field)
- anonymous_id, user_id, account_id, workspace_id (at event time; account and workspace read on the server)
- source (web | ios | android | server | billing), environment (production | staging), contract_version
- app_version and build for mobile events

## Events

- `<event_name>`: <trigger in one line>. Source: <system>. Consumer: <metric or workflow>. Contract: `<event_name>.yaml`
- `<event_name>`: ...

## Destinations

- Warehouse: <all events, canonical; via>
- GA4: <events and names; via; key events, marked before release; consent mode>
- Mixpanel or Amplitude: <events; via; dedupe field mapping>
- Segment or RudderStack: <source, tracking plan name>
- HubSpot: <derived properties or custom events; object, match key, roll-up rule>

## Owners

- Business owner: <role or name>
- Implementation owner: <team>
- Data owner: <role or name>
- Privacy reviewer: <role or name, when needed>

## Open questions

- <question>, owner, due date
