The Inbound Call Problem Nobody Talks About
You can automatically send job progress updates to clients by connecting your job management software to an SMS automation that fires whenever a job status changes. When the job starts, a message goes out. When a milestone is hit, another goes out. When the job completes, a final message with a review request sends automatically. A builder running 8 active jobs typically fields 12 status calls per week before this is in place. Most see that drop by 60 to 80 percent within the first month.
It is not that clients are needy. It is that silence feels like a problem. When someone is spending $30,000 on a renovation and has heard nothing for four days, the natural response is to call. They are not checking up on you. They are managing their own anxiety about a large financial commitment.
The same pattern plays out for electricians, plumbers, HVAC technicians, landscapers, and any trade where work happens over multiple days. The client is not on site. They do not know if the job started, if there was a delay, or if you found something unexpected. So they call.
Proactive updates eliminate 80% of inbound status calls. Every call you prevent is 8 minutes of billable time recovered.
Automated job progress updates solve this. Not by flooding clients with messages, but by sending the right information at the right trigger point, before the silence becomes uncomfortable.
What Clients Actually Want to Know
Before building anything, understand what information reduces anxiety. Client calls are usually one of three things:
- Confirmation the job started — "Did your team show up this morning?"
- Status on a specific milestone — "Has the concrete been poured yet?"
- Completion notice — "Is it done? Can I come have a look?"
Occasionally there is a fourth: something unexpected happened. A trades business that proactively communicates a delay before the client notices earns significant goodwill. One that goes silent for three days while a delay sits unaddressed gets a bad review.
Your automated system needs to handle all four trigger types. The good news is that three of them map directly to status changes that already exist in your job management software.
The Architecture: Three Trigger Points
Trigger 1 — Job Started
The moment your team marks a job as "in progress" (or you schedule a start date and it arrives), the system sends the client a message. Something like:
Hi Sarah, this is a message from [Business Name]. Work on your project at 12 Oak Street has started today. We'll keep you updated as we hit each stage. If you have any questions, reply to this message.
That single message eliminates the "did you show up?" call. It also sets the expectation that updates are coming, which reduces mid-job anxiety.
Trigger 2 — Milestone Reached
This one varies by trade. A builder has concrete poured, frame up, lock-up, and practical completion. A plumber has rough-in done and final fix. An electrician has first fix, second fix, and board energised. The milestones depend on your workflow, but every trade has them.
When a milestone status is updated in your job management system, the client gets notified. For longer projects, include a rough timeline to the next milestone so they have a mental anchor:
Hi Sarah, frame inspection has been completed and passed at 12 Oak Street. Next stage is roofing, which we expect to start in approximately 3 business days. Any questions, just reply here.
Trigger 3 — Job Completed
When the job status moves to "complete", the system sends a completion message, requests a review, and attaches any completion documents (certificates, warranty forms, final invoice). All of this fires automatically without a team member doing anything manually.
Hi Sarah, work at 12 Oak Street is now complete. Your completion certificate is attached. We'd love a quick review if you're happy with the job — takes less than a minute: [link]. Thanks for choosing [Business Name].
That automated review request, sent at the exact moment a satisfied client is thinking about the completed job, typically converts at 30 to 40%. Compare that to emailing six weeks later asking "if you have a moment."
Where Job Data Lives and How to Connect It
The automation depends on your job management tool. Here is how the most common setups connect:
ServiceM8, Tradify, or AroFlo
These platforms have built-in job status fields. ServiceM8 has a webhook system that fires on status change. Tradify has a Zapier integration. AroFlo has an API. Any of these can trigger an SMS or email when a job moves to a new status.
The connection looks like: job status changes in ServiceM8 → webhook fires → automation layer receives the event → SMS sent to client phone number stored on the job.
Google Sheets or Airtable as a Lightweight CRM
Many smaller trades businesses track jobs in a spreadsheet. If each row is a job and columns include client phone, status, and milestone, a Google Apps Script or Zapier automation can watch for status column changes and send updates accordingly.
This is less robust than a dedicated job management tool but works well for businesses running 5 to 20 active jobs at a time.
SimPro or Buildertrend
Both have native client portal features that show job progress. But these require the client to log in to see updates, which most clients do not bother doing. The automation layer supplements this by pushing notifications to the client's phone when something changes, rather than waiting for them to check.
No System — Jobs Tracked in the Technician's Head
This is the hardest case and the most common. The fix is not to build automation on top of nothing. The first step is capturing job data somewhere structured: a shared Google Sheet, a basic Airtable base, or moving to a tool like Tradify (starts at $35/month). Once the data is structured, the automation layer is straightforward.
Building It: Three Approaches
Approach 1 — Zapier + Twilio (Low Code, Fast Setup)
If your job data is in a Zapier-connected tool (ServiceM8, Airtable, Google Sheets), this is the quickest path.
- Connect your job management tool to Zapier
- Create a Zap triggered by a status field change
- Add a filter step: only proceed if the new status is "In Progress", "Milestone X", or "Complete"
- Add a Twilio action: send SMS to the phone number field on that job record
- Customise the message body using job fields (client name, address, milestone name)
Cost: Zapier Professional ($49/month) plus Twilio (~$0.07 per SMS in Australia). For 200 status updates per month that is around $63/month ongoing.
Limitation: Zapier charges per Zap run, so high-volume operations can get expensive. The message formatting is also limited to simple text templates.
Approach 2 — Google Apps Script (Free, More Flexible)
If your jobs live in a Google Sheet, a time-triggered Apps Script can check for status changes every 15 minutes and fire Twilio API calls for any rows where the status changed since the last check.
The script maintains a "last notified status" column alongside each job. Every run compares current status to last notified status. On a mismatch, it sends the update and records the new status. No double-sends.
Cost: free (Google Apps Script is included with Google Workspace) plus Twilio for SMS. For 200 messages per month that is around $14/month total.
Trade-off: requires someone comfortable with JavaScript to set up and maintain. Not a half-hour job if you have never written a script before.
Approach 3 — Custom Automation (Built for Your Workflow)
For businesses with more complex requirements, a custom automation handles things the no-code tools cannot:
- Conditional message content based on job type or client preference
- Attaching job completion documents to the SMS or email
- Sending to multiple contacts per job (owner plus site supervisor)
- Escalation logic: if a job has been in "In Progress" for more than 7 days with no milestone update, flag it internally
- Integrating with invoice systems to attach the final invoice on completion
Custom automation handles the edge cases that break Zapier workflows: non-standard statuses, multi-contact jobs, document attachments, fallback channels (send SMS first, fallback to email if the number is missing).
What to Include in Each Update
Keep messages short. Clients do not read long texts. Each message needs four things:
- Who it is from — always include your business name. The client may not have your number saved.
- What happened — one sentence on the specific milestone or status change.
- What happens next — a rough timeframe or next milestone, if relevant.
- How to reply — make it clear they can respond to the message if they have questions.
Avoid vague status messages like "your job is progressing well." That tells the client nothing and they will still call. Be specific: "The slab has been poured and we are waiting 48 hours for it to cure before framing starts."
For completion messages, add the review request as a separate line after the main content, not the headline. Clients who are happy will click it. Those who are not yet satisfied will call you instead, which is also useful information.
Handling the Unexpected: Delays and Problems
The highest-value automation is the one most businesses skip: proactive delay notifications.
When a job that was expected to reach a milestone today has not moved, two things can happen. Option one: the client calls. Option two: your system detects the delay and sends a message before the client has to ask.
This requires a "scheduled milestone date" field on each job. The automation runs daily and compares today's date against any jobs where a milestone was due. If a job is overdue and no update has been sent, the system fires an exception alert to the business owner and, optionally, a proactive message to the client:
Hi Sarah, a quick update on 12 Oak Street. We had some unexpected weather delays this week and the roofing stage has been pushed back 2 days. We now expect to be at lock-up by Thursday. Apologies for the delay and thank you for your patience.
Sending that message before the client calls shifts the dynamic. You are no longer being caught off guard. You are managing the situation. Most clients respond well to this even when the news is a delay — the transparency matters more than the inconvenience.
Measuring Whether It Is Working
Three metrics tell you if the system is doing its job:
- Inbound status call volume — track calls per active job per week before and after. A well-run system cuts this by 60 to 80% within the first month.
- Review conversion rate — what percentage of completion messages result in a review. Benchmark: 20 to 35% for SMS requests sent at job completion.
- Client satisfaction scores — if you send a post-job survey, communication quality ratings should improve materially. Most trades businesses see this as one of their weakest areas in client feedback before automation.
A builder running 15 active jobs who cuts inbound calls from 20 per week to 4 per week recovers roughly 2 hours weekly. Over a year that is 100 hours. At $150/hour of effective labour cost, that is $15,000 in recovered time from one workflow.
Build vs Buy: The Honest Comparison
Here is the breakdown for a trades business running 10 to 30 active jobs:
Built-in job management portal (Buildertrend, Simpro)
- Cost: $200-500/month (platform fee)
- Update delivery: client must log in to see updates — passive, not pushed
- SMS notifications: available but often limited to basic triggers
- Customisation: low — you use their templates
Zapier + Twilio
- Cost: $50-80/month ongoing
- Setup: half a day to a full day if you are comfortable with Zapier
- Flexibility: moderate — works for standard status changes, breaks on edge cases
- Maintenance: moderate — Zapier zaps break when the source tool changes its API
Google Apps Script + Twilio
- Cost: $15-20/month (Twilio only)
- Setup: 1 to 2 days if you are comfortable with JavaScript
- Flexibility: high — you can add any logic you need
- Maintenance: low once stable, but requires a developer to modify
Custom automation (ThreeDayAI)
- Cost: $4,999 one-time, then $15-25/month for SMS infrastructure
- Setup: 3 business days, built around your job management system
- Flexibility: built for your exact workflow, edge cases included
- Maintenance: you own the code, no platform dependency
For a business spending 2 hours per week on status calls, the breakeven on a $4,999 custom build is around 3 months assuming a $75/hour labour cost equivalent. After that, it runs at near zero cost indefinitely. No platform dependency, no subscription to cancel, no workflow breaking when a vendor changes their pricing.
Steps to Get Started Today
If you want to build this yourself:
- Audit your current job data — where are jobs tracked? Do client phone numbers live alongside the job record? If not, that is step zero.
- Define your trigger points — list out every status your jobs move through. Pick the three most meaningful ones to notify clients about. Start simple.
- Sign up for Twilio — get an Australian mobile number ($1/month) and load $20 credit. That covers roughly 280 messages.
- Build the job-started trigger first — the simplest one. Get it sending real messages before building the rest.
- Add a deduplication check — make sure the system cannot send the same status update twice for the same job. A simple "last notified status" field handles this.
- Test with internal jobs — use test jobs with your own number before running against real client data.
- Run for two weeks and track inbound calls — the result should be visible within a fortnight.
If you would rather have it built properly and working in 3 days:
That is what ThreeDayAI does. We scope the automation against your specific job management tool, handle the Twilio setup, build the trigger logic for your milestones, and hand you a system that runs without maintenance. Flat fee, no ongoing platform cost beyond SMS.
