← All work

WorkDone

Switchboard — an AI agent on a plant hire desk

A control room for a plant hire firm where an AI agent reads every email, note and edit, does the routine work, drafts the rest for a person to approve, and never applies a change twice.

Open the live demo (opens in a new tab)

Switchboard control room for a plant hire firm, with hire cards in Running, Queued, Awaiting approval and Idle columns, a nine-beat simulator bar and a hire desk drawer Full size
What I was testing
I wanted to see whether an AI agent could work inside a busy hire desk, reading every email, note and edit, without ever applying a change a person hadn't approved, or applying one twice.
What I found
The guarantees belong in the tools, not the agent. Every change carries the booking version it was drafted against and an action key, so stale drafts are caught and a retry or a crashed worker never applies anything twice.

Booking systems are full of small overlaps. A customer asks for a discount, someone on the phone changes the dates, and an approval arrives for a version of the booking that no longer exists. Switchboard is a control room for a plant and equipment hire firm where an AI agent works alongside the hire desk. It reads every email, note and edit, does the routine work, and prepares the rest for a person to approve.

A desk for each hire

Each hire gets a desk that keeps the customer’s emails, staff notes, booking changes and approvals together, with the source of every event available to inspect. The Control Room shows which desks are working, which have queued changes and which need a person. Routine details, such as a PO number or an invoice address, are applied and logged automatically. Discounts, prices, dates, durations and cancellations always wait for approval.

Approval belongs to a version

A draft can be right when it’s written and wrong by the time someone approves it. When the hire changes, Switchboard marks the draft stale, shows what changed, and the agent prepares it again against the current booking. An old approval can’t quietly become permission for a different change.

The hard cases, on purpose

The demo plays a nine-beat story you can step through:

  • A discount request arrives while a PO lands on another email thread.
  • A staff edit changes the hire while a draft is being prepared.
  • The worker is crashed straight after a pricing write.
  • A customer and a member of staff cancel at the same time.

Each one ends with a single change and a single email, and the double cancellation produces one credit note. Every change carries an expected version and an action key, so stale drafts are caught and retries do nothing.

How it’s built

It’s built with Next.js, TypeScript and PostgreSQL, on Mastra’s harness runtime: its signals, schedules and durable agents mean the app doesn’t need a queue of its own. The public demo runs the agent in a scripted model mode, a deterministic stand-in that calls the same tools as a live model, so every beat is repeatable. The final run passed 100 tests and end-to-end checks, including the real crash and recovery.

Northgate Plant & Access Hire is a sample business made up for the demo, and its emails stay in a simulated outbox.

Want something like this for your business?

Say hello ↗︎