60 min readIntelligence & insights

Implementation Guide: Analyze client book for coverage gaps, cross-sell opportunities, and retention risk

Step-by-step implementation guide for deploying AI to analyze client book for coverage gaps, cross-sell opportunities, and retention risk for Insurance Agencies clients.

Hardware Procurement

Business Workstation (Producer/CSR Desktops)

Business Workstation (Producer/CSR Desktops)

DellDell OptiPlex 7020 Micro (i5-14500T, 16GB DDR5, 512GB NVMe SSD)Qty: 5

$850 per unit MSP cost / $1,150 suggested resale

Standard workstations for producers and CSRs who will access browser-based analytics dashboards alongside their AMS. Minimum spec for smooth multi-tab browser sessions with dashboard visualizations. Only procure if client workstations are older than 4 years or have less than 8GB RAM.

Dual Monitor Kit

Dual Monitor Kit

DellDell P2425H 24-inch IPS MonitorQty: 5

$220 per unit MSP cost / $300 suggested resale

Second monitor for each producer workstation, enabling side-by-side view of AMS client record and analytics dashboard. Critical for workflow adoption—producers need to see cross-sell recommendations while servicing accounts.

Next-Generation Firewall

Next-Generation Firewall

FortinetFortiGate 40F (FG-40F)Qty: 1

$400 MSP cost / $650 suggested resale (appliance); FortiGuard Bundle 1-year $350 MSP / $525 resale

Network perimeter security required for NAIC Model Law #668 compliance. Supports TLS 1.3 inspection, application-layer filtering, and VPN for remote staff. Replaces consumer-grade routers. If agency has 25+ employees, upgrade to FortiGate 60F ($750/$1,100).

Managed Network Switch

UbiquitiUniFi Switch USW-24-PoEQty: 1

$400 MSP cost / $600 suggested resale

Managed switch for VLAN segmentation between agency operations and guest networks. Required for compliance posture—PII-handling systems must be on segmented network.

Wireless Access Point

UbiquitiUniFi U6 Pro (U6-Pro)Qty: 2

$150 per unit MSP cost / $225 suggested resale

Enterprise-grade Wi-Fi 6 access points for reliable cloud SaaS connectivity throughout the office. Supports WPA3 encryption required for compliance.

Software Procurement

InsuredMine CRM & Analytics Platform

InsuredMineper-seat SaaSQty: 10 users (typical agency)

$69/user/month (estimated; custom quote required). Typical 10-user agency: $690/month. MSP referral margin 10-20%.

Primary AI analytics and CRM platform. Provides AI-powered cross-sell predictions, coverage gap identification, retention risk scoring, producer pipeline dashboards, and automated marketing workflows. AMS-agnostic—integrates with Applied Epic, HawkSoft, EZLynx, AMS360, and NowCerts via API. Core engine for all three project objectives (coverage gaps, cross-sell, retention).

Microsoft 365 Business Premium

Microsoftper-seat SaaS (CSP)Qty: per user

$22/user/month via CSP. MSP margin 15-20%. Typical 10-user agency: $220/month.

Identity provider (Entra ID) with Conditional Access and MFA for SSO into InsuredMine and AMS. Includes Microsoft Defender for Business (EDR), Intune endpoint management, and Exchange Online. Required for NAIC Model Law compliance (MFA mandate). Also provides Power BI Pro license pathway.

Microsoft Power BI Pro

Microsoftper-seat SaaSQty: 2-3 management users

$10/user/month (included in M365 E5; add-on for Business Premium). Only needed for 2-3 management users: $20-$30/month.

Custom executive dashboards combining InsuredMine analytics exports with AMS financial data. Provides agency principal and sales managers with consolidated views of book performance, coverage gap closure rates, cross-sell conversion tracking, and retention KPIs beyond what InsuredMine provides natively.

SentinelOne Singularity Control

SentinelOneSingularity ControlQty: per-endpoint SaaS

$4-$6/endpoint/month MSP cost via PAX8 or similar distributor. Typical 15-endpoint agency: $60-$90/month. Resale at $8-$12/endpoint.

AI-powered EDR/XDR endpoint protection for all agency workstations and servers. Required for NAIC Model Law #668 compliance (real-time monitoring for attacks and intrusions). Protects PII data flowing between AMS and analytics platforms.

Duo Security MFA

Cisco (Duo)per-user SaaS

$3/user/month (Duo Essentials). Typical 10-user agency: $30/month. Can be replaced by Microsoft Entra MFA included in M365 Business Premium.

Multi-factor authentication for AMS access and any systems not covered by Microsoft Entra Conditional Access. NAIC Model Law #668 explicitly requires MFA. Only needed if AMS vendor does not support Entra ID SSO directly.

Datto SIRIS or Axcient x360Recover

Datto (Kaseya) or Axcientper-device SaaS + applianceQty: 5-10 protected endpoints + 1 server/NAS

$300-$600/month for a small agency. MSP margin 30-50%.

Business continuity and disaster recovery. Protects AMS data, analytics configurations, and compliance documentation. Required for comprehensive data security program under NAIC Model Law.

Zapier (Professional Plan)

ZapierProfessional PlanQty: 1 subscription

$49.99/month (Professional, 2,000 tasks/month). Upgrade to Team at $69.50/month if multiple editors needed.

Integration middleware for automating data flows between AMS, InsuredMine, Power BI, and email/marketing platforms. Used for custom workflows such as pushing retention risk alerts to Microsoft Teams channels or triggering email campaigns from coverage gap detections.

FortiGuard Unified Threat Protection Bundle

FortinetAnnual subscription (FG-40F)Qty: 1

$350/year MSP cost / $525 suggested resale

Threat intelligence, IPS, web filtering, and antimalware subscription for FortiGate firewall. Required for ongoing network-level compliance monitoring.

Prerequisites

  • Agency must have an active Agency Management System (AMS) with at least 12 months of policy data. Supported AMS platforms: Applied Epic, HawkSoft, AMS360, EZLynx, NowCerts. Confirm AMS version supports API access or data export.
  • AMS data must include minimum fields: client name, address, phone, email, policy type/LOB, effective date, expiration date, premium amount, carrier name, and policy status. Missing fields must be populated during data preparation phase.
  • Business-class internet service: minimum 50 Mbps download / 10 Mbps upload with <50ms latency. Verify with speed tests at multiple times of day. Cable or fiber preferred; no satellite or hotspot-only connections.
  • Agency principal must designate a project champion (typically operations manager or senior CSR) with authority to make workflow decisions and allocate staff time for data cleanup and training.
  • Current email system must be Microsoft 365 or Google Workspace (for SSO/MFA). If using on-premises Exchange or POP3/IMAP, migrate to M365 first (separate project).
  • All workstations must run Windows 10 22H2+ or Windows 11 with current updates, minimum 8GB RAM, SSD storage, and Chrome or Edge (Chromium) browser installed. macOS 13+ acceptable for Mac shops.
  • Agency must have a documented privacy/data security policy or be willing to create one as part of this project (required for NAIC Model Law #668 compliance).
  • Document the agency's current state insurance licenses and confirm which states they write business in—this determines which state-specific data security and AI regulations apply.
  • Obtain written authorization from agency principal to access, export, and process client PII data for analytics purposes. Use the data processing agreement template provided in the project documentation kit.
  • If agency uses Applied Epic: confirm Applied Exchange access and obtain API credentials from Applied Systems support. If HawkSoft: confirm Partner API V3.0 is enabled and obtain API key. If EZLynx: confirm API partnership tier. If NowCerts: confirm open API access is active.

Installation Steps

Step 1: Discovery and Environment Assessment

Conduct a comprehensive on-site or remote assessment of the agency's current technology environment, AMS platform, data quality, workflows, and compliance posture. This is the most critical phase—it determines the entire project scope and identifies risks early. Schedule a 2-3 hour discovery session with the agency principal, operations manager, and a senior producer.

1
AMS platform name and version
2
Number of active clients and policies
3
Number of staff (producers, CSRs, admin)
4
Current internet provider and speed tier
5
Current security tools (antivirus, firewall, backup)
6
States where agency writes business
7
Lines of business written (personal, commercial, life, health, benefits)
8
Any existing analytics or reporting tools
9
Current CRM system (if any)
10
Known data quality issues
Note

Use a standardized discovery questionnaire. Document everything in a project charter document. If the agency has fewer than 200 active clients, the ROI of this project may be marginal—recommend minimum 500+ active client households for meaningful AI analysis. Average independent agency has 1,500-3,000 client households.

Step 2: AMS Data Quality Audit

Before deploying any analytics platform, assess the quality of data in the AMS. Export a sample dataset (100-200 client records) and evaluate completeness, accuracy, and consistency. This audit determines the scope of the data cleanup phase. Key fields to audit: client contact info (email, phone), policy type coding, coverage limits, effective/expiration dates, producer assignment, and household/business linking.

1
For HawkSoft — request data export via Partner API:
2
For NowCerts — use open API:
3
For Applied Epic — use Applied Exchange API (requires partner registration): Contact Applied Systems partner support for API credentials
4
For any AMS — alternative manual export: Export client list to CSV from AMS reporting module. Fields needed: ClientID, Name, Email, Phone, Address, PolicyCount, TotalPremium, LOBs
5
Run data quality scoring script (Python):
HawkSoft Partner API — export 200 client records
bash
curl -X GET 'https://api.hawksoft.com/v3/clients?limit=200' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -o hawksoft_sample_export.json
NowCerts open API — export 200 client records
bash
curl -X GET 'https://api.nowcerts.com/api/clients?top=200' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -o nowcerts_sample_export.json
Data quality scoring script — run against exported AMS CSV
python
import pandas as pd
df = pd.read_csv('ams_export.csv')
print('Total records:', len(df))
print('\nMissing email:', df['Email'].isna().sum(), f"({df['Email'].isna().mean()*100:.1f}%)")
print('Missing phone:', df['Phone'].isna().sum(), f"({df['Phone'].isna().mean()*100:.1f}%)")
print('Missing LOB:', df['LOB'].isna().sum(), f"({df['LOB'].isna().mean()*100:.1f}%)")
print('Duplicate names:', df.duplicated(subset=['Name','Address']).sum())
print('\nData Quality Score:', round((1 - df.isna().mean().mean()) * 100, 1), '%')
Note

Target a minimum 80% data quality score before proceeding to platform deployment. If below 60%, budget an additional 2-4 weeks and $2,500-$5,000 for a dedicated data cleanup project. Common issues: missing email addresses (40-60% of records in older agencies), inconsistent LOB coding, duplicate client records for same household, and incomplete coverage limit fields.

Step 3: Network and Security Infrastructure Deployment

Deploy or upgrade the agency's network and security infrastructure to meet NAIC Model Law #668 compliance requirements before connecting any cloud analytics platforms. This includes firewall replacement, VLAN segmentation, endpoint protection, MFA enforcement, and backup configuration.

FortiGate 40F Initial Configuration

1
Connect to FortiGate console via https://192.168.1.99 (default)
2
Complete initial setup wizard, then configure the following
Set management interface
fortios
config system interface
  edit port1
    set ip 10.0.1.1/24
    set allowaccess ping https ssh
  next
end
Create VLANs for network segmentation
fortios
config system interface
  edit vlan10-agency
    set vdom root
    set ip 10.0.10.1/24
    set interface port2
    set vlanid 10
    set description 'Agency Operations - AMS and Analytics'
  next
  edit vlan20-guest
    set vdom root
    set ip 10.0.20.1/24
    set interface port2
    set vlanid 20
    set description 'Guest WiFi'
  next
end
Enable TLS inspection profile
fortios
config firewall ssl-ssh-profile
  edit deep-inspection-agency
    config https
      set ports 443
      set status deep-inspection
    end
  next
end
Configure DNS filtering
fortios
config dnsfilter profile
  edit agency-dns-filter
    config ftgd-dns
      config filters
        edit 1
          set category 2
          set action block
        next
      end
    end
  next
end

Microsoft 365 Business Premium Setup

1
Navigate to Microsoft Entra Admin Center (https://entra.microsoft.com)
2
Create security group: 'Agency-Analytics-Users'
3
Enable Security Defaults or configure Conditional Access: require MFA for all users, block legacy authentication, require compliant device for AMS and analytics access

SentinelOne Deployment

1
Download SentinelOne agent from management console
2
Deploy via Intune or manual installation using the commands below
Install SentinelOne agent on Windows (silent deployment)
shell
SentinelOneInstaller_windows_64bit_v23_x_x.exe /SITE_TOKEN=YOUR_TOKEN /quiet
Verify SentinelOne agent status
shell
SentinelCtl.exe status
Critical

Do not proceed to analytics platform deployment until MFA is enforced on all user accounts and endpoint protection is active on all workstations. This is a compliance gate. Document the security configuration in the agency's Information Security Program document—template provided in project kit. If the agency already has adequate security infrastructure (e.g., existing MSP-managed firewall, EDR, M365 with MFA), skip hardware procurement and validate existing configuration meets NAIC requirements.

Step 4: AMS Data Preparation and Cleanup

Execute the data cleanup plan identified in the audit phase. This involves deduplicating client records, normalizing policy type/LOB coding, populating missing contact information, linking household members, and ensuring coverage details are accurate. This phase requires significant agency staff involvement—CSRs and the operations manager are the subject matter experts on their book of business.

1
Data Deduplication Strategy — Most AMS platforms have built-in merge/dedup tools:
2
HawkSoft: Administration > Data Cleanup > Duplicate Client Finder
3
Applied Epic: Utilities > Duplicate Client Search
4
EZLynx: Admin > Data Management > Merge Clients
5
NowCerts: Settings > Data Cleanup
1
For bulk email collection (filling gaps): Export clients missing email addresses to CSV
2
Use a service like TowerData or ZeroBounce for email append (typical cost: $0.03–$0.10 per record)
3
Import appended emails back into AMS
LOB Standardization mapping and household linking — adjust LOB codes per agency conventions before applying to exported data
python
import pandas as pd

lob_mapping = {
    'HO': 'Homeowners', 'HOME': 'Homeowners', 'Homeowner': 'Homeowners',
    'AUTO': 'Personal Auto', 'PA': 'Personal Auto', 'Car': 'Personal Auto',
    'COMM': 'Commercial Package', 'BOP': 'Commercial Package', 'BIZ': 'Commercial Package',
    'GL': 'General Liability', 'CGL': 'General Liability',
    'WC': 'Workers Compensation', 'WORK COMP': 'Workers Compensation',
    'UMBRELLA': 'Umbrella/Excess', 'UMB': 'Umbrella/Excess', 'EXCESS': 'Umbrella/Excess',
    'LIFE': 'Life Insurance', 'TERM': 'Life Insurance', 'WHOLE': 'Life Insurance',
    'FLOOD': 'Flood', 'NFIP': 'Flood',
    'MOTO': 'Motorcycle/ATV', 'BOAT': 'Watercraft', 'RV': 'Recreational Vehicle'
}

# Apply mapping to exported data for validation before import
df['LOB_Standardized'] = df['LOB_Raw'].map(lob_mapping).fillna(df['LOB_Raw'])
print(df['LOB_Standardized'].value_counts())

# --- Household Linking ---
# Identify clients at same address who should be linked as household:
df['address_key'] = df['Address'].str.lower().str.strip()
household_groups = df.groupby('address_key').filter(lambda x: len(x) > 1)
print(f'Potential household links: {len(household_groups)} records in {household_groups["address_key"].nunique()} households')
Note

Data cleanup is the single most important factor in analytics accuracy. Budget 2-4 weeks minimum. Assign a dedicated CSR 2-4 hours per day to work through dedup lists and verify records. The agency operations manager should approve LOB mapping and household linking rules. Target: 90%+ email population, zero duplicate client records, consistent LOB coding across all policies, and household linking for all family groups at same address. Document the data quality baseline and post-cleanup metrics for the project report.

Step 5: InsuredMine Platform Provisioning and SSO Configuration

Create the InsuredMine account, configure SSO via Microsoft Entra ID, set up user roles, and establish the organizational hierarchy (teams, producers, CSRs). Configure InsuredMine to match the agency's organizational structure so dashboards and permissions align with how the agency operates.

InsuredMine Account Setup

1
Contact InsuredMine sales: sales@insuredmine.com or https://www.insuredmine.com/request-demo
2
Request MSP partner/referral program enrollment
3
Provision tenant for agency client

Microsoft Entra ID SSO Configuration

1
Navigate to Enterprise Applications > New Application in Microsoft Entra Admin Center (https://entra.microsoft.com)
2
Search for 'InsuredMine' in gallery, or create custom SAML app
3
Configure SAML settings (see below)
4
Configure Attribute Mapping (see below)
5
Download Federation Metadata XML
6
Upload to InsuredMine SSO settings: Settings > Security > SAML SSO
7
Assign users in Entra: Add 'Agency-Analytics-Users' security group to the InsuredMine enterprise app
SAML configuration values for InsuredMine enterprise app
text
# SAML Settings
Identifier (Entity ID): https://app.insuredmine.com/saml/{tenant_id}
Reply URL (ACS):        https://app.insuredmine.com/saml/callback
Sign-on URL:            https://app.insuredmine.com
Name ID Format:         emailAddress
Entra ID attribute mapping for InsuredMine SAML app
text
# Attribute Mapping
user.mail        → email
user.givenname   → firstName
user.surname     → lastName
user.department  → role (optional)

InsuredMine User Roles

Configure in InsuredMine > Settings > Team Management:

  • Agency Principal: Admin role (full access, all reports)
  • Sales Manager: Manager role (team dashboards, producer performance)
  • Producers: Agent role (own book only, cross-sell and gap lists)
  • CSRs: Support role (service tasks, renewal worklists)
  • MSP Admin: Admin role (for ongoing management)
Note

InsuredMine pricing is quote-based and typically starts around $69/user/month. Negotiate volume pricing for agencies with 10+ users. Ensure the MSP admin account uses a service account email (e.g., msp-admin@yourmsp.com) so access persists regardless of client staff changes. Enable audit logging from day one for compliance documentation.

Step 6: AMS-to-InsuredMine Integration and Initial Data Sync

Connect the agency's AMS to InsuredMine via the appropriate integration method. Configure bidirectional data sync for client records, policies, and activity data. Run the initial full sync and validate data accuracy by spot-checking 50+ records across different LOBs and client types.

Applied Epic Integration Setup

1
In Applied Epic: Admin > Integration Settings > Enable API Access
2
In InsuredMine: Settings > Integrations > Applied Epic
3
Enter Applied API credentials (Client ID, Client Secret)
4
Map fields: Epic Client → InsuredMine Contact, Epic Policy → InsuredMine Policy
5
Set sync frequency: Every 15 minutes (recommended)
6
Enable: Clients, Policies, Activities, Claims
7
Run initial full sync

HawkSoft Integration Setup

1
In HawkSoft: Admin > Partner API > Enable InsuredMine
2
Generate API key for InsuredMine integration
3
In InsuredMine: Settings > Integrations > HawkSoft
4
Enter HawkSoft API Key and Agency ID
5
Map fields per InsuredMine's HawkSoft mapping template
6
Run initial full sync

EZLynx Integration Setup

1
In EZLynx: Admin > API Access > Generate Integration Token
2
In InsuredMine: Settings > Integrations > EZLynx
3
Enter EZLynx credentials and sync preferences
4
Run initial full sync

NowCerts Integration Setup

1
In NowCerts: Settings > API Access > Generate Token
2
In InsuredMine: Settings > Integrations > NowCerts
3
Enter NowCerts API credentials
4
Run initial full sync

Data Validation After Initial Sync

1
In InsuredMine dashboard, navigate to Reports > Data Health
2
Compare: Total Contacts (InsuredMine) vs Total Clients (AMS)
3
Compare: Total Policies (InsuredMine) vs Total Policies (AMS)
4
Acceptable variance: <2% (due to timing/filter differences)

Spot-Check Validation (Manual)

1
Select 10 personal lines clients, 10 commercial clients, 10 life/health clients
2
For each: verify name, contact info, all policies, premium amounts, dates
3
Document any discrepancies in sync validation log
Note

Initial full sync can take 2-24 hours depending on book size (1,000 clients ≈ 2 hours; 10,000 clients ≈ 8-12 hours). Schedule for after business hours. Common sync issues: (1) Inactive/cancelled policies syncing as active—configure sync filter to exclude cancelled policies older than 90 days, (2) Household linking not transferring—may need manual household setup in InsuredMine, (3) Custom fields not mapping—document any agency-specific custom fields that need manual mapping. Keep the AMS as system of record; InsuredMine is the analytics/action layer.

Step 7: Configure Coverage Gap Analysis Engine

Set up InsuredMine's AI-powered coverage gap detection rules. Configure the system to identify clients who are missing common coverage types based on their profile. For example: homeowners without umbrella policies, business owners without cyber liability, auto-only clients without renters insurance, families without life insurance. Customize gap rules to match the agency's product offerings and carrier appetite.

1
Navigate to: InsuredMine > Opportunities > Coverage Gap Settings

Configure Standard Personal Lines Gaps

1
Gap Rule 1: Homeowner without Umbrella — IF client has Homeowners policy AND does NOT have Umbrella/Excess AND total assets (home + auto) > $500,000 THEN flag as 'Umbrella Gap - High Priority'
2
Gap Rule 2: Auto-only without Renters — IF client has Personal Auto AND does NOT have Homeowners or Renters THEN flag as 'Renters/Home Gap'
3
Gap Rule 3: Homeowner without Flood — IF client has Homeowners AND zip code in FEMA flood zone A/V/AE AND does NOT have Flood policy THEN flag as 'Flood Gap - High Priority'
4
Gap Rule 4: Family without Life Insurance — IF client has >1 policy AND client age 25-65 AND does NOT have Life Insurance policy THEN flag as 'Life Insurance Gap'
5
Gap Rule 5: Homeowner without Valuable Articles — IF client has Homeowners AND premium > $2,500/year AND does NOT have Inland Marine/Valuable Articles THEN flag as 'Valuable Articles Gap'

Configure Standard Commercial Lines Gaps

1
Gap Rule 6: BOP without Cyber — IF client has Commercial Package/BOP AND does NOT have Cyber Liability THEN flag as 'Cyber Liability Gap - High Priority'
2
Gap Rule 7: Commercial without EPLI — IF client has Commercial Package AND employee count > 10 AND does NOT have Employment Practices Liability THEN flag as 'EPLI Gap'
3
Gap Rule 8: Commercial without Umbrella/Excess — IF client has Commercial Auto or General Liability AND does NOT have Commercial Umbrella AND annual revenue > $1,000,000 THEN flag as 'Commercial Umbrella Gap'

Custom Gap Rules (Agency-Specific)

1
Work with agency principal to identify which carriers' products they want to cross-sell
2
Identify which LOBs they are licensed and appointed for
3
Note any geographic restrictions on coverage offers
4
Establish minimum premium thresholds for outreach to be worthwhile
Note

InsuredMine's gap analysis can be supplemented with custom rules based on the agency's specific market and carrier appointments. Start with 5-8 high-value gap rules in the first phase—do not overwhelm producers with too many gap types initially. Prioritize gaps by estimated premium opportunity (umbrella and commercial lines gaps typically have highest revenue per conversion). Review and refine gap rules monthly during the first 90 days based on producer feedback and conversion rates.

Step 8: Configure Cross-Sell Opportunity Scoring

Set up InsuredMine's AI cross-sell prediction engine and configure opportunity scoring to prioritize the highest-value, most-likely-to-convert cross-sell targets. The AI uses policy data, client demographics, behavioral signals, and industry benchmarks to score opportunities.

Enable AI Cross-Sell Predictions

1
Navigate to: InsuredMine > Opportunities > Cross-Sell Settings
2
Enable AI Cross-Sell Predictions: Settings > AI Features > Cross-Sell Intelligence > Enable

Configure Scoring Weights

Adjust the following scoring weights based on agency priorities:

  • Client tenure (longer = higher score): Weight 20%
  • Number of existing policies (more = higher trust): Weight 15%
  • Premium volume (higher = more invested): Weight 15%
  • Recent interactions (engaged clients more likely to buy): Weight 20%
  • Life event signals (new home, new car, marriage): Weight 15%
  • Policy gap severity (critical gaps score higher): Weight 15%

Configure Cross-Sell Opportunity Views by Role

  • Producers see: Their assigned clients only, sorted by score
  • Sales Manager sees: All producers' opportunities, team leaderboard
  • Agency Principal sees: Aggregate pipeline value, conversion rates

Set Up Producer Worklists

1
Navigate to: InsuredMine > Workflows > Create Worklist
2
Set Name: 'Daily Cross-Sell Top 10'
3
Set Filter: Cross-sell score > 70, Gap exists, Last contact > 30 days ago
4
Set Sort: Cross-sell score descending
5
Set Limit: Top 10 per producer
6
Set Refresh: Daily at 7:00 AM

Configure Opportunity Pipeline Stages

  • Stage 1: Identified (auto-populated by AI)
  • Stage 2: Contacted (producer marks after outreach)
  • Stage 3: Quoted (producer marks after providing quote)
  • Stage 4: Bound (auto-updates when policy added in AMS)
  • Stage 5: Lost (producer marks with reason code)
Note

The cross-sell scoring model improves over time as more conversion data accumulates. Initial scores are based on industry benchmarks and will self-calibrate after 60-90 days of agency-specific conversion data. Coach producers to update opportunity stages consistently—this data feeds back into the AI model. Typical cross-sell conversion rates for AI-identified opportunities: 8-15% (vs. 2-5% for manual prospecting).

Step 9: Configure Retention Risk Scoring and Alerts

Enable InsuredMine's retention risk prediction engine and configure alert thresholds to proactively identify clients at risk of non-renewal. Set up automated workflows to route at-risk clients to the appropriate producer or CSR with recommended retention actions.

1
Navigate to: InsuredMine > Retention > Risk Settings
2
Enable AI Retention Risk Scoring: Settings > AI Features > Retention Intelligence > Enable
3
Configure risk signal inputs: Premium increase at renewal > 15% (High risk signal), No agency contact in 12+ months (Medium risk signal), Single-policy client (Medium risk signal), Low NPS/satisfaction score (High risk signal), Claim filed in last 6 months (Medium risk signal), Payment issues — late, NSF, cancellation notice (High risk signal), Policy coverage reduced at last renewal (Medium risk signal), Competitor quote activity if available via carrier data (Critical risk signal)
4
Set risk tiers: Score 0–30 = Low Risk (green) — standard renewal workflow; Score 31–60 = Medium Risk (yellow) — proactive outreach 60 days before renewal; Score 61–100 = High Risk (red) — immediate producer engagement
5
Navigate to InsuredMine > Workflows > Retention Alerts to configure automated alerts
6
Configure Alert 1 — High-Risk Renewal Warning: Trigger: Risk score > 60 AND renewal date within 90 days; Action: Email to assigned producer + push notification; Include: Client name, risk factors, recommended retention actions, total premium at risk
7
Configure Alert 2 — Premium Increase Notification: Trigger: Renewal premium increase > 15%; Action: Task created for producer to call client before renewal date; Include: Current premium, new premium, % increase, competing carrier suggestions
8
Configure Alert 3 — Disengaged Client Flag: Trigger: No agency contact (calls, emails, visits) in 365+ days; Action: Add to CSR re-engagement worklist; Include: Client profile, total premium, policy count, last contact date
9
Navigate to InsuredMine > Dashboards > Create Dashboard and name it 'Retention Command Center'
10
Add dashboard widgets: Total policies renewing this month, Risk distribution pie chart, Top 20 at-risk clients by premium, Retention rate trend (12 months), Producer retention performance comparison
Note

Retention risk scoring is most accurate after 12+ months of historical data. Expect the model to flag 15-25% of the book as medium or high risk initially—this will calibrate as the system learns which signals actually predict non-renewal for this specific agency's book. The most impactful metric: premium-weighted retention rate. A 2% improvement in retention on a $5M book = $100K in preserved revenue. Track both policy count retention and premium retention separately.

Step 10: Build Power BI Executive Dashboard

Create a consolidated Power BI dashboard for agency management that combines InsuredMine analytics with AMS financial data. This dashboard provides the executive overview that agency principals and sales managers need to track the ROI of the AI analytics investment and overall book performance.

Power BI Setup

1
Install Power BI Desktop on management workstations. Download: https://powerbi.microsoft.com/desktop/
2
Connect to InsuredMine data: Power BI Desktop > Get Data > Web. URL: InsuredMine API endpoint (obtain from InsuredMine support). Authentication: API Key or OAuth2
3
Create data model with these tables: Clients (from InsuredMine API), Policies (from InsuredMine API), Opportunities (coverage gaps + cross-sell, from InsuredMine API), Retention Scores (from InsuredMine API), Revenue (from AMS export or direct connection)

Build Dashboard Pages

Page 1: Book Overview

  • Total clients, total policies, total premium (KPI cards)
  • Policies per client ratio (gauge chart, target: 2.5+)
  • Premium by LOB (donut chart)
  • New business vs. lost business trend (line chart, 12 months)
  • Client acquisition/attrition waterfall chart

Page 2: Coverage Gap Analysis

  • Total coverage gaps identified (KPI card)
  • Gaps by type (stacked bar chart)
  • Estimated untapped premium (KPI card with trend)
  • Gap closure rate (% of identified gaps that resulted in new policies)
  • Top 10 highest-value gap opportunities (table)

Page 3: Cross-Sell Pipeline

  • Active opportunities by stage (funnel chart)
  • Pipeline value ($) by producer (bar chart)
  • Conversion rate by LOB (bar chart)
  • Average time from identification to bind (KPI card)
  • Producer leaderboard (table with rank, opps, conversions, revenue)

Page 4: Retention Risk

  • Retention rate trend (line chart, 12 months, target: 92%+)
  • Clients at risk by tier (donut chart: low/medium/high)
  • Premium at risk by month (bar chart, next 6 months)
  • Retention save rate (% of high-risk flagged that were retained)
  • Lost clients analysis (reasons, premium lost, by producer)

Publish and Distribute

1
Publish to Power BI Service: Power BI Desktop > Publish > Select workspace. Configure scheduled refresh: Daily at 6:00 AM. Share with agency management users.
2
Create Power BI App for easy access: In Power BI Service > Workspace > Create App. Include all 4 dashboard pages. Distribute to agency management users.
Note

Power BI Pro license ($10/user/month) is required for publishing and sharing. Only 2-3 management users typically need this. For agencies that don't want Power BI, InsuredMine's native dashboards may be sufficient for the first phase—evaluate during discovery. The Power BI layer adds value by combining InsuredMine insights with AMS financial data that InsuredMine may not capture (commissions, carrier bonuses, agency P&L metrics).

Step 11: Configure Automated Workflows and Campaign Triggers

Set up automated workflows in InsuredMine and Zapier that connect AI-identified opportunities to concrete actions: email campaigns, task assignments, calendar reminders, and Microsoft Teams notifications. These workflows ensure that AI insights translate into producer and CSR actions without requiring manual dashboard monitoring.

InsuredMine Native Workflows

Workflow 1: Coverage Gap Email Campaign

  • Navigate to: InsuredMine > Campaigns > Create Campaign
  • Trigger: Coverage gap identified AND client has email on file
  • Delay: 7 days after gap identification (gives producer time for personal outreach first)
  • Email template: 'Did you know you might have a coverage gap?'
  • Include: Client first name, gap type, brief educational content
  • CTA: 'Schedule a free coverage review with [Producer Name]'
  • Track: Open rate, click rate, appointments booked

Workflow 2: Renewal Review Automation

  • Navigate to: InsuredMine > Workflows > Create Automation
  • Trigger: Policy renewal date within 60 days
1
Run retention risk score
2
If High Risk: Create urgent task for producer
3
If Medium Risk: Send automated renewal reminder email
4
If Low Risk: Send standard renewal notification
5
All: Create calendar event for producer review

Workflow 3: New Client Welcome + Rounding

  • Trigger: New client added to AMS (synced to InsuredMine)
  • Delay: 14 days after first policy effective date
1
Send welcome email with agency contact info
2
At 30 days: Send survey (NPS/satisfaction)
3
At 45 days: Run coverage gap analysis
4
If gaps found: Create cross-sell opportunity for producer

Zapier Integration Workflows

Zapier Workflow 1: High-Risk Alert to Microsoft Teams

  • Trigger: InsuredMine webhook → retention risk score > 60
  • Action: Post message to Teams channel '#retention-alerts'
Teams alert message template
text
🚨 High Risk: {ClientName} ({TotalPremium}) renewing on {RenewalDate}. Risk Score: {RiskScore}. Assigned to: {ProducerName}

Zapier Workflow 2: Weekly Cross-Sell Summary Email

  • Trigger: Schedule (every Monday at 8 AM)
1
Get InsuredMine opportunities (API call)
2
Filter for new opportunities created last 7 days
3
Format email digest
4
Send via Gmail/Outlook to sales manager

Zapier Workflow 3: Closed Opportunity → AMS Activity Log

  • Trigger: InsuredMine opportunity status changed to 'Bound' or 'Lost'
  • Action: Create activity/note in AMS via API
AMS activity log note template
text
Cross-sell opportunity {LOB}: {Status} on {Date}. Premium: {Amount}
Note

Start with 3-5 workflows in Phase 1. Do not over-automate initially—producers may feel overwhelmed. Get buy-in from the sales manager on email templates before activating client-facing campaigns. All automated emails must include agency branding, producer contact info, and unsubscribe option (CAN-SPAM compliance). Review email campaign performance monthly and A/B test subject lines for gap-related emails. Zapier Professional plan includes 2,000 tasks/month—monitor usage and upgrade if needed.

Step 12: User Training and Phased Rollout

Conduct structured training sessions for each user role, then execute a phased rollout starting with a pilot group of 2-3 producers before expanding to the full agency. Training should be hands-on, using real agency data, and focused on the specific workflows each role will perform daily.

Training Schedule

Session 1: Agency Leadership (2 hours)

  • Attendees: Agency principal, operations manager, sales manager
  • Executive dashboard walkthrough (Power BI)
  • Understanding coverage gap analysis outputs
  • Cross-sell pipeline management and producer accountability
  • Retention risk dashboard and intervention workflows
  • ROI tracking: how to measure success
  • Compliance considerations for AI-driven recommendations

Session 2: Producers (2 hours)

  • Attendees: All producers (start with pilot group of 2-3)
  • Logging into InsuredMine via SSO
  • Using daily cross-sell worklist
  • Reviewing coverage gap details for a specific client
  • Understanding retention risk scores and recommended actions
  • Updating opportunity stages (Contacted → Quoted → Bound/Lost)
  • Mobile app access for InsuredMine (if available)
  • Practice exercise: walk through 5 real client opportunities

Session 3: CSRs (1.5 hours)

  • Attendees: All CSRs
  • Understanding the CSR role in analytics-driven workflows
  • Reviewing renewal worklists and retention tasks
  • Processing re-engagement campaign responses
  • Data entry best practices (maintaining data quality for AI accuracy)
  • Escalating identified opportunities to producers

Rollout Phases

1
Phase 1 (Weeks 1-2): Pilot with 2-3 top producers — Monitor adoption daily; collect feedback on UI, worklist quality, and alert frequency; adjust configurations based on feedback.
2
Phase 2 (Weeks 3-4): Expand to all producers — Incorporate lessons from pilot; activate automated email campaigns; enable Teams notifications.
3
Phase 3 (Weeks 5-8): Full agency operation — CSR workflows fully active; management dashboards in daily use; weekly sales meetings incorporate analytics pipeline review.
Note

Record all training sessions (with permission) and provide recordings to the agency for onboarding future hires. Create a 1-page quick reference card for each role (Producer Cheat Sheet, CSR Cheat Sheet, Manager Cheat Sheet). The most common adoption failure point is producers not updating opportunity stages—build this into the sales meeting cadence so there is peer accountability. Schedule a 30-day post-launch check-in to assess adoption and address issues.

Step 13: Compliance Documentation and Security Audit

Complete all compliance documentation required for NAIC Model Law #668 and state-specific regulations. This includes the written information security program, incident response plan, vendor risk assessment for InsuredMine and any other third-party platforms, and data processing agreements.

1. Written Information Security Program (WISP)

Template sections:

  • Scope and objectives
  • Risk assessment methodology
  • Access control policies (MFA, role-based access)
  • Data classification (PII, PHI, financial data)
  • Encryption standards (TLS 1.2+ in transit, AES-256 at rest)
  • Network security (firewall, VLAN, IDS/IPS)
  • Endpoint security (EDR, patching, device management)
  • Vendor management program
  • Employee training requirements
  • Incident response procedures
  • Annual review and update schedule

2. Vendor Risk Assessment — InsuredMine

Request the following from InsuredMine:

  • SOC 2 Type II audit report
  • Data processing agreement (DPA)
  • Data residency information (where data is stored)
  • Encryption at rest and in transit specifications
  • Incident notification procedures and timelines
  • Data retention and deletion policies
  • Subprocessor list

3. Incident Response Plan (IRP)

Key elements:

  • Incident classification levels (1–4 severity)
  • Response team roles (MSP, agency principal, legal, insurance)
  • Notification timelines (state-specific; typically 72 hours to commissioner)
  • Communication templates (client notification, regulatory notification)
  • Evidence preservation procedures
  • Post-incident review process

4. Data Processing Agreement

Between agency and MSP — required sections:

  • Scope of data access
  • Permitted processing activities
  • Data security obligations
  • Breach notification requirements
  • Data return/deletion upon termination

5. AI Governance Documentation (Emerging Best Practice)

  • Description of AI systems in use
  • Data inputs and outputs
  • Human oversight procedures
  • Bias monitoring approach (if applicable to underwriting decisions)
  • Documentation that AI recommendations are advisory, not decisional

Document Storage Location

Store all compliance documentation at this path
text
SharePoint > Agency Compliance > [Agency Name] > AI Analytics Project
Note

NAIC Model Law #668 has been adopted by 24+ states as of 2025. Check which states the agency is licensed in and verify adoption status. Even in non-adopting states, documenting compliance proactively demonstrates best practices and reduces E&O exposure. The AI governance documentation is not yet legally required for agencies in most states (the NAIC AI bulletin targets carriers), but proactive documentation positions the agency ahead of regulatory trends and demonstrates responsible AI use. Review and update all documentation annually.

Custom AI Components

Coverage Gap Detection Rules Engine

Type: workflow A configurable rules engine that analyzes each client's policy portfolio against expected coverage profiles based on their demographic, geographic, and financial characteristics. It identifies missing lines of business, inadequate coverage limits, and unaddressed exposures. This component runs within InsuredMine's opportunity management module and is supplemented by custom logic for agency-specific gap rules.

Implementation

Standard Gap Rule Definitions (configure in InsuredMine)

Personal Lines Gap Rules

PL-001: Missing Umbrella
text
Rule PL-001: Missing Umbrella
  Condition: HAS(Homeowners OR Condo) AND HAS(Personal Auto) AND NOT HAS(Personal Umbrella)
  Priority: HIGH
  Est. Premium Opportunity: $300-$500/year
  Recommended Action: 'Client has home and auto—strong candidate for umbrella policy. Review total asset value.'
PL-002: Missing Flood (High Risk Zone)
text
Rule PL-002: Missing Flood (High Risk Zone)
  Condition: HAS(Homeowners) AND ZIP_IN(FEMA_Zones_A_V_AE_AH) AND NOT HAS(Flood)
  Priority: CRITICAL
  Est. Premium Opportunity: $700-$2,500/year
  Data Source: FEMA NFIP flood zone lookup by zip code
  Recommended Action: 'Client is in a high-risk flood zone without flood coverage. E&O risk—document recommendation.'
PL-003: Missing Flood (Moderate Risk Zone)
text
Rule PL-003: Missing Flood (Moderate Risk Zone)
  Condition: HAS(Homeowners) AND ZIP_IN(FEMA_Zones_B_C_X) AND NOT HAS(Flood)
  Priority: MEDIUM
  Est. Premium Opportunity: $400-$800/year
  Recommended Action: 'Client may benefit from Preferred Risk Policy flood coverage.'
PL-004: Missing Renters Insurance
text
Rule PL-004: Missing Renters Insurance
  Condition: HAS(Personal Auto) AND NOT HAS(Homeowners) AND NOT HAS(Renters) AND AGE BETWEEN 18 AND 40
  Priority: MEDIUM
  Est. Premium Opportunity: $150-$300/year
  Recommended Action: 'Auto-only client likely renting. Offer renters policy for multi-policy discount.'
PL-005: Missing Life Insurance
text
Rule PL-005: Missing Life Insurance
  Condition: POLICY_COUNT > 1 AND AGE BETWEEN 25 AND 65 AND NOT HAS(Life)
  Priority: MEDIUM
  Est. Premium Opportunity: $500-$2,000/year
  Recommended Action: 'Multi-policy client without life insurance. Review family situation.'
PL-006: Missing Valuable Articles
text
Rule PL-006: Missing Valuable Articles
  Condition: HAS(Homeowners) AND HOMEOWNER_PREMIUM > $2,500 AND NOT HAS(Inland Marine/Scheduled Articles)
  Priority: LOW
  Est. Premium Opportunity: $200-$800/year
  Recommended Action: 'Higher-value home likely has jewelry, art, or collectibles needing scheduled coverage.'
PL-007: Inadequate Auto Limits
text
Rule PL-007: Inadequate Auto Limits
  Condition: HAS(Personal Auto) AND AUTO_BI_LIMIT < '100/300' AND HAS(Homeowners)
  Priority: HIGH
  Est. Premium Opportunity: $100-$300/year (limit increase)
  Recommended Action: 'Homeowner with low auto limits—increase to 100/300 minimum for umbrella eligibility.'
PL-008: Missing Watercraft/RV/Motorcycle
text
Rule PL-008: Missing Watercraft/RV/Motorcycle
  Condition: HAS(Homeowners) AND PREMIUM_TIER = 'HIGH' AND NOT HAS(Watercraft OR RV OR Motorcycle)
  Priority: LOW
  Est. Premium Opportunity: $200-$600/year
  Recommended Action: 'Affluent client—ask about recreational vehicles during next service interaction.'

Commercial Lines Gap Rules

CL-001: Missing Cyber Liability
text
Rule CL-001: Missing Cyber Liability
  Condition: HAS(Commercial Package OR BOP OR GL) AND NOT HAS(Cyber Liability)
  Priority: CRITICAL
  Est. Premium Opportunity: $750-$3,000/year
  Recommended Action: 'All commercial clients need cyber coverage discussion. High close rate.'
CL-002: Missing EPLI
text
Rule CL-002: Missing EPLI
  Condition: HAS(Commercial Package) AND EMPLOYEE_COUNT > 5 AND NOT HAS(EPLI)
  Priority: HIGH
  Est. Premium Opportunity: $1,000-$5,000/year
  Recommended Action: 'Business with employees needs EPLI. Review hiring/termination practices.'
CL-003: Missing Commercial Umbrella
text
Rule CL-003: Missing Commercial Umbrella
  Condition: (HAS(Commercial Auto) OR HAS(GL)) AND NOT HAS(Commercial Umbrella)
  Priority: HIGH
  Est. Premium Opportunity: $1,500-$5,000/year
  Recommended Action: 'Commercial client without umbrella—significant liability exposure.'
CL-004: Missing Workers Compensation
text
Rule CL-004: Missing Workers Compensation
  Condition: HAS(Commercial Package) AND EMPLOYEE_COUNT > 0 AND NOT HAS(Workers Comp)
  Priority: CRITICAL
  Est. Premium Opportunity: $2,000-$10,000+/year
  Recommended Action: 'COMPLIANCE ISSUE: Business with employees likely requires WC. Verify state requirements.'
CL-005: Missing Commercial Auto
text
Rule CL-005: Missing Commercial Auto
  Condition: HAS(Commercial Package) AND SIC_CODE IN (construction, delivery, transportation, contracting) AND NOT HAS(Commercial Auto)
  Priority: HIGH
  Est. Premium Opportunity: $2,000-$8,000/year
  Recommended Action: 'Business type likely uses vehicles for operations. Verify fleet/vehicle needs.'
CL-006: Missing D&O / Professional Liability
text
Rule CL-006: Missing D&O / Professional Liability
  Condition: HAS(Commercial Package) AND SIC_CODE IN (professional_services, consulting, healthcare, legal, accounting, technology) AND NOT HAS(Professional Liability OR D&O)
  Priority: HIGH
  Est. Premium Opportunity: $1,000-$5,000/year
  Recommended Action: 'Professional services firm without E&O/professional liability—critical coverage need.'

Supplementary Zapier Logic for Custom Gap Detection

For agencies wanting FEMA flood zone lookup automation, configure a Zapier Zap: AMS New Client → FEMA API Lookup → InsuredMine Tag using the following steps:

1
Trigger: New contact in InsuredMine
2
Code Step (JavaScript): Look up FEMA flood zone for the contact's address and return the flood zone value
3
Update InsuredMine contact with flood zone tag
4
If flood zone is A/V/AE/AH, create high-priority flood gap opportunity
Zapier Code Step: FEMA Flood Zone Lookup
javascript
const address = inputData.address;
const response = await fetch(`https://hazards.fema.gov/gis/nfhl/rest/services/public/NFHL/MapServer/28/query?where=1%3D1&geometry=${encodeURIComponent(address)}&geometryType=esriGeometryPoint&outFields=FLD_ZONE&f=json`);
const data = await response.json();
const floodZone = data.features[0]?.attributes?.FLD_ZONE || 'Unknown';
return { floodZone };

Retention Risk Scoring Model

Type: agent An AI-driven retention risk scoring agent that continuously evaluates each client's likelihood of non-renewal based on multiple behavioral, financial, and relationship signals. The agent runs within InsuredMine's retention module and assigns a 0-100 risk score to every client, updated at each data sync cycle. Scores are used to trigger proactive retention workflows.

Implementation:

Risk Signal Definitions and Weights

Signal Category 1: Premium & Pricing Signals (30% total weight)

  • Signal P1: Renewal Premium Increase (Weight: 15%) Calculation: (New_Premium - Current_Premium) / Current_Premium * 100 Scoring: Increase >25%: +30 pts | Increase 15–25%: +20 pts | Increase 5–15%: +10 pts | Decrease or <5% increase: +0 pts
  • Signal P2: Premium vs. Market Benchmark (Weight: 10%) Calculation: Compare client premium to InsuredMine/industry benchmarks for similar profile Scoring: Premium >120% of benchmark: +25 pts | Premium 110–120% of benchmark: +15 pts | Premium <110% of benchmark: +0 pts
  • Signal P3: Payment Issues (Weight: 5%) Calculation: Count of late payments, NSF, or cancellation notices in last 12 months Scoring: 3+ payment issues: +30 pts | 1–2 payment issues: +15 pts | 0 payment issues: +0 pts

Signal Category 2: Engagement Signals (25% total weight)

  • Signal E1: Agency Contact Recency (Weight: 10%) Calculation: Days since last meaningful contact (call, email, meeting—not automated) Scoring: >365 days: +30 pts | 180–365 days: +20 pts | 90–180 days: +10 pts | <90 days: +0 pts
  • Signal E2: Email Engagement (Weight: 5%) Calculation: Open rate on last 5 agency emails Scoring: 0% open rate: +20 pts | <20% open rate: +10 pts | >20% open rate: +0 pts
  • Signal E3: Portal/App Usage (Weight: 5%) Calculation: Client login frequency to agency portal (if applicable) Scoring: Never logged in: +10 pts | Inactive >6 months: +5 pts | Active: +0 pts
  • Signal E4: NPS/Satisfaction Score (Weight: 5%) Calculation: Most recent NPS survey response Scoring: Detractor (0–6): +25 pts | Passive (7–8): +10 pts | Promoter (9–10): +0 pts | No survey response: +5 pts

Signal Category 3: Policy Relationship Signals (25% total weight)

  • Signal R1: Mono-line Client (Weight: 15%) Calculation: Number of policies with agency Scoring: 1 policy: +25 pts | 2 policies: +10 pts | 3+ policies: +0 pts (protective)
  • Signal R2: Coverage Reduction History (Weight: 5%) Calculation: Client reduced coverage or increased deductibles at last renewal Scoring: Reduced coverage: +20 pts | No change: +0 pts | Increased coverage: -5 pts (protective)
  • Signal R3: Client Tenure (Weight: 5%) Calculation: Years as agency client Scoring: <1 year: +15 pts | 1–3 years: +10 pts | 3–5 years: +5 pts | >5 years: +0 pts

Signal Category 4: Claims & Service Signals (20% total weight)

  • Signal C1: Recent Claims Experience (Weight: 10%) Calculation: Claims filed in last 12 months Scoring: 2+ claims: +20 pts | 1 claim with poor resolution: +25 pts | 1 claim with good resolution: +5 pts | 0 claims: +0 pts
  • Signal C2: Service Complaints (Weight: 5%) Calculation: Documented complaints or negative interactions in last 12 months Scoring: 2+ complaints: +25 pts | 1 complaint: +15 pts | 0 complaints: +0 pts
  • Signal C3: Request for Dec Pages/Policy Copies (Weight: 5%) Calculation: Requests for policy documentation outside of normal cycle Scoring: Requested dec pages/policy copies: +15 pts (may be shopping) | No unusual document requests: +0 pts

Final Score Calculation

Retention risk score formula
text
Risk_Score = SUM(all signal risk points * signal weight)
Normalize to 0-100 scale

Tier Classification

  • 0–30: LOW RISK (Green) — Standard renewal process
  • 31–60: MEDIUM RISK (Yellow) — Proactive outreach 60 days before renewal
  • 61–80: HIGH RISK (Orange) — Producer personal call 90 days before renewal
  • 81–100: CRITICAL RISK (Red) — Immediate producer engagement + management review

Cross-Sell Opportunity Prioritization Prompt

Type: prompt A structured prompt template for use with Azure OpenAI GPT-5.4 (or similar LLM) to generate personalized cross-sell talking points for producers. This prompt is invoked via Zapier or a custom API call when a producer clicks 'Generate Talking Points' on a cross-sell opportunity in InsuredMine, providing context-aware sales guidance based on the specific client's profile and identified gaps.

Implementation

LLM System Prompt + User Prompt Template
text
## System Prompt:

You are an expert insurance sales coach helping independent insurance agency producers prepare for cross-sell conversations with existing clients. You generate concise, personalized talking points based on the client's profile and identified coverage gaps.

Rules:
1. Never provide specific policy quotes or premium amounts - only the producer can do this after running actual quotes.
2. Focus on risk education and value, not price.
3. Use conversational, consultative language - not salesy scripts.
4. Reference the client's specific situation to make recommendations feel personalized.
5. Include one opening question, 2-3 key talking points, and a natural close.
6. Keep total output under 300 words.
7. Flag any E&O considerations (situations where failing to recommend coverage could create agency liability).

## User Prompt Template:

Generate cross-sell talking points for the following client opportunity:

**Client Profile:**
- Name: {client_name}
- Client Since: {client_since_date}
- Age: {client_age}
- Location: {city}, {state} {zip}
- Occupation: {occupation}
- Annual Household Income (estimated): {income_range}

**Current Policies:**
{for each policy:}
- {policy_type}: {carrier}, Premium ${premium}/year, Limits: {limits}, Deductible: ${deductible}
{end for}

**Identified Coverage Gap:**
- Gap Type: {gap_type} (e.g., 'Missing Personal Umbrella')
- Gap Priority: {priority} (Critical/High/Medium/Low)
- Estimated Premium Range: ${est_low} - ${est_high}/year

**Recent Interactions:**
- Last Contact: {last_contact_date} ({contact_type})
- Last Claim: {last_claim_date} ({claim_type}, {claim_outcome})
- Satisfaction: {nps_score or 'Unknown'}

**Additional Context:**
- Retention Risk Score: {risk_score}/100
- Total Policies: {policy_count}
- Total Premium: ${total_premium}/year
- Renewal Date (earliest): {next_renewal}

Please generate:
1. A natural opening question to bring up the topic
2. 2-3 key talking points explaining why this coverage matters for THIS specific client
3. A response to the most likely objection
4. A natural close/next step
5. Any E&O flags for the producer
Example API Call (Python)
python
# Invocation: Zapier webhook from InsuredMine → Azure OpenAI API →
# Email/Teams to producer

import openai
import json

client = openai.AzureOpenAI(
    api_key=os.environ['AZURE_OPENAI_KEY'],
    api_version='2024-06-01',
    azure_endpoint=os.environ['AZURE_OPENAI_ENDPOINT']
)

def generate_talking_points(client_data, gap_data):
    system_prompt = """You are an expert insurance sales coach...[full system prompt above]"""
    
    user_prompt = f"""Generate cross-sell talking points for the following client opportunity:
    
    Client Profile:
    - Name: {client_data['name']}
    - Client Since: {client_data['since_date']}
    ...[full template populated with data]
    """
    
    response = client.chat.completions.create(
        model='gpt-5.4',
        messages=[
            {'role': 'system', 'content': system_prompt},
            {'role': 'user', 'content': user_prompt}
        ],
        max_tokens=500,
        temperature=0.7
    )
    
    return response.choices[0].message.content
Note

Cost Estimate: - Average prompt: ~800 input tokens, ~400 output tokens - GPT-5.4 pricing: $2.50/1M input, $10/1M output - Cost per call: ~$0.006 - 100 calls/month: ~$0.60/month - This is negligible cost for significant producer enablement value

Weekly Book Intelligence Digest

Type: workflow

An automated weekly workflow that compiles the most important AI-generated insights from the past week into a single executive email digest for the agency principal and sales manager. Summarizes new coverage gaps found, top cross-sell opportunities, retention risk changes, and key metrics. Replaces the need for daily dashboard monitoring by pushing the most actionable information proactively.

Implementation

Platform: Zapier + InsuredMine API + SendGrid/Outlook Schedule: Every Monday at 7:00 AM local time

Zapier Workflow Configuration

1
Schedule Trigger — Type: Schedule by Zapier | Frequency: Every week | Day: Monday | Time: 7:00 AM
2
Fetch InsuredMine Weekly Metrics — Type: Webhooks by Zapier - GET
3
Fetch Top Opportunities — Type: Webhooks by Zapier - GET
4
Fetch High-Risk Renewals — Type: Webhooks by Zapier - GET
5
Format Email — Type: Code Step (JavaScript)
6
Send Email — Type: Email by Zapier or Microsoft Outlook
Step 2: Fetch InsuredMine Weekly Metrics
http
GET https://api.insuredmine.com/v1/analytics/weekly-summary
Authorization: Bearer {insuredmine_api_key}

Query Parameters:
  start_date: {{zap_meta_human_now_minus_7_days}}
  end_date: {{zap_meta_human_now}}
Step 3: Fetch Top Opportunities
http
GET https://api.insuredmine.com/v1/opportunities?sort=-score&limit=10&status=identified
Authorization: Bearer {insuredmine_api_key}
Step 4: Fetch High-Risk Renewals
http
GET https://api.insuredmine.com/v1/retention/at-risk?risk_level=high&renewal_within_days=30
Authorization: Bearer {insuredmine_api_key}
Step 5: Format Email (Code Step — JavaScript)
javascript
const metrics = JSON.parse(inputData.weekly_metrics);
const opportunities = JSON.parse(inputData.top_opportunities);
const atRisk = JSON.parse(inputData.high_risk);

const emailHtml = `
<div style='font-family: Arial, sans-serif; max-width: 650px; margin: 0 auto;'>
  <h1 style='color: #1a5276; border-bottom: 3px solid #2e86c1; padding-bottom: 10px;'>
    📊 Weekly Book Intelligence Digest
  </h1>
  <p style='color: #666;'>Week of ${new Date().toLocaleDateString()} | ${metrics.agency_name}</p>
  
  <h2 style='color: #1a5276;'>📈 Key Metrics This Week</h2>
  <table style='width: 100%; border-collapse: collapse;'>
    <tr style='background: #eaf2f8;'>
      <td style='padding: 10px; border: 1px solid #d4e6f1;'><strong>New Gaps Identified</strong></td>
      <td style='padding: 10px; border: 1px solid #d4e6f1; text-align: right;'>${metrics.new_gaps_count}</td>
    </tr>
    <tr>
      <td style='padding: 10px; border: 1px solid #d4e6f1;'><strong>Cross-Sell Opportunities Created</strong></td>
      <td style='padding: 10px; border: 1px solid #d4e6f1; text-align: right;'>${metrics.new_opportunities}</td>
    </tr>
    <tr style='background: #eaf2f8;'>
      <td style='padding: 10px; border: 1px solid #d4e6f1;'><strong>Policies Bound from Recommendations</strong></td>
      <td style='padding: 10px; border: 1px solid #d4e6f1; text-align: right;'>${metrics.policies_bound}</td>
    </tr>
    <tr>
      <td style='padding: 10px; border: 1px solid #d4e6f1;'><strong>Est. New Premium Generated</strong></td>
      <td style='padding: 10px; border: 1px solid #d4e6f1; text-align: right;'>$${metrics.premium_generated?.toLocaleString()}</td>
    </tr>
    <tr style='background: #eaf2f8;'>
      <td style='padding: 10px; border: 1px solid #d4e6f1;'><strong>High-Risk Clients Retained</strong></td>
      <td style='padding: 10px; border: 1px solid #d4e6f1; text-align: right;'>${metrics.retained_count} of ${metrics.at_risk_count}</td>
    </tr>
    <tr>
      <td style='padding: 10px; border: 1px solid #d4e6f1;'><strong>Current Retention Rate (Rolling 12mo)</strong></td>
      <td style='padding: 10px; border: 1px solid #d4e6f1; text-align: right;'>${metrics.retention_rate}%</td>
    </tr>
  </table>
  
  <h2 style='color: #e74c3c;'>🚨 Urgent: High-Risk Renewals (Next 30 Days)</h2>
  <table style='width: 100%; border-collapse: collapse;'>
    <tr style='background: #fdedec;'>
      <th style='padding: 8px; text-align: left;'>Client</th>
      <th style='padding: 8px; text-align: right;'>Premium</th>
      <th style='padding: 8px; text-align: center;'>Risk Score</th>
      <th style='padding: 8px; text-align: left;'>Producer</th>
    </tr>
    ${atRisk.slice(0,5).map(c => `
    <tr>
      <td style='padding: 8px; border-bottom: 1px solid #eee;'>${c.client_name}</td>
      <td style='padding: 8px; border-bottom: 1px solid #eee; text-align: right;'>$${c.total_premium?.toLocaleString()}</td>
      <td style='padding: 8px; border-bottom: 1px solid #eee; text-align: center;'><span style='color: red; font-weight: bold;'>${c.risk_score}</span></td>
      <td style='padding: 8px; border-bottom: 1px solid #eee;'>${c.producer_name}</td>
    </tr>`).join('')}
  </table>
  
  <h2 style='color: #27ae60;'>💰 Top Cross-Sell Opportunities</h2>
  <table style='width: 100%; border-collapse: collapse;'>
    <tr style='background: #eafaf1;'>
      <th style='padding: 8px; text-align: left;'>Client</th>
      <th style='padding: 8px; text-align: left;'>Gap Type</th>
      <th style='padding: 8px; text-align: right;'>Est. Premium</th>
      <th style='padding: 8px; text-align: left;'>Producer</th>
    </tr>
    ${opportunities.slice(0,10).map(o => `
    <tr>
      <td style='padding: 8px; border-bottom: 1px solid #eee;'>${o.client_name}</td>
      <td style='padding: 8px; border-bottom: 1px solid #eee;'>${o.gap_type}</td>
      <td style='padding: 8px; border-bottom: 1px solid #eee; text-align: right;'>$${o.est_premium?.toLocaleString()}</td>
      <td style='padding: 8px; border-bottom: 1px solid #eee;'>${o.producer_name}</td>
    </tr>`).join('')}
  </table>
  
  <p style='color: #666; font-size: 12px; margin-top: 20px; border-top: 1px solid #eee; padding-top: 10px;'>
    This digest is generated automatically by your AI Book Analytics system.
    <a href='https://app.insuredmine.com'>Log in to InsuredMine</a> for full details.
    Managed by [MSP Name] | support@yourmsp.com
  </p>
</div>
`;

output = { emailHtml, subject: `📊 Weekly Book Intelligence: ${metrics.new_opportunities} New Opportunities | ${atRisk.length} At-Risk Renewals` };
  • To: agency_principal@agency.com, sales_manager@agency.com
  • CC: msp_account_manager@yourmsp.com
  • Subject: {{step5.subject}}
  • Body: {{step5.emailHtml}} (HTML format)
  • From Name: Book Intelligence - [Agency Name]

AMS Data Quality Monitor

Type: integration

An automated data quality monitoring integration that runs daily checks on the AMS data flowing into InsuredMine, flagging records with missing critical fields, detecting new duplicates, and generating a monthly data quality report card. Poor data quality is the #1 cause of inaccurate AI recommendations—this component ensures ongoing data hygiene without manual effort.

Implementation:

AMS Data Quality Monitor — Platform: Zapier + Python Code Steps + InsuredMine API — Schedule: Daily at 11:00 PM (after business hours)

1
Schedule Trigger — Daily at 11:00 PM
2
Fetch All Contacts from InsuredMine API
3
Code Step — Data Quality Analysis (Python)
4
Conditional — If Alert Triggered: IF results.alert == true, send email to MSP account manager and agency operations manager. Subject: '⚠️ Data Quality Alert: Score {overall_quality_score}% | {duplicate_count} Duplicates Found'. Body: Detailed breakdown of quality metrics and specific records needing attention.
5
Log Results — Append results to Google Sheet or Airtable for monthly trending. Columns: Date, Total Contacts, Email %, Phone %, Address %, Quality Score, Duplicates.
6
Monthly Report (triggered first Monday of each month) — Compile 30 days of daily quality scores into trend chart, calculate month-over-month improvement, include in monthly QBR deck for agency management.
Step 2: Fetch All Contacts from InsuredMine API
http
GET https://api.insuredmine.com/v1/contacts?limit=5000&fields=id,name,email,phone,address,policies
Step 3: Data Quality Analysis (Python)
python
# runs inside Zapier Code Step

import json
from datetime import datetime

contacts = json.loads(input_data['contacts'])

results = {
    'total_contacts': len(contacts),
    'missing_email': 0,
    'missing_phone': 0,
    'missing_address': 0,
    'no_policies': 0,
    'single_policy': 0,
    'potential_duplicates': [],
    'issues': []
}

name_index = {}

for contact in contacts:
    # Check missing fields
    if not contact.get('email'):
        results['missing_email'] += 1
    if not contact.get('phone'):
        results['missing_phone'] += 1
    if not contact.get('address') or not contact['address'].get('street'):
        results['missing_address'] += 1
    
    policy_count = len(contact.get('policies', []))
    if policy_count == 0:
        results['no_policies'] += 1
        results['issues'].append(f"Contact {contact['name']} (ID: {contact['id']}) has no policies")
    elif policy_count == 1:
        results['single_policy'] += 1
    
    # Duplicate detection (simple name+address matching)
    name_key = contact.get('name', '').lower().strip()
    addr_key = contact.get('address', {}).get('street', '').lower().strip()
    composite_key = f"{name_key}|{addr_key}"
    
    if composite_key in name_index and composite_key != '|':
        results['potential_duplicates'].append({
            'contact1': name_index[composite_key],
            'contact2': contact['id'],
            'name': contact['name']
        })
    else:
        name_index[composite_key] = contact['id']

# Calculate quality scores
results['email_coverage'] = round((1 - results['missing_email'] / max(results['total_contacts'], 1)) * 100, 1)
results['phone_coverage'] = round((1 - results['missing_phone'] / max(results['total_contacts'], 1)) * 100, 1)
results['address_coverage'] = round((1 - results['missing_address'] / max(results['total_contacts'], 1)) * 100, 1)
results['overall_quality_score'] = round((results['email_coverage'] + results['phone_coverage'] + results['address_coverage']) / 3, 1)
results['duplicate_count'] = len(results['potential_duplicates'])
results['run_date'] = datetime.now().isoformat()

# Alert threshold
results['alert'] = results['overall_quality_score'] < 80 or results['duplicate_count'] > 10

output = json.dumps(results)

Testing & Validation

Client Handoff

The client handoff should be conducted as a formal 90-minute meeting with the agency principal, operations manager, sales manager, and optionally a senior producer. Cover the following:

1. Solution Overview and Architecture (15 min)

Walk through how data flows from their AMS through InsuredMine to produce coverage gap analysis, cross-sell opportunities, and retention risk scores. Explain what the AI does and doesn't do—it recommends, humans decide.

2. Dashboard and Reporting Tour (20 min)

Live walkthrough of InsuredMine dashboards and Power BI executive reports. Show how to read retention risk scores, interpret coverage gap lists, manage the cross-sell pipeline, and track producer performance.

3. Daily Workflow Review (15 min)

Demonstrate the producer daily workflow: log in, review worklist, act on top opportunities, update statuses. Show CSR workflow: review renewal tasks, process retention alerts, maintain data quality.

4. Success Metrics and KPIs (10 min)

Define and agree on success criteria:

1
Coverage gap closure rate target: 10%+ of identified gaps converted to policies within 6 months
2
Cross-sell conversion rate target: 8%+ of AI-identified opportunities converted
3
Retention rate improvement target: 2%+ improvement in rolling 12-month retention rate within 12 months
4
Revenue impact target: 5-15% increase in written premium attributable to AI recommendations within 12 months

5. Documentation Handoff (10 min)

Provide the client documentation package:

1
User guides for each role (Producer, CSR, Manager)
2
Quick reference cards (laminated 1-pagers for each desk)
3
Training session recordings
4
Compliance documentation binder (WISP, IRP, vendor assessments, DPA)
5
MSP support contact card and escalation procedures
6
Coverage gap rules reference document
7
Data quality standards and expectations guide

6. Support and Maintenance Plan (10 min)

Review the ongoing MSP support agreement: what's included in monthly managed services, response time SLAs, quarterly business review schedule, how to request changes to gap rules or dashboard configurations.

7. 30/60/90 Day Milestones (10 min)

Set calendar appointments for 30-day adoption check-in, 60-day optimization review, and 90-day QBR. At each checkpoint: review adoption metrics, refine AI rules based on feedback, address any workflow friction, and celebrate wins (policies bound, revenue generated from AI recommendations).

Maintenance

Ongoing MSP Maintenance Responsibilities:

Daily (Automated)

  • Data quality monitor runs automatically at 11 PM and logs results. MSP reviews alerts only if quality score drops below 80% or duplicate count exceeds threshold. Estimated time: 5 minutes/day (alert review only).
  • Data sync health check: Verify InsuredMine data sync completed successfully via platform health dashboard. Set up uptime monitoring (e.g., UptimeRobot or Datadog) on InsuredMine API endpoints.

Weekly

  • Review weekly intelligence digest email for accuracy and delivery. Verify metrics are populating correctly. 15 minutes.
  • Check Zapier workflow execution logs for any failed zaps. Re-run or troubleshoot failures. 15 minutes.
  • Review SentinelOne console for any endpoint security alerts. Investigate and remediate threats. 15-30 minutes.

Monthly

  • AMS-InsuredMine data reconciliation: Full record count comparison and 10-record spot check. 1 hour.
  • Coverage gap rule review: Meet with agency operations manager to review gap detection accuracy, add/modify rules based on producer feedback and conversion data. 1 hour.
  • Retention model performance review: Compare predicted risk scores against actual renewal outcomes. Identify false positives/negatives and adjust signal weights. 1 hour.
  • Security patching: Apply Windows updates, firmware updates for FortiGate, browser updates, and SentinelOne agent updates. 1-2 hours.
  • Backup verification: Test restore from Datto/Axcient backup. Verify all critical configurations can be recovered. 30 minutes.
  • Power BI dashboard refresh: Verify scheduled data refresh is running, update any broken queries, add new visualizations if requested. 30 minutes.

Quarterly (QBR - Quarterly Business Review)

  • Comprehensive analytics ROI review with agency leadership. Present: coverage gaps closed and premium generated, cross-sell pipeline performance, retention rate trends, producer adoption metrics, data quality trends. 2-hour meeting + 2 hours preparation.
  • Compliance documentation review and update. Verify WISP is current, review any regulatory changes in states where agency operates, update vendor risk assessments if InsuredMine has new SOC 2 report. 2 hours.
  • Platform feature review: Check InsuredMine release notes for new features, evaluate and enable relevant new capabilities. 1 hour.
  • AI model recalibration: Based on 3 months of conversion and retention data, refine scoring weights, gap rules, and alert thresholds. 2 hours.

Annually

  • Full security assessment and penetration test. Verify compliance with NAIC Model Law #668. Update WISP and incident response plan. 4-8 hours.
  • Insurance AI regulatory review: Check for new state-level AI regulations affecting agency operations. Update AI governance documentation. 2 hours.
  • Technology refresh assessment: Evaluate whether current platform stack is still optimal, review competitor products, assess upgrade paths. 2 hours.
  • Contract and licensing renewal: Renew InsuredMine, Microsoft 365, SentinelOne, FortiGuard, and backup service agreements. Negotiate volume pricing improvements. 2 hours.

Escalation Path

1
Tier 1 (MSP Help Desk): Password resets, login issues, basic UI questions. Response: <1 hour.
2
Tier 2 (MSP Engineer): Data sync failures, integration errors, workflow malfunctions, dashboard issues. Response: <4 hours.
3
Tier 3 (MSP Solutions Architect): Platform configuration changes, new integration requests, AI model tuning, compliance issues. Response: <1 business day.
4
Vendor Escalation: InsuredMine support for platform bugs, API changes, or feature requests. Applied/HawkSoft support for AMS-side integration issues.

SLA Considerations

  • Platform availability: InsuredMine SLA (typically 99.9% uptime). MSP monitors and reports.
  • Data freshness: AMS-to-InsuredMine sync should complete within 30 minutes of AMS changes during business hours.
  • Alert delivery: Retention risk and coverage gap alerts should reach producers within 1 hour of trigger event.
  • Support response: MSP should offer 4-hour response for critical issues (data sync down, security incident), 8-hour for high (workflow broken), next business day for normal requests.

Alternatives

Applied Book Builder (Native Applied Epic Solution)

For agencies already running Applied Epic as their AMS, Applied Book Builder is a native AI-powered analytics tool built directly into the Epic platform. It enriches client accounts with data from thousands of public sources, identifies coverage gaps and cross-sell opportunities at the account level, and provides risk intelligence without requiring a separate CRM overlay. No separate platform to manage or integrate—it lives inside the AMS the agency already uses daily.

AgencyIQ (SIAA / DONNA.ai) — AMS-Agnostic Analytics

AgencyIQ (formerly DONNA.ai, acquired by SIAA in March 2025) is a purpose-built insurance analytics platform that is both carrier and AMS-agnostic. It features a proprietary SentiMeter retention risk score, cross-sell identification, and real-time customer experience measurement. It integrates with Applied, HawkSoft, Vertafore products, and others. For SIAA member agencies (5,200+ agencies writing $17B+ premium), it may be included as a membership benefit.

EZLynx All-in-One (Budget Option for Small Agencies)

For startup or growth-stage agencies (1-10 employees, <2,000 clients), EZLynx provides an all-in-one AMS with built-in retention analytics, automated renewal management, and cross-sell identification at a starting price of $350/month. No separate analytics platform needed—retention tools and client management are native to the AMS.

Custom Build with Power BI + Azure OpenAI (Enterprise Custom Solution)

For large agencies (50+ employees, $10M+ premium book) with unique requirements, a fully custom solution using Microsoft Power BI for visualization, Azure SQL Database for data warehousing, Azure OpenAI Service (GPT-5.4) for intelligent analysis, and custom Python/Node.js ETL scripts for AMS data extraction. Provides complete control over data models, scoring algorithms, and UI design.

Zywave AI Agents (Commercial Lines Focus)

Zywave's suite of insurance-specialized AI agents connects to an agency's book of business to identify risk exposures using proprietary benchmarking analytics, recommend appropriate coverage, and tap into 1,000+ real-time carrier APIs for automated quoting. Particularly strong for commercial lines agencies with its coverage-gap analysis, contract comparisons, and access to exposure data on tens of millions of businesses.

Want early access to the full toolkit?