Skip to main content

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.create permission.
  • 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.pricing permission. Without it, you won't see any pricing fields at all.

Steps

  1. Open Quotations

    Select Quotations in the top navigation bar.

  2. Start a new quotation

    Select the green New button at the top-left of the list.

  3. 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 Typecall, 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Save the quotation

    Select the green Create Quotation button at the bottom of the right-side summary card. The quotation is created in pending status 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 submitted and the quotation locks — no more edits.
warning

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

SituationWhat to do
Customer wants two AC units in different roomsAdd 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 yetLeave 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 quotationOpen 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 discountThey 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 catalogAdd 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.