Deal
A Deal is a Startup’s pursuit of one buyer’s acceptance of one or more Offers, ending won or lost.
It is won when the buyer accepts a Quote, and lost with the buyer’s reason.
Properties
| Property | Type | Required | Description |
|---|---|---|---|
status | string | required | One of Open, Qualified, Proposed, Won, or Lost. |
value | money | What the Deal is worth if won. | |
owner | Worker | The Worker who runs it. | |
closesOn | date | The date the buyer expects to decide. | |
statusSince | datetime | When it entered its current status, computed from its Events. | |
nextStep | text | The next dated step agreed with the buyer. |
Object
{
"$id": "https: //api.sb/ quietcopy.com/ deals/ deal_1",
"$type": "Deal",
"status": "Open",
"value": {
"amount": 39,
"currency": "USD"
},
"owner": "worker_1",
"closesOn": "2026-10-22",
"statusSince": "2026-10-22T12: 00: 00Z",
"nextStep": "Example next step"
}Relationships
- A Deal courts one Organization: each Deal has one buying Organization on the other side.
courts, inversedeals. - A Deal issues many Quotes: a Deal sends Quotes, each a priced proposal valid until a date.
issues, inverseissuedIn. - A Deal has many Meetings: a Meeting moves one Deal forward.
meetings, inverseadvances. - A Deal pursues many Offers: a Deal asks one buyer to accept one or more Offers.
pursues, inversepursuedIn. - A Deal is sourced by one Referral: the Deals a Referral opened; when one is won, its revenue earns the Partner’s Commission.
sourcedBy, inversesources.
Verbs
createCreates a Deal.POST /{namespace}/dealsgetReturns one Deal by id.GET /{namespace}/deals/{id}listReturns Deals, newest first, one page at a time.GET /{namespace}/dealsupdateChanges the given properties of a Deal.PATCH /{namespace}/deals/{id}deleteDeletes a Deal; its history is kept.DELETE /{namespace}/deals/{id}advanceAdvance moves a Deal to its next stage once every field that stage requires is filled.POST /{namespace}/deals/{deal}/advanceassignAssign gives a Deal one owner Worker, who carries its next step until it is won or lost.POST /{namespace}/deals/{deal}/assignloseLose closes a Deal as lost and records the reason the buyer gave.POST /{namespace}/deals/{deal}/loseproposePropose sends a Deal’s buyer a Quote they accept to place an Order.POST /{namespace}/deals/{deal}/proposewinWin closes a Deal as won, which places its Order and makes the buyer a Customer.POST /{namespace}/deals/{deal}/win
Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.
| Operation | owner | admin | member | viewer |
|---|---|---|---|---|
Deal.create | Yes | Yes | Yes | No |
Deal.get | Yes | Yes | Yes | Yes |
Deal.list | Yes | Yes | Yes | Yes |
Deal.update | Yes | Yes | Yes | No |
Deal.delete | Yes | Yes | Yes | No |
Deal.advance | Yes | Yes | Yes | No |
Deal.assign | Yes | Yes | Yes | No |
Deal.lose | Yes | Yes | Yes | No |
Deal.propose | Yes | No | No | No |
Deal.win | Yes | Yes | Yes | No |
Call it
Propose the latest deal with a quote.Example
A Deal with a county planning firm pursues the $900-a-month permit-records Offer plus a $3,000 backfill: value: for year one. After two Meetings the firm accepts the Quote, and Quote.accept wins the Deal.