Internal · Journey Config
Persona × Stage matrix
Single source of truth for customer-portal access. Read-only view; matrix lives at src/lib/journey/stages.ts.
Stages — left to right
Stage 1
Visitor
Marketing engagement · public collateral
Stage 2
Lead
Sales touchpoint · demo retrieval · gated collateral
Stage 3
Evaluator
Self-assessment · role-curated tools · own tenant
Stage 4
Pilot
Data upload · sandboxed pilot output · guided workshops
Stage 5
Production
Connector cutover · full appliance · contract signed
Surface unlocks · what each stage opens
| Surface | Min stage | Customer-visible? |
|---|---|---|
| library | Lead | yes — at min stage |
| assess | Evaluator | yes — at min stage |
| pilot | Pilot | yes — at min stage |
| connect | Production | yes — at min stage |
| demo-init | never (internal-only) | no |
Internal personas
MARKETINGSALESCONSULTANTENGINEERADMIN
Internal personas bypass stage gating and may access any surface (today). Per-persona allowlists land in the editor pass below.
Promotion authorityWho can advance a customer's stage
- VISITOR → LEAD: Sales (creates engagement when prospect engages)
- LEAD → EVALUATOR: Sales (after kickoff call) or Consultant (when assessment scope agreed)
- EVALUATOR → PILOT: Sales + Consultant joint sign-off (assessment report signed)
- PILOT → PRODUCTION: Sales (contract signed) hand-off to Engineer for cutover
- Every promotion writes an
AuditEventwith actor + tenantId + timestamp.