Quotations Module
The Quotations module manages the full sales cycle from initial pricing to signed engagement — create a quote, send it to the client, get approval, then convert it directly to a job or invoice.
Quote lifecycle
Draft → Sent → Accepted → Converted
↓
Rejected / Expired
| Status | Meaning |
|---|---|
| Draft | Being prepared, not yet sent to the client |
| Sent | Emailed to the client, awaiting response |
| Accepted | Client has agreed to the terms |
| Rejected | Client declined |
| Expired | Valid-until date passed without a response |
| Converted | Quote has been converted to a job or invoice |
Quotes past their Valid Until date are automatically moved to Expired when the system loads.
Creating a quotation
- Go to Quotations → + New Quote
- Pick the client from your saved customers — type to search. If they're new, click + New Customer at the bottom of the list to create them on the spot. The client's email and address fill in from their customer record
- Set the Valid Until date and add a description / scope of work
- Choose a currency for the quote (starts on your Default Invoice Currency; picking a client with their own default currency asks whether to switch — see Currency)
- Add line items — each with a description, quantity, unit (from your tenant's list of line-item units), unit price, and a per-line VAT applied toggle at your tenant's fixed VAT rate — or import them from Excel
- Add any notes or terms, then save — the quote starts as Draft
Every quotation is linked to a customer record — you can't type a one-off client name. An older quote that only has a typed name still shows it, but you'll need to pick (or create) the customer before you can save changes to it.
There is no inclusive/exclusive VAT choice on the quotation itself — that setting only comes into play later, copied from your tenant's default, when you convert the quote to an invoice.
Currency
Each quotation carries its own currency, chosen from a fixed TZS / USD list, independent of your tenant's base currency — the quote displays, prints, and totals entirely in the currency it was created with.
A new quote starts in Settings → Invoicing & Tax → Default Invoice Currency (or your base currency). If the client you pick has a different Default Currency on their card, you're asked whether to switch; choose Cancel to keep the quote's currency. Line prices are not converted. Converting the quote to an invoice keeps its currency and fills in the invoice's exchange rate from Currency Management when one is saved.
The Pipeline Value and Won Value summary cards on the Quotations list convert every quote to your tenant's base currency before totaling, so quotes in different currencies still roll up into one meaningful figure. If a quote's currency has no configured exchange rate (see Currency Management), an inline warning appears next to these totals instead of silently showing an understated figure.
Importing line items from Excel
For quotes with many line items, click ⇪ Import from Excel next to the line items table:
- Click Download Template for a spreadsheet with the required columns:
Description,Quantity,Unit Price - Fill in your line items and save the file
- Upload it — each row is validated (description required, quantity and unit price must be positive numbers)
- Review the row-by-row preview, then click Import to populate the line items
If the form already has line items, importing replaces them — you'll be asked to confirm first.
Pipeline view
The default view is a Kanban pipeline with one column per status. Click a card to open the quote, and use the status buttons on its detail page to move it along — cards can't be dragged between columns.
Switch to ☰ List for a table with status filter chips and sorting — useful when managing a high volume of quotes.
Exporting the quotations list to Excel
Click ⇩ Export to Excel to download the currently filtered/searched quotations list as a formatted workbook — one row per quotation, with quote number, client, description, valid-until date, status, currency, subtotal, VAT, total, created by, created at, and sent-at, plus a totals row on Subtotal/VAT/Total. This is different from importing line items from Excel, which loads items into a single quotation rather than exporting the whole list.
Sending a quotation
From the quote detail view, click 📧 Send. This opens a pre-filled email form with:
- Recipient email (from client profile)
- Subject and body with quote number and totals
Send it through the system's email, or open it in your own email app. Either way, a Draft quote automatically changes to Sent. If you sent the quote some other way, users with quotation.edit can click Mark Sent on a Draft instead.
Approvals
Once a quote is Sent, users with quotation.approve permission can:
- Accept it — marks it as Accepted, ready to convert
- Reject it — marks it as Rejected (no reason is recorded; use a comment if you want to note why)
- Convert an Accepted quote to an invoice or job (see below)
Users with only quotation.create or quotation.edit don't see Accept/Reject — someone with quotation.approve has to record the client's decision.
Converting to invoice or job
On an Accepted quote, two separate buttons are always available — there's no single unified "Convert" menu:
- 🚀 Convert to Job — creates a new Job for the client (status Open) together with a Draft invoice linked to it, pre-filled from the quote's line items, and opens the job. Because job income only ever comes from invoices, the quote's value shows on the job as pending income until that invoice is posted (or approved, if your tenant uses invoice approval) — see Logistics → Invoicing. The quote is marked Converted.
- 📄 Convert to Invoice — after you confirm, creates a Draft Invoice with all line items, client details, and amounts pre-filled, using the tenant's real invoice-number sequence (not a separate counter that could collide with one issued elsewhere). Each line keeps the VAT amount it had on the quote. The quote is marked Converted.
Converted lines are given the standard TRA tax category. If the quote had a line without VAT, open the new invoice and set that line's tax category before sending it.
Quotations are always VAT-exclusive. If your tenant is set to VAT-inclusive invoicing (Settings → Company → Regional & Tax Settings → VAT Pricing), the converted invoice's line prices are re-expressed as VAT-inclusive so the total the client agreed to on the quote is preserved, rather than treating the same unit price as VAT-inclusive and having the VAT amount disappear into it.
Printing and PDF
Click 🖨 Print on the quote, then 🖨 Print / PDF in the panel that opens, for a print-ready version of the quotation (use your browser's "Save as PDF" to keep a PDF copy). Two templates are available:
- Standard — clean layout with line items table
- Formal — includes company letterhead, terms, and signature block
Templates are configured in Settings → System → Print Templates ("Quotation Layout" section).
If your tenant has WhatsApp Sharing turned on (Settings → Integrations or Settings → Point of Sale — it's an opt-in feature flag, off by default), the same panel also shows a 🟢 Share via WhatsApp button that generates the quotation PDF and opens WhatsApp with it attached (or a link to it, depending on your browser), ready to send.
Duplicating a quote
Use the Duplicate button to create a new Draft copy of any quote — useful for repeat clients or similar engagements. The duplicate gets a new quote number and resets status to Draft.
Comments
Anyone who can open a quotation's detail page can leave a comment — useful for a manager flagging something to clarify before a quote goes out, without it being a formal Accept/Reject action. There's no dedicated comment permission; posting doesn't require anything beyond quotation.view.
- Comments appear in a Comments card on the detail page, oldest first, each showing the author's name and timestamp
- Type into the Add a comment… box and click Post Comment — comments are append-only; there's no edit or delete afterward
- Posting a comment doesn't affect the quotation's status or totals in any way
- Every comment is logged as a Comment Added entry in the System Audit Trail (Settings → System)
Unlike the detail page itself, the Print / PDF output is generated from a separate template (Standard or Formal), not the page you're looking at — comments live on the detail page only and aren't included in what a client receives.
Permissions
| Permission | What it allows |
|---|---|
quotation.view | View all quotations and their details |
quotation.create | Create new quotations and save as Draft |
quotation.edit | Edit line items, pricing, notes, and mark as Sent (a Converted quote can't be edited) |
quotation.approve | Accept, reject, or convert quotations |
quotation.delete | Delete Draft or Rejected quotation records |