TL;DR: An 18-person independent insurance brokerage in Charlotte, NC has 1,800 active policies. Roughly 150 renew each month. The operations manager prints a renewal report, distributes sections to five account managers, and follows up to see who's been called. In practice: the list goes under the keyboard. Account managers contact 40-45% of renewing clients before the renewal date. The other 55-60% either auto-renew without the brokerage adding any value, or lapse without anyone knowing until the commission report shows a gap 30 days later. Last year: 288 policies lost, 176 without a single outreach call, $168,000 in commissions. We designed a four-stage agent that monitors renewals continuously, creates AM tasks with full client context at 90 days, sends automated client outreach at 60 and 30 days if no AM contact, and escalates high-value uncontacted renewals to the ops manager. Running cost: $29-$62/month.
First of the Month
First of the month. Dana opens Applied Epic. Runs the renewal report: policies expiring in the next 60 days. A hundred and forty-seven policies this month.
She exports to a spreadsheet. Sorts by account manager. Prints five sections. Walks them to each AM's desk.
"Here's your renewals for the next 60 days."
The AMs look at the list. They have good intentions. They also have 6 pending claims, 4 new business quotes to write, and a stack of endorsement requests that arrived this morning. The renewal list goes under the keyboard.
Week 1: 3 renewal calls made. Week 2: 8 more. A few clients called in on their own after getting carrier renewal notices. Week 3: Dana asks for a progress update. One AM has contacted 22 of 31 clients. Another has contacted 9 of 38. A third has contacted 4 of 29 ("it's been a crazy month"). Week 4: the remaining uncontacted clients either auto-renew (the brokerage adds nothing to the transaction) or they don't renew (the brokerage finds out 30 days later from the commission report).
Dana reconciles at month end. Of 147 renewals due: 62 were contacted by an AM before renewal. 65 auto-renewed without contact. 12 lapsed or moved to another agency. 8 are still pending.
The 12 that left? Nobody called them. Nobody knows why they left. One of them was a $14,000 commercial account. The principal broker found out when the commission didn't appear. The conversation with the AM was, by Dana's recollection, uncomfortable.
This is, when stated precisely, a business whose entire revenue model is recurring commissions, tracked by printing a list once a month and distributing it to five people who have every intention of calling and insufficient time to follow through. The intentions are genuine. The system for converting intentions into phone calls does not exist.

The Brokerage
Independent insurance brokerage in Charlotte, North Carolina. Eighteen employees. $2.8M in annual commission revenue. Roughly 1,800 active policies: 680 commercial, 1,120 personal lines. Average commission per policy: $1,850 per year for commercial, $420 for personal.
Dana is the operations manager. She spends 4-6 hours per month generating and distributing the renewal report, following up with AMs on progress, and reconciling what actually renewed. Annual cost of her tracking time: $7,200 to $10,800. Modest. The tracking cost is not the problem. The tracking's failure to produce consistent contact is.
Renewal retention rate over the prior 12 months: 84% overall (88% commercial, 81% personal). Industry benchmark for agencies this size: 90-93%. The gap: 6-9 points below benchmark. Applied to 1,800 policies, that gap produced 288 lost policies and approximately $168,000 in lost commissions.
Policies where the AM made contact before renewal: roughly 40-45%. Policies that renewed without any outreach from the brokerage (client auto-renewed or the carrier processed it): 55-60%. The brokerage provided zero additional value on more than half of its renewals. The client renewed despite the brokerage, not because of it.
The 176 policies that lapsed without a phone call weren't lost to bad service or uncompetitive pricing. They were lost to a list that competed with claims, quotes, endorsements, and a phone that doesn't stop ringing. The renewal calls were important. They were never the most urgent thing on any given day. And tasks that are important but never urgent are the tasks that drift until it's too late.
The Design
Four stages. The core insight: the AM's job is the conversation. The tracking, the reminding, the escalating, and the first touchpoint can all happen without the AM being involved until it's time to talk.
Stage 1: Renewal monitoring
Connects to Applied Epic's API. Scans all active policies daily. Identifies policies renewing within 90, 60, and 30 days. At the 90-day mark, creates a structured task for the assigned AM with full client context: policy details, premium history, claims history, last renewal notes, coverage summary. The AM receives this context pre-compiled rather than having to look it up across three screens in Epic.
The shift from 60 days (Dana's printed report) to 90 days (the agent's task creation) gives the AM an additional month of lead time. Which is, in a role where "it's been a crazy month" is the default state, the difference between a call that happens and a call that doesn't.
Stage 2: AM task management and tracking
Tasks assigned to AMs with clear due dates. The agent tracks whether the AM has logged a contact note in Applied Epic. If no note logged within 30 days of task creation (60 days before renewal): the agent nudges the AM and triggers automated client outreach.
The nudge is specific. "This $14,000 commercial renewal is 60 days out. No contact logged. Client: Johnson & Associates. Last renewal: rate increased 6%, client asked about competitor quotes." The AM can call immediately with context instead of starting from scratch.
Stage 3: Automated client outreach
If no AM contact by 60 days: personalised email from the brokerage. "Hi [name], your [policy type] policy with [carrier] renews on [date]. We'd like to review your coverage and make sure you're getting the best value. Reply to this email or call [AM name] at [number]." The email is a touchpoint, not a replacement for the AM's call. It keeps the brokerage visible while the AM catches up.
If no response to email and no AM contact by 53 days: SMS via Twilio. Direct, short, with a phone number.
If no AM contact and no client response by 30 days: escalate to Dana. Full context. Commission-at-risk value. "This $14,000 commercial policy renews in 30 days. No AM contact. No client response."
Dana doesn't discover lost renewals from the commission report 30 days after the fact. She discovers at-risk renewals 30 days before they expire, with time to act.
Stage 4: Escalation and dashboard
Real-time view: renewals by status (contacted, auto-renewed, at-risk, lapsed), AM performance (contact rate, response rate), and commission-at-risk for uncontacted renewals. Monthly report for the principal broker. The data that used to arrive as a surprise in the commission report now arrives as a dashboard the first Monday of every month.

Design Notes
The 90-day trigger changed the AM dynamic. Under the old system, AMs received a 60-day list. By the time they saw it, claims and quotes consumed the first two weeks. Calls started at 45 days. Often later. The 90-day trigger with pre-compiled context means the AM can make a renewal call during a quiet 15 minutes in week one, with every detail on screen. The context generation (Claude Haiku summarising policy details, premium history, claims, and prior renewal notes into a three-paragraph brief) saved roughly 10 minutes per call in lookup time. Across 30 renewals per AM, that's 5 hours per month returned.
The automated email wasn't a replacement for the AM call. It was a safety net. In the first quarter, 14 clients replied to the automated email who hadn't been contacted by their AM. Three of those were commercial accounts above $5,000 in annual commission. The email kept the brokerage visible during the gap between the AM's intention and the AM's capacity. Without it, those 14 clients would have auto-renewed without a review conversation, or not renewed at all.
The $14,000 account was recovered in the pilot. The first month with the agent, a $14,000 commercial renewal appeared on the dashboard at 85 days. No AM contact logged. Under the old system, this policy would have been on a printed list, under the keyboard, discovered as a lapse 30 days after the fact. The agent flagged it. Dana escalated it. The AM called. The client renewed. One save. More than 5 years of the agent's running cost.
How to Build This
Recommended stack: n8n for orchestration. Applied Epic API (or equivalent AMS: HawkSoft, AMS360, EZLynx). Twilio for SMS ($0.0079 per SMS in the US). SendGrid for email (free tier: 100 per day). Claude Haiku for context summarisation. Postgres for tracking.
Step 1: Set up infrastructure (Day 1). Deploy n8n. Configure Applied Epic API credentials (check with your AMS vendor for API access). Set up Twilio with a US number (~$1/month). Configure SendGrid. Set up Postgres.
Step 2: Build the renewal scanning workflow (Days 2-3). Schedule Trigger daily at 06:00. HTTP Request to Applied Epic API: fetch policies renewing within 90 days. For each, check Postgres: task already exists? If new: create task, generate client context summary via Claude Haiku (policy details, premium history, claims, last renewal notes condensed into a three-paragraph brief). Send task notification to AM via Slack or email.
Step 3: Build AM tracking and client outreach (Days 3-5). Daily check: query Applied Epic for new contact notes logged by AM. If contact logged within 30 days: mark as contacted, track outcome. If no contact at Day 30: send personalised email to client via SendGrid (Haiku generates email: client name, policy type, carrier, renewal date, AM name, phone number). Log outreach in Epic. Wait 7 days. If no response: send SMS via Twilio. Wait 23 more days. If no AM contact and no client response at Day 60: escalate to Dana.
Step 4: Build escalation and dashboard (Days 5-6). Escalation: Slack message or email to Dana with client name, policy value, outreach history, AM assigned, days until renewal. Dashboard: Postgres aggregation of renewals by status. Weekly summary to Dana every Monday. Monthly report for principal broker.
Step 5: Test and refine (Days 7-9). Pilot with 20 upcoming renewals across 2 AMs. Verify Epic API reads and writes. Verify email and SMS delivery. Verify escalation triggers. Go live after successful pilot.
Estimated build time: 7-9 days for a competent n8n developer. 2-3 weeks if learning alongside.
Cost Breakdown
Monthly running costs:
Component | Estimated Monthly Cost |
|---|---|
n8n (Cloud Starter or self-hosted) | $25-$50 |
Twilio SMS (~100/month at $0.0079) | $1 |
Twilio US number | $1 |
SendGrid (free tier) | $0 |
Claude API (Haiku, minimal) | $2-$5 |
Postgres | $0-$5 |
Total | $29-$62 |
Build costs if hiring a developer: 7-9 days at $400-$600/day = $2,800-$5,400. Self-built: $0.
Year-one total: $3,148-$6,144 (with developer) or $348-$744 (self-built). Compared against $168,000 in lost commissions from preventable attrition plus $7,200-$10,800 in Dana's tracking time. The ratio is not subtle.

What Could Go Wrong
Applied Epic API limitations. Some AMS platforms have limited API access or charge extra. If API is restricted, use Epic's scheduled report export (CSV) as the data source. Less real-time, still dramatically better than a printed list.
AMs resist the task system. Frame as time saved, not oversight added. The task includes a pre-written client brief the AM would have had to compile themselves. 10 minutes saved per renewal call. Across 30 renewals: 5 hours returned.
High-value clients receive templated email. Segment by policy value. Commercial above $5,000 commission: no automated email, AM-only outreach. Personal lines and smaller commercial: automated outreach appropriate. The escalation catches high-value policies regardless.
Carrier auto-renewal creates false positives. Daily check against Epic for renewed policies. If the carrier processes the renewal, the AMS updates. The agent detects it and marks as "auto-renewed, no brokerage contact." Distinct from "contacted and renewed." This data is valuable: it shows which clients are renewing despite the brokerage, not because of it.
Renewal date changes mid-cycle. Daily scan catches date changes. The agent adjusts the outreach timeline automatically.
SMS compliance (TCPA). Only SMS clients who have provided mobile numbers and opted in. Include opt-out instructions. Log consent in Applied Epic.
The Pattern
If your revenue model is recurring and your renewal tracking is a monthly list distributed to account managers who have good intentions and insufficient time, the leakage is happening. Every month. Without announcing itself. The clients who leave don't send a warning. They just don't renew. And the 30-day gap between non-renewal and discovery is the gap where $168,000 disappeared.
The agent doesn't replace the AM's relationship. It replaces the printed list, the monthly distribution, the follow-up Dana does asking "have you called them yet?", and the 30-day-later discovery from the commission report. The AM still makes the call. The call just happens at 85 days instead of 15 (or not at all).
The list under the keyboard was never the AM's fault. It was a system that depended on intention surviving a month of claims, quotes, and endorsements. Intention is not a system.
This is Blueprint #48 in the AdAI series. Every week we publish the full architecture of a real AI agent design: the bottleneck, the build guide, and the costs. Free to read. Free to build from.
Want the next one? Subscribe to AdAI News. New blueprint every Thursday.
by TC
for the AdAI Ed. Team


