Overview
Lightweight CRM built for API-first workflows. Manage sales pipelines, track deals through stages, and analyze revenue — all via API. Deals reference contacts by UUID rather than duplicating them, keeping your data consistent across domains. The CRM domain is intentionally focused: pipelines, stages, and deals. No email sequences, no landing pages, no marketing automation. Clean data, clean contracts.Data Model
Entities
| Entity | Description |
|---|---|
| Pipeline | A sales process with ordered stages (e.g., “Enterprise Sales”, “Inbound”) |
| Stage | A step in a pipeline (e.g., “Lead”, “Qualified”, “Proposal”, “Won”) |
| Deal | An opportunity being tracked through a pipeline |
| Deal Contact | A link between a deal and a contact (with optional role) |
| Stage Change | An audit record of a deal moving between stages |
| CRM Tag | A label for categorizing deals |
Relationships
- A Pipeline has many Stages (ordered by
position) - A Deal belongs to one Stage (and through it, one Pipeline)
- A Deal can be linked to many Contacts via Deal Contacts
- Every stage transition creates a Stage Change audit record
Key Concepts
Pipelines and stages
Pipelines are customizable sales processes. Each pipeline has an ordered list of stages. One pipeline can be marked as the default for new deals. Stages have aposition (integer) that determines their display order. Use the reorder endpoint to rearrange stages within a pipeline.
Deals
Each deal tracks:- Title and description
- Amount and currency (ISO 4217 codes like
USD,EUR) - Close probability (0.0 to 1.0)
- Expected close date
- Won/lost dates and lost reason
- Value period for recurring revenue (
one_time,monthly,quarterly,annual)
Stage change audit trail
Every time a deal moves to a different stage, aStageChange record is created with:
- Previous and new stage IDs
- The deal’s amount at the time of the change
- Timestamp
Pipeline analytics
GET /api/v1/pipelines/{id}/summary returns:
- Total deals, total value, weighted value (amount * probability)
- Per-stage breakdown with deal counts and values
- Useful for pipeline health dashboards and forecasting
Contact linking
Deals reference contacts by UUID. A deal can have multiple contacts (e.g., the decision-maker, the champion, the end-user). Each link includes arole field.
Changes to a contact’s information are reflected everywhere — no stale copies.
Tags
CRM tags are separate from contact tags (domain isolation). Use them to categorize deals by type, source, or any custom dimension.MCP Tools
CRM operations are available through the standard per-domain MCP tools for creating, reading, updating, and deleting pipelines, stages, and deals. Composite tools likecontext_for_person include related deal information automatically.
See the MCP guide for setup instructions.
