Agent setup guide
Driver Compliance Monitor
Checks driver credentials every morning and proposes dispatch holds for a manager to confirm.
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.
| Setting | What to enter | In step |
|---|---|---|
| Google account | The Google account that can open your driver credentials sheet. Pick your connected Google Sheets account. | “Read the driver credentials sheet” |
| Driver credentials sheet | Link 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 tab | The 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”.
| Setting | What to enter | In step |
|---|---|---|
| Your credential requirements | Replace 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).
| Setting | What to enter | In 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 channel | The 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 channel | The 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 .