Gutter Cleaning Software: Reminders, Routes and Recurring Bookings With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Gutter Cleaning Software: Reminders, Routes and Recurring Bookings With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Gutter Cleaning Software: Reminders, Routes and Recurring Bookings With AI.

Load each customer into your gutter cleaning software as a recurring job with two visits a year, switch on a reminder about a week before each visit, group visits into route days by neighbourhood, and let AI draft the reminder wording and rebooking replies. Put an opt-out on every message and test it before the first send.

Software only helps if the data is right, so the first job is the dull one: a clean customer list with a reliable next-due date for every address. After that the three parts depend on each other. Reminders fill route days, route days decide which slots you can offer, and the slots decide what a rebooking reply can promise. Build them in that order, one patch at a time.

Follow me on Instagram@sagnikteaches

The customer's year in four messages

Twice-yearly work is a loop, so design the messages before the software settings. Each customer gets four moments, and only one of them is a visit reminder in the software's sense.

Connect on LinkedInSagnik Bhattacharya
MomentStarting-point timingChannelWhat the customer can do
1. Booking windowAbout six weeks before the target dateText or email you send in a batchReply YES to keep the usual slot, or name a day
2. Visit confirmedWhen the visit is createdText or emailConfirm or ask to move it
3. Visit reminderOne day before, at a fixed timeText, plus an earlier emailConfirm or reschedule
4. Job doneSame dayEmail with the proof packSee the work; next visit pencilled in for a named month

Here is what Jobber's own help says about moment 3, because it shows constraints most apps share. Visit reminders are on select plans, and Jobber's pricing page lists automated client reminders from the Connect plan upwards, not on Core. You can schedule two reminders per visit, either one text and one email or two of the same kind. Text templates are limited to 160 characters and cannot include emojis or URLs, which Jobber says helps stop phone carriers blocking its numbers. A text for a visit with no set time only goes out if you set a reminder time, and Jobber suggests a fixed time such as 9:00 the day before. Clients can confirm a text by replying Yes or C. If you move a visit, reminders tied to the old time are cancelled and new ones are scheduled. Text reminders are offered only in some countries, so check yours.

Subscribe on YouTube@sagnikteaches

Moment 1 happens before a visit exists, so it comes from your own template or a bulk text, not from the reminder setting. That is why recurring jobs are the next step: they create the visits that reminders hang on. First, though, get the reminder wording right. Ask the assistant for templates that respect the limits:

Write two reminder texts for a gutter cleaning visit, each under 140 characters, no emojis,
no links. One for the day before, one confirming a booked visit. Use [business], [day] and
[window] as merge fields. Each must end with "STOP to opt out".

Sample output: "Gutter clean tomorrow, 9 to 12, with [business]. Reply C to confirm or call us to move it. STOP to opt out." (107 characters) and "[business] here: your autumn gutter clean is booked for [day], [window]. Reply C to confirm. STOP to opt out." (109 characters). The merge fields will lengthen both once real names go in, so leave headroom under 160. If your app does not reply to "C" the way Jobber does, change the wording to match whatever your app understands.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Three ways to model two visits a year

Jobber's help describes the repeat choices for a recurring job as weekly, biweekly, monthly or a custom schedule, where custom can repeat weekly, monthly or annually. The page does not say whether an interval such as every six months exists, so do not assume it. There is also an "As needed" option that creates the job with no visits at all. That gives three workable set-ups for twice-yearly gutter work.

Set-upHow it worksSuitsCatch
A. One job, custom scheduleOne recurring job per customer on a custom repeatCustomers who always book the same two monthsMay not offer a six-month interval; test with a dummy customer
B. Two annual jobs per customerOne job for spring and one for autumn, each repeating yearlyFixed-month customers who want separate invoicesTwice the records, so a price change is made twice
C. As needed job plus batch visitsThe job holds no visits; you generate them twice a year in batchesGutter work, where the date moves with leaf fall and weatherNothing appears on the diary until you create it, so diarise the batch dates

I would choose C. The right date moves with Leaf Week and the weather, and C lets you create visits patch by patch. Jobber's help describes a New Visits tool for these jobs: it shows recurring jobs on a map with filters (by tag, by description, by line item, or by jobs with no incomplete visits before a date) and can generate visits for up to 100 jobs at a time (help article updated July 2026). So tag each customer with a patch, such as patch-north or patch-east, filter by that tag, and generate that patch's visits in one go. With 240 customers that is three batches under the limit, or six if you go patch by patch.

In the recurring-job form, set invoicing to "After each visit is completed" so every clean produces an invoice reminder. Jobber also offers monthly, when the job closes, a custom schedule and "as needed, no reminders". A fixed price per invoicing period suits a monthly service, not a clean twice a year.

If you are importing a spreadsheet, Jobber's job import has a Repeating column, and As needed is the value to use for gutter work. Check the import's row limit and which users on your account can run it before you start, and import one patch first.

Before you commit, line the requirements up against your own app. This table shows what to look for and what Jobber's pages say, as of October 2026. Connect starts at $99 a month billed annually for one user, or $139 with no commitment, on its pricing page.

StepWhat to look forWhat Jobber's pages say
Recurring work with no fixed dateAn as-needed option and bulk visit creationAs needed repeat; New Visits tool, 100 jobs at a time
Client remindersTwo reminders, a fixed send time, reply to confirmFrom Connect; two per visit; Yes or C to confirm
Route reorderingReorders open visits across a day or weekConnect, Grow and Plus; reorders only visits with no set time, up to seven days, web admins only
Online bookingCustomers pick from slots you allowListed on every plan, Core included
Photos on invoicesCustomer can see before-and-after imagesListed on the pricing page; check which plan includes it
AI call and text answeringTakes rebooking calls, escalates urgent onesReceptionist add-on, $29 a month with 30 conversations, then $0.79 each; included on Plus

Another app may offer different tiers. Housecall Pro, for instance, keeps drive-time optimisation to its top Max plan, according to its own help article. So the useful question is never "which tool", only whether the app you already use can do each row, and at what plan.

Cleaning the customer list before it goes in

Messy lists are why recurring bookings fail. A duplicate customer gets two reminders, and a missing phone number gets none. Use an assistant to clean a copy of the list, never the original. If you use a consumer plan, strip names first: consumer ChatGPT and Claude plans have a model-training switch in privacy settings, while the business plans do not train on your content by default, according to their vendors.

Clean the customer table below. Rules:
- One row per address. Merge duplicates and tell me which rows you merged.
- Columns: address, house type, last clean (YYYY-MM), next due (last clean plus 6 months),
  patch (use my patch list), contact preference, notes.
- Never guess. If a value is missing or ambiguous, write MISSING and say why.
- A note such as "no text" becomes contact preference: no texts.
MY PATCH LIST: [street: patch]
TABLE: [paste]

Three raw rows make a made-up before and after. The raw entries read: "elm rd 14 - 3 bed - did oct 25 - dog in garden"; "14 Elm Road, 3bed, last done 10/2025"; and "Mill Ln 7?, bungalow, spring 2025, no text pls".

AddressHouseLast cleanNext duePatchContactFlags from the assistant
14 Elm Road3-bed2025-102026-04patch-northAnyRows 1 and 2 merged; "oct 25" read as October 2025, please confirm; dog in garden
Mill Lane, number uncertainBungalowMISSINGMISSINGpatch-eastNo texts"7?" is unclear; "spring 2025" gives no month

Without the "never guess" rule, this prompt will happily fill the number as "7 Mill Lane" and read "spring 2025" as April. Both are inventions, and the rule is what stops them. Once last clean holds a real date, the sheet can compute the next visit with =EDATE(C2,6), which adds whole months. Spot-check one row in ten against your invoices, and do not import until the flags column is empty.

Route patches first, days second

A patch is a group of addresses close enough that driving between consecutive visits is short. Decide patches before dates, give each patch a weekday in each season window, and the diary starts to build itself. Two sums tell you whether the plan fits.

First, capacity. Take 240 customers on two visits a year: that is 240 visits per season. At six visits a day, 240 visits need 40 working days, which is eight weeks. Add a 15 percent buffer for rain and sickness and it is 46 days, a little over nine weeks. If your leaf-fall window is shorter than that, either widen the window, offer fewer slots, or add a second crew.

Second, driving. Say clustering cuts the average gap between visits from 14 minutes to 8. With five gaps in a six-visit day, that saves 30 minutes a day, or 20 hours across a 40-day season. At an assumed van-and-crew cost of $60 an hour, that is $1,200 a season. These are illustrative figures, so time your own gaps for a week before you believe them.

Jobber's route optimisation helps with the ordering inside a patch day, within limits: its help says it reorders only visits with no set time, for up to seven days, and only web admins can run it. So keep patch-day visits flexible and give customers a window in the message rather than a clock time on the visit. Without route optimisation, a free map link will do. Google Maps routes are limited to 10 locations including start and end, so six visits plus a start and an end make one link per patch day.

An assistant can propose the patches if you give it the streets and nothing else.

Group these streets into six patches of roughly 40 customers each so that driving between
streets in a patch is short. Use only the street names and area labels I give you. Do not
guess distances. If you cannot place a street, list it under UNPLACED.
Output: patch, streets, customer count.
STREETS: [street, area label, customers]

In one illustrative run it put Mill Lane and Mill Road in the same patch because the names matched, though they sit either side of a railway line. The assistant only knows what you told it, so check every patch on a map before you tag it. Then write the rain-day rule down: a washed-out day moves to the first free day in the same patch, and the app sends the customer a reschedule notice. In Jobber, moving a visit prompts you to notify the client and replaces the old reminders automatically.

Rebooking replies: AI drafts, you hold the diary

When the booking-window text goes out, the replies arrive in a rush: yeses, "can you do Thursday", "how much is it now", "we have moved". An assistant can sort and draft, but the diary stays yours. Give it three things: the reply, the customer's record and the free slots for that patch, pasted as a short list. Forbid any time that is not on the list.

Classify each customer reply as: confirm, reschedule, question, opt-out, complaint or other.
Then draft a reply of under 50 words. Offer only times from FREE SLOTS. Never promise a time
that is not listed and never quote a price that is not in the customer record. For an opt-out,
write one short line confirming that we will stop.
FREE SLOTS (patch-north): [list]
RECORD: [paste]
REPLY: [paste]
Customer replyClassIllustrative draft
"Can we do Thursday instead? We are out until 1."RescheduleThursday works. We have the 1 to 5 window on Thursday 12th. Reply C to confirm. STOP to opt out.
"How much is it now?"QuestionYour usual clean is $[price from the record]. Which suits you: Tuesday 10th or Thursday 12th?
"Please stop texting me."Opt-outUnderstood, we will not text you again.

Two fixes are typical. If the record is missing from the prompt, the assistant answers the price question with the standard price rather than the customer's, so always paste it. And on an opt-out, a first draft often adds "If you change your mind, just reply", which invites exactly the contact the customer asked you to stop. Keep opt-out replies to one line.

If calls matter more than texts, an AI receptionist can take the rebooking calls. Jobber's Receptionist add-on is $29 a month with 30 conversations, then $0.79 each, and is included on Plus. Jobber says it can book jobs into your calendar using the online booking settings you have already configured, turns a message into a follow-up task, handles several calls at once, and can be set to pause at the conversation limit instead of paying overage. Forwarding from your existing number is set up with your phone provider, after a set number of rings or outside business hours, and callers should hear at the start that an AI is answering. Jobber set up with an AI receptionist for junk removal walks through the same add-on in a neighbouring trade.

Opt-outs, consent and quiet hours

There are two kinds of message here: service messages about a visit the customer booked, such as confirmations and reminders, and marketing messages such as plan offers. The rules for each differ between markets, so ask your messaging provider and a qualified adviser what applies to you. The habits below work either way.

  • Record consent. Log the date, the source ("ticked on the booking form", "said yes on the doorstep") and the channel.
  • End every text with the stop line, then test it. Text STOP to your own business number from a personal phone and see what the app does. Ask the provider how it handles the reply and whether the opt-out shows on the customer's record.
  • Treat any clear refusal as an opt-out, including "please stop texting me", not only the keyword.
  • Switch it off in the app. In Jobber, each client's settings include a switch for upcoming visit reminders, and their communication settings let you turn off other automated notifications. Labels change, so search the help centre if you cannot find them.
  • Keep an opt-out list outside the app, so a later re-import cannot revive someone you promised to stop contacting.
  • Set quiet hours you would accept on your own phone, and cap marketing messages at one a fortnight per customer.

A realistic mistake shows why the outside list matters. A customer texted STOP in the spring. In the autumn a fresh export from last year's spreadsheet was imported, and the booking-window text went to that customer again. The fix was a rule that every import is filtered against the opt-out list first, and an illustrative log line to make it easy: "14 Oct, 14 Elm Road, texts, replied 'please stop texting me', app toggle off, email still allowed".

The no-software version: a sheet, a calendar and a map

A one-van firm can run this loop for a season without paying for an app. You need a spreadsheet, a calendar and a map link, plus a weekly habit.

  1. The sheet. One row per customer: address, patch, last clean, next due (=EDATE(D2,6)), contact preference and status. Filter by patch and by "due in the next 14 days".
  2. The calendar. Google Calendar can import a CSV. Only two headers are required, Subject and Start Date, the headers must be in English, and its example dates are month first. Repeating events do not import as a series; they arrive as separate one-time events, so give every visit its own row.
  3. The map. One link per patch day, which fits inside Google Maps' limit of 10 locations including start and end.
  4. The habit. Every Monday, filter the sheet for the next two weeks, ask the assistant to draft that week's reminder texts and replies, and send them yourself from your phone.

This version has no automatic reminders, so the weekly habit is the system. It costs an hour a week and no subscription. If you want help with the spreadsheet formulas, Google Sheets AI prompts has patterns for filters and date maths. Round-based trades face the same problem, and window cleaning round software and AI rebooking and pest control route optimisation for quarterly customers compare how far software goes before a person has to step in.

Five numbers that show whether it is working

Run one patch of about 40 customers through the whole loop first, from booking window to job done, then import the other five once it holds. After a season, measure these. The figures below are illustrative.

MeasureLast seasonThis seasonHow to count it
Customers who book again within the window58 in 10071 in 100Booked visits divided by customers on last season's list
Same-day cancellations per 100 visits114Count from job status
Average minutes between visits on a patch day149Timestamps, or a stopwatch for one week
Reminders that get a replyNot tracked62 in 100Replies divided by reminders sent
Opt-outs per 100 customers messaged12Your opt-out log

Read the last row without alarm: a small rise in opt-outs can simply mean you are now honouring requests you used to miss. A jump after a wording change is different, and the fix is to put the old wording back. The first row is the one that pays. Use it to test whether the twice-yearly plan from eight spring and autumn campaigns for gutter cleaners is worth offering, and send the proof pack from photo proof and AI job summaries with moment 4, so the customer sees the work before the next window opens.

Questions about reminders and recurring gutter jobs

Can one recurring job repeat every six months?

Jobber's help says a custom schedule can repeat weekly, monthly or annually, and it does not say whether a six-month interval exists, so test it with a dummy customer. If it does not, use an As needed recurring job and generate visits in batches, or set up one annual job for spring and another for autumn.

Do I need a paid app for this?

Not to start. A spreadsheet with a next-due date, a calendar and a map link will carry a one-van firm for a season, as the spreadsheet section shows. A paid app earns its fee once reminders, route reordering and invoicing take more of your week than the monthly price, which starts at $99 a month billed annually for one user on Jobber's Connect plan.

How early should the first reminder go out?

There is no universal answer. As a starting point, send a booking-window message about six weeks before the target date, a confirmation when the visit is set, and a reminder the day before at a fixed time such as 9:00. Then read your own reply and cancellation numbers and move the dates to suit.

What if a customer opts out of texts?

Mark the record at once, stop sending texts, and ask whether email is acceptable. Treat any clear request as an opt-out, not only the word STOP. Keep a note of the date and channel, and test the stop reply with your own number before you rely on it.

Further reads

Sources: Jobber help articles (Create a Recurring Job; Create New Visits for Existing Recurring Jobs; Import Jobs; Assessment and Visit Reminders; Receptionist), Jobber pricing and Receptionist pages, Housecall Pro help (route optimisation), Google Calendar help (CSV import). Counts, times and costs in the examples are illustrative.

Want reminders and routes that run without you?

On a 1:1 call we can map your customer list, reminders and diary, work out which of them software and AI can run, and leave you with a set-up your crew can maintain.

Book a 1:1 call with me