Inside the Intake Triage Agent: Six P&C Scenarios Showing the First Decision InsightUW Makes on Every Inbound
Every inbound to a commercial P&C carrier — broker email, portal POST, API call, bot upload — has to be classified before anything else can happen. Is it a new submission? A renewal? A follow-up on something already in flight? A question, an OOO bounce, a marketing email, spam? Get this wrong and the rest of the cascade does the wrong work on the wrong record. The Intake Triage Agent is the first agent every inbound touches, and it makes that decision in seconds — with six possible verdicts and a confidence score on each.
The architecture in one picture
The Intake Triage Agent runs as a five-band pipeline. Inbound channels at the top are every way a submission can enter the platform. Ingress guards + dedup reject spoofed senders, scan for viruses, and collapse re-receipts of the same Message-ID instead of spawning duplicate submissions. Three parallel classification passes — LLM, deterministic rules, thread / submission matching — produce independent signals that merge into a single verdict. The decision band at the bottom picks one of six paths, and every path writes an audit event so downstream agents (and auditors) can reconstruct what happened.
Click the image to open at full resolution.
Reading the five bands
| Band | What lives there | Why it's there |
|---|---|---|
| Inbound channels | Email (Outlook / Exchange / Graph / IMAP), broker portal POST, REST API POST, bot uploads from carrier apps | The agent is channel-agnostic. P&C is email-dominant today, but portals, APIs, and bots are growing — one agent handles all of them. |
| Ingress guards + dedup | DKIM / SPF / DMARC, size cap, virus scan, RFC 5322 Message-ID dedup over a 30-day window | Spoofed broker domains are rejected at the edge. Viruses are scanned before persistence. Duplicate Message-IDs collapse into the existing email thread — brokers re-send constantly and this prevents double-submissions. |
| Hydrate routing context | Sender domain → broker, prior threads, mailbox → LOB hint, broker scorecard | Gives the classifier more than just the subject line. The same subject from a tier-1 broker on the property mailbox tells a different story than the same subject from an unknown sender on the casualty mailbox. |
| Parallel classification | Three independent passes: LLM (Claude · intent + LOB + urgency), Deterministic rules (mailbox map · keywords · regex · allow/deny), Thread / submission matching (In-Reply-To, fuzzy match, policy-number regex) | Parallel because the three pass-types are independent and produce different signals. Merging them with explicit precedence gives a verdict that's more robust than any single pass. |
| Verdict + routing | Six verdicts: NEW SUBMISSION, RENEWAL, FOLLOW-UP, UA REVIEW, SPAM, DROP. Each routes differently downstream. | The agent's deliverable is one of these six labels with a confidence score. Everything that happens after — extraction, clearance, enrichment — is driven by the label. |
The six verdicts in one paragraph each
NEW SUBMISSION — intent is "submission," confidence ≥ 0.7, no existing thread match. A UWSubmissionQueue row is created (status=pending_extraction), a UW is assigned via FIFO or skills-based routing, and the cascade proceeds to document extraction → clearance → ... About 50–60% of inbound on most commercial books.
RENEWAL — intent is "renewal" and a prior policy is found via broker + insured + LOB lookup. The prior_policy_guid is linked and the Renewal Pull-Forward Agent is invoked to clone SOV / endorsements / T&Cs. Cascade proceeds with the renewal flag set. About 25–35% of inbound on a mature book.
FOLLOW-UP — thread match found via In-Reply-To header, References chain, or fuzzy subject + sender against open submissions. The email is attached to the existing UWSubmissionQueue row, the assigned UW is notified, and any closed tasks linked to that submission auto-reopen. No new cascade. About 10–15% of inbound.
UA REVIEW — confidence is below 0.7 OR the LLM and deterministic passes disagree. Routed to the UA queue with the per-pass reasoning surfaced ("LLM said submission 0.62; deterministic mailbox hint was property; thread match found nothing"). Cascade halts; the UA confirms intent (with optional LOB override) and the cascade resumes from the corrected verdict. ~3–8% of inbound.
SPAM — spam confidence ≥ 90% (deterministic denylist hit, or LLM spam classifier ≥ 0.90). Quarantined into the compliance review bucket. No submission row created. No downstream agents invoked. The audit event still fires so the volume can be reported. ~2–5% of inbound.
DROP — non-submission email that isn't spam. Out-of-office auto-replies, marketing pitches from aggregators, vendor sales emails, delivery-receipt bounces. Logged with the reason but no submission record, no cascade. Distinct from spam because these are legitimate emails that simply aren't underwriting work. ~5–10% of inbound.
Six P&C scenarios
Each scenario below exercises one of the six verdict paths with a representative P&C line and a representative trigger. The "What the UW sees" line is the actual outcome surfaced on the InsightUW Live Console and the workbench.
Scenario 1 · Clean Property submission from a tier-1 broker NEW SUBMISSION · conf 0.94
property@carrier.com · subject "NEW SUBMISSION · Bridgepoint Logistics · Property · $15M TIV · NJ"intake_triage as auto-cleared, cascade proceeding to document_extraction.UWAuditEntry · event=intake_classified · classification=NEW SUBMISSION · confidence=0.94 · routing_strategy=mailbox+llmScenario 2 · Casualty renewal that auto-links to the prior policy RENEWAL · pull-forward
casualty@carrier.com · subject "RENEWAL · Stillwater Manufacturing · GL/Umbrella · effective 2026-09-01"UWAuditEntry · event=intake_classified · classification=RENEWAL · prior_policy_guid=… · routing_strategy=broker_insured_matchScenario 3 · Broker reply with additional loss runs for an in-flight Cyber submission FOLLOW-UP · attached
cyber@carrier.com · subject "Re: Submission #SUB-2026-CY-0084 — additional loss runs attached"UWAuditEntry · event=email_attached · routing_strategy=in_reply_to · attached_to=SUB-2026-CY-0084Scenario 4 · Ambiguous wholesaler email about a Marine cargo voyage UA REVIEW · cascade halts
casualty@carrier.com (wrong mailbox) · subject "Quick question on Pacific Routes shipment"UWAuditEntry · event=intake_uncertain · then on UA ack: UWAuthorityOverride · cleared_by_role=ua · justification storedScenario 5 · Marketing pitch from an unverified domain SPAM · quarantined
property@carrier.com · subject "Boost your property quote conversion 3x — guaranteed!"UWAuditEntry · event=intake_spam · spam_confidence=0.97 · reason="denylist+dkim_fail+marketing_regex"Scenario 6 · Out-of-office auto-reply bouncing back from a broker DROP · logged
uw-team@carrier.com · subject "Automatic reply: Re: SUB-2026-PR-0211 quote follow-up"Auto-Submitted: auto-replied header present + subject prefix "Automatic reply:". LLM: intent=non_submission, confidence 0.99. Thread match: chains to outbound SUB-2026-PR-0211 follow-up; agent records the broker is OOO so the cadence timer pauses, but no new submission.UWAuditEntry · event=intake_dropped · reason=auto_reply · linked_submission=SUB-2026-PR-0211 · cadence_paused_until=2026-07-07How the three classification passes combine
The merge precedence is explicit — it's not "average the scores." Each pass has a different role and a different way of winning:
- Thread match wins over LLM intent. If the email is in a reply chain to an existing submission (In-Reply-To header, References chain, or fuzzy subject + sender match), it's a follow-up — even if the LLM thinks the subject reads like a new submission. Brokers occasionally reply with edited subjects that look like new submissions but are really updates.
- Deterministic spam wins over LLM. If the sender domain is denylisted or DKIM fails or the subject matches a known marketing template, the LLM doesn't get a chance to overrule. This also short-circuits cost — no LLM tokens burned on obvious spam.
- Otherwise, LLM intent + LOB are used. Deterministic mailbox→LOB hint is a tiebreaker when the LLM's LOB confidence is below 0.5.
- Confidence below 0.7 routes to UA regardless of intent. The agent refuses to commit when the model isn't sure — a false NEW SUBMISSION wastes downstream cycles, a false FOLLOW-UP attaches to the wrong record.
What the agent reads — and what it doesn't
The Intake Triage Agent has a deliberately narrow scope. Its job is classify and route — nothing more. Specifically:
| The agent does | The agent does NOT |
|---|---|
| Classify intent (submission / renewal / follow-up / question / spam / drop) | OCR or extract fields from attachments — that's the Document Extraction Agent |
| Identify the LOB and the urgency band | Run sanctions / OFAC / capacity checks — that's the Clearance Agent |
| Detect thread membership and link follow-ups | Resolve the insured master record — that's the Submission Enrichment Agent |
| Apply rush detection per-LOB keyword rules | Decide whether to decline — that's the Auto-Declination Agent |
| Assign a UW via FIFO or skills-based routing | Compute aggregate capacity or BOR conflicts — those are Clearance + BOR Conflict Agents |
| Write the canonical email row and submission row | Send any outbound emails — that's the Follow-up Communication Agent |
Every additional responsibility added to intake would slow it down and make retries harder. Keeping it narrow lets the rest of the pipeline run unblocked, and it makes intake the most reliable agent in the cascade — failure modes are well understood and recovery is fast.
Per-LOB rush detection at intake
The agent decides rush vs normal at intake — before extraction runs. This is what makes the rush SLA timer start at the right minute, not three steps later when someone notices.
| LOB | Rush keywords (admin-tunable per tenant) | Rush SLA |
|---|---|---|
| Property | CAT, flood, hurricane, wildfire, hail, freeze, earthquake | 4h |
| Marine | cargo emergency, war risk, voyage, hull damage, total loss | 4h |
| Casualty | TRIA, umbrella, excess, large loss | 6h |
| Cyber | breach, incident, ransomware, active intrusion | 2h |
| D&O | securities-class-action, SEC enforcement, bankruptcy | 6h |
| WC | catastrophic injury, fatality, OSHA fine | 8h |
A rush hit sets UWSubmissionQueue.is_rush = true and overrides the FIFO queue position. The workbench surfaces it with a red rush pill at the top of the list, and the SLA clock starts ticking at the moment the email landed — not when someone happened to open it.
Tunables a carrier owns
Everything the agent uses to decide is admin-configurable per tenant and per LOB. Engineering doesn't touch a thing when classification thresholds shift or new mailboxes are added:
- Spam confidence threshold (default 0.90) — higher means fewer false-positive spam classifications
- Low-confidence threshold (default 0.70) — below this, routes to UA regardless of intent
- Dedup window (default 30 days) — re-receipt of same Message-ID collapses to existing email
- Rush keyword list per LOB — triggers
is_rush=trueand overrides FIFO; admin-managed per tenant - Mailbox → LOB mapping per mailbox
- Sender allowlist / denylist per tenant — hard pass or fail before LLM runs
- Subject regex catalog per tenant — hard signals for NEW / RENEWAL / QUOTE / DECLINE prefixes
- FIFO vs skills-based UW assignment per team
- LLM model + region per tenant — Bedrock Claude default; Azure OpenAI failover
- LLM cost cap per inbound (default $0.05) — hard ceiling; classification falls back to deterministic-only beyond
Why this matters for P&C
Manual triage on a commercial P&C inbox takes 5–15 minutes per email and is the single most boring part of an Ops analyst's day. Multiply by 200–800 inbound per day per team and you have one full-time role that's just sorting email. Done by humans, this work is uneven (spam misses, follow-ups attached to the wrong record, wrong-LOB routing), slow (rush submissions sit for hours before someone notices), and invisible to the audit trail (the decision lives in someone's head).
| Outcome | Traditional inbox triage | InsightUW Intake Triage Agent |
|---|---|---|
| Time per inbound | 5–15 minutes of analyst time | 1–3 seconds wall-clock |
| Follow-up attachment accuracy | ~80% — analysts attach to the wrong record under load | ~98% — thread match via In-Reply-To wins decisively over LLM |
| Rush detection | UW notices when they open the email — often hours later | Detected at intake; SLA clock starts at email-landed timestamp |
| Spam catch rate | Variable; depends on the analyst | Consistent threshold; quarantined to compliance review bucket |
| Audit trail | "It got routed to me, I don't know why" | Per-inbound audit row with classification, confidence, and routing strategy |
| Capacity to scale inbound | Linear in headcount | Linear in inbound — adding 50% more email doesn't add 50% more Ops |
What's Next
This post covered the Intake Triage Agent end-to-end. Subsequent posts will go deeper on:
- The Document Extraction Agent — the multi-step pipeline that runs after intake: classify each attachment, extract per-doc-type with state and LOB overlays, cross-validate fields across attachments + email body
- The Routing Service — how the broker + insured prior-bind match works, why the 90-day window matters, and how it powers BOR conflict detection downstream
- The Follow-up Communication Agent — how cadence reminders pause on broker OOO detection and resume when the broker is back
Want to see the Intake Triage Agent classify a real broker email end-to-end — including a UA REVIEW with the LLM-vs-deterministic disagreement surfaced — in a 45-minute working session against your inbound? Request a demo.