Browse the docs

Agent setup guide

Driver Compliance Monitor

Checks driver credentials every morning and proposes dispatch holds for a manager to confirm.

Available About 20 min to set up

What it does

Checks driver credentials every morning and proposes dispatch holds for a manager to confirm.

  • Every weekday morning, reads your driver credentials sheet in Google Sheets.
  • Dates are worked out in code, never by the AI: each credential's days left and its tier (lapsed, 7, 14 or 30 days) from the expiry date, or from the last-done date plus its renewal interval, in the trigger's time zone.
  • AI checks each driver's credentials (license, medical card, drug-test cadence, insurance, training, state NEMT certifications) against the requirements you set.
  • Posts lapsed, missing and expiring credentials, grouped 30 / 14 / 7 days out, to your compliance channel in Slack.
  • Proposes a dispatch hold for any driver with a lapsed or missing required credential. A manager confirms the list in Reviews, and the confirmed holds are posted to your dispatch channel.
  • Each day's check is kept in the run history as a dated record.

What it needs

  • A paid plan (agents run live on paid plans).
  • An AI provider key (Settings → AI Providers).
  • Google Sheets and Slack, connected in Settings → Integrations.
  • A Google Sheet with one row per driver and a date for each credential, kept up to date.

What it doesn't do

  • It doesn't block drivers in your dispatch or scheduling software; a manager confirms holds and dispatch applies them.
  • It doesn't verify credentials with the DMV, testing labs or insurers; it reads the dates in your sheet.
  • It doesn't message drivers directly or collect documents.
  • It doesn't produce an audit binder; the run history keeps each day's report.

Availability and plans

Available

Its workflow is built and tested, and every app it needs is live. You can get it and set it up now.

Included free on the Enterprise plan; on other paid plans it's a one-time purchase per workspace (the price is on the Agents page). The Agents page in the app always shows its current status.

Before you start

  • A paid plan: agents run live, and the Free plan only runs Dry Runs.
  • An AI provider key (OpenAI, Anthropic, Google and more) in Settings → AI Providers. AI usage is billed by your provider.
  • These apps, connected in Settings → Integrations: Google Sheets and Slack.
  • Nothing to send: the agent runs on a schedule.
  • About 20 minutes.

Set it up step by step

Get the agent first (buy it, or it's already yours when your plan includes it), then in Agents → My agents press “Set up this agent”. That creates the agent's workflow in your workspace (it counts towards your plan's workflow limit) and opens the canvas with a setup checklist above it. Each item links to the exact place to go and ticks itself off when it's done.

1. Connect your AI provider

The AI steps run on your own key (OpenAI, Anthropic, Google and more). Add one in Settings → AI Providers.

2. Connect Google Sheets

Connect the Google account that can open your driver credentials sheet (Settings → Integrations → Google Sheets).

3. Connect Slack

Connect the Slack workspace your compliance and dispatch teams use (Settings → Integrations → Slack).

4. Pick your driver credentials sheet

Open “Read the driver credentials sheet”, pick your Google account, paste the spreadsheet link and pick the tab.

SettingWhat to enterIn step
Google accountThe Google account that can open your driver credentials sheet. Pick your connected Google Sheets account.“Read the driver credentials sheet”
Driver credentials sheetLink to the spreadsheet with one row per driver and a column per credential date (e.g. License expires, Medical card expires, Last drug test, CPR expires).“Read the driver credentials sheet”
Credentials tabThe tab that holds the driver rows, e.g. Drivers.“Read the driver credentials sheet”

5. List your credential requirements

Open “Check every driver's credentials” and replace the placeholder with each credential and whether it's required to drive. Check the date columns and renewal intervals on “Check the credential dates”.

SettingWhat to enterIn step
Your credential requirementsReplace the placeholder with each credential your drivers need and whether it's required to drive. The date columns and renewal intervals (drug test every 365 days, PASS and defensive driving every 1,095 days) are set in “Check the credential dates”. It starts as “[LIST THE CREDENTIALS YOUR DRIVERS NEED AND WHICH ONES ARE REQUIRED TO DRIVE]” until you replace it.“Check every driver's credentials”

6. Pick the compliance and dispatch channels

Open the two Slack steps and pick your account and channel in each. Invite the app to private channels first (/invite @Fluxo Flow).

SettingWhat to enterIn step
Slack account (report)The Slack workspace the compliance report is posted to. Pick your connected Slack account.“Post the compliance report in Slack”
Compliance channelThe channel your compliance or operations manager watches, e.g. #compliance.“Post the compliance report in Slack”
Slack account (dispatch)The Slack workspace the confirmed hold list is posted to. Pick your connected Slack account.“Tell dispatch who is on hold”
Dispatch channelThe channel your dispatchers watch, e.g. #dispatch.“Tell dispatch who is on hold”

7. Test it with Dry Run

Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.

8. Switch the trigger on

Open the trigger, check the time and time zone, and switch the schedule on. Assign the review step to your compliance manager.

How it works

The agent is a normal workflow with 9 steps (1 AI step, with a person approving in Reviews). You can open, edit and monitor it like any other workflow.

  • Weekdays at 6 am — Runs on a schedule (cron 0 6 * * 1-5, America/New_York — change it in the trigger's settings). Runs each weekday morning before dispatch starts. Change the time and time zone on the trigger.
  • Read the driver credentials sheet — Google Sheets: Read rows. Reads your driver credentials sheet in Google Sheets: one row per driver with each credential's expiry or last-done date.
  • Check the credential dates — Step. In code, not AI: for each driver works out every credential's days left and tier — lapsed, 7, 14 or 30 days, or ok — from the expiry dates, and from the last-done date plus its renewal interval (drug test every 365 days, PASS every 1,095 days). Every driver stays in the list. Change the columns, intervals and tiers here (fields and buckets).
  • Check every driver's credentials — AI step (runs on your AI provider key). AI reads each credential's tier worked out in code (lapsed, expiring in 30 / 14 / 7 days, or missing) against your requirements and proposes which drivers to hold from dispatch.
  • Anything to act on? — Decision: picks the branch to follow. Lapsed, missing or expiring credentials go to your compliance channel and the hold list goes to a manager for confirmation; an all-clear day is just logged.
  • Post the compliance report in Slack — Slack: Post a message. Branch: Issues found. Posts lapsed, missing and expiring credentials (30 / 14 / 7 days) to your compliance channel.
  • Manager confirms the dispatch holds — A person approves or rejects it in Reviews (the run waits). Branch: Issues found. Your compliance or operations manager checks the proposed holds in Reviews (a renewal may not be in the sheet yet), edits the list and approves it to tell dispatch.
  • Tell dispatch who is on hold — Slack: Post a message. Branch: Confirmed. Posts the confirmed hold list to your dispatch channel so those drivers aren't given trips.
  • All clear — Kept in the run history. Branch: All clear. Days with nothing to act on are kept in the run history as a dated record of the check.

Test it with Dry Run

Press Dry Run in the canvas. The agent runs on the sample data stored on its trigger (the “Sample data for Dry Run” box), so you can check every step's output before anything is live.

  • Nothing is sent or written: app actions, emails and Slack posts are simulated, and AI steps don't call your AI provider.
  • Approval steps use the Dry Run decision you pick in the step's settings (approved, rejected or timeout), so you can try each branch.

Go live

  • Open the trigger, check the time and time zone, and switch the schedule on. Assign the review step to your compliance manager.
  • Scheduled runs start only once the schedule is activated, and can't repeat faster than your plan's minimum interval.
  • The setup checklist adds a “paid plan” item before activation: live runs need a paid plan (the Free plan only runs Dry Runs).
  • When every checklist item is done and the trigger is on, the checklist says “Live — this agent is running”. Follow its runs in the workflow's History tab and in Analytics → Agents.

Questions

Does it block drivers in my dispatch software?

No. It proposes holds, a manager confirms them, and the confirmed list is posted to your dispatch channel. Your dispatchers apply it.

Where does the credential data come from?

From your Google Sheet. Keep it updated when a driver renews; the agent reads it fresh every morning.

Which columns are checked?

“Check the credential dates” reads License expires, Medical card expires, Insurance expires, CPR expires, Last drug test (every 365 days), PASS completed and Defensive driving completed (every 1,095 days). Column names can vary a little. A credential you require that isn't on that step is reported as missing until you add its column there.

Troubleshooting

  • “No AI provider connected” or a rejected key: connect or fix the key in Settings → AI Providers, then press Test there.
  • A checklist item stays unticked: the setting is still empty or still contains its placeholder text. Open the step from the checklist and fill it in.
  • An app step fails with “Needs reconnect”: the account's access was revoked or expired. Reconnect it in Settings → Integrations.
  • Slack says the app isn't in the channel: in Slack, type /invite @Fluxo Flow in that channel (always needed for private channels).
  • It didn't run at the expected time: the schedule must be activated, and its time is in the trigger's timezone.
  • A run shows as paused: it's waiting for someone in Reviews to approve or reject it.
  • A step failed: open the run in History and check that step in the Trace tab for the error and what it received.

Generated from the agent's own workflow, so it always matches what the agent does. Last updated .