The catalogue
Every CRM job, and whether Accordo does it.
This is the honest inventory: 149 jobs a CRM is normally expected to do, each with a status and, where it passes, the test that proves it. “Not supported” is the default. A row moves out of it only when an automated test or a checked-in example proves the whole job — which is why 98 of 149 are still in that column, and why the ones that are not mean something.
validated end to end An automated test or a checked-in example proves the whole job. This is the only status that counts as evidence.
partially supported Part of the job works and is proved; the rest is named rather than implied. Read what is excluded before planning around it.
technically supported The primitives exist but no test proves the job end to end, so it is not claimed as working.
not supported No implementation and no test. It would have to be built. This is the default status in the catalogue — a row moves out of it only when a test proves it.
The same catalogue is published as machine-readable JSON at /jobs.json, generated from docs/benchmarks/CRM_JTBD_MATRIX.md and kept in step with it by a test.
| Area | Jobs | Where it stands |
|---|---|---|
| CRM JTBD validation matrix | 17 | 8 validated end to end 4 partially supported 5 not supported |
| Agent experience
AX0–AX5, cross-cutting |
10 | 2 validated end to end 4 partially supported 4 not supported |
| Communications
no milestone assigned |
5 | 1 partially supported 4 not supported |
| Commercial Operations / CPQ
Milestones 10-11 implemented for the local slice, ADR-016 and ADR-017 |
7 | 3 validated end to end 4 partially supported |
| Contract & Subscription
Milestone 12 implemented for the local slice — ADR-018 addendum, docs/CONTRACT_ACTIVATION.md |
10 | 2 partially supported 8 not supported |
| Design-to-CRM
design only — DESIGN_TO_CRM.md |
7 | 1 partially supported 6 not supported |
| Delivery & Service
handover at M13, execution at M14a, economics at M14b1, and change, deliverables and acceptance at M14b2 — all merged; docs/DELIVERY_HANDOVER.md, docs/DELIVERY_ECONOMICS.md, docs/DELIVERY_CHANGE_ACCEPTANCE.md |
12 | 3 validated end to end 7 partially supported 2 not supported |
| Lead Intelligence & Routing
Milestone 9 — implemented for the local slice, ADR-015 |
9 | 4 validated end to end 4 partially supported 1 not supported |
| Package developer
Custom Package Authoring v1, M13 |
7 | 2 validated end to end 2 partially supported 3 not supported |
The 65 jobs with no page of their own
These areas are catalogued and unbuilt, and the matrix had a line or two to say about each. They are listed here in full rather than spread over 10 further URLs, because a page whose body is a milestone code repeated five times is a page this project would be publishing against its own rules.
Analytics
target: M16
- JTBD-AN-01 Define a trusted, explainable metric — not supported no semantic model or metric-definition primitives
- JTBD-AN-02 Create a report from approved metrics/dimensions — not supported no report/query-compilation primitives
- JTBD-AN-03 Create a role-aware dashboard — not supported requires RBAC at the query boundary — gated by the Production Spine
- JTBD-AN-04 Version and roll back a dashboard — not supported no dashboard-version primitives
- JTBD-AN-05 Validate metric correctness against fixtures — not supported no metric test harness
Data governance
no milestone assigned — DATA_GOVERNANCE.md
- JTBD-DG-01 Record consent and lawful basis — not supported no consent primitive
- JTBD-DG-02 Honor an opt-out across outbound paths — not supported no outbound paths and no suppression list
- JTBD-DG-03 Export everything held about a subject — not supported no subject-access path
- JTBD-DG-04 Anonymize or delete a subject while preserving immutable evidence — not supported the hardest design in the track: commercial evidence is deliberately immutable
- JTBD-DG-05 Apply a retention policy and evidence that it ran — not supported needs the scheduler
- JTBD-DG-06 Inspect what was shared with which provider — not supported M9 records inbound provenance only
- JTBD-DG-07 Restrict sensitive fields by role — not supported needs RBAC
- JTBD-DG-08 Prove a deletion request completed — not supported needs DG-04
Data operations
no milestone assigned
- JTBD-DO-01 Import records from CSV — not supported no import path; records are created one at a time through services or actions
- JTBD-DO-02 Detect duplicates on import or entry — not supported unique constraints exist per field; no matching or scoring
- JTBD-DO-03 Merge two Companies or Contacts — not supported no merge primitive; references would have to be re-pointed and evidence preserved
- JTBD-DO-04 Export records — not supported no export endpoint; list is page-bounded by design
- JTBD-DO-05 Bulk update a set of records — not supported every mutation is single-record
- JTBD-DO-06 Save and share a filtered view — not supported no saved-view primitive
- JTBD-DO-07 Search across modules — not supported no global search; exact indexed lookups are per-module
- JTBD-DO-08 See a unified activity timeline for a record — not supported audit and trace exist per record but there is no Activity model or timeline view
- JTBD-DO-09 Attach notes or files to a record — not supported no note or attachment primitive
Audience and governance
- JTBD-MK-01 Create a dynamic audience from CRM data — not supported MK2; no audience primitive
- JTBD-MK-02 Freeze an audience snapshot for a send — not supported MK2; no snapshot primitive
- JTBD-MK-03 Apply exclusions and suppression sets — not supported MK2; DATA_GOVERNANCE.md
- JTBD-MK-04 Verify consent and communication preferences — not supported MK2; DATA_GOVERNANCE.md — hard
- JTBD-MK-05 Apply a cross-campaign frequency cap — not supported MK2; needs campaign history
- JTBD-MK-06 Sync an audience to a provider — not supported MK6; no provider adapter
Campaign planning
- JTBD-MK-07 Diagnose a funnel drop — not supported MK1; funnel primitives, better with Analytics Studio
- JTBD-MK-08 Create a complete Campaign Proposal — not supported MK1 — the first milestone, and it needs no provider
- JTBD-MK-09 Select a channel and an installed provider, with rationale — not supported MK1/MK2; provider contracts
- JTBD-MK-10 Recommend a send time and window — not supported MK1
- JTBD-MK-11 Define content, creative, landing page and CTA — not supported MK3
- JTBD-MK-12 Define a tracking plan (UTM, conversion events) — not supported MK3
- JTBD-MK-13 Request human approval of a proposal — not supported MK1; real roles need the Production Spine
Execution
- JTBD-MK-14 Run a one-shot email campaign — not supported MK2; fixture provider first
- JTBD-MK-15 Run a rolling campaign — not supported MK4; JOBS_AND_OUTBOX.md — hard
- JTBD-MK-16 Run a triggered campaign — not supported MK4; durable event inbox — hard
- JTBD-MK-17 Run a multi-step multichannel journey — not supported MK4; scheduler and durable waits — hard
- JTBD-MK-18 Pause or stop a running campaign — not supported MK4
- JTBD-MK-19 Handle bounces and unsubscribes — not supported MK2; inbound provider events
Content
- JTBD-MK-20 Generate email content — not supported MK3
- JTBD-MK-21 Generate SMS/WhatsApp messaging content — not supported MK3
- JTBD-MK-22 Generate a landing page, form and CTA — not supported MK3; design ownership per DESIGN_TO_CRM.md
- JTBD-MK-23 Publish a preview — not supported MK3
- JTBD-MK-24 Publish an approved asset to production — not supported MK3; human approval mandatory
Experimentation
- JTBD-MK-25 Create an A/B test — not supported MK5
- JTBD-MK-26 Assign a deterministic control group — not supported MK5; fingerprinted assignment rule
- JTBD-MK-27 Create a holdout — not supported MK5
- JTBD-MK-28 Measure lift against control — not supported MK5/MK7
- JTBD-MK-29 Select and publish a winner — not supported MK5; human approval where risk exists
Paid media
- JTBD-MK-30 Prepare a Media Plan — not supported MK6
- JTBD-MK-31 Sync an audience to an ads platform — not supported MK6; consent rules
- JTBD-MK-32 Launch an approved ads campaign — not supported MK6; human spend approval mandatory
- JTBD-MK-33 Ingest spend and results — not supported MK6; provider adapters
- JTBD-MK-34 Propose a budget change — not supported MK6; a proposal, never an action
Analytics and attribution
- JTBD-MK-35 Define a funnel — not supported MK1/MK7
- JTBD-MK-36 Identify and segment a drop — not supported MK1; ANALYTICS_STUDIO.md
- JTBD-MK-37 Report a campaign result — not supported MK2 onward
- JTBD-MK-38 First-touch attribution — not supported MK7; identity/touchpoint model
- JTBD-MK-39 Last-touch attribution — not supported MK7
- JTBD-MK-40 Multi-touch attribution — not supported MK7; ANALYTICS_STUDIO.md — hard
- JTBD-MK-41 Connect a campaign to an Opportunity or Order — not supported MK7
- JTBD-MK-42 Calculate campaign ROI — not supported MK7
- JTBD-MK-43 Recommend the next campaign version — not supported MK7; closes the loop
What a status here does not mean
These statuses describe this repository at this commit. None of them implies the framework is deployable: there is no authentication, tenancy or RBAC, so it is local-development-only whatever any row says. Every claim and every limitation is on one page.