← All Field Notes
GHL · Digital Marketing Agency · Oct 1, 2026

Crew Dispatch Without a Dispatcher: Tomorrow's Jobs, Texted the Night Before

Crew Dispatch Without a Dispatcher: Tomorrow's Jobs, Texted the Night Before

Key Takeaways

It's ten past six in the morning. Your guy already knows where he's going. Four jobs, in order, with the address on each one and a line about what's wrong. You didn't write that out. You didn't text anybody. You were asleep.

That's the build in the newest episode of The Trade Stack on our channel, "Your crew knows tomorrow before you wake up." We set this kind of thing up for trades as a GHL consultant Bay Area owners can call directly, and this post is the written version: what to build, what to check, and the one dropdown that breaks it.

One honest note first, same as the video. This is built on how the software is documented to behave and on numbers you can open yourself. We didn't run a live crew through it for the episode, so nothing here is a measured result. Every section ends with a check you run on your own calendar and your own phone.

Where tomorrow lives right now

This is for anybody with more than one person going out in the morning. Two trucks. One truck and a helper. You and a sub you use every week. All of that counts.

For most owners, tomorrow lives in three places. Part of it is in your head. Part of it is in a text thread from Tuesday. Part of it is on a whiteboard in the shop that only works on the days everybody drives to the shop. So the day starts with a phone call at 6:15, and it starts late.

When it goes wrong, it costs real money. A truck roll runs about $200 to $300 once you add up the tech's time, the fuel, the van and the slot you gave away (Carly's home services write-up has the breakdown). A guy driving to the wrong side of town is that number. Do it twice in a week and you've paid for the van.

Crew dispatch workflow for trades showing a job assigned to a technician on the calendar

Step one: put a name on every job

An appointment with nobody's name on it can't text anybody. There's nothing to send it to. So the assignment has to happen when the job gets booked, before you build a single automation.

In HighLevel that lives on the calendar. Build a round robin calendar, add your guys as team members, and turn on "always book with assigned user." Three things then happen without you:

You can still override any of it with an Assign User action in a workflow. But the default is already doing the job, and the default is what runs at nine at night.

Your check, two minutes: open tomorrow on your calendar. Every job should have a person's name on it. An actual person, not your company name. Then look at last Thursday. If half of last week has no name on it, you have a list of times, not a schedule, and no automation is going to fix that for you.

Step two: one workflow, three steps

The trigger fires on the appointment. Which trigger matters a lot, and we'll get to that below.

The wait is the piece most people don't know exists. A wait step doesn't have to count hours from right now. HighLevel's Wait action can hold a contact until before, at, or after an upcoming appointment. Set it to land the evening before the job and every appointment carries its own timer. You aren't running a nightly report.

The internal notification does the sending. Channel is SMS, user type is Assigned User. The body is merge fields, so it writes itself: the customer's name, the time, the address, and one line on what the job is.

One thing we won't hide. This sends one text per job, not one list. Four jobs is four texts. We think that's right. A text you read at a red light should be one job, not a wall. And there's no routing engine in here. The software doesn't sort jobs by geography. It puts a name on the appointment, holds a message until the evening before, and sends it to the right person. That covers most of what a dispatcher was doing for a crew this size.

Your check: book a fake job on yourself for tomorrow morning with your own name as the assigned user. Wait for the text. If it lands, go to bed. If it doesn't, look at one thing before you touch the workflow: the phone number on your own user profile. When the assigned user has no valid number, the notification fails on the SMS channel and the workflow moves on to the next step like nothing happened. It doesn't stop and it doesn't warn you. A workflow can look perfectly green in the builder and send nothing. So every guy you hire gets a real number on his profile the day you make his login.

Night-before job text sent to the assigned technician from a HighLevel workflow

Step three: tell the customer who's coming

Dispatch has two halves and most people only build one. Your guy knowing where he's going is half. The customer knowing who's coming is the other half.

Same appointment, second branch, sent the morning of. Three things in it and nothing else: who's coming, by his actual name. The window he'll be there in. What he's coming out to do.

That last one matters more than people think. It catches the customer who booked for a leaking water heater and now wants an outlet moved while he's there.

FieldPie's write-up on home service no-shows puts businesses that run real appointment reminders at 30 to 50 percent fewer no-shows than the ones that don't. If no-shows are your bigger problem, we broke that build down in the three text no-show fix.

And the whiteboard you think you need? It's your calendar filtered by one guy at a time. Already built. Nobody has to stand at it.

Your check, in the truck: pull the calendar up on your phone, filter it to one person, and look at tomorrow. You should be able to say who's going where in about ten seconds. Then read your morning message out loud like a customer would. If it says "confirm your appointment" and nothing else, it's a reminder. It isn't dispatch. It needs a name in it, because a name is what gets the door opened for a stranger in an unmarked truck.

The trigger that skips your own bookings

This one is expensive. When you pick the trigger, there's one called Customer Booked Appointment. It sounds exactly like what you want. It isn't.

HighLevel says so on its own help page: it fires when the customer books through a booking link, and manually booked appointments won't trigger the workflow.

Think about your week. How many jobs get booked because somebody clicked a link? How many because you were on the phone and typed it in yourself? For most trades, the second one is the whole calendar. You'd build the entire thing, test it with your own booking link, watch it work, and then dispatch almost none of your real jobs.

The fix is one dropdown. Use the Appointment Status trigger. It fires when an appointment is scheduled or when its status changes, and it doesn't care who created it.

Why This Matters for Bay Area and San Jose Businesses

A wrong trip costs more here. Send a truck from Los Gatos to the wrong address in Fremont at 7:30 on a weekday and you've lost the morning to 880, not just the fuel. The $200 to $300 figure is a general home services number. We don't have a Bay Area version of it, but nobody who drives here thinks ours is lower.

And a small San Jose crew isn't big enough for a dispatcher. Two to five people, the owner on a job site himself, his phone doing the dispatching at nine at night. That's the size this build fits. It also slots into the rest of the system: the same appointment that texts your tech can feed the lead to booked to paid pipeline we already wrote up.

Practical Steps

  1. Put every tech in HighLevel as a user with a real mobile number on his profile.
  2. Build a round robin calendar, add the crew as team members, and turn on "always book with assigned user."
  3. Open tomorrow and last Thursday. Fix every job with no name on it.
  4. Create one workflow with the Appointment Status trigger. Not Customer Booked Appointment.
  5. Add a Wait tied to the upcoming appointment, set for the evening before.
  6. Add an Internal Notification: SMS, to the Assigned User, with name, time, address and the job in one line.
  7. Add a second branch that texts the customer the morning of: who's coming, the window, and the job.
  8. Book a fake job on yourself and wait for both texts before you trust it with a real one.

Watch the Full Dispatch Build

Final Thoughts

Names on the calendar. One workflow that hangs off the appointment instead of a clock. A text to your guy the night before, a text to the customer in the morning, and a board nobody has to stand at. About fifteen minutes to build, and it runs every night after that whether you remember it or not.

Want the exact settings? The trigger, the wait, the merge fields and the calendar setup are free at optechsol.llc/setup.

If you'd rather have it running without building it yourself, that's what we do. On Point Tech Solutions is a GHL consultant Bay Area trades work with out of Los Gatos, serving San Jose and the rest of the Bay. You own what we build. We'll do it for you, or teach your team with an SOP so they can run it. Start at optechsol.llc.

Want this working in your business?
Get my plan ← Back to all Field Notes