This job already has a quote. How should the prices behave on this new version?
This explains the automatic follow-up system so anyone can maintain it — not just whoever built it. It's plain English on purpose.
A ServiceM8 job has one current quote. Each time you send or revise it, the version steps up (v1 → v2 → v3), counted per job — so you'll never see two “v2”s. The moment a newer version goes out, the older one is deactivated: the customer's old link stops working and sends them to the current quote, so they can never accept an out-of-date price. You (staff) can still open any old version — find them under the 🗂 Superseded tab in the Quote portal. Every send also writes a version-stamped note into the ServiceM8 job diary.
Revising never hurts your win rate. A deactivated version isn't a “lost” quote — it's just an earlier draft. Metrics count one job = one opportunity, and only the final version's result (accepted or declined) counts.
When you revise, you're asked how prices should behave: Hold the previously-quoted prices — keep every existing line at the last version's price and only price brand-new items at today's rate (use this when you've agreed a number and are just adding to it); or Update everything to today's prices — re-price the whole quote at current supplier & bundle prices (use this when you're genuinely re-quoting). While a held revision is open, the status line up top reads “Prices: HELD from the previous version.” A signed quote is always frozen forever regardless.
Don't start a brand-new quote for a job that already has one — always Revise the existing one, so the job keeps one clean quote with the right version number.
Every quote is valid for 14 days from the day it's sent. The customer sees “Valid until [date]” on their quote, a gentle “N days left” note in the last 3 days, and once it lapses the Accept button becomes “Ask us to refresh this quote” (with a note that prices move, so we can only hold it 14 days). To change 14 days: it's set server-side in the create_quote/revise_quote steps (interval '14 days'). Re-sending a quote restarts the 14 days fresh.
A robot checks once a day (8am) and sends one friendly nudge at the right moment — never a daily barrage:
Emails come from the same address as the quote itself. SMS will be added when the texting line is ready. To change the timing: the STAGES settings in the quote-reminders job.
The moment a customer asks us something, the ball is in our court: all reminders and the expiry clock freeze — it would be rude to chase them while they're waiting on us. When we reply, the ball goes back to them and the clock restarts fresh (a new 14 days + the cadence begins again from our answer).
On their quote (and in every nudge) the customer can:
Any of these stops the noise — the whole point is a clean yes / no / not-yet, not endless poking.
Each quote quietly tracks: when it was offered, its valid-until date, whether the ball's in our court, how far through the reminders it is, whether it's been opened, its outcome (accepted / declined / follow-up), and the customer's email. The robot only ever nudges a quote that is unanswered, not paused, not snoozed, and inside its window.