# 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.

- Workflow type: agent
- Services: ServiceM8, Slack
- Categories: Operations
- Published: 2026-08-09

## What it does

- 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 you'll need

- 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

## Prompt

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.

## How to customize

- 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.

## FAQ

### Will this work if my technicians are not in Slack?

Yes. The briefing can go to a single dispatch channel that your office team watches, with one message per technician so it is still easy to read. Technicians who are in Slack can also get their own run sheet as a direct message.

### What happens if a job gets rescheduled after the briefing goes out?

The briefing is a snapshot of the schedule at send time. Many teams run it again mid morning to catch changes, or keep the single 6:30am send and rely on ServiceM8 for live updates through the day.

### How does it know whether a client is new or a repeat?

It looks at whether that client has any earlier jobs in your ServiceM8 history. If today is their first, the job gets flagged so the technician knows to expect an unfamiliar site and a customer who has not met the team before.

### What if a technician has no jobs scheduled that day?

By default they are skipped. You can also have the briefing send a short note saying the day is clear, which is useful for spotting spare capacity early in the morning.

### Do I need parts booked on every job for this to work?

No. The no parts warning is a prompt, not a rule. Quote visits and inspections often have nothing booked, so you can switch that flag off or limit it to repair and install work.

Use this prompt in General Input: https://www.generalinput.com/prompts/daily-servicem8-dispatch-briefing-for-your-field-team-in-slack