Authored by Robert Salzmann as
Portfolio/JourneyModelon memex.systemorph.com (19–27 August 2026) and reproduced here verbatim as the specification the CRM implements. The "intended evolution" in its last section — this markdown model becomes a typed NodeType with a data grid — is whatCrm/Client,Crm/Opportunity,Crm/InteractionandCrm/Boardare. Where the implementation refines the model, the Guide says so: a StageInstance is a node (Crm/Interaction, belonging to the client, optionally referencing the deal it advances) rather than a list on the journey; the stage catalog is theCrm/Stagedimension's members (each carrying its category);nextStepClient/nextStepSystemorphlive on the deal; the occurrence qualifier is computed by the bar, never stored.
The data model behind the portfolio board and the chip bars on the client spaces. Deliberately small: two entities, one catalog, one status enum, and fixed rendering rules, so every engagement is represented the same way and new stages can be added without touching the model.
Entities
ClientJourney
| Field | Type | Meaning |
|---|---|---|
| client | mesh path | The client space (e.g. PearlTechnology) |
| stages | StageInstance[] | Ordered list, chronological; the journey |
| nextStepClient | text | What we expect from the client next |
| nextStepSystemorph | text | What we do next |
StageInstance
| Field | Type | Meaning |
|---|---|---|
| stage | catalog id | One of the stage catalog below |
| status | enum | Completed, Current, Planned |
| occurrence | text, optional | Qualifier when a stage repeats: (1st), (2nd), ... |
| labelOverride | text, optional | Display label combining stages, e.g. "Documentation & Commercial Indication" |
| date | date, optional | When the stage completed or is scheduled |
| note | text, optional | Free annotation |
Stage catalog (extensible)
| Id | Label | Category | Chip colour |
|---|---|---|---|
| Prospect | Prospect | Prospecting | yellow |
| Meeting | Meeting | Prospecting | yellow |
| ImpulseSeminar | Impulse Seminar | Prospecting | yellow |
| Documentation | Documentation | Prospecting | yellow |
| CommercialIndication | Commercial Indication | Prospecting | yellow |
| Workshop | Workshop | Prospecting | yellow |
| ProjectProposal | Project Proposal | Prospecting | yellow |
| Nda | NDA | Prospecting | yellow |
| DrivingLessons | Driving Lessons | Engagement | green |
| Pilot | Pilot | Engagement | green |
| Consulting | Consulting | Engagement | green |
| Project | Project | Engagement | green |
| Subscription | Subscription | Engagement | green |
| Delivery | Delivery | Engagement | green |
| Client | Client | Engagement | green |
| Renewal | Renewal | Engagement | green |
| AwaitFollowUp | Await Follow Up | Waiting | gray |
| Dormant | Dormant | Waiting | gray |
| Closed | Closed | Terminal | gray |
New stages are added to this table; nothing else changes. Categories carry the colour, instances carry the status.
Status enum and glyphs
| Status | Glyph | Meaning |
|---|---|---|
| Completed | ✓ | Has taken place |
| Current | ● | Where the engagement stands now; parallel Current instances are allowed (e.g. Consulting running while a Project Proposal is out) |
| Planned | ○ | Anticipated next stage, not yet started |
Rendering rules (chip bar)
- Chips appear in journey order, separated by →.
- Colour comes from the stage category: Prospecting yellow (background #fef3c7, border #f59e0b, text #92400e), Engagement green (#dcfce7, #16a34a, #14532d).
- Waiting stages render gray even when Current (#e2e8f0, border #94a3b8): waiting is passive, not progress.
- Planned instances always render gray with a dashed border (#f8fafc, dashed #cbd5e1), regardless of category.
- Current chips carry a 2px border and bold text; Completed 1px.
- Repeating stages use the occurrence qualifier in the label: Documentation (1st), Documentation (2nd).
- Every client space shows its bar at the top of the page, prefixed with a Journey link back to the portfolio; the portfolio shows all bars.
- A
noterides on the chip only as a qualifier — at most 24 characters ((to send),(Driving Lessons)); a longer note is a sentence and stays on the interaction's card and in the chip's tooltip. A chip never draws wider than 280 px: the label ends in an ellipsis and the tooltip carries all of it. (Implementation rule, 5 September 2026 — four sentence-noted chips on one bar had each grown wider than the card holding them.)
Canonical journey data (as of 19 August 2026)
This table is the single source; the portfolio board and the client-space bars are rendered from it.
| Client | Journey |
|---|---|
| PearlTechnology | ✓ Prospect → ✓ Documentation & Commercial Indication → ✓ Workshop (22 Aug) → ● Await Follow Up |
| Scheuchzer | ✓ Prospect → ✓ Workshop (22 Aug) → ● Await Follow Up |
| VIGRe | ✓ Prospect → ✓ Documentation → ● Await Follow Up |
| HowdenRe | ✓ Prospect → ✓ Documentation (1st) → ● Documentation (2nd) → ○ Workshop (14 Sept) |
| PartnerRe | ✓ Client → ● Consulting → ● Project Proposal → ✓ Meeting (24 Aug) |
| ATIOZ | ✓ Client → ✓ Pilot → ● Await Follow Up |
| PG3 | ✓ Prospect → ✓ Meeting (1st) → ✓ Meeting (2nd) → ● Await Follow Up |
| MusicIns | ✓ Prospect → ✓ Documentation → ● Await Follow Up → ○ Meeting (2 Sept) |
| VHVGruppe | ✓ Prospect → ✓ Impulse Seminar & Workshop (Apr) → ✓ Commercial Indication (Driving Lessons) → ● Await Follow Up → ○ Meeting (25 Sept) |
| Helvetia | ✓ Prospect → ✓ Workshop Seminar (30 Jun) → ● Commercial Indication (to send) |
| SchenkerLabs | ● Prospect |
Maintenance
- A stage advances: set its status to Completed, add or promote the next instance to Current, update the bars (portfolio and client space) and the next steps.
- A new stage type: one row in the catalog, category decides the colour.
- The intended evolution: this markdown model becomes a typed NodeType with a data grid once the journey stabilises; the fields above are the schema for it.