Quotes

Overview
A quote passes through six states: draft, sent, accepted, rejected, expired and converted.
The last is the interesting one: converted means something came of the quote — a project, an order, an invoice, depending on the installed modules. The quote remains and evidences what was promised; delivery runs on alongside.
The list shows quote, status, total and validity date, plus a total of open quotes — the figure that shows how much is currently in the balance.
Core tasks
Create a quote. New quote requires a title and a customer; brand, document currency, validity date, owner and introduction are optional. Left empty, the introduction takes the standard text — see Finance settings.
Enter line items. Per line: description, quantity, unit, unit price, discount in percent and VAT rate; subtotal, tax and total are calculated. The tax display decides whether net or gross is shown.
Set the texts. Introduction and terms can be written freely or inserted from a text template.
Send and share. Send takes the regular route to the customer. Share additionally creates a share link — and the notice attached to it is to be taken literally: anybody with this link can view the quote. There is no further check; treat it like the quote itself.
Close. Accept, Reject and Convert complete the process.
Renew. Once a quote has expired, Renew appears. The dialog asks for the way first and then for the new validity date:
- As a new quote — a copy is created as a draft with all items, texts and terms. The expired
quote stays as it is, because the customer holds it; the number for the new document is assigned when it is sent.
- Reuse this quote — the same document returns to draft with the new date. Number and history
stay; after editing you send it again.
An expired quote is therefore no longer a dead end. Accepted, rejected and converted quotes cannot be renewed — those hold a decision, not a lapsed deadline.
Produce a PDF. The quote can be output as a PDF — layout and brand come from the document templates.
Fields in detail
The What it does column answers what changes in the system — not what the field is called. The grey name behind the label is the API field: the same thing runs under that name through automation, import and AI tools.
Draft and issued are two states. While the quote is a draft, every field can be changed. Issuing turns it into a document with a number and fixed amounts; after that, changes mean a new version.
Document header
| Field | Required | Values / format | What it does |
|---|---|---|---|
Customer customerId | yes to issue | an existing customer | The recipient. Address, payment terms and language come along as defaults. |
Title title | no | text, max. 255 characters | The heading of the quote. Appears on the document and in the list. |
Deal dealId | no | an existing deal | Links the quote to the opportunity. The deal shows it in its record, and on winning the value is taken from here. |
Owner ownerId | no | an employee | Who is responsible for the quote. Appears as the contact person on the document. |
Valid until validUntil | no | date | How long the quote stands. After it passes, the quote moves to expired on its own — which is why a quote without a date hangs open in the list forever. Expired does not mean lost: Renew sets a new date. |
Brand brandId | no | one of your brands | Which brand quotes. Determines number range, document template and sender. |
Currency currency | no | a configured currency | The currency of the document. The rate is frozen on issue. |
Payment terms paymentTermUlid | no | master data "payment terms" | Deadline and discount printed on the document and carried into a later invoice. |
Document template documentTemplateId | no | a configured template | Layout of the PDF. Empty means the brand's standard template. |
Tax display taxDisplayMode | no | net, gross, tax free | Whether calculation and display are net or gross. Switching recalculates the whole document. |
Introduction introText | no | text, max. 10,000 characters | The text above the items. Selectable from a text block; placeholders resolve on creation. |
Closing text / terms terms | no | text, max. 10,000 characters | The text below the items — delivery terms, notes, legal wording. |
Deposit percent depositPercent | no | 0 to 100 | The promised deposit as a share. Kept as a field instead of inside the closing text so that acceptance can pass it on to the order. |
Deposit amount depositAmount | no | amount | The same as a fixed amount — the alternative to the percentage. |
Lead time (days) leadTimeDays | no | 0 to 3650 | The promised delivery time from the order date. Empty means not promised. Passed on to the order on acceptance. |
Line items and document discount
The item list items has the same structure as on the invoice: description, quantity, unit, unit price, discount %, VAT % — plus headings, free text, subtotals and page breaks as row types of their own.
| Field | Values / format | What it does |
|---|---|---|
| Optional (per item) | yes/no | The item is shown but does not count towards the total. Meant exactly for this: making variants visible without inflating the quoted price. |
Document discount percent documentDiscountPercent | 0 to 100 | Reduction on the whole quote, after the item discounts. Spread proportionally across the tax rates. |
Document discount amount documentDiscountAmount | amount | The same as a fixed amount. Percent and amount exclude each other. |
Accepting, rejecting, sending
| Field | Values / format | What it does |
|---|---|---|
Reason reason | text | On rejection: why. The entry the loss report is later built from. |
Create project createProject | yes/no | On acceptance a project is created as well, carrying the quote's data. |
Create licences createLicenses | yes/no | On acceptance licences are created from the items that call for them. |
Create contract createContract | yes/no | On acceptance a contract is created — the route from a one-off quote to recurring billing. |
Way renewMode | As a new quote or Reuse this quote | How an expired quote becomes valid again. As a new quote creates a copy as a draft (items, texts and terms carried over); the old quote stays expired and unchanged, and the new number is drawn when it is sent. Reuse this quote returns the same document to draft with a new validity date; number and history stay, and you send it again after editing. The copy is the clean route once the customer has seen the old version. |
Dispatch dispatch | recipients, subject, body, attachments | Mailing the quote. Recipients come from the contacts, subject and body from the mail template; the document PDF is always attached. Dispatch creates an entry in the communication history. |
Settings & permissions
- Module
module.quote. finance.quote.view,.create,.edit,.sendandfinance.quote.convert
for conversion — five separate permissions, because writing, sending and converting carry different weight.
- A completed quote is no longer editable. The line-item list says so. That is not a lock for its
own sake: a quote still editable after acceptance would not be a document.
- The commerce core does the calculating. Tax, rounding and amounts in cents follow the core's
rules, see commerce core.
FAQ & troubleshooting
I can no longer change line items. Then the quote is completed. Create a new one rather than bending the history.
The customer cannot see the quote. Check whether it was sent — or use the share link. In the portal, quotes additionally appear through the release there, see Customer portal.
No PDF is produced. Check whether an active document template exists for quote, brand and language. If the installation's PDF generation is missing, no document is produced at all.
The introduction is empty. Then no standard text is marked as such, see Finance settings.