The open-source custom CRM framework for coding agents

Your business is different.
Your CRM should be too.

Tell your coding agent how you sell and serve customers. Accordo gives it the rules. You keep the code.

Custom CRMQuote approvalRevenue opsServiceRenewalsCPQCustomer data

In practice

Describe the rule. Your agent ships it. Your team uses it.

One sentence of business intent becomes a versioned policy in your repository — and the CRM screen your team opens obeys it.

Business intent

“When a quote has more than 20% discount, a sales manager must approve it.”

$ npm run crm -- app inspect --json→ composition read, not guessed→ plan bound to this application

Source · commercial/discount-policy.js

export const standardSalesDiscount = {
name: 'standard-sales-discount', version: 1,
config: { autoApproveMaxBps: 2000,
approvalKey: 'sales-manager' },
evaluate({ maxLineDiscountBps, config }) {
if (maxLineDiscountBps <= config.autoApproveMaxBps)
return { decision: 'auto_approve' };
return { decision: 'approval_required',
requiredApprovalKey: config.approvalKey };
},
};

Running CRM · generated admin

Opportunities / OPP-2041● live

Acme S.p.A.€180,000

Quote Q-1042 · discount 25% · 2500 bps

Approval required · discount > 20%

Approver — Sarah Rossi · Sales Manager

ApproveReject

✕ agent transition refused — standard-sales-discount v1✓ s.rossi approved · 14:02✓ audit recorded · run 4d2a91

Matching marks — the line of policy that governs the behavior.

The backend enforces it One application — UI, domain model, services, workflows, policy and audit — composed as source in your repository. The client asks; the server decides. accord reached · sealed

A third choice

Stop choosing between bending a platform and rebuilding CRM foundations.

01

Configure a CRM

Fast when your process fits. Use one when you need a hosted product now.

02 · the third choice

Build with Accordo

Start from CRM primitives. Let the agent shape them around your process, in a repository you control.

03

Generate from scratch

Maximum freedom, but your team must re-derive policy, audit and verification.

The signature moment

A rep wants to give 25% off. Who gets to say yes?

The agent

Writes the CRM, proposes the discount, and asks — through a named workflow, never a database write.

The policy

Deterministic, versioned code — not a model’s judgement. Anything above the threshold stops and waits.

The human

The agent cannot approve on the human's behalf. A test asserts the refusal, so the boundary is a property of the system rather than a promise in a README.

✓ Every decision leaves a trace — audit and run history stay in your repository.

One operating model

From first signal to the next customer decision.

Model the lifecycle as connected business outcomes—not a collection of disconnected objects.

  1. Customer context
  2. Demand
  3. Qualification
  4. Opportunity
  5. Quote & approval
  6. Signature & order
  7. Contract
  8. Delivery
  9. Service
  10. Renewal
Agent-native developmentWorkflow & policyHuman approvalAudit & trace

Product model, not a coverage claim. The lifecycle is the durable system Accordo is designed to express. Repository evidence separately shows which parts this exact tree proves.

Why it is different

Business rules become reviewable software.

Process before schema

Start with the job, decisions and boundaries. The data model follows the way the business works.

Agents author; policy decides

Commercial policy is deterministic code, not a model's judgement: a renewal at or above the threshold stops and waits for a named human.

See the proof and its boundary

Human decisions stay human

Authority is a property of the system, asserted by a test — not a promise in a README.

See the refusal proof

The coding-agent experience

Intent in. Checked-in system out.

  1. DescribeState the business objective, constraints and decisions.
  2. InspectThe agent reads the composition instead of guessing what exists.
  3. PlanIt binds a reviewable plan to that exact application.
  4. BuildIt composes packages, workflows, policy and UI as owned source.
  5. ProveTests, scenarios, audit and trace show what worked—and what was not established.

Jobs, grouped for humans

Build around the commercial job in front of you.

Desired jobs are not implementation claims. Each solution page separates the job and target workflow from the capabilities and evidence currently available.

Product proof

Claims travel with their tests.

Every sentence on this page resolves against a ledger bound to the test suite. Follow any claim to the test that proves it — and to the boundary that travels with it.

C-03Commercial policy is deterministic code, not a model's judgement: a renewal at or above the threshold stops and waits for a named human.✓ workflow evidence
C-14One command tells an agent what an application actually is — packages, capabilities, resources, actions, policies, providers — read from checked-in source, in a single deterministic JSON report.✓ app-inspect evidence
C-17SQLite is Node's built-in node:sqlite. PostgreSQL requires one pinned runtime driver, pg@8.23.0. There is no ORM, no query builder, no build step and no framework underneath your framework.✓ no build step

sealed · measured at bffb1c2 · 2026-09-19 · 2196 tests, 0 failing

Open source. Self-host framework source. Deployments require an application-supplied authentication verifier and operational configuration. Passing tests does not certify production readiness.

Describe the system. Let your agent build it. Keep the result.