Quotes
A quote is a priced list of line items with a title, an optional expiry date and notes. Quotes live under Sales, Quotes. Each one is numbered in order within your workspace.
What a quote is linked to
| Link | Why it matters |
|---|---|
| Deal | The opportunity the quote is trying to close. The deal page lists its quotes. |
| Contact | The person who receives the quote. Their record shows it. |
| Company | The account being quoted. |
| Offerings | Each line item can point at a catalog item, which fills in the name and current price. The offering page lists every quote that includes it. |
Every link is optional. A quote on a deal with no contact or company set picks both up from the deal when it is created.
Create a quote
- Open Sales, Quotes and choose New quote.
- Give it a title, and pick the deal, contact and company it is for.
- Add line items. Choosing an offering fills the name and unit price from the catalog; both stay editable, and a line with no offering is a custom line.
- Set Valid until if the price should expire, add any terms under Notes, and create it.
You land on the quote page, which shows the line items, the total, and links to the deal, contact, company and each offering.
Status
| Status | Meaning |
|---|---|
| Draft | Being built. The default. |
| Sent | The buyer has it. |
| Accepted | The buyer said yes. |
| Declined | The buyer said no. |
Change the status from the quote page or with the quick actions on the list. Statuses are a record of what happened, not a workflow: you can move between any of them.
Find quotes
The list has a search box (title, number, contact, company or deal name), a status filter and a deal filter. The filters live in the address bar, so a filtered list survives opening a quote and coming back, and can be shared with a colleague.
Quotes in the AI connector
The MCP connector exposes four quote tools:
list_quotesfilters by status, deal, contact or free text.get_quotereturns the line items, total and links of one quote.create_quotebuilds a quote from a title and line items, optionally on a deal, contact and company. The assistant should confirm the lines and prices with you first.update_quote_statusmoves a quote to draft, sent, accepted or declined.
get_offering lists the quotes that include an offering, so an assistant asked "how is the widget selling" can see quotes, deals and campaigns together. The same offering detail includes the offering's internal notes under a heading marked "do not send to buyers": pricing floors and negotiation guardrails the assistant should apply but never paste into a quote or an email.
API
Quotes are available at /api/quotes (list, with q, status, dealId, contactId and offeringId query parameters, and create) and /api/quotes/{id} (read, update, delete). Responses are wrapped as { quote } and { quotes }. Create and update accept title, dealId, contactId, companyId, validUntil, notes, status and lineItems (name, offeringId, quantity, unitPrice). Relation ids must belong to your workspace; an unknown one returns a 400 with a plain message such as Contact not found..