Daily ServiceM8 dispatch briefing for your field team in Slack
Every weekday at 6:30am each technician gets a Slack run sheet with their jobs, site details, client contacts and anything that could waste a trip.
Every weekday at 6:30am, build a dispatch briefing for my ServiceM8 field team and post it to Slack before the vans leave the yard. Run this on a cron trigger set to weekdays at 6:30am in my ServiceM8 account timezone.
Start by pulling today's scheduled work from ServiceM8 with List Job Activities, scoping to today's date range using an OData $filter on the activity start date. Then call List Job Allocations to see which jobs are allocated to which staff, and List Staff Members to resolve those staff records into real names. If a job is on today's schedule with nobody allocated to it, keep it and report it as unassigned rather than dropping it silently.
Enrich every job on today's run so the briefing is actually useful on site. Use List Jobs for the work description, the site address and the current job status. Use List Clients for the client name and contact details, remembering that ServiceM8 stores clients as company records. Use List Job Materials to see which parts have already been booked to each job. Use List Notes to pick up any job notes the office has added.
Flag the three things that cause a wasted trip. First, jobs with no materials booked yet: call these out, but treat them as a prompt rather than an error, since quote visits and inspections often have nothing booked. Second, whether the job is at a brand new client or a repeat client: work this out by checking whether that client has any earlier jobs in the ServiceM8 history, and say which it is. Third, access constraints: read both the job description and the job notes, and flag anything mentioning keys, lockboxes, gates, pets, alarm codes, parking restrictions, site inductions or restricted access hours. Quote the relevant line verbatim so the technician sees the actual wording rather than my paraphrase of it.
Post one Slack message per technician using Send a Message to my dispatch channel. Lead each message with the technician's name, how many jobs they have today, and a one line run sequence of their stops in order. Then list each job in scheduled start time order with the start time, the site address, a short plain description of the work, the client name with the best contact number, the parts already booked, and any flags from above. Keep it scannable in Slack mrkdwn with bold headings and short lines, because people read this on a phone in a van.
If I would rather each technician get their run sheet privately, match ServiceM8 staff to Slack accounts by email using List Users, open a direct message channel with Open a Conversation, and send there instead of the shared channel.
Handle the quiet days too. If a technician has no jobs today, skip them by default. If ServiceM8 returns no scheduled work at all for today, post a single message saying the schedule is clear rather than staying silent, so I know the briefing ran.
What does this prompt do?
- Checks today's schedule in ServiceM8 first thing each weekday and works out which technician is on which job.
- Builds one Slack message per technician listing their jobs in run order, with the site address, what the work is, and who to call when they get there.
- Puts the day's job count and run sequence at the top so everyone knows their load before they leave the yard.
- Flags the things that cause a wasted trip: no parts booked yet, a first time client, and access notes about keys, gates, pets or site inductions.
What do I need to use this?
- A ServiceM8 account with your jobs, clients and staff already in it
- A Slack workspace, plus the channel you want the morning briefings posted to
- Technicians assigned to jobs in the ServiceM8 schedule, so the briefing knows who is doing what
- Site addresses and client contact details filled in on your ServiceM8 client records
How can I customize it?
- Change the send time or the days it runs, for example 5:30am for an early start crew, or seven days a week if you roster weekends.
- Send each technician their run sheet as a private direct message instead of posting to a shared dispatch channel, or do both.
- Adjust what gets flagged: add your own access keywords like scaffold, permit or swipe card, or turn off the no parts warning for teams that quote on site.
FAQs
Will this work if my technicians are not in Slack?
What happens if a job gets rescheduled after the briefing goes out?
How does it know whether a client is new or a repeat?
What if a technician has no jobs scheduled that day?
Do I need parts booked on every job for this to work?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.
Every Tuesday we pull your best new reviews, draft social captions, email testimonials and product page quotes, then stage them in Notion for approval.
Every weekday morning, unfulfilled orders get an address check: harmless typos fixed automatically, risky addresses held with a note to the customer.
Stop sending your vans out blind.
Give every technician their run sheet, site details and trip risks in Slack before they leave the yard.