# Replace the dispatch whiteboard with a live production board

> See every install this week day by day, with the crew, the homeowner, whether materials were ordered, and the latest jobsite photos.

- Workflow type: app
- Services: JobNimbus, CompanyCam, Gmail
- Categories: Operations
- Published: 2026-08-24

## What it does

- Lays out this week's installs day by day, one card per job, with the scheduled work order, the assigned crew or subcontractor, and the homeowner's name and phone.
- Flags whether the materials were actually ordered for each job, and pins any job missing a material order or a crew assignment to the top of the board.
- Pulls the newest jobsite photos onto every card by matching the job address, so the office can confirm progress without phoning the crew lead.
- Moves jobs between days, swaps crews, advances the production status and adds punch list items in place, plus a one click button that builds tomorrow's dispatch packet, emails each crew lead their brief and logs it on the job.

## What you'll need

- A JobNimbus account with your production workflows and statuses already set up, and an API key from the settings screen
- Installs scheduled as work orders in JobNimbus, with crews or subcontractors assigned to them
- A CompanyCam admin login on a paid plan if you want the jobsite photos on each card
- A Gmail account to send the dispatch packets from, plus email addresses for your crew leads

## Prompt

Build me a production board app that my dispatcher works out of every morning, replacing the whiteboard on our office wall. It shows this week's roofing installs day by day, one column per day, Monday through Saturday, with each scheduled job as a card in the column for the day it is scheduled. Open on the current week with arrows to page a week forward or back.

Each card is a job from the JobNimbus List Jobs operation joined to its scheduled work orders from List Work Orders. The card shows the job name and street address, the scheduled date and time window from the work order, the assigned crew or subcontractor from the work order, the current production status, and the homeowner's name and phone loaded with Retrieve a Contact using the job's primary contact. It also carries a materials flag driven by List Material Orders filtered to that job: green when a material order exists and is ordered or delivered, amber when one exists but is still a draft, red when there is no material order at all, so the dispatcher can see at a glance whether the shingles were actually ordered for that job.

Every card also pulls the most recent field photos from CompanyCam. Call List Projects and match the project to the job on street address rather than assuming a shared id, normalizing both sides for case, punctuation and street suffix abbreviations before comparing. When a project matches, call List Project Photos and show the four newest thumbnails with their capture dates, clicking one to open it full size, so the office can confirm progress without phoning the crew lead. When no project matches, degrade gracefully to a quiet no photos yet state rather than an error.

The dispatcher does the work without leaving the board. Dragging a card to a different day column, or picking a different crew or subcontractor from a control on the card, saves through Update a Work Order with the new scheduled date and assignment, then refreshes that record with Retrieve a Work Order so the card reflects what JobNimbus actually stored. A status control advances the job to the next step in its production workflow with Update a Job. JobNimbus requires both record_type_name and status_name on any job update, so read the valid workflows and their ordered status lists once with Retrieve Account Settings, cache them, and only ever offer real statuses from that job's own workflow. An add punch list item button opens a small form for description, assignee and due date and writes it back with Create a Task related to the job. Apply every change optimistically and revert with a visible error if the save fails.

Pin a blockers strip across the top of the board. Any job scheduled this week that has no material order, or whose work order has no crew or subcontractor assigned, surfaces there with the reason spelled out and stays pinned until it is resolved, and it should be fixable straight from the strip using the same crew assignment control. The week view defaults to the production workflows only rather than every lead in the system: use the workflow list from Retrieve Account Settings to restrict jobs to the install and production record types, with a filter control if the dispatcher wants to widen it.

Finish with a Build tomorrow's dispatch packet button that runs a background agent. For each job scheduled the next day, the agent assembles the address, the scope of work from Retrieve an Estimate on that job's accepted estimate, the material order status from List Material Orders, the homeowner contact from Retrieve a Contact, and any access or pet notes found on the contact and job. It writes a per crew brief into the app so the dispatcher can read every packet on screen, emails each crew lead their own brief using the Gmail Send a Message operation, and logs the packet onto the job as a note with Create an Activity. Show the agent's progress while it runs and land the finished packets in a Tomorrow panel with the email delivery status per crew.

Build notes: JobNimbus dates are Unix epoch seconds, so convert on read and write and bucket jobs into day columns using the office time zone. JobNimbus list endpoints are offset paginated with size and from, so page until a short page comes back instead of assuming one call covers the week. Fetch jobs, work orders and material orders once per week view and join them in memory rather than firing a request per card. CompanyCam list endpoints page with page and per_page and return bare arrays.

## How to customize

- Change which days the board shows, for example a six day week including Saturday, or default it to a single day view
- Pick which production workflows and statuses count as install work, so leads and estimates never clutter the board
- Adjust what goes into the dispatch packet email and who receives it, for example sending Monday's packet on Friday afternoon

## FAQ

### Does this replace the boards we already use in JobNimbus?

It sits on top of them. The board reads and writes the same jobs and work orders in JobNimbus, so anything your dispatcher changes here shows up in JobNimbus, and anything your team changes in JobNimbus shows up here.

### Can the dispatcher really reschedule and reassign from the board?

Yes. Dragging a card to another day column reschedules that job's work order, and picking a different crew or subcontractor on the card reassigns it. Both save straight back to JobNimbus, along with status changes and punch list items.

### Do we need CompanyCam for this to work?

No. The board works fine without it, you just lose the photo strip on each card. If you do connect it, note that CompanyCam only opens up its data to admins on a paid plan.

### What if a job has no jobsite photos?

The card shows a quiet no photos yet message. Photos are matched to a job by street address, so if the CompanyCam project uses a different address the card stays empty rather than showing another site's work.

### Who gets the dispatch packet email?

Each crew lead gets only their own jobs for the next day, with the address, the scope of work, the material order status, the homeowner contact and any access or pet notes. A copy is saved onto the job in JobNimbus and shown in the app so the office has the same packet.

Use this prompt in General Input: https://www.generalinput.com/prompts/replace-the-dispatch-whiteboard-with-a-live-production-board