Collects as they arrive, acts daily
Follow up on quotes that get no reply
Customers who haven't answered your quote get two friendly nudges by text, and you hear if they never reply.
- Runs
- Collects as they arrive, acts daily
- Apps
- Twilio
- AI
- Not needed
- Access
- read+write
Send this to your assistant
Create a ClickRuntime automation: when I post a quote with the customer's phone to this link, text them a follow-up after 2 days and again after 5 days unless they've replied, then email me if they still haven't.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A quote that goes unanswered is rarely a no. The customer is busy, comparing two others or has forgotten, and a quiet follow-up often closes the sale. Most small businesses never send one, because tracking who got a quote last Tuesday and who replied is more bookkeeping than anyone has time for. Thousands in work quietly goes elsewhere.
When you send a quote, this stores it with the customer's number. On a schedule, it checks Twilio for replies from that number, and if there is none it sends the next polite nudge in a sequence you define, stopping the moment the customer answers. When the sequence ends, it emails you the quotes that never got a reply.
Contractors, agencies and anyone selling by quote can use it. It never needs a spreadsheet.
What you get out of it
Quotes that would have gone cold get answered
A gentle follow-up three days later reaches people who meant to reply and forgot. Even a modest conversion of those quotes can pay for a month of effort several times over.
Stops the second they reply
The flow looks for inbound texts from the customer's number before each nudge. A customer who answers is never chased again, which avoids the embarrassing situation of a nudge arriving after a deal is agreed.
Polite and limited
A fixed sequence, such as two or three messages over ten days, keeps the tone helpful. The customer is never harassed, and your business is remembered as persistent rather than pushy.
A closing list for you
When the nudges are done, you get an email of quotes that never answered. That is a clear list to phone, or to mark as lost, so your pipeline stays honest.
No spreadsheet of follow-up dates
Nobody needs to remember when to chase each quote. The schedule is built into the flow, so a busy week does not mean forgotten prospects. A hectic week no longer means quotes go cold unnoticed.
How it works
What happens, step by step
When you send a quote, ClickRuntime saves the customer, their number and the job.
Every day it checks whether they have texted you back. Anyone who has replied is left alone.
Customers who haven't replied get a friendly nudge by text, up to two in total.
If there's still no answer after the second nudge, you get an email so you can decide what to do.
Before it runs live
- Connect Twilio
- Paste your automation's link into the other app's webhook settings
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Twilio steps into one automation
Under the hood
The code that runs this automation
from datetime import date
from clickruntime import on_event, on_trigger, credentials, http, state, notify
FROM = "+447700900000"
NUDGES = ["Hi {name}, just checking you got our quote for {job}. Any questions?",
"Hi {name}, our quote for {job} is still open – reply YES to book or NO if you've gone elsewhere."]
@on_event
def store(event):
quotes = state.get("quotes") or {}
quotes[event.json["phone"]] = {**event.json, "sent_on": str(date.today()), "nudges": 0}
state.set("quotes", quotes)
return {"stored": True}
@on_trigger
def chase(event):
sid = credentials.secret("TWILIO_ACCOUNT_SID")
api, auth = f"https://api.twilio.com/2010-04-01/Accounts/{sid}/Messages.json", (sid, credentials.secret("TWILIO_AUTH_TOKEN"))
quotes = state.get("quotes") or {}
for phone, q in list(quotes.items()):
replies = http.get(api, auth=auth, params={"From": phone, "To": FROM, "DateSent>": q["sent_on"]}).json()["messages"]
if replies:
quotes.pop(phone)
elif q["nudges"] < len(NUDGES):
http.post(api, auth=auth, data={"To": phone, "From": FROM, "Body": NUDGES[q["nudges"]].format(**q)})
q["nudges"] += 1
else:
notify.email_me(f"No reply to quote: {q['name']}", f"{q['job']} for {phone} – two nudges, no answer.")
quotes.pop(phone)
state.set("quotes", quotes)
return {"open": len(quotes)}FAQ
Common questions
How many follow-ups are sent?
How does it know the customer replied?
Does it work if the customer replies by email or phone instead?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Ask customers for a review by text after each job
Once a job is done, the customer gets one polite text with your review link, a couple of hours later.
See how it worksText clients a booking confirmation and reminders
Clients get an SMS when they book, plus reminders the day before and shortly before, never during quiet hours.
See how it worksGet a text when your form or app reports something
A new form entry, order or failed job sends a short SMS to your phone with the details that matter.
See how it worksKeep exploring
Set up “Follow up on quotes that get no reply” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.