Skip to main content
Dispatch playbook: 30 ready-to-deploy Trigger→Condition→Action automation rules to eliminate missed appointments for a 5‑tech pool service

Dispatch playbook: 30 ready-to-deploy Trigger→Condition→Action automation rules to eliminate missed appointments for a 5‑tech pool service

The rules a dispatcher can copy, paste into their tool of choice, and have running before the Monday route drops

Most dispatch failures on a 5-tech pool crew don't come from a bad tech or a lazy customer. They come from a gap in the handoff — a job that got confirmed but not routed, a gate code that lived in someone's text messages, a same-day cancellation that nobody backfilled until 2pm. Those gaps look small individually. Add them up across a week and you've got two or three trucks running under capacity, a couple of angry commercial accounts, and a dispatcher who spends the afternoon apologizing instead of scheduling.

This piece is the hands-on companion to the scheduling rulebook for pool services. The rulebook covers how to think about balancing recurring, seasonal, and emergency work. This one gives you the actual rules — Trigger → Condition → Action, with real numbers you can adjust — plus the message templates, tool recipes, reassignment logic, and dispatcher scripts to make them stick.

Everything below assumes a crew of 5 techs, a mix of residential recurring and commercial accounts, and one of the usual field platforms (ServiceTitan, Jobber, or Housecall Pro) wired to Zapier or Make. You do not need all 30 rules. Pick the 8–10 that hit your worst leak first.

How to read these rules (and the numeric defaults you'll tune)

Every rule follows the same shape:

  1. Trigger — the event that fires the automation
  2. Condition — the check that decides whether to act
  3. Action — what actually happens

The numbers in each rule are defaults, not gospel. A crew doing 25 stops a day per tech has different thresholds than one doing 12 commercial visits. Where there's a number, I'll tell you what it's tied to so you can move it intelligently.

  1. 5 techs × ~18 residential stops/day = ~90 stops/day on paper
  2. Realistic effective capacity after drive time and buffers

    ~72–78 stops/day

  3. Roughly 340–360 recurring accounts serviced weekly
  4. 6–10 emergency/same-day requests per week in peak summer

Keep that ~75-stop effective ceiling in your head. Half these rules exist to protect it.

Block 1: Confirmation and no-show prevention (Rules 1–8)

The single cheapest way to reduce missed appointments is a confirmation cadence that actually reflects when people cancel — which is almost never the moment you'd expect.

Rule 1 — 48-hour confirmation blast

  1. Trigger

    Appointment is 48 hours out (scheduled daily 5:00pm batch)

  2. Condition

    Appointment status = Scheduled AND customer has a valid mobile number

  3. Action

    Send SMS template C1, set status to "Confirmation Sent"

Rule 2 — Unconfirmed 24-hour nudge

  1. Trigger

    Appointment is 24 hours out

  2. Condition

    Status still = "Confirmation Sent" (no reply logged)

  3. Action

    Send SMS template C2 with one-tap reply options, flag for dispatcher review at 3pm

Rule 3 — Same-day gate/access check

  1. Trigger

    6:30am on service day

  2. Condition

    Job notes contain no gate code AND account type = gated/HOA

  3. Action

    Fire alert to dispatcher channel; hold job from route until resolved

Gate access is probably the most under-tracked cause of a "missed" residential visit. A tech shows up, the side gate is padlocked, and now that's a wasted 20-minute round trip plus a reschedule. Rule 3 catches it before anyone drives anywhere.

Rule 4 — Explicit decline handling

  1. Trigger

    Customer replies "cancel" / "reschedule" / "no"

  2. Condition

    Reply received on a confirmed job

  3. Action

    Set status to "Needs Reschedule," remove from route, add to backfill pool (see Block 3)

Rule 5 — Repeat no-show flag

  1. Trigger

    Tech marks job "No Access / No Show"

  2. Condition

    Same account has 2+ no-access events in trailing 60 days

  3. Action

    Tag account "Chronic Access," notify account manager, queue for a policy conversation

Rule 6 — Commercial pre-shift confirm

  1. Trigger

    7:00am on service day

  2. Condition

    Account type = commercial AND requires on-site contact

  3. Action

    Send template C3 to site contact confirming ETA window

Rule 7 — Weather-driven proactive notice

  1. Trigger

    Weather feed shows >70% rain probability in service zone before 10am

  2. Condition

    Route has outdoor-only tasks with no indoor equipment work

  3. Action

    Send template C4 offering to keep or move the visit; log responses to dispatcher

Rule 8 — Confirmation escalation to call

  1. Trigger

    Job is 4 hours out

  2. Condition

    High-value account (monthly value > $180) AND still unconfirmed

  3. Action

    Create dispatcher task "Manual call" with account context attached

Message templates for Block 1

  1. C1 (48h)

    "Hi {first_name}, this is {company}. Your pool service is set for {date} between {window}. Reply YES to confirm or RES to reschedule."

  2. C2 (24h)

    "Quick check {first_name} — still good for tomorrow {window}? Reply 1 = Yes, 2 = Reschedule."

  3. C3 (commercial)

    "Good morning — {tech_name} will be on-site at {property} today between {window}. Please ensure equipment room access. Reply if that's an issue."

  4. C4 (weather)

    "Heads up {firstname}, rain's likely today. We can still service or shift to {altdate}. Reply KEEP or MOVE."

One pattern worth calling out: crews that add the one-tap "1 / 2" reply in C2 get noticeably higher confirmation rates than crews using open-ended prompts. People answer a number. They ignore a paragraph.

Block 2: Capacity protection and overbooking guards (Rules 9–15)

This is where the 75-stop ceiling earns its keep. Overbooking doesn't announce itself — it shows up as the last three jobs on a route bleeding past 6pm, then getting bumped to the next day, then snowballing into the rest of the week.

Rule 9 — Daily capacity cap

  1. Trigger

    New job scheduled or moved onto a route

  2. Condition

    That day's total assigned stops > 78 (crew ceiling)

  3. Action

    Block assignment, route to "Overflow Review" queue

Rule 10 — Per-tech load guard

  1. Trigger

    Job assigned to a tech

  2. Condition

    That tech's day > 18 stops OR estimated drive+work minutes > 480

  3. Action

    Warn dispatcher, suggest next-lightest tech

Rule 11 — Emergency slot reservation

  1. Trigger

    5:00pm route build for next day

  2. Condition

    Peak season (June–Aug)

  3. Action

    Hold 2 slots per day unassigned for same-day emergencies; release at noon if unused

Rule 12 — Drive-time sanity check

  1. Trigger

    Route finalized

  2. Condition

    Any two consecutive stops > 35 min apart

  3. Action

    Flag for re-sequencing before dispatch

Rule 13 — New account onboarding buffer

  1. Trigger

    First-ever visit to a new account scheduled

  2. Condition

    Account age < 14 days

  3. Action

    Add 15-min buffer to the job (first visits always run long)

Rule 14 — Commercial time-window lock

  1. Trigger

    Commercial job scheduled inside a contracted window

  2. Condition

    Window is contractually fixed (e.g., pool must be serviced before 9am open)

  3. Action

    Lock job to that slot, prevent auto-reshuffle

Rule 15 — Overflow escalation

  1. Trigger

    Overflow Review queue has 3+ jobs at 4:00pm

  2. Condition

    Next 2 days also at capacity

  3. Action

    Alert operations manager; trigger decision: overtime slot, weekend visit, or customer-offered alternate date

Worked capacity example for the 5-tech crew

Here's how these guards behave on a real-feeling Tuesday in July:

TechAssigned stopsEst. minutesGuard status
Tech A17440OK
Tech B19495Rule 10 warning
Tech C16410OK
Tech D18470OK
Tech E14360Light — backfill target
Total84—Rule 9 blocked at 79

The system blocked jobs 79 and 84 at scheduling time and pushed them to Overflow Review. Rule 10 flagged Tech B as overloaded. The obvious move — visible in seconds — is shifting two of Tech B's stops to Tech E, who's running light. That's a 30-second dispatcher decision instead of a discovery at 5:45pm when Tech B calls in exhausted.

Start Rule 9 slightly below your theoretical paper ceiling and raise it only after two weeks of monitoring to account for drive-time variance.

The insight most 5-tech shops miss: your effective ceiling is lower than your theoretical one, and the gap is almost entirely drive time. A route that looks like 90 stops on paper is really about 75 in the truck. Setting your Rule 9 cap at the paper number guarantees late finishes — every time.

Block 3: Reassignment and fallback flows (Rules 16–22)

A confirmed job with no one to run it is worse than an unconfirmed one. These rules handle the two scenarios that cause the most damage: a tech goes down mid-day, and a slot opens up that needs backfilling fast.

Rule 16 — Tech-down redistribution

  1. Trigger

    Tech marked "Unavailable" (sick, truck breakdown) before or during shift

  2. Condition

    That tech has 5+ remaining stops

  3. Action

    Auto-redistribute remaining stops by proximity to other techs' current locations, cap each recipient at Rule 10 limits, notify dispatcher with proposed split for one-tap approval

Rule 17 — Cascading fallback

  1. Trigger

    Redistribution can't place all stops within capacity

  2. Condition

    Leftover stops > 0

  3. Action

    Move lowest-priority recurring stops to next available day, protect all commercial and emergency jobs

Rule 18 — Backfill from cancellation

  1. Trigger

    A confirmed job cancels (from Rule 4)

  2. Condition

    There's a "Needs Reschedule" or waitlist job within 15 min of the freed slot

  3. Action

    Offer the slot to that customer via template R1; auto-assign on acceptance

Rule 19 — Priority order for reassignment

  1. Trigger

    Any reassignment event

  2. Condition

    Multiple jobs competing for limited capacity

  3. Action

    Rank by: (1) commercial contractual, (2) emergency/safety, (3) high-value recurring, (4) standard recurring, (5) flexible/first-visit

Rule 20 — Skill-match check

  1. Trigger

    Job reassigned to a different tech

  2. Condition

    Job requires a skill tag (e.g., heater repair, VS pump) the new tech lacks

  3. Action

    Block reassignment, route to skill-qualified tech pool only

Rule 21 — Reassignment customer notice

  1. Trigger

    A job's assigned tech changes after confirmation

  2. Condition

    Customer has been told a tech name

  3. Action

    Send template R2 with new tech name and updated window

Rule 22 — Same-day emergency intake

  1. Trigger

    Inbound emergency request logged

  2. Condition

    Reserved emergency slot available (Rule 11)

  3. Action

    Auto-slot into nearest reserved capacity; if none, escalate to dispatcher with overtime option

The reassignment workflow in plain language

When Tech D texts "truck won't start" at 8:10am with 12 stops left, here's the chain: Rule 16 fires, pulls Tech D's remaining stops, and sorts them against the live positions of A, B, C, and E. It respects the Rule 10 caps, so it won't dump all 12 on the nearest guy. It builds a proposed split — maybe 3 to E (who's running light), 2 each to A and C, and moves 5 low-priority recurring stops to Wednesday via Rule 17. The commercial stop that was on D's route? Rule 19 keeps it protected and finds it a qualified tech. The dispatcher sees one screen with a proposed plan and hits approve. Customers whose tech changed get template R2 automatically.

Here's a visual of that reassignment flow if you want to map it into your automation builder.

Process diagram

Done manually, that's 25–40 minutes of phone calls and whiteboard math while the clock ticks. Structured as rules, it's a review-and-approve decision that takes a few minutes.

Templates for Block 3

  1. R1 (backfill offer)

    "Hi {first_name} — a slot opened up today between {window}. Want it? Reply YES and we'll lock it in."

  2. R2 (tech change)

    "Update {firstname}: {newtech} will handle your service today, {window}. Everything else stays the same."

When Tech D's truck died in week four, the redistribution flow reshuffled the day in a few minutes instead of the usual scramble.

Block 4: Escalation matrix and dispatcher decision rules (Rules 23–30)

The last block is about deciding who acts when — so a stuck job doesn't sit invisible until a customer complains.

Rule 23 — Late-start alert

  1. Trigger

    Tech hasn't started first job by 8:30am

  2. Condition

    No "en route" or "unavailable" status

  3. Action

    Ping tech; if no response in 15 min, alert dispatcher

Rule 24 — Job running long

  1. Trigger

    Tech on-site past 2× the job's estimated duration

  2. Condition

    No status update

  3. Action

    Prompt tech for update; flag downstream stops as at-risk

Rule 25 — At-risk cascade notice

  1. Trigger

    A route falls 45+ min behind schedule

  2. Condition

    3+ downstream stops affected

  3. Action

    Proactively notify affected customers of revised windows via template E1

Rule 26 — Stalled job escalation

  1. Trigger

    Job in "Needs Reschedule" > 24 hours

  2. Condition

    No new date assigned

  3. Action

    Escalate to operations manager

Rule 27 — Missed appointment autopsy

  1. Trigger

    Job closed as "Missed" (neither party fault resolved)

  2. Condition

    Any missed job

  3. Action

    Auto-create a review ticket capturing root cause tag (access / capacity / no-show / tech-down / weather)

Rule 27 is the quiet MVP of this whole playbook. You can't fix what you don't categorize. After a month, that root-cause tag tells you exactly which of the other rules to tighten — and which problems are actually just noise.

Rule 28 — VIP/at-risk account watch

  1. Trigger

    Any schedule change on a flagged at-risk account

  2. Condition

    Account tagged "retention risk" or high LTV

  3. Action

    Notify account owner directly, not just dispatch queue

Rule 29 — End-of-day incomplete sweep

  1. Trigger

    6:00pm

  2. Condition

    Any confirmed job not marked complete or rescheduled

  3. Action

    Compile incomplete list, assign to next-day priority, notify affected customers

Rule 30 — Weekly leak report

  1. Trigger

    Sunday 6:00pm

  2. Condition

    Always

  3. Action

    Generate summary: missed count by root-cause tag, backfill success rate, capacity utilization by tech

Escalation matrix

SituationFirst responderTime to escalateEscalates to
Unconfirmed high-value jobAutomation (nudge)4 hrs outDispatcher (manual call)
Tech down mid-shiftAutomation (redistribute)ImmediateDispatcher approval
Overflow queue buildingDispatcher4:00pmOps manager
Stalled rescheduleAutomation flag24 hrsOps manager
Retention-risk changeAccount ownerImmediate—

Dispatcher scripts

  1. Access hold (Rule 3)

    "Hi, we've got you on the route today but our tech needs the gate code to get to the equipment. Can you text it over or leave the side gate unlocked before {window}?"

  2. Overflow reschedule offer

    "We're fully booked today and I'd rather not rush your service. I can get you first thing tomorrow at {window} — does that work?"

  3. Manual confirmation call

    "Just confirming {tech_name} for your pool today between {window}. Anything we should know before we roll up?"

Template E1 (at-risk window)

"Hi {firstname}, running a bit behind today. Your new window is {newwindow}. Sorry for the shuffle — {tech_name} will still take good care of the pool."

Tool-integration recipes

You don't need custom development to run these. The mapping to common stacks is fairly straightforward:

  1. ServiceTitan + Zapier

    Use ServiceTitan's job status webhooks as triggers. Route confirmation and reassignment SMS through your existing messaging integration. Capacity checks live in a Zapier filter step comparing daily job counts against your cap.

  2. Jobber + Make

    Jobber's visit and status triggers feed Make scenarios. Make handles the branching logic well — the redistribution proposals in Rule 16 are cleaner here because of the router modules.

  3. Housecall Pro + Zapier

    Trigger on schedule changes and job status. Housecall's built-in reminders cover part of Block 1, so start your custom rules at Block 2 to avoid double-texting customers.

One practical note regardless of platform: keep the decision in the automation and the judgment with the dispatcher. Auto-block overbooked jobs, auto-propose reassignments — but let a human approve anything a customer will feel. Fully hands-off dispatch sounds efficient right up until an edge case hits and a customer gets a bizarre experience nobody can explain.

Field platforms with built-in automation logic make this cleaner than the Zapier-glue approach, because the capacity math and status data already live in one place instead of being shuttled between tools. But the rules themselves are what matter. The plumbing is negotiable.

A real scenario: what this fixed on a 5-tech crew

A residential-heavy pool company running 5 techs and roughly 350 weekly recurring accounts was missing 9–12 appointments a week during peak summer. Once they started tagging root causes, the breakdown looked like this: about half were no-access issues (gate codes, dogs, locked equipment rooms), a third were overbooking bleed where the last stops got bumped to the next day, and the rest were tech-down days with no fast redistribution plan.

They deployed roughly a dozen of these rules — the full Block 1 confirmation cadence, the Rule 9 capacity cap set at 78, Rule 16 redistribution, and the Rule 27 autopsy tagging.

Inside about six weeks, weekly missed appointments dropped to the 2–4 range. The confirmation cadence alone killed most of the no-access misses because customers were prompted about gate access the day before. The capacity cap stopped the end-of-day bleed. And when a tech's truck died in week four, the redistribution flow reshuffled the day in a few minutes instead of the usual scramble. Nobody added staff. They just stopped leaking jobs they'd already won.

Where to start (and where not to)

Don't deploy all 30 at once — you'll drown your dispatcher in alerts and your customers in texts. A sane sequence:

  1. Week 1

    Block 1 confirmation rules (1, 2, 3, 4). Immediate no-show reduction, low risk.

  2. Week 2

    Capacity guards (9, 10, 11). Protect the ceiling.

  3. Week 3

    Reassignment core (16, 17, 19). The tech-down safety net.

  4. Week 4

    Escalation and reporting (27, 29, 30). Now you can see what's still leaking.

Run it as a simple A/B if you can: apply the confirmation cadence to half your accounts for two weeks and compare no-show rates against the untouched half. The difference is usually obvious enough that the rest of the rollout sells itself internally.

When this makes sense: any crew of 4+ techs where the dispatcher is spending afternoons firefighting instead of planning tomorrow.

When it's a bad idea: a 1–2 tech operation where the owner is the dispatcher and knows every account personally. At that scale, the automation overhead outweighs the benefit — just run tight confirmations and skip the rest.

Missed appointments on a small pool crew are almost never one big failure. They're a dozen small handoff gaps that nobody owns. These rules don't replace your dispatcher's judgment — they just make sure the boring stuff never falls through the cracks, so that judgment gets spent where it actually matters.

For the strategic layer behind these tactical rules — how to balance recurring, seasonal, and emergency demand without overbooking in the first place — the scheduling rulebook for pool services is the companion piece to read next.

Built for Pool Service Tailored to pool maintenance workflows and field service needs
Save Time Streamline scheduling, dispatch, and daily task management
Delight Customers Automated updates and reliable service delivery
Grow Revenue Increase repeat business and optimize technician utilization