Guides
Build, approve, and send a quote
Build a quote from a work order, check approval rules, send through Gmail or Xero, and verify the timeline.
This guide shows you how to build a quote from a work order, check approval rules, send it through Gmail or Xero, and verify the quote timeline.

Use it when an admin needs to quote property maintenance work before booking or invoicing. The examples use the docs-demo tenant for H&R Maintenance Docs Demo.
#Open the work order quote path
Start from the work order so the quote keeps its work order, property, agency, and inbox context.
- Sign in to the
docs-demotenant with the seeded admin account. - Open
Work Ordersand selectWO-DOC-1001,Kitchen sink leak assessment. - In
Service Lifecycle, use theQuotecard. - If the card is empty, select
Add Quote. - If a draft already exists, open the
Quotecard and selectEdit Line Items.
The New Quote drawer uses the work order as the quote owner. Do not create a quote from Quotes first if you need Gmail inbox delivery, because Gmail sending needs a linked work order inbox thread.
#Build the quote
Fill the quote fields before you send it.
- Enter
Quote Title *, such asKitchen sink leak assessment quote. - Add notes for the customer in
Customer Notes. - Keep private notes in
Internal Notes. - Set
Valid Until (Days)to the number of days the quote should remain valid. - Use
Booking Statusonly when the quote is linked to a booking.
Add line items with Add Line Item. For WO-DOC-1001, the draft quote starts with Call-out and labour and Standard materials allowance. Add any extra work as separate rows, such as Cabinet base replacement.
Each line item must have these fields before saving:
Line item namewith a description the customer can recognise.Line item type:Labor,Material, orFee.Line item quantitygreater than zero.Line item unit pricegreater than zero.Line item GST, usually10% GSTorNo GST.
Check Subtotal, GST, and Total before you select Create Quote or Save Changes. ATOM blocks saving when a row is missing a name, quantity, unit price, or total.
#Check approval rules before sending
Use the approval preview on the quote form and the current Settings screen. Do not create a separate approval workflow for this step.
The quote form shows one of these messages after it can calculate a total:
Quote approval is required before the work can progress.Customer signature is required by workspace approval policy.No extra customer approval or signature step is required before work can progress.
Approval thresholds come from Settings → Approvals:
Approval thresholdis inclusive. A total at or above the value requires human approval before auto-mode can continue.- Leave
Approval thresholdblank to disable the amount threshold. - Use
0.00to require approval for every quote. Always require approvalapplies to every future quote send.Require approval for these job categoriesapplies when the work order category matches a selected category, such asPlumbing.Require approval after hoursuses the property's state timezone and treats outside Monday-Friday, 8am-6pm as after hours.Require customer signature by defaultadds the signature step to future sends.
You can also tick Require customer approval before work can progress or Require customer signature before work can progress on one quote. The quote still sends immediately. The customer completes the approval or signature from the email link.
The customer-facing approval page lives outside the authenticated app and is shared with booking confirmation and technician dispatch under the same public action-link shell. For the badge states (Pending, Approved, Rejected, Expired, Revoked, Unavailable, Invalid), the side effects on the work order and quote timeline, and the support steps when a recipient cannot complete a link, see docs/operations/external-action-link-flows.md in the repo.
#Choose the send path
Open the quote detail page while the quote is still Draft. Choose the provider that matches the customer communication path.
Use Send via Gmail when the work order has a linked Gmail inbox thread and the outbound quote should appear in that conversation. ATOM sends from the connected Gmail inbox and links the outbound email to the related work order.
Use Send via Xero when the agency's Xero integration should email the quote. ATOM queues Xero delivery and locks quote edits while the Xero send is pending.
If either provider is missing, disconnected, or showing a setup error, pause the send and use Connect and troubleshoot integrations before retrying.
Before sending:
- Confirm the quote status is
Draft. - Confirm the
Totalmatches the amount you intend to send. - Confirm the quote has not expired in
Valid Until. - Enter the customer email address in
Recipient email.
The Gmail button can be blocked with Gmail: Link a Gmail inbox thread to this work order before sending.. Return to the work order inbox thread and link the thread before trying again.
The Xero button can be blocked while another Xero send is in progress. Wait until the quote no longer shows Queued in Xero before sending again.
#Verify the sent quote
After a successful send, the quote detail page changes from Draft to Sent. Check the toast, the status badges, and Timeline before moving on.
For Gmail sends, look for these visible states:
Quote sent via Gmailtoast after the send completes.- Quote status badge changes to
Sent. TimelineshowsSent <date> at <time>.
For Xero sends, look for these visible states:
Quote queued in Xerotoast after ATOM creates the Xero send job.Queued in Xerobadge next to the status while the Xero job is still pending or processing.TimelineshowsXero send queued <date> at <time>while the job is pending.Xero send failedbadge andXero send queued <date> at <time> (delivery failed)inTimelineif Xero delivery fails.- Once Xero delivery completes, the
Queued in Xerobadge clears andTimelineshowsSent <date> at <time>.
If a Xero send fails, the quote stays at Sent and the Xero send failed badge stays visible. The quote hub does not show the send buttons again on a Sent quote, so resolve the failure in Xero (recipient address, Xero integration, or the original Xero quote) instead of resending from ATOM. Create a new quote on the work order if Xero cannot deliver the original.
#Handoff checklist
Before you leave the quote:
- The quote is linked to the correct work order, such as
WO-DOC-1001. Line Itemscontains the final scope and theTotalmatches the amount to send.- Approval or signature requirements match
Settings→Approvalsand any quote-level checkboxes. - The send path is correct:
Send via Gmailfor the linked inbox conversation, orSend via Xerofor Xero-managed delivery. Timelineshows the expectedSent,Xero send queued, orXero send queued ... (delivery failed)state.