Browse the docs

Agent setup guide

Licence, Certificate & COI Expiry Tracker

Finds licences, certifications and insurance certificates expiring in 60, 30 or 7 days and drafts the right reminder for one batch approval.

Available About 15 min to set up

What it does

Finds licences, certifications and insurance certificates expiring in 60, 30 or 7 days and drafts the right reminder for one batch approval.

  • Every Monday, reads your documents register in Google Sheets (up to 100 rows): licences, certifications, insurance certificates, registrations.
  • Dates are worked out in code, never by the AI: days until or since each date, the window and business days are computed in your workflow's time zone, and records outside the window are skipped before the AI sees them.
  • For each document in the 60, 30 or 7-day window (or expired), AI drafts the right reminder: vendors asked for a renewed certificate, staff asked to book recertification, the owner asked to renew a licence.
  • Remembers each reminder for a year, so every window is reminded once — never every Monday.
  • All reminders wait for one batch approval. Each approved one is checked in code (still marked to send, one valid recipient, no placeholders) and by an AI wording check that only stops coverage judgements, threats and a wrong expiry date, then emailed with replies to your compliance inbox.
  • Posts a Slack digest of everything expired and due in the next 30 days, with the number of reminders waiting for approval counted in code.

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 documents register with expiry dates and emails.

What it doesn't do

  • It drafts and organises reminders for a person to approve; it makes no legal, permit or coverage decision and doesn't judge whether insurance is adequate (not insurance advice).
  • It tracks the dates you enter and doesn't read certificates or verify them.
  • Nothing is emailed before the batch is approved; it reads up to 100 rows per run.
  • Not for NEMT driver credentials — that's Driver Compliance Monitor.

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 15 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 documents register (Settings → Integrations → Google Sheets).

3. Connect Slack

Connect the Slack workspace your team uses (Settings → Integrations → Slack).

4. Describe your register

Open “Draft the right reminder” and replace the placeholder with your column names, where renewed certificates go and your sign-off. The reminder windows are set in “Check the expiry dates”.

SettingWhat to enterIn step
Your register and reminder detailsReplace the placeholder with your company name, the register's column names, where renewed certificates go, how staff book recertification and your sign-off. The 60 / 30 / 7-day windows are set in “Check the expiry dates”. It starts as “[PASTE YOUR COMPANY NAME, YOUR REGISTER'S COLUMN NAMES, WHERE RENEWED CERTIFICATES SHOULD BE SENT (E.G. AN UPLOAD LINK OR INBOX), HOW STAFF BOOK RECERTIFICATION AND YOUR SIGN-OFF HERE]” until you replace it.“Draft the right reminder”

5. Pick the register

Open “Read your documents register” and pick the account, spreadsheet and tab.

SettingWhat to enterIn step
Google accountThe Google account that can open your documents register. Pick your connected Google Sheets account.“Read your documents register”
Register spreadsheetPaste the link of the spreadsheet with your documents register.“Read your documents register”
Register tabThe tab with one row per document, e.g. Register.“Read your documents register”

6. Add your inbox and Slack channel

Open “Email the reminder” and enter the Reply-to address, then “Post the digest to Slack” and pick the account and channel.

SettingWhat to enterIn step
Compliance inbox (replies)Replies to the reminders (and emailed certificates) come back to this address.“Email the reminder”
Slack accountThe Slack workspace your team uses. Pick your connected Slack account.“Post the digest to Slack”
Slack channel for the digestThe channel the weekly expiry digest goes to, e.g. #compliance.“Post the digest to Slack”

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, set your time zone (expiry days are counted in it) and switch the schedule on. It runs every Monday at 7:30.

How it works

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

  • Every Monday at 7:30 — Runs on a schedule (cron 30 7 * * 1, UTC — change it in the trigger's settings). Runs every Monday morning. Set your time zone on the trigger.
  • Read your documents register — Google Sheets: Read rows. Reads your register tab: one row per licence, certification, insurance certificate or registration with holder, type, expiry date, owner email and holder email.
  • Check the expiry dates — Step. In code, not AI: works out the days to each document's expiry in your time zone and keeps only documents in the 60-, 30- or 7-day window or already expired. Change the windows here (the expiry rule's buckets).
  • Each document due — Repeats the steps below for each item (up to 100 per run). Drafts a reminder for every document the date check kept (up to 100 per run).
  • [For each item — “Each document due”] Already alerted for this window? — Recalls what it remembered earlier (memory “document-expiry-tracker”). Recalls the last alert sent for this row (document, expiry date and window), so each window alerts only once.
  • [For each item — “Each document due”] Draft the right reminder — AI step (runs on your AI provider key). The days to expiry and the window were worked out in code. AI skips windows already alerted and drafts the right message: a vendor asked for a renewed certificate, a staff member asked to book recertification, or the owner asked to renew a licence.
  • Approve this week's reminders — A person approves or rejects it in Reviews (the run waits). All of this week's reminders wait in Reviews together. Check the external emails (vendors and staff), edit any, set send to false on any that shouldn't go, and approve.
  • Each approved reminder — Repeats the steps below for each item (up to 100 per run). Branch: Approved. Sends every approved reminder and remembers its window.
  • [For each item — “Each approved reminder”] Final check on the wording — AI step (runs on your AI provider key). AI reads each approved reminder for coverage judgements, legal threats and a wrong expiry date only — naming the document, holder and expiry date and asking for the renewal are fine. It must quote the exact sentence it objects to.
  • [For each item — “Each approved reminder”] Check before sending — Step. In code: still marked to send, exactly one valid email, a row number, a subject and a body with no placeholders left — plus the wording check's verdict. Anything that fails is held, with the reason.
  • [For each item — “Each approved reminder”] Send it? — Decision: picks the branch to follow. Only reminders that pass every check are emailed; the rest are held with the reason.
  • [For each item — “Each approved reminder”] Not sent — Kept in the run history. Branch: Held. Already reminded, switched off in the review or stopped by a check; the reason is in the run history.
  • [For each item — “Each approved reminder”] Email the reminder — Sends an email from your workspace's sender. Branch: Send. Emails the reminder from your workspace's sender, with replies to your compliance inbox.
  • [For each item — “Each approved reminder”] Remember the window — Remembers it for later runs (memory “document-expiry-tracker”, kept 365 days). Remembers this row's document, expiry date and window (for a year), so the same window isn't reminded again.
  • Reminders sent — Kept in the run history. The run history keeps every reminder that was approved and sent.
  • Count the drafts — Step. In code, not AI: counts the reminders drafted to send (waiting for approval) and the documents skipped this week.
  • Write the expiry digest — AI step (runs on your AI provider key). AI lists everything expired and everything due in the next 30 days (worked out in code) for your Slack channel; the number of reminders waiting for approval is counted in code.
  • Post the digest to Slack — Slack: Post a message. Posts the expired items, what's due in 30 days and how many reminders are waiting for approval (counted in code).
  • Digest posted — Kept in the run history. The run history keeps the digest.

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.
  • For-each loops repeat only the first 3 items.
  • Memory steps don't read or write stored memory: a recall finds nothing, and a save only shows what it would store.

Go live

  • Open the trigger, set your time zone (expiry days are counted in it) and switch the schedule on. It runs every Monday at 7:30.
  • 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

What should the register look like?

One row per document: Holder, Type (e.g. General liability COI, Forklift certification, Business licence, Vehicle registration), Document number, Expiry date, Owner email, Holder email. Column names can vary; describe them in the setup text.

How often is each document reminded?

Once at 60 days, once at 30, once at 7 and once when it expires. The days are counted in code in your trigger's time zone (dates like 2026-11-14, 11/14/2026 or November 14, 2026 all work); to use other windows, open “Check the expiry dates” and edit the buckets. The agent remembers each sent reminder for a year by register row; when you enter a new expiry date the cycle starts again.

Does it check the certificate itself?

No. It tracks the dates you enter. It doesn't read certificates or judge limits or coverage, and it isn't insurance or legal advice.

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 .