Agent setup guide
AR Follow-Up Drafts
Weekly: reads your AR aging sheet and drafts friendly, firm or final reminders — nothing is sent until you approve the batch.
What it does
Weekly: reads your AR aging sheet and drafts friendly, firm or final reminders — nothing is sent until you approve the batch.
- Every Monday, reads the AR aging summary you export from QuickBooks or Xero into Google Sheets (up to 150 customer rows).
- For each customer, AI copies the past-due amounts from the sheet exactly and skips anyone not overdue, disputed, on a payment plan, marked do-not-contact or without an email.
- Each past-due total (and the amount in the weekly summary) is added up in code before anyone sees it — never by the AI; anything the AI got wrong is corrected and flagged to the reviewer.
- Picks a friendly, firm or final tone by the oldest overdue bucket (or your own thresholds) and drafts the email with your payment instructions; late fees or holds are mentioned only if your policy states them.
- The whole batch waits in Reviews; you edit any email or hold any customer, then approve.
- Each approved email is checked in code (still marked to send, 1–5 valid recipient emails, no placeholders left) and by an AI wording check that only stops amounts that don't match the row, threats and requests for sensitive details; then it is sent with replies to your AR inbox.
- Your AR owner gets a summary of who was emailed, held or skipped, and why.
- The summary is counted in code from what each step really did (sent, held, skipped, failed), so it never reports a held message as sent.
What it needs
- A paid plan (agents run live on paid plans).
- An AI provider key (Settings → AI Providers).
- Google Sheets, connected in Settings → Integrations.
- A current AR aging export (QuickBooks or Xero) in a Google Sheet, with an email address per customer.
What it doesn't do
- It never emails a customer before you approve the batch.
- It doesn't re-check payments live in QuickBooks or Xero: payments made after your export aren't reflected, so refresh the sheet before each run.
- It doesn't record payments, apply late fees or change anything in your accounting system.
- It never invents amounts, invoice numbers, fees or consequences — only what the sheet and your policy contain.
- It reads up to 150 customer rows per run.
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.
- 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 AR aging spreadsheet (Settings → Integrations → Google Sheets).
3. Paste your collection policy
Open “Draft the reminder (or skip)” and replace the placeholder with your tiers, payment instructions, late-fee policy and sign-off.
| Setting | What to enter | In step |
|---|---|---|
| Your collection policy | Replace the placeholder with your business name, reminder tiers (e.g. friendly 1–30 days, firm 31–60, final 61+), minimum amount to chase, payment link or bank details, any late-fee or service-hold policy (exact wording), who never gets reminders, and the sign-off. It starts as “[PASTE YOUR BUSINESS NAME, REMINDER TIERS, PAYMENT INSTRUCTIONS, LATE-FEE POLICY AND SIGN-OFF HERE]” until you replace it. | “Draft the reminder (or skip)” |
4. Pick your aging sheet
Open “Read your AR aging sheet” and pick the account, spreadsheet and tab (one row per customer, with an Email column).
| Setting | What to enter | In step |
|---|---|---|
| Google account (aging sheet) | The Google account that can open your AR aging spreadsheet. Pick your connected Google Sheets account. | “Read your AR aging sheet” |
| AR aging spreadsheet | Paste the link of the spreadsheet you export the aging summary into. | “Read your AR aging sheet” |
| Aging tab | The tab with one row per customer, e.g. AR Aging. | “Read your AR aging sheet” |
5. Add your AR inbox and AR owner
Open “Email the reminder” and enter the Reply-to address, then “Email the summary to your AR owner” and enter who gets the summary.
| Setting | What to enter | In step |
|---|---|---|
| Your AR inbox (replies) | Customers' replies to the reminders come back to this address (Reply-to). | “Email the reminder” |
| AR owner's email (summary) | Replace the example address with who gets the summary of what was sent, held and skipped after each batch (up to 5, comma-separated). It starts as “ar-owner@your-company.example” until you replace it. | “Email the summary to your AR owner” |
6. Test it with Dry Run
Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.
7. Switch the trigger on
Open the trigger, set your time zone and switch the schedule on. It runs every Monday at 8:00 — refresh the aging export before then.
How it works
The agent is a normal workflow with 16 steps (3 AI steps, with a person approving in Reviews). You can open, edit and monitor it like any other workflow.
- Mondays at 8:00 — Runs on a schedule (cron 0 8 * * 1, UTC — change it in the trigger's settings). Runs every Monday morning, after you've refreshed the AR aging export in the sheet. Set your time zone on the trigger.
- Read your AR aging sheet — Google Sheets: Read rows. Reads the AR aging summary you export from QuickBooks or Xero into Google Sheets: one row per customer with the overdue buckets.
- Each customer — Repeats the steps below for each item (up to 150 per run). Repeats the draft step for every customer row in the aging sheet (up to 150 per run).
- [For each item — “Each customer”] Draft the reminder (or skip) — AI step (runs on your AI provider key). AI copies the overdue amounts from the row, skips customers who shouldn't get a reminder, picks friendly, firm or final by age, and drafts the email with the exact amounts.
- [For each item — “Each customer”] Check the math — Step. Adds up each customer's past-due buckets in code — not by AI — writes the correct past-due total into the draft and the email, and flags any total the AI got wrong for your AR owner.
- Approve this week's batch — A person approves or rejects it in Reviews (the run waits). All of this week's drafts wait in Reviews together. Your AR owner edits any email, sets send to false on any that shouldn't go out, and approves the batch; nothing is sent before that.
- Each approved reminder — Repeats the steps below for each item (up to 150 per run). Branch: Approved. Repeats the wording check, the code checks and the send for every draft in the approved batch.
- [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 wrong amounts, harassment or threats and requests for sensitive details only — stating the amounts, a firm tone and your late-fee policy are fine. It must quote the exact sentence it objects to.
- [For each item — “Each approved reminder”] Check before sending — Step. In code: drafted to send, still marked to send after review, 1–5 valid recipient emails, and a subject and 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. Drafts that pass every check are emailed; skipped and stopped ones are held and listed in the summary with the reason.
- [For each item — “Each approved reminder”] Email the reminder — Sends an email from your workspace's sender. Branch: Passes. Sends the approved reminder to the customer from your workspace's sender, with replies going to your AR inbox.
- [For each item — “Each approved reminder”] Held — Kept in the run history. Branch: Held. Skipped, set to not send in the review, or stopped by a check; the reason is in the run history and the summary.
- Count what happened — Step. In code, not AI: sorts every approved draft by what really happened — sent (the email ran), skipped, held (with the reason) or failed.
- Copy the amounts sent — AI step (runs on your AI provider key). What was sent, held, skipped or failed is counted in code. AI only copies the amounts of the reminders really sent, so the amount line can be added up in code.
- Check the math — Step. Adds up the past-due totals of the reminders that were sent in code — not by AI — and writes that amount into the summary.
- Email the summary to your AR owner — Sends an email from your workspace's sender. Sends the run summary (sent, held, skipped — counted in code — and the amount sent, added up in code) to the person who owns collections.
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.
Go live
- Open the trigger, set your time zone and switch the schedule on. It runs every Monday at 8:00 — refresh the aging export before then.
- 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 sheet look like?
QuickBooks' or Xero's “A/R aging summary” exported to Google Sheets: one row per customer with Customer, Email, Current, 1-30, 31-60, 61-90, 91+ and Total columns (add an Email column and a Notes column for disputes or payment plans if your export has none). Column names can vary — the agent reads them from the header row.
Does it check whether they've paid since?
No. It works from the sheet as exported. Refresh the export before the Monday run, and check amounts when you approve the batch. A version that re-checks QuickBooks live will follow once QuickBooks is approved.
Is anything sent without approval?
No. Every week's drafts wait in Reviews; nothing is emailed until you approve the batch, and you can hold any single reminder by setting send to false.
Can the AI get the totals wrong?
Not in what your customers see: the AI only copies the bucket amounts from the row, and each past-due total is added up in code and written into the email. If the AI's sum was off, the review shows what was corrected (e.g. “past-due total 1830.00 → 1730.00”).
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.
- 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 .