Agent 02 · Chasing on day three, seven and fourteen
Quote follow-up
Every quote you send gets chased on day three, day seven and day fourteen, in your name, without you remembering to do it. One reply and the chasing stops that minute.
A quote that is never chased is not a quote. It is a document you spent an evening writing.
Most small firms chase the first time and then stop, because the second chase is the awkward one and there is always something more urgent than an awkward message. So the quote sits there. The customer is not saying no. They have three quotes, a job that is not on fire, and no reason to decide today. Whoever asks last usually gets the work.
This is the agent that asks. It knows what you sent, who you sent it to and when, and it comes back three times over a fortnight. Not a template that reads like a template — your words, your name, the job named. And the moment they reply, by any route, it stops. Nobody has ever bought anything from a firm that chased them after they answered.
What happens, in order
-
01
You send the quote as you always did
Nothing changes about how you write or send it. The agent picks it up from your quoting tool, your sent folder or a row you add yourself, whichever you already do. If it means changing how you quote, we have built the wrong thing.
-
02
It gets written down properly
Who it went to, what the job is, what you quoted, and the date. One row on the quote sheet. That row is the whole memory of the thing — everything after this reads from it.
-
03
Day three: the short one
Two lines. Did it arrive, and is there anything you want going through before they decide. Sent on the channel they contacted you on, because a customer who rang wants a text and a customer who emailed wants an email.
-
04
Day seven: the useful one
This one carries something — when you could start, what the price includes, or the answer to the question people always ask about that kind of job. A chase that adds nothing is just a chase.
-
05
Day fourteen: the last one
Plainly the last. It says so. Either the job is still live or it is not, and the customer gets to say which without feeling rude. That is usually the message that gets an answer.
-
06
Any reply, and it stops
By text, by email, by picking up the phone. The reply watch runs every ten minutes and closes the sequence the same morning. It cannot chase somebody who has already answered you, which is the failure that would cost you the job outright.
-
07
You find out what actually happens
Won, lost, or no answer, against what you quoted. After three months you know your real conversion rate and which of the three messages does the work. Most firms have never had that number.
What it is built from
Named parts, not a black box.
-
Docker
The same compose file as every other agent. This one is another service inside it, not another machine.
-
n8n, self-hosted
The drawing above, as nodes you can watch run. Same login as the phone agent if you already have one.
-
Python 3.12
The workers: reading the register, deciding who is due a chase today, and matching an inbound reply back to the right quote.
-
cron
Two schedules. The nine o'clock chaser, and the ten-minute reply watch.
-
WhatsApp or SMS
The WhatsApp Business API where you already use it, otherwise Twilio or your existing provider. Messages go out from your number, not a short code nobody recognises.
-
Email
Sent through your own mailbox, on the original thread, so the chase lands under the quote rather than as a fresh message with no context.
-
Google Sheets
The quote register. You can open it, sort it and correct it, and the agent reads your corrections on the next run.
-
The warehouse
Still to be chosen — product name to be confirmed. Every quote, every chase and every outcome kept with its dates, so the conversion rate is a figure rather than a feeling.
How it is built, in order
From a bare machine to a live agent.
First line to last. Someone competent could follow this. That is the point of printing it.
-
01
The box it runs in
If the phone agent is already installed, this step is done — it is the same host and the same
docker-compose.yml, with one more service in it. If this is your first agent, it is Docker on a spare PC, a NUC or a VPS at about five pounds a month, brought up withdocker compose up -d. -
02
Deciding where a quote comes from
This is the step that actually decides whether the agent works, and it is the one to be honest about. If your quoting tool has a webhook, we use it. If it does not, we watch your sent folder for the template you use. If neither is reliable, you add a row yourself — ten seconds, and far better than a clever guess that misses one quote in six.
-
03
The register
A Google Sheet with one row per quote and columns for the channel, the value, the date and the outcome. It is deliberately something you can read and edit. If you mark a row as won on a Tuesday, nothing chases it on the Wednesday.
-
04
The cron jobs
Two.
0 9 * * 1-5runs the chaser on weekday mornings only, because a quote chased at eight on a Sunday reads as automated and undoes the point of it.*/10 * * * *runs the reply watch. The full list we run on an agent, and what breaks when each one is missing, is written up in the cron jobs worth setting up for an agent. -
05
The three messages
Written with you, in a half-hour sitting, from quotes you have already sent. Not generated. They go in version control with everything else, so a change to the day-seven message is a change you can see and undo.
-
06
Matching replies back to quotes
The unglamorous half of the build. An inbound text is matched on the number, an email on the thread, and anything the agent cannot place with confidence is flagged for you rather than guessed at. A wrong match closes the wrong quote, so it fails loudly instead.
-
07
Credentials and accounts
Every account is opened in your name, on your card, with us added as a partner. The WhatsApp Business number and the mailbox are yours. If you want us gone, you remove us in one click and the chasing carries on.
-
08
Testing on real quotes before hand-over
We run it against a fortnight of quotes you have already closed and check it would have chased the right ones on the right days and left the rest alone. Then we send live ones to our own phones and mailboxes and reply on each channel in turn, including replying to the day-three message after the day-seven one has been queued. Until it stops every time, it is not finished and we do not invoice.
See it working
-
The three messages
The actual day three, seven and fourteen text for one client, with the job details removed.
-
The register
A screenshot of a real month, with names removed.
-
A won job, end to end
The quote, the two chases, the reply, and the row closing — one thread, with permission.
What this one costs
You get that number before anything starts, not after. If it is not the number you were expecting, say so then — it is a much cheaper conversation than the one at the end.