Agent setup guide
Policy Renewal Check-In
Weekly: finds policies renewing in 30–60 days and drafts a “what's changed?” check-in. Nothing is sent until the producer approves the batch.
What it does
Weekly: finds policies renewing in 30–60 days and drafts a “what's changed?” check-in. Nothing is sent until the producer approves the batch.
- Every Monday, reads the book-of-business sheet you export from your agency management system (up to 50 policies due per run).
- 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 policy renewing in the next 30–60 days (or your window) without a check-in in the last 120 days, AI drafts a short email asking about the changes that matter for that line: drivers and vehicles, property changes, payroll and revenue, claims.
- Skips policies without an email or noted as cancelled, non-renewed or do-not-contact.
- The whole batch waits for the producer's approval; they edit any email or hold any insured.
- Each approved email is checked in code (one valid recipient, still marked to send, no placeholders) and by an AI wording check that only stops coverage advice, coverage statements and price talk — stating the renewal date is fine. Then it is sent with replies to your agency inbox.
- Creates a HubSpot follow-up task on the insured's contact, writes “Sent” and the date in the row, and emails the producer a summary.
- 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 and HubSpot, connected in Settings → Integrations.
- Your upcoming renewals in a Google Sheet (one row per policy, with a renewal date, an email and a “Check-in sent” column).
What it doesn't do
- It drafts and organises for a licensed producer to approve. It makes no coverage decision and gives no coverage advice; it only asks what has changed.
- It doesn't remarket, quote, rate or renew policies, or predict premiums.
- It doesn't connect to Applied, HawkSoft or other agency management systems directly: it reads the sheet you export.
- It never emails an insured before the producer approves the batch.
- It doesn't read the insured's reply: replies come to your inbox and the HubSpot task reminds the producer to follow up.
- It skips rows whose renewal date it can't read (they're listed in the summary), and handles up to 50 policies due 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 and HubSpot.
- Nothing to send: the agent runs on a schedule.
- About 25 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 book-of-business spreadsheet (Settings → Integrations → Google Sheets).
3. Connect HubSpot
Connect the HubSpot account where your producers work (Settings → Integrations → HubSpot).
4. Add your agency details
Open “Draft the check-in (or skip)” and replace the placeholder with your agency name, sign-off and anyone not to contact. The 30–60 day window is set in “Check the renewal dates”.
| Setting | What to enter | In step |
|---|---|---|
| Agency details and sign-off | Replace the placeholder with your agency name, the producer's name and phone for the sign-off, and any insured, producer or line not to contact. It starts as “[YOUR AGENCY NAME, PRODUCER NAME AND PHONE FOR THE SIGN-OFF, AND ANYONE, ANY PRODUCER OR ANY LINE NOT TO CONTACT]” until you replace it. | “Draft the check-in (or skip)” |
5. Pick your book-of-business sheet
Open “Read your book of business” and “Mark the row as checked in”, pick the account, spreadsheet and tab in each, and enter the letter of your “Check-in sent” column.
| Setting | What to enter | In step |
|---|---|---|
| Google account (book of business) | The Google account that can open your book-of-business spreadsheet. Pick your connected Google Sheets account. | “Read your book of business” |
| Book-of-business spreadsheet | Paste the link of the spreadsheet you export upcoming renewals into. | “Read your book of business” |
| Book-of-business tab | The tab with one row per policy, e.g. Renewals. | “Read your book of business” |
| Google account (mark rows) | The same Google account, used to mark each row once its check-in is sent. Pick your connected Google Sheets account. | “Mark the row as checked in” |
| Spreadsheet to mark (same one) | Paste the same book-of-business spreadsheet link again. | “Mark the row as checked in” |
| Tab to mark (same one) | The same tab name as above. | “Mark the row as checked in” |
| “Check-in sent” column letter | The column letter of your “Check-in sent” column (e.g. J). The agent writes “Sent” and the date there. | “Mark the row as checked in” |
6. Pick HubSpot and the task owner
Open “Find or add the insured in HubSpot” and “Create the producer's follow-up task”, pick your HubSpot account in each and choose who owns the tasks.
| Setting | What to enter | In step |
|---|---|---|
| HubSpot account (contacts) | The HubSpot account where the insured's contact is found or added. Pick your connected HubSpot account. | “Find or add the insured in HubSpot” |
| HubSpot account (tasks) | The same HubSpot account, used to create the follow-up task. Pick your connected HubSpot account. | “Create the producer's follow-up task” |
| HubSpot owner for follow-up tasks | The producer or account manager who gets the follow-up tasks (pick them from the list). | “Create the producer's follow-up task” |
7. Add your inbox and the summary recipient
Open “Email the check-in” and enter your agency inbox for replies, then “Email the summary to the producer” and enter who gets it.
| Setting | What to enter | In step |
|---|---|---|
| Agency inbox (replies) | Insureds' replies to the check-ins come back to this address (Reply-to). | “Email the check-in” |
| Who gets the weekly summary | Replace the example address with the producer or account manager who gets the summary (up to 5, comma-separated). It starts as “producer@your-agency.example” until you replace it. | “Email the summary to the producer” |
8. Test it with Dry Run
Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.
9. Switch the trigger on
Open the trigger, set your time zone (renewal days are counted in it) and switch the schedule on. It runs every Monday at 8:00, so refresh the renewals export before then.
How it works
The agent is a normal workflow with 18 steps (2 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 book-of-business export in the sheet. Set your time zone on the trigger: “today” and the renewal window are counted in that zone.
- Read your book of business — Google Sheets: Read rows. Reads the book-of-business sheet you export from your agency management system: one row per policy with the insured, email, line, carrier, renewal date and notes.
- Check the renewal dates — Step. In code, not AI: works out the days to each policy's renewal in your time zone and keeps only policies renewing in 30–60 days whose “Check-in sent” cell is blank or over 120 days old. Change the window here (within.min / within.max).
- Each policy due — Repeats the steps below for each item (up to 50 per run). Repeats the draft step for every policy the date check kept (up to 50 per run, to stay inside the run's AI budget).
- [For each item — “Each policy due”] Draft the check-in (or skip) — AI step (runs on your AI provider key). AI drafts a short email asking about the changes that matter for that line (drivers, property, payroll, claims), or skips the policy when the notes say not to contact. The renewal window was already checked in code.
- Producer approves the batch — A person approves or rejects it in Reviews (the run waits). All of this week's check-ins wait in Reviews together. The producer edits any email, sets send to false on any that shouldn't go out, and approves the batch; nothing is sent before that.
- Batch not approved — Kept in the run history. Branch: Rejected. Rejected batches are kept in the run history; nothing was sent.
- Each approved check-in — Repeats the steps below for each item (up to 50 per run). Branch: Approved. Repeats the wording check, the code checks, the email, HubSpot task and sheet update for every draft in the approved batch.
- [For each item — “Each approved check-in”] Final check on the wording — AI step (runs on your AI provider key). AI reads each approved email for coverage advice, coverage statements and price promises only — stating the renewal date, asking what changed and inviting a call are fine. It must quote the exact sentence it objects to.
- [For each item — “Each approved check-in”] 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 check-in”] Send it? — Decision: picks the branch to follow. Emails that pass every check are sent; the rest are held and listed in the summary with the reason.
- [For each item — “Each approved check-in”] Held — Kept in the run history. Branch: Held. Skipped by the AI, set to not send by the producer, or stopped by a check; the reason is in the run history and the summary.
- [For each item — “Each approved check-in”] Email the check-in — Sends an email from your workspace's sender. Branch: Passes. Sends the approved check-in to the insured from your workspace's sender, with replies going to your agency inbox.
- [For each item — “Each approved check-in”] Find or add the insured in HubSpot — HubSpot: Create or update a contact. Creates the insured's HubSpot contact, or updates the one with the same email, so the follow-up task has a record to sit on.
- [For each item — “Each approved check-in”] Create the producer's follow-up task — HubSpot: Create a task. Adds a HubSpot task on the insured's contact, due in a week (computed in code), so the producer follows up on the answers before renewal.
- [For each item — “Each approved check-in”] Mark the row as checked in — Google Sheets: Update a row. Writes “Sent” and today's date in the row's “Check-in sent” column, so the policy isn't contacted again next week.
- Count what happened — Step. In code, not AI: sorts every approved draft by what really happened — sent (email, task and sheet update ran), skipped, held (with the reason) or failed — and lists the policies outside the window.
- Email the summary to the producer — Sends an email from your workspace's sender. Sends the run summary (sent, held, skipped, not due) — counted in code — to the producer or account manager.
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 (renewal days are counted in it) and switch the schedule on. It runs every Monday at 8:00, so refresh the renewals 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?
One row per policy, exported from your agency management system (Applied, HawkSoft, EZLynx…) or kept by hand: Policy number, Insured, First name, Email, Line, Carrier, Renewal date, Producer, Notes and an empty “Check-in sent” column the agent fills in. Column names can vary; the date check looks for a renewal or expiration column. Dates like 2026-11-20, 11/20/2026 or November 20, 2026 all work.
How is the 30–60 day window worked out?
In code, not by the AI: the agent counts the days from today (in your trigger's time zone) to each renewal date, and only policies inside the window reach the AI. To use another window, open “Check the renewal dates” and change within.min / within.max.
Does it connect to my agency management system?
Not directly. Export your upcoming renewals to the Google Sheet before the Monday run. If you keep policies in Salesforce, export a report to the sheet.
Does it give coverage advice or remarket the policy?
No. It only asks the insured what has changed. A final check stops any email that talks about coverage, limits or price (stating the renewal date is fine), and the producer approves every batch.
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 .