Answer
How should I pair a customer data platform with this CRM framework?
Use a CDP for broad ingestion, identity graphs, audiences and activation, and Accordo for owned CRM process code with named actions, policy, audit and trace (C-06, C-07, C-16). Customer Data Foundation supports bounded JSON imports with preview/apply, per-row receipts and idempotency, deterministic duplicate candidates, and human-governed canonical identity as logical links. It does not provide CSV ingestion, physical merge, complete export/erasure, bulk editing, saved views or global search (L-06). Durable jobs, a transactional outbox and scheduled asks exist for self-hosted applications that explicitly start a worker. Nothing autostarts; a timer opens an ask, never makes a decision, and no managed worker service or recurrence is included (L-04). No prebuilt CDP connector ships (L-05); bridge mapping remains application code. Customer Data Foundation supplies bounded import and identity governance, not complete personal-data operations. Authentication must be supplied by the deployment, and complete subject export and erasure remain absent; the framework alone does not establish compliance or suitability for real customer data (L-09).
What the ledger says, word for word
Each entry below is copied from site/claims.json, where it is bound to the evidence that holds it — a test file, a document, or a named repository fact — and to the limitation that travels with it. The answer above summarises these; these are the claim.
C-06
A lead is captured, scored, routed, qualified and converted into Company, Contact and Opportunity through explicit actions, each one atomic and audited.
LimitEnrichment runs against a fixture provider — no real external data source is wired. The Lead model is the starter's, not a built-in core module.
JTBD-04, JTBD-05, JTBD-05b, JTBD-LI-01, JTBD-LI-02, JTBD-LI-04tests/lead-qualification-e2e.test.jstests/lead-conversion-e2e.test.jstests/lead-intelligence-e2e.test.jsdocs/LEAD_INTELLIGENCE.mdC-07
Scoring is explainable and versioned: every score carries the fingerprint of the model version that produced it, so a number from last quarter can still be accounted for.
LimitDeterministic weighted rules, not a machine-learning model. Nothing trains, fits or backtests.
JTBD-LI-02, JTBD-LI-07tests/lead-intelligence-e2e.test.jstests/intelligence-contract.test.jsdocs/LEAD_INTELLIGENCE.mdC-16
Every mutation goes through a module service or a named workflow, and leaves an audit event and a step-level trace behind it.
LimitAudit records what the process did under an asserted actor. It is not a tamper-evident or externally attestable log, and it is not a compliance control.
JTBD-02tests/workflow.test.jstests/action-runtime-semantics.test.jstests/event-bus-outbox.test.jsARCHITECTURE.mddocs/ACTIONS.mdL-01 · No authentication ships: the framework authenticates nobody.
Production Spine v1 (ADR-038) gives the framework verified identity, organizations and memberships, server-authoritative authorization and one tenant per application instance — so tenancy and authorization now exist and are enforced. What does not exist is authentication: no login, password, session or OIDC implementation ships, and a deployment must supply the adapter that verifies the request. Production mode refuses to start without one. In local-development mode an actor header is accepted as an assertion and is not an identity, which is the default developer posture. This is not shared-database multi-tenancy and it is not a readiness claim.
JTBD-15tests/production-spine.test.jstests/actor-fails-closed.test.jsdocs/PROJECT_STATUS.mdREADME.mdDECISIONS.mdcrm app inspect reports a productionPosture that refuses to be read as a readiness claimL-05 · No email, calendar or marketing integrations.
An in-memory notification provider contract exists. MK1 marketing records supplied funnel observations and human-reviewed proposals only; it has no sending, publishing or spending path.
JTBD-14tests/marketing-no-external-effect.test.jstests/marketing-e2e.test.jsdocs/strategy/INTEGRATION_RUNTIME.mdL-06 · Bounded customer imports and logical identity; incomplete data operations.
Customer Data Foundation supports bounded JSON imports with preview/apply, per-row receipts and idempotency, deterministic duplicate candidates, and human-governed canonical identity as logical links. It does not provide CSV ingestion, physical merge, complete export/erasure, bulk editing, saved views or global search.
tests/customer-data-foundation.test.jsdocs/benchmarks/CRM_JTBD_MATRIX.mdL-09 · Personal-data readiness requires deployment work beyond the foundation.
Customer Data Foundation supplies bounded import and identity governance, not complete personal-data operations. Authentication must be supplied by the deployment, and complete subject export and erasure remain absent; the framework alone does not establish compliance or suitability for real customer data. Lead scoring remains deterministic, versioned and explainable.
JTBD-15tests/lead-intelligence-e2e.test.jstests/customer-data-foundation.test.jsdocs/strategy/DATA_GOVERNANCE.mddocs/benchmarks/CRM_JTBD_MATRIX.mdCustomer Data Foundation records bounded imports and human-governed logical canonical identity without deleting or rewriting source recordsComplete subject export and erasure are not supplied by Customer Data Foundationscoring is a deterministic weighted model with a persisted version fingerprint (C-07)L-04 · Timers exist; a service that runs them for you does not.
Durable jobs, a transactional outbox and scheduled asks exist for self-hosted applications that explicitly start a worker. Nothing autostarts; a timer opens an ask, never makes a decision, and no managed worker service or recurrence is included.
JTBD-07, JTBD-10docs/strategy/JOBS_AND_OUTBOX.mdWhere this stops
Nothing on this page implies deployment readiness. The framework ships no authentication verifier; authorization is framework-enforced; tenant isolation is one tenant per application instance, not shared-database row tenancy. Read the exact repository posture before deployment. Every claim and every limitation is on one page, and the questions this project refuses to answer are published beside them.