Create a Quotation
Create a quotation when a customer asks for pricing. A quotation can hold any number of units (the AC equipment being installed) and any number of items (services, parts, or anything billable that isn't a unit).
A quotation starts in pending status. You can keep editing it freely until you send it to the customer.
Before you start
- You have the
quotations.createpermission. - You know which customer the quotation is for. If you don't yet, leave the customer blank and attach one later.
- To set a discount or override the tax rate, you also need the
quotations.pricingpermission. Without it, you won't see any pricing fields at all.
Steps
-
Open Quotations
Select Quotations in the top navigation bar.
-
Start a new quotation
Select the green New button at the top-left of the list.
-
Fill in Basic Information
- Customer — search by name, company, or email and pick from the dropdown. You can also leave this blank and attach a customer later.
- Name / Reference — short label shown in the quotation list, e.g. "3-zone install — Smith residence".
- Lead Type —
call,reference,website,repair, or whatever your team has configured. - Lead Source — free text, e.g. "Yelp", "Carlos R. (existing customer)", "Walk-in".
- Customer Requests — what the customer is actually asking for, in their words. Becomes context for whoever picks up the work.
-
Fill in the Service Address
This is the install address. It carries through to the work order when the quotation is converted later.
- If you picked a customer in step 3, select Use Customer Address to copy address, city, and country from the customer record.
- Otherwise, type them in directly.
-
Add the units
Select Add Unit in the Units (Models) card for each AC unit being quoted.
- Model — pick from the device model dropdown. With pricing permission, the cost auto-fills from the model's default cost.
- Notes — small text field under the model. Use it for placement details, e.g. "Master bedroom", "Server room rack 2". Carries forward to the work order.
- Cost (pricing only) — override the auto-filled cost if needed.
- Disc. % (pricing only) — discount applied to this unit only.
-
Add the items
Select Add Item in the Items card for each service, part, or extra charge.
- Item — pick from the catalog dropdown, or enter a custom name for one-off line items. One of the two is required.
- Qty — must be greater than
0. - Unit Cost (pricing only) — per-unit cost.
- Disc. % (pricing only) — discount applied to this item only.
-
Set the quotation-level pricing (Pricing permission only)
The Quote Summary card on the right.
- Overall Discount % — applies to the subtotal before tax.
- Tax Rate % — defaults to the system tax rate from Settings (typically
17). - The summary updates live as you change values, ending in Grand Total.
-
Save the quotation
Select the green Create Quotation button at the bottom of the right-side summary card. The quotation is created in
pendingstatus and you're taken to its edit page.
What happens next
- Status is
pending. The quotation is fully editable. - A unique public URL is generated (
/q/<guid>) — but it's not delivered to anyone yet. - Totals calculate as:
(units + items) − line discounts − overall discount + tax. - The quotation appears at the top of the Quotations list.
From here you can, in the Status card on the right:
- Keep editing as the scope changes.
- Select Mark as Ready to Review to flag it for a manager. Status becomes
ready_to_review. - Select Send to Customer to deliver it by email or WhatsApp. Status becomes
submittedand the quotation locks — no more edits.
Sent quotations lock. There's no edit and no unsend. Confirm units, items, totals, and the customer's email or WhatsApp number before you select Send to Customer.
Common situations
| Situation | What to do |
|---|---|
| Customer wants two AC units in different rooms | Add two units in step 5. Use the Notes field on each to identify placement. |
| You're quoting a service call only (no install) | Skip the Units card. Add the labor and any parts as items in step 6. |
| The customer doesn't exist in TuffOps yet | Leave Customer blank. Save the quotation. Create the customer separately, then return and attach them on edit. |
| You're quoting something almost identical to an old quotation | Open the old one and select Duplicate Quotation in the Actions card on the right. The copy is pending and fully editable. |
| Sales rep can see prices but can't change the discount | They have quotations.view and quotations.edit but not quotations.pricing. Grant the permission, or have a manager set the discount. |
| You don't see your custom item in the catalog | Add it under Settings → Items first. Or type a custom name in the Item column for a one-off line. |
Troubleshooting
The New button isn't there.
You're missing the quotations.create permission. Ask an admin to grant it under Settings → Users.
You don't see Cost, Discount, or the Quote Summary at all.
You don't have the quotations.pricing permission. Pricing fields are hidden, not greyed out. The quotation will save with 0 discount and the system default tax rate.
Save fails with "Each item must have either an existing item selected or a custom name."
You added an item row but didn't pick from the catalog or enter a custom name. Fix the row, or remove it.
Totals look wrong.
Discounts apply before tax. The order is: line-level discounts on each unit/item → overall discount on the subtotal → tax on the after-discount amount. Check each row's Disc. % column for stray values.
Related
- Send a Quotation to the Customer — pick email or WhatsApp channels, the locking rules, and what the customer sees.
- Convert a Quotation to Work Orders — turn an accepted quotation into one or more work orders.
- Create a Work Order — skip the quotation and create a work order directly.