Landscapt (CRM)

The Dispatch Board

The daily scheduling screen crews and dispatchers live in — visits, crews, status, and how actual hours get calculated.

Where it is

CRM → Scheduling → Dispatch Board. The board shows one day at a time — use the week strip at the top to jump between days. It's built for a dispatcher planning today's work and for reviewing what actually happened once crews are done.

The board also works on a phone or tablet: below desktop width the toolbar scrolls sideways, the Client column stays pinned while you scroll the visit table, the side panel drops below the list, and buttons and checkboxes get larger tap targets. The Snow dispatch board is laid out the same way.

The List / Calendar toggle at the top right switches between this daily table and a week-at-a-glance calendar; the Crew Board button next to it opens the shop-TV crew assignment board. In the list view, Team Assign sits in this same header row, between the toggle and Crew Board.

"Today" is the org's day, not the browser's. The default date is derived from your organization's configured timezone (Settings), so a dispatcher on the road in a different timezone still lands on the same day the crews are actually working — the same rule the Jobs list, daily load list, and job-costing reports use.

Jobs vs. visits

A Job is the overall piece of work for a client (recurring lawn care, a one-time cleanup, a snow contract, etc.). A visit is one specific scheduled occurrence of that job — a single trip out to a property on a single day. A recurring job produces many visits over time; the Dispatch Board only ever shows visits, one day's worth at a time.

Jobs and visits track status independently. A job's status (Scheduled, In Progress, Completed, Cancelled, Skipped, Hold) describes the whole engagement; a visit's status (Scheduled, Dispatched, In Progress, Completed, Cancelled, Skipped) describes just that one day's stop. Completing today's visit doesn't complete the job if it's recurring.

Visit status and the status menu

Every visit row shows a status icon in the ST column. Clicking it opens a status menu listing Scheduled, Dispatched, In Progress, Completed, Cancelled, and Skipped, with the current status highlighted. Pick the one you want and the visit changes on the spot — a toast ("Visit marked Dispatched") confirms it. The same statuses are available from the dropdown in the visit's detail sheet.

A single stray click on the icon no longer changes anything — it only opens the menu. That matters because moving a visit to Dispatched isn't just a label: it can fire "visit dispatched" automations and, as of now, writes to the client's Activity timeline, so it should always be a deliberate choice.

  • A visit the crew has started is protected. While a crew is clocked in (started, not yet stopped), you can't cancel it, skip it or send it back to Scheduled or Dispatched — the app says to have the crew clock out first, because the visit would drop off their list with the clock still running and the hours would never count.
  • Reopening a completed visit (back to Scheduled, Dispatched or In Progress) clears its start and stop times, so the crew can start and finish it again from the Crew App.
  • Completing a visit has to go through the Mark Complete action (it creates the invoice and runs the follow-ups); setting the status to Completed any other way is refused.
StatusMeaning
ScheduledThe default state for a newly created visit. Nothing has happened yet.
DispatchedSent to a crew — picked from the status menu, set by Dispatch Assigned, or automatically the first time you print or send a crew their day. Dispatching writes a “Visit dispatched” entry to the client's Activity timeline.
In ProgressThe crew is on site. Picked from the status menu, or set automatically once a crew member clocks in on the crew app.
CompletedThe visit is done. Picked from the status menu, or set automatically once a crew member clocks out.
SkippedThe crew did not perform this visit today, but it's expected to happen another time (weather, client not ready, access issue). Picked from the status menu or the visit detail sheet; you'll be asked for a reason, which is saved on the visit and logged on the client's Activity timeline.
CancelledThe visit was called off entirely and won't be rescheduled as-is. Picked from the status menu or the visit detail sheet; asks for a reason the same way Skipped does.
Skipped vs. Cancelled. Skipped means "not today, but still expected" — the client still gets this service, just not on this occurrence (rain day, gate locked, crew ran out of daylight). Cancelled means the visit itself is off the books and won't happen as scheduled. They mean different things operationally, so pick deliberately — the menu shows both side by side.

Both outcomes ask for a reason. Choosing Skipped or Cancelled — from the status menu, a bulk status change, or the visit sheet — opens a short prompt with Weather, Client requested delay, Crew unavailable, or Other (with a free-text note). The reason is saved on the visit, where it can be edited later from the visit sheet, and is written to the client's Activity timeline as "Visit skipped 9/9 — Weather" (or "Visit cancelled …"), so the office can answer "why didn't you come Tuesday?" from the client record without opening the board.

Skipped and cancelled visits drop out of the day's numbers. The Totals row, each crew's stat card, and the Unassigned card exclude them from AMT and budgeted hours, so a day where three stops rained out shows what the crews actually had in front of them, not what was originally on the calendar. The visits themselves stay on the board (and under the Skipped / Cancelled status tabs) — only the rollups leave them out.

Status also advances itself in a couple of places outside the board: dispatching a crew's day (or printing/sending it) can move visits to Dispatched, and a crew member clocking in or out on the crew app moves the visit to In Progress or Completed automatically.

Crews and assignment

The Team Assignment dialog groups visits into a column per crew, plus an Unassigned column for anything not yet assigned. The header for each crew column shows how many stops that crew has for the day.

The green column on the left also lists Unassigned people: active employees who aren't on any crew for the day you're viewing (they have no crew roster, or their roster doesn't include that weekday). Drag one onto a crew — or tap the person, then tap the crew — to put them on it for that day only. They go back to Unassigned afterwards. The ↩ on their chip puts them back in Unassigned, and dropping a chip on the Unassigned column does the same. Someone already on a crew's regular roster that day is moved crew-to-crew instead, not unassigned.

There are two ways to move a visit, and they do the same thing:

  • Drag a visit card onto a crew's column to assign it, or back onto Unassigned to pull it off.
  • Tap to place — tap a visit card to pick it up, then tap the crew column (or Unassigned) it should go to. The card you picked up is outlined, every column you can drop it on is highlighted, and a bar across the top of the dialog names what you're moving. Tap the card again, press Escape, or hit Cancel in that bar to put it back down.

Unassigned cards also carry a shortcut button per crew ("→ Maintenance 1") that assigns in a single tap, and each assigned card has a ✕ in its corner that sends it straight back to Unassigned.

Assigning to a person. On an employee's record (Team → Employees → Edit → User Settings), tick Schedule Jobs Directly and that person appears by name in every crew dropdown — new job, Edit Job, the visit panel and this board — and in Team Assignment as their own column. They get a one-person crew behind the scenes, so everything else (the crew app, payroll, job costing) works the same. Unticking it, or deactivating the employee, retires that crew without touching past jobs. If their login is linked to the employee and not already attached to another crew, it's attached to this one so they see the jobs in the crew app. A person who is already on a regular crew can't also sit on a second crew's standing roster on the same days; add them to their own crew for a given day with Team Assignment instead.

Every crew change is recorded in the Audit tab as crew: Old crew → New crew (Unassigned when a side was empty), with who made it and when.

On a tablet, use tap-to-place. iPads and other touch devices don't support the kind of dragging this dialog uses, so a drag gesture will simply do nothing there. Tapping works everywhere — including with a mouse — so it's the reliable option if you dispatch from a tablet.

A crew's headcount for a given day comes from its normal roster (set in crew settings), with same-day-only overrides layered on top from the same dialog — useful when someone is on loan to a different crew just for today. Move a person the same two ways: drag their name chip onto another crew, or tap the chip and then tap the crew they should work with. A member reassigned this way turns amber and is flagged as "on loan" for that date only, reverting to their usual crew automatically the next day; the ↩ on an amber chip sends them home immediately. People always belong to a crew, so Unassigned isn't a target for them.

Within a crew, turning on Manual Route mode makes each visit row draggable so you can reorder the crew's stop sequence by hand (drag handle appears once the mode is on). It's off by default so that clicking into a Start/End time field to edit it doesn't accidentally register as a drag.

Moving a visit to a different day — Move to Day, a drag on the board, or a bulk move — writes a "Visit moved 9/7 → 9/8" entry to the client's Activity timeline, so the client record shows when a stop was rescheduled without digging through the board's history.

A visit the crew is working right now (clocked in, not yet out) can't be moved to another day — the move is refused until they clock out, because it would disappear from the crew's list mid-stop. Rows hidden by a filter are dropped from your selection, so bulk actions (Change Status, Re-assign Crew, Move to Day) only touch what you can see.

Package visits have spacing rules. If the visit belongs to a Package job whose steps set a Min Days gap, a move that would put a step too close to its neighbour is refused with a message like "Step 2 must be at least 14 days after Step 1 (earliest 5/15)" and the visit stays put. See the Jobs & Packages guide.

Two crews on one stop

Some jobs need more than one crew on site the same day — a big cleanup, an install that takes a mowing crew and an enhancement crew. Open the visit, find Crews on this stop, and choose Add another crew…. (On the job page, use the same control inside the visit's Change date / crew editor.) The visit needs a crew already, and the stop must not have started yet. This is an office action: crew logins can't add or remove crews, and the Crew App has no equivalent.

Behind the scenes each crew gets its own visit for the stop. That's why everything else just works: each crew has its own row in its own column on the board, its own stop in the Crew App, and clocks its own hours with its own men count. Rows for the added crew carry a purple Shared tag; the original visit is tagged Lead.

  • Billing happens once. The lead visit carries the service's revenue and creates the invoice when it's completed. The added crew's visit shows $0, never invoices, and doesn't log a second "Visit completed" entry or fire automations a second time. The client portal shows the stop as a single visit. If the lead visit is skipped, cancelled or removed, the lead role (and billing) passes to another crew still on the stop; the lead can't be removed once another crew has completed its work.
  • Labor is combined. Job Costing, the job's Hours and the labor reports add up every crew's hours and labor. The budgeted hours are split evenly between the crews so variance isn't charged the full budget twice.
  • The day moves together. Rescheduling one crew's visit moves the other crews' visits that haven't started. A crew already clocked in stays put.
  • Visit counts don't double. A shared stop uses one of a contract's included visits, and counts once toward materials spread across a job's visits.
  • Chemicals are logged on the lead. The added crew doesn't get a chemical card, so amounts and inventory aren't counted twice.

To take a crew back off, click the ✕ next to it in Crews on this stop — only before that crew has started. Removing the lead hands billing to the next crew. Each crew's order in its own route is set separately, and a change to the job's default crew doesn't overwrite a stop's crews.

Snow visits can't take a second crew — they're staffed and billed per storm.

How actual hours are calculated

The Actual Hrs column is the real number used for job costing and crew productivity reporting — it is not always literally "time on site" unless a crew clocks in and out. The value comes from a fallback chain, checked in this order:

  1. An explicit override — if a dispatcher has manually typed a number into Actual Hrs for the visit, that value wins outright and nothing below is used.
  2. Real clock-in/out punches — if a crew member clocked in and out on the crew app for this visit, actual hours = (clock-out time − clock-in time − recorded break) × crew size.
  3. Scheduled Start/End time, as a fallback — if there's no clock data and no override, actual hours = (scheduled end time − scheduled start time − recorded break) × the number of crew members assigned to the visit. This is the formula used for the vast majority of everyday visits, since most crews don't punch in/out per stop. A scheduled End earlier than the Start is treated as running past midnight (End + 24 hours), so an overnight visit doesn't come out as zero or negative hours.
Only worked visits count toward a job's Actual Hours. A visit that is still scheduled or dispatched can carry a planned Start/End on the board, but those planned hours are not added to the job's Actual Hours until the visit is in progress or completed. Reopening or cancelling a visit takes its hours back out.
Break time is not billed or costed as worked time. Minutes recorded with the crew app's Pause button are subtracted from the measured duration before it is multiplied by crew size, so a one-hour lunch inside a nine-hour day with a three-person crew reports 24.00 hours, not 27.00. The deduction is applied identically on the board, in the job's rolled-up Actual Hours, and in every Report Center hours and job-costing figure. A break longer than the shift floors the visit at zero rather than going negative. An explicit override is left exactly as typed — it is assumed to already be the real worked figure.

Editing a visit's Start or End time clears any stale override so the number recalculates from the new times rather than silently keeping a number measured against the old schedule. It does not touch the Men count: a headcount you've set on the visit is kept, and the times (or the crew's roster) only fill Men in when it was still blank. Hours are shown to two decimals everywhere on the board and in the visit sheet.

Why the fallback matters. Without it, any visit a crew didn't clock in/out on would report zero actual hours — which would make job costing and crew productivity reports wildly understate labor cost on exactly the jobs where nobody bothered to punch a clock. Falling back to the scheduled duration × crew size gives every visit a reasonable, non-zero hours estimate by default, so reports stay usable even for crews that never touch the time clock. Clocking in/out with real times simply overrides that estimate with the truth once it's available.

Crew punches vs. visit hours

A stop keeps two separate records of time. Crew punches are one clock-in and clock-out per crew member, and they are what the Timesheet reports read. Visit hours are the visit's own Start/End, Actual Hrs and Men, and they are what Job Costing reads. The board keeps the two lined up wherever it can, and flags the stops where it can't.

What stays in sync automatically

  • Start and End. Changing Start or End on a board row, in the job panel's appointment fields, or in the visit sheet moves every crew member's punch to the same time and moves every service visit in the stop together.
  • Correcting one person in Edit Job Times. If three people clocked in and out together and you change one of them because they arrived late or left early, the visit's hours become the sum of everyone's punch hours (each person's time minus their break, lunch and their share of the stop's pause time — never more pause than the time their punch overlaps the job, so someone who joined after a lunch pause isn't docked for it). Each row also has a min break box: that person's own break on the punch (time they were away is added there when they come back). Change it to correct the break; if you only change the times, the existing break is kept but trimmed so it's never longer than the punch. With several services in the stop, those hours are split across them in the proportions they already held. Labor cost is worked out from the same punches, so Job Costing and the Timesheet report show the same hours. For example, three people for 4 hours is 12 hours; if one leaves an hour early it is 11 on both.

What changes the visit only

  • Typing a number into Actual Hrs, or changing Men. Neither can be turned into per-person times, so the crew punches are left alone. Job Costing follows your number and the Timesheet report keeps showing the punches. If you are correcting a clocking mistake, use Edit Job Times instead so both agree.
  • When you change a visit's hours this way on a visit the crew punched, its labor cost switches from the exact punch-based figure to hours × the crew's average labor rate, and the Job Costing tab says so next to Labor Cost. Editing the punches in Edit Job Times restores the exact figure.

The mismatch warning. A small amber triangle appears in a row's icon column, and an amber banner appears at the top of the visit sheet, when a stop that has finished crew punches disagrees with its visit times or hours. Hover the triangle to see why. It appears when either of these is true:

  • Start or End differs by more than 10 minutes from the crew's first punch in or last punch out.
  • Visit hours differ from the total of the crew's punch hours by at least 1 hour and at least 15%.
One person arriving late or leaving early does not trigger the warning on its own, because the first-in and last-out times are unchanged and a short shift is a small share of the total. A person who is a couple of hours short on a long job will trigger the hours check. That is the prompt to confirm the punches are right. The banner links straight to Edit Job Times. The warning only shows for the dates you are viewing on the board.

Worked example

A visit is scheduled 8:00 AM – 11:00 AM with a 3-person crew. Nobody clocks in or out, and no manual override is set.

Fallback usedScheduled Start/End (no clock data)
Calculation(11:00 AM − 8:00 AM) × 3 crew members = 3 hours × 3 = 9 man-hours

Now suppose the same 3-person crew instead clocks in at 8:15 AM and clocks out at 10:45 AM — real punches exist, so tier 2 takes over and the scheduled window is ignored entirely:

Fallback usedReal clock-in/out punches
Calculation(10:45 AM − 8:15 AM) × 3 crew members = 2.5 hours × 3 = 7.5 man-hours

The clocked result (7.5) replaces the scheduled estimate (9) automatically — no manual intervention needed, and no override is written unless a dispatcher deliberately types one in.

Board columns

Which columns are visible is configurable per user via the column-visibility control on the board toolbar, and that choice is now remembered — it's saved to your profile, so it survives a reload instead of resetting to the default set every time.

Column(s)What it shows
Service, Date, City, ZipIdentify the visit and where it is.
AssignedWhich crew (or Unassigned) currently owns the visit.
Last SvcWhen this client was last serviced for this service — useful for spotting overdue recurring stops. A completed visit stamps its scheduled day, so a stop done on the 15th and marked complete on the 17th shows the 15th (a visit completed ahead of its scheduled day stamps today, and the date never moves backward).
Start / EndScheduled arrival and departure window, editable inline.
B HrsBudgeted hours — from the job's linked service (production rate × team size), or the job-level total as a last resort. Shown to two decimals.
Actual HrsSee the dedicated section below — this is the number that matters most for job costing. Shown to two decimals.
Hr VarianceActual minus budgeted, colored red when over and green when under.
MenCrew headcount used in the actual-hours fallback calculation. A value you set here is kept — editing the visit's times only fills Men in when it was blank.
Qty, Rate, AMTBilling quantity, unit rate, and the job's value — the sum of the job's included service lines, the same figure the visit sheet and the client's Jobs card show.
Notes/IconsCall-ahead flags, comments, and other at-a-glance indicators.

Beyond that fixed set, the column-visibility control also offers a second, SA-style block of optional columns pulled from the client's and property's own records rather than the visit: Priority, Sales Rep, Notes to Crew, Gate/Lock Code, Turf Sq. Ft., Mulch Bed Sq. Ft., Gross Sq. Ft., Linear Ft. of Perimeter, Linear Ft. of Edging, Yards of Mulch, and Parking Lot Sq. Ft. Any org custom field defined under Settings → Custom Client Fields shows up here too, as its own trailing column named after the field (with its unit in parentheses if it has one). These are all off by default — turn on only the ones your crews actually take off of. The same set is available on the Waiting List for consistency.

The Totals row adds up what it can. Turning on Men, Qty, or any of the numeric extra/custom-field columns above makes the board's Totals row sum that column across the counted visits (see "Skipped and cancelled visits drop out of the day's numbers" above) instead of leaving the cell blank — so a Turf Sq. Ft. column shows the day's total square footage, not just each job's own number. Rate is the one exception: it's a per-unit price, so summing it across different jobs wouldn't mean anything, and that cell stays blank on purpose.

Products (materials) on a visit

Opening a visit's detail sheet from the board shows a Products section for materials tied to that job — the same editor used on the Job record's own Products tab, not a read-only summary. From here you can add a product, edit its quantity or unit price, and change its status (Used/Invoice, Used, do not Invoice, Not Used/Cancel, or reopen it to Pending) without leaving the board.

"Used" and "Used, not billed" both take the material off the shelf — the difference is only whether it still reaches the client's invoice. Pick deliberately: a negative or blank quantity is rejected outright rather than silently rounded to something else, since the quantity on this row is what adjusts inventory once the status changes.

Bulk actions on selected visits

Checking one or more visit rows reveals an Actions (n) button on the toolbar with a Change Status submenu, a Re-assign Crew submenu, and — separately — Email Selected Clients.

Email Selected Clients opens a compose dialog addressed to the distinct clients behind the checked visits — selecting three visits for the same client only addresses that client once. It pulls each recipient's email from their client record and skips (with a reason shown in the dialog) anyone with no address on file or a hard email bounce; a Purpose toggle additionally decides whether clients marked Do Not Market are skipped (Marketing/promotional) or still included (Service notice — for messages about work they've already contracted, with no unsubscribe footer). Subject and body can be typed from scratch or started from a Documents email template (type "Client") — the same block-based template system used for invoice emails — and a row of merge tags can be inserted into the message at the cursor. Sending fires one email per recipient and logs to each client's Activity timeline.

Send Chemical Notices (n) appears in the Actions menu when at least one selected visit is a chemical service and your role can send application notices. It opens a dialog that emails each client their Notice of Treatment in one pass, with the PDF attached unless you untick it.

Completing visits in bulk (or one at a time from the status menu) also creates each visit's draft invoice. If an invoice can't be created, the visit still completes, and you see a warning — “N visits were completed but could not be invoiced” — instead of it passing silently. Mark those visits complete again to retry billing; it never double-bills a visit that already has an invoice.

Change Status > Dispatched in bulk does what dispatching one visit does: each visit that wasn't already dispatched gets its dispatched time stamped (what the "visit dispatched" Zapier trigger and the crew app key on) and the service's chemicals are preloaded onto the crew's Chemical Mix card.

Re-assign Crew in bulk sends each affected crew the same "New Job Assigned" push a single reassignment sends (for up to 40 visits per action, so a select-all doesn't flood phones). Completed visits are never re-assigned — a finished visit keeps the crew that did the work so its labor and history stay put; if everything you selected is completed you're told so instead. Sending selected visits back to the waiting list processes them one at a time, and the job's own date and crew only reset when its last visit goes back.

Email Selected Clients requires the same permission as any other outbound client email (Email Activity's Send permission) — it isn't a separate, less-gated path to reach clients in bulk.

Emailing or texting one client from a visit

Open a visit and use the More visit actions (…) menu in the sheet header to reach that visit's client directly — the "we're running late" or "the crew is on the way" case. Send Email and Send Text open the same dialogs as the job screen's More menu and log to the client's Activity timeline. Each option only appears if you have the matching permission (Email Activity Send, or SMS Send) and is greyed out with "(no address)" or "(no number)" when the client record is missing one. Texting also requires the client to be marked Opted in to text messages; without that, the dialog explains why and won't send.

The same Send Email / Send Text actions are on a job's own screen, in its More menu alongside View Audit Trail, View Client and View Estimate. Replies to those emails go to the Reply-To Email set in Settings > Organization (emails still send from your company name on Landscapt's sending domain; with no Reply-To set, replies have nowhere to go). A one-to-one email you send yourself uses your own address as the reply-to instead.

Stop order and Optimize Route

Stop order is per crew. The # column numbers each crew's own stops from 1, so "#3" means that crew's third stop of the day, not the third row on the board. Reordering one crew never renumbers another. On a multi-day range the numbering restarts on each day, and the route tools are off until the board shows a single day.

Typing route numbers. You can also type a stop's number straight into the box in the # column. Nothing moves while you type — a banner counts the numbers you've entered, and Apply Route reorders every crew at once. Numbers are crew-relative, gaps like 10/20/30 are fine, and you only need to number the stops you want to move (typing 1 on one job just puts it first; the rest keep their order). Two stops given the same number keep their current order relative to each other, and clearing a box counts as no number.

Drag rows in Manual Route mode (within one crew — to move a stop to another crew, use Team Assign), or use Reverse to flip the current order, or Group Stops to cluster each crew's stops by zip area. Either way the board shows an "Order changed — not yet saved" banner until you click Save Order.

Reverse, Group Stops, and Optimize Route all work one crew at a time. Each tool groups the visits currently on screen by crew first, then reorders each crew's own stops independently — a mixed-crew day never interleaves one crew's stops with another's. Checking specific rows narrows any of the three tools to just those stops (a checked row a filter has since hidden falls back to the full board rather than an empty run); with nothing checked, all three act on every visit currently visible.

The order is remembered for next week

Saving an order does two things. It sets today's stop sequence, and it remembers that sequence for that crew on that weekday. The next time the same crew has work on the same weekday — next Monday, the Monday after — the board comes up already in that order instead of an unsorted crew grouping. You only have to route a recurring run once.

The memory is keyed to the weekday, not just the crew. A crew's Monday run is usually a different neighbourhood from its Wednesday run, so each weekday keeps its own sequence. A job that moves to a different day has no remembered position on the new day and sorts to the bottom, which is your cue to place it.

Jobs added to the route later — a new client on an established Monday run — also sort to the bottom until you drag them into place and save again. Saving the day always wins over the remembered order, so a one-off change for a single day never overwrites the usual route.

Optimize Route

Optimize Route reorders the stops currently in view by real driving time. The dropdown beside the button controls which way round the crew works the route:

DirectionWhat it does
Nearest firstLeaves the shop and takes the closest remaining stop each time. Usually the shortest total drive, but the crew can finish the day far from the yard.
Furthest firstDrives out to the far end of the route first and works back in, so the crew finishes near the yard at the end of the day.

Optimize Route solves each crew's tour separately (in parallel) and anchors it at that crew's own starting address (set per crew under Team → Crews) — a mixed-crew day no longer needs to be filtered down to one crew first to get a real route. A crew with no starting address of its own starts from the Company Address in Settings > Organization instead. Only if neither is set is the route unanchored (routed by driving time without a shop to start or end at), and the confirmation toast says which crews that applies to. If one crew's route fails to solve (a bad address, a Distance Matrix error), the others still come back — it isn't all-or-nothing.

After optimizing, each row shows the drive time to arrive at it: the first stop of a crew shows the leg from the shop (⌂), and every later stop shows the leg from the stop above it (↑). The leg back to the shop at the end of the day is in the banner, not on a row. The banner reports how many crews were routed and the combined driving time between stops and shop legs across all of them. An optimized order is a proposal like any manual drag — it isn't saved, and doesn't become the crew's remembered order, until you click Save Order.

Optimize Route needs a Google Maps Platform API key, entered under Landscapt Settings → Integrations on the Google Maps card — see that card for exactly which Google APIs to enable (the same key also powers Nearby Waiting List and Aerial Measurement, so it needs more than just route optimization's own API). Type or paste the key and click Save Key — until you do, the card reads "Unsaved — click Save Key to connect" and the board can't use it. If the save comes back with "you don't have permission to change organization settings," your role lacks the settings permission and an admin needs to enter the key instead. Orgs on a plan that bundles Route Optimization, or that bought the add-on, don't need their own key at all — the platform's own key is used automatically.

Calendar view

Switch the toggle at the top right of the Dispatch Board from List to Calendar for a week at a glance: one row per crew, one column per day. The view and the week you're on are kept in the page address, so refreshing or sharing the link lands on the same week.

  • Crew rows. Each row shows the crew name with its headcount, then its default roster underneath (the crew leader is marked). An Unassigned row appears whenever a visit that week has no crew.
  • Cards. Each visit is a solid block in its crew's color showing the client and service, with budgeted hours at the bottom right. A recurring job carries a repeat icon and a completed visit carries a check mark.
  • Budget bar. The bar inside each card is actual vs. budgeted hours, with the percentage printed on it: green while on budget, amber from 90%, red once over. It stays empty until hours are logged. Cells show their budgeted total, and a Totals row along the bottom adds up each day across every crew showing.
  • Drag to reschedule or reassign. Drag a card onto another day, another crew, or both. The move saves immediately (and snaps back if it can't be saved). Completed, skipped, and cancelled visits can't be dragged. On a touch tablet, tap a card to pick it up (a bar shows what you're moving), then tap the day or crew to place it; Cancel or tapping the card again drops it. The bar has an Open job link.
  • Open a job. Click a card's name to open the job. The job page's Back button returns you to the same week in Calendar view (the same applies to View Job from a visit on the List view, which returns to that day).

The filter bar above the grid narrows what you see: Crews (multi-select), Status (All, Open, Completed), a search box for client or service, Hours, and Days. Full screen fills the monitor, for a wall display.

SettingWhat it does
Hours: ManShows hours as man-hours — a 3-person crew working two hours is 6.
Hours: CrewDivides each visit's hours by its crew size, so the same visit reads as 2.
DaysAll 7 days, Mon–Fri, or Mon–Sat. Your choice (and Hours) is remembered on this browser.
Each crew has its own color — set it under Team Settings → Team Details → Color (new crews get one automatically; the same color is used on the Crew Board). The roster under a crew name is its default roster (Team settings) — one-day changes made in Team Assignment or on the Crew Board show on the Crew Board, not on this grid.
Creating a crew: go to Team → Crews → Add Team, enter a Description (the crew's name) and Color on Team Details (Team Code, Linked Login, and starting address are optional), then click Create & Continue. On the Team Assignments tab, use Add Assignment to put employees on the crew's default roster. A Linked Login is only needed if the crew will use the Crew App — creating a crew account under Settings → Users makes the crew and the login together.
Removing a crew from the board: go to Team → Crews and turn the crew's switch in the Active column off, then confirm. The crew moves to the Inactive tab and stops appearing as a crew to schedule on the Dispatch Board and Crew Board; its history is kept. Turn the switch back on (Inactive or All tab) to restore it. This is separate from the crew's login — deactivating the login in Settings → Users only blocks sign-in. If the crew still has active jobs or upcoming visits, the confirmation tells you how many before you proceed. Those stay on the inactive crew and the crew drops out of the crew dropdowns, so reassign the work first. A job whose crew has since been made inactive shows it as "Name (inactive)" in Edit Job.

The Crew Board (shop TV)

CRM → Scheduling → Crew Board (or the Crew Board button on the Dispatch Board) is a Trello-style view of one day: a colored column per crew showing who's on the crew, what equipment is loaded on it, and which jobs it's running. It reads and writes the same data as the Dispatch Board, so the two never disagree. It needs the same permission as the Dispatch Board.

  • Crew header. Headcount, jobs finished out of jobs scheduled, and actual hours / budgeted hours for the day. The bar is the share of the day's budgeted work that's completed; it turns red if finished work ran over its budget.
  • Change crews by dragging. Drag a person to another crew (that move is for this day only and is tagged "today only" — dropping them back on their own crew clears it), or drag a job card to another crew to reassign it. Jobs with no crew sit in an Unassigned jobs column. On a touch screen, tap to pick up and tap to place instead of dragging. On a phone or portrait tablet the board stacks into one column that scrolls down, with the equipment yard at the bottom, instead of crews side by side.
  • Equipment. The Equipment yard on the left lists everything not on a crew today — trucks and vehicles first, then trailers, then other equipment, each with its photo if one is on file. Drag an item onto a crew to load it, or drag a loaded item back to the yard to unload it. Use the search box to find one quickly.
  • What the crew needs. Equipment added to a job (see Jobs, Packages & Projects → Equipment to bring) rolls up per crew. If a crew's jobs need something that isn't loaded on it, an amber Needs … chip appears — click it to load the item (it also tells you if the item is currently on another crew). Items that a job needs show a green Job needs tag once loaded.
  • Default equipment. Click the pin on a loaded item to make it that crew's default — it then shows up on that crew every day without being assigned again. Moving a default item to another crew, or into the yard, only changes the day you're looking at; tomorrow it's back on its default crew. An item can be the default of one crew at a time, and clicking the pin again removes the default.

TV mode. Click TV mode for a full-screen display with large text and no side panels, meant for a monitor in the shop. It refreshes itself every 30 seconds, so changes made at the dispatcher's desk show up without touching it. Dragging is turned off in TV mode; click Exit TV (or the small × in the corner) to edit.

Columns share the screen width and only scroll sideways once there are more crews than fit at a readable size (roughly five or six on a laptop). On a wall display, filter or stage the board so every crew that matters is visible — nobody is there to scroll it.

Saved views, quick ranges and shortcuts

Saved views. Open Saved views next to Refresh to keep a set of filters you use often. Save current as view… stores the service, crew, tag, priority and status-tab filters, the column filter, search text and visible columns; click a view to apply it, or Update it to overwrite with what is on screen. Views are private to you. A date range is saved only if you set it with a Quick range, so a “This week” view keeps meaning this week.

Quick range. Beside the From and To dates: Today, Past 1/3/5 days, Next 3/5/7 days, This week, or Next week (weeks run Sunday to Saturday). Past and Next ranges include today.

Saved views and your columns. Applying a saved view replaces your current visible columns with the ones the view stored. Dragging a stop to another crew on the board is refused with “Use Team Assign to move a stop between crews”; open Team Assignment to move it.

Status icon menu. Click a visit's status icon to change its status The status applies as soon as you click it. The same menu can also change the date, appointment start and end, and crew, which apply when you Save. Only what you changed is applied.

Also new. Add / Remove Tags… in the Actions menu tags the clients of the selected visits; Legend explains every icon on the board; Alt+C marks the selected visits completed. The job sheet's billing box shows the service's real billing mode (Flat Rate, Hourly or Per Unit).

See also

The other half of this screen is the crew's phone: what they see, how clocking on and off works, and how the actual hours that land here are produced. See the Crew App guide.

To tell a crew which truck, trailer, and equipment to bring to a job, see Jobs, Packages & Projects → Equipment to bring.

Jobs without a fixed date — waiting for weather, crew capacity, or a client window — don't live on the Dispatch Board at all until they're given a day and crew. See the Waiting List guide for how those get queued and dispatched.

Good to know

  • Visits the crew is working are protected. While a crew is clocked in to a stop you can't move it to another day, change its crew, change its status or delete it, from the board, the visit sheet, bulk actions or the snow board. Have the crew clock out first. A stop the crew skipped after starting can be rescheduled or reopened normally.
  • Reopening a finished visit. Setting a completed, skipped or cancelled visit back to Scheduled or Dispatched clears its clock times so the crew can work it again.
  • Dispatch Assigned. Dispatch Assigned in Team Assign dispatches the assigned visits for the day shown in its title, even when the board has a From/To range loaded.
  • Edit Job Times. Opening Edit Job Times waits for the crew's punches to load before filling in anyone, so it never overwrites times the crew recorded.
  • Snow board status icon. Tapping the status icon steps a stop forward and asks before completing it (completing invoices it) or reopening it. Skipping goes through the outcome dialog with a reason.
  • Nearby Jobs. A job scheduled from Nearby Jobs drops out of that list, so it can't be added twice.
  • Visit sheet invoice description. The visit sheet shows the job's invoice description when the visit has none. It only saves an invoice description on the visit when you change it, so later edits to the job's description still reach that visit's invoice.

More in Landscapt (CRM)

Clients, Properties & Leads
Client accounts, commercial hierarchies, service properties, and the activity timeline that ties it all together.
Estimates & the Budget Engine
How an estimate is built, how its numbers are actually calculated, and how it becomes a job.
Jobs & Packages
The six job types, how a job's status differs from a visit's status, and how a Package template turns into a billed job.
Services & Pricing
The service catalog, bulk catalog price changes, and Price Adjustment runs — which prices seed new work and which ones actually bill.
The Crew App
What a crew sees on their phone — the day's stops, clocking on and off, breaks, photos, and sending work back to the office.
Sales Meetings
Booking appointments per sales rep, the double-booking warning, and the split between a rep's direct reminder and the client-facing automation trigger.
The Waiting List
Jobs with a date range instead of a date, held for opportunistic scheduling — and how to actually get them dispatched.
Snow Jobs & Storm Dispatch
Storm events, priority dispatch, and the invoicing flow built specifically for snow.
Invoicing & Payments
How an invoice is born, how its status moves, and where the client's own PO number actually goes.
Contracts
Ongoing billing agreements — monthly amounts, seasonal overrides, sub-properties, and how signing and invoicing actually work.
Communication Automations
How sequences, triggers, and events work — and how Automations differ from Sales Campaigns.
Forms & Lead Capture
Building, publishing, and sharing public forms — and what happens to a submission once it lands.
Document & Email Templates
Building the reusable emails and text messages that go out with invoices, estimates, campaigns and automations — blocks, merge tags, buttons, previews and test sends.
Tickets
Support and service tickets — where they come from, how they're worked, and how they connect to the rest of a client's record.
Damage Cases
Tracking property damage and warranty claims tied to a job — what a case captures, how cost rolls up, and a real current limitation in how it connects to a client record.
Warranties
Tracking the warranties you give on walls, walkways, patios and renovations — when each starts and ends, how claims tie back to it, and expiry reminders.
Commissions
Paying sales reps a percentage of what they sell — plans and rules by service and sale type, how earnings are calculated, and locking a quarter into a statement.
Injury & Near-Miss Cases
Reporting injuries, illnesses and near misses from the field, following them up in the office, tracking self-paid costs, supervisor alerts, and the Accident Free Workdays KPI.
Job Photos
Field photo documentation, annotation, and before/after comparisons — attached to a job site, not a person.
Online Payments & Stripe
How a client actually pays an invoice online, how Stripe Connect keeps every org's money in their own account, and how the platform takes zero cut.
Browse all guides
© 2026 Landscapt. All rights reserved.