Deals and forecast
Pipelines and deals, tasks and activities, the deal room with quotes and click-to-sign, and the explainable forecast.
When a meeting is booked, the deal moves into ZeroReach's light CRM. With an API key, use the crm:read and crm:write scopes.
Pipelines
A pipeline is an ordered list of stages. Each stage has:
- a kind:
open,wonorlost; - a default win probability;
- the fields a deal needs before it may enter the stage.
A workspace gets a default "Sales" pipeline the first time it lists pipelines or creates a deal.
PUT /api/v1/pipelines/{pipeline_id}/stagesreplaces the ordered stage list. Removing a stage that still has deals answers409.- Deleting a pipeline needs an admin, and answers
409while it has deals or is the only one.
Deals
A deal links a company and its people (leads), with a value, currency, owner, close date and probability.
POST /api/v1/dealscreates one, in the default pipeline's first stage unless you name another.POST /api/v1/deals/{deal_id}/movemoves it between stages, as in a board drag.- Entering a stage checks its required fields:
422 stage_requirements, with themissingfields. - The deal's
status(open,wonorlost) follows its stage's kind, andclosed_atis set when it is won or lost. GET /api/v1/deals/analyticssums count, value and weighted value by stage.
Tasks (/api/v1/tasks) have a due date and an owner, and link to a lead, a company or a deal. A task Zero created has source assistant. Activities (/api/v1/activities) log notes, calls and the workspace's own activity types on a record's timeline.
After an AI call, the Meeting copilot can update the lead's open deal on its own: the agreed next step, a call-summary note, and tasks for the follow-ups we promised. See After the call.
The deal room
Each deal has a room (/api/v1/deals/{deal_id}/room) with four parts.
- Quote: line items (
name,quantity,unit_price), a discount and the totals. Money is rounded to cents per line, then on the discount. - Proposal: text you write, or ask the AI to draft from your knowledge base and pricing (
POST /api/v1/ai/deal-proposal-draft), then save. - Mutual action plan: ordered steps owned by
us,themorboth. - Share link:
POST .../room/sharecreates a private link for the prospect. Only its hash is stored, and a new link replaces the old one. The prospect can view the room, tick off their plan steps and sign. Views are counted.
Discount approval
Each role has a discount limit. The defaults are: member 10%, admin 25%, owner 100%. Admins change the member and admin limits with PUT /api/v1/deal-room/discount-limits.
A discount above the limit of the person who sets it stays pending and doesn't apply until an owner or admin whose own limit covers it approves it (POST .../room/discount/decision). The person who asked can't approve their own discount. Every request and decision is in the room's audit trail.
Click-to-sign
- Sending: only a person sends a document for signature (
POST .../room/signature). API keys are refused, and Zero never does it; no agent ever sends or signs. - Freezing: sending freezes a snapshot of the deal, quote and proposal, with its SHA-256 hash. The quote and proposal can't change while a request is open (void it first).
- Signing: signing records the typed name, the time and hashes of the signer's IP address and user agent, and re-checks the document hash.
- The signed PDF is available at
.../room/signature/pdf.
Forecast
The forecast is computed on read from your data. It makes no AI calls.
Win probability
A deal's win probability is its own probability (else its stage's), adjusted by named factors. Each factor is listed with its effect:
| Factor | Effect |
|---|---|
| Activity on the deal or its people in the last 7 days | +5 |
| No activity for 30 days or more | −10 |
| A reply from its people in the last 30 days | +5 |
| A meeting booked with its people (last 30 days or upcoming) | +10 |
| A next step is set / none | +3 / −5 |
| The close date has passed | −15 |
| Mutual action plan progress | up to +5 |
| Sent for signature / signed | +10 / at least 95 |
Open deals stay within 1–99. Won deals are 100 and lost deals 0.
The forecast by month
GET /api/v1/analytics/forecast groups open deals by close-date month (months 1–12, default 6):
- Overdue deals count in the current month; deals without a close date are
unscheduled. - It shows value and weighted value (value × win probability).
- Amounts are summed in the workspace's main currency. Other currencies are totalled on their own and never converted.
ownerssplits the totals per deal owner, andowner_id(a member's id orme) narrows the forecast to one owner.
Call scorecards
GET /api/v1/analytics/call-scorecards scores finished AI calls out of 100, from their transcripts:
| Part | Points | What scores |
|---|---|---|
| Talk ratio | 40 | The agent's share of words; the target is 35–60%. |
| Questions | 30 | Questions the agent asked. |
| Next step | 30 | A next step was set, a meeting was booked or a callback was scheduled. |
Each miss comes with a coaching tip.