# COI Issuance

Read a third party's certificate of insurance request, verify it against the policy on file, and either issue the certificate straight through or hand a policy servicing rep a prepared verification with the gap already identified.

## The business problem

A certificate request looks routine — a landlord, a lender, or a vendor asks for evidence of coverage — but it has to be checked against the real policy before it can be issued: is the right line of business on file, do the limits meet what's required, are special statuses (additional insured, loss payee, primary and non-contributory) actually evidenced by an endorsement, and is the policy in force for the period needed. Done by hand across a package of mixed documents, that check is exactly where a shortfall or a missing endorsement gets missed.

The **COI Issuance** template automates it: classify and extract every document, reconcile what the third party is actually requiring, verify it against the available policy evidence, and either issue the certificate straight through or route it to a policy servicing rep with the gap already called out.

> **Important: the verification is decision support, not a decision.** The agent lays out the reasoning and evidence; it doesn't make a binding coverage determination. Where every requirement verifies clean, the certificate issues straight through. Everything else goes to a person to review, edit, and approve.

## Trigger and source data

The template ships with the **Manual File Upload** trigger. You can configure other triggers, including a connection to an Outlook email inbox. Inbound webhooks, scheduled/timer triggers, and SFTP are **not currently available**; drive runs from another system through the [Bevaya API](../api/flow-executions#run-a-flow). See [Configure triggers](../build-ai-agents/triggers.md).

Upload a certificate request package — typically an email with a few attachments — containing one or more of:

- A **certificate request email** naming the certificate holder and the deadline
- A **contract or lease**, or a standalone **insurance requirements schedule**, stating what's required
- A **prior certificate**, if this is a renewal or the holder wants the wording matched
- A **policy declarations page** or **endorsement form**, as evidence of what's on file
- A **vendor onboarding form**, if the request arrived through a compliance portal

The verification works from any policy evidence in the package — a declarations page, an endorsement form, a prior certificate. Connect the flow to your policy administration system (see below) to verify against the live record instead. Either way, if no policy evidence can be matched to the request, the item routes to review stating what's needed to proceed.

## Template starting point

Create an AI agent from the **COI Issuance** template for a working flow that classifies, extracts, verifies, and routes out of the box. Open it in the canvas, select an environment, click **Start Editing**, and adjust field prompts, the verification prompt, or validation thresholds to your lines of business. See [Create an AI Agent](../build-ai-agents/create-agent.md).

## What the template preconfigures

| Step in the flow | Node it uses | Category |
| --- | --- | --- |
| Prepare the uploaded files | [Read Files](../build-ai-agents/utility-nodes.md) | Utility |
| Process each document in the package | [For Loop](../build-ai-agents/control-nodes.md) | Control |
| Classify each document and extract per-type fields | [InsurGPT: Custom](../build-ai-agents/insurgpt-nodes.md) | InsurGPT |
| Route each document to the right extractor | [Switch](../build-ai-agents/control-nodes.md) | Control |
| Reconcile the package into a single certificate request | [InsurGPT: Custom](../build-ai-agents/insurgpt-nodes.md) | InsurGPT |
| Verify coverage against the policy evidence available (limits, special status, in-force, gaps) | [InsurGPT: Custom](../build-ai-agents/insurgpt-nodes.md) | InsurGPT |
| Check extracted and analyzed values against rules | [Field Validation](../build-ai-agents/utility-nodes.md) | Utility |
| Route straight through or to a reviewer, depending on whether every requirement verifies clean | [Switch](../build-ai-agents/control-nodes.md) → [Review](../build-ai-agents/utility-nodes.md) | Control / Utility |
| Close out the item | [Complete](../build-ai-agents/action-nodes.md) | Action |

The verification produces the findings shown to the reviewer — policy match, in-force check, line-by-line coverage and limit adequacy, special-status evidence, coverage gaps, and an issuance recommendation — plus the certificate's Description of Operations wording ready to issue.

## What builders must configure before deployment

- **Extraction, verification, and validation.** Tune the prompts, fields, and validation rules to your lines of business and standards.
- **Review routing.** Set confidence thresholds and the reviewer queue. See [Utility nodes](../build-ai-agents/utility-nodes.md).
- **A connection to your policy administration system.** We recommend an [HTTP node](../build-ai-agents/utility-nodes.md) before the verification step to look up the policy by policy number or insured name, followed by a [Custom Code Block](../build-ai-agents/utility-nodes.md) to shape the response for the verification prompt. Without it, the verification works only from policy documents in the package.
- **Straight-through issuance conditions.** The template is built to issue a certificate without a human touch only when the policy verifies in force, every required limit and status is evidenced, and the package is internally consistent — confirm this bar matches your risk tolerance.
- **Issuing the certificate.** A straight-through item completes with the certificate wording, verification, and source documents ready to issue. To issue automatically, add an [HTTP node](../build-ai-agents/utility-nodes.md) calling your system's API, with connection details stored in **Settings → Variables**. See [App integration nodes](../build-ai-agents/app-integration-nodes.md).

## How the AI agent behaves

The agent classifies and extracts each document (the request itself, contract or schedule requirements, prior-certificate wording, declarations and endorsement evidence), reconciles the package into a single statement of what's being requested, and verifies it against the policy evidence available — never assuming a limit or status is adequate just because the policy exists. The verification is evidence-backed, not a verdict: it confirms which lines and limits are on file, flags a shortfall or an unevidenced status by name, and recommends issuing or holding the certificate.

It works only from the supplied documents (and the matched policy record, if connected); it doesn't invent values, and low-confidence or missing fields are flagged rather than fabricated.

## Human review model

The reviewer works the item in the Bevaya Platform across two tabs:

- The **Insights tab** — an exception summary, an AI recommendation with confidence and a suggested disposition, key-insights cards (requirements, limit adequacy, special status, gaps, in-force check), a certificate preview, the source documents, and an audit trail.
- The **Review tab** — field-by-field verification of the request, the requirements behind it, and the policy evidence found, each linked to its source document and page.

Clean certificates issue without stopping at this gate. Everything else pauses at **Review** until the reviewer submits. Reviewers can work items and reviews but cannot build or run flows. See [Human review](../monitor-review/human-review.md).

## Run status and reporting

Each request becomes an item moving through **In Progress, Review, Complete, Failed, Canceled**. Watch runs in [Run history](../monitor-review/run-history.md) and live counts by status — including the straight-through share — in [Item status reporting](../monitor-review/item-status-reporting.md).

## Example run

A landlord's property manager asks for evidence of additional insured status ahead of a lease commencement date, attaching the lease insurance exhibit.

1. The flow prepares the files, classifies the request email and lease exhibit, and extracts the certificate holder, the required limits, and the required special statuses.
2. It reconciles the package into one statement of what's being requested.
3. The verification confirms the policy is in force, the limits on file meet what's required, and a blanket additional-insured endorsement grants the requested status.
4. Nothing needs a closer look, so the item completes straight through with the certificate ready to issue — no reviewer touch needed.

## Common failure modes

- **No policy evidence available.** The item routes to review stating what's needed to proceed.
- **A limit shortfall or an unevidenced status.** The most common reason a certificate can't issue straight through — the verification names the specific limit or status rather than a generic hold.
- **Low-confidence or missing fields.** Flagged by validation rather than fabricated.
- **A misclassified document.** The reviewer corrects it and resubmits; recurring patterns are best fixed in the classification prompt.

## Recommended rollout path

1. **Connect it to your policy administration system**, if you want live verification rather than package-only evidence.
2. **Add a write-back** to issue certificates automatically.
3. **Build and test** on sample certificate requests with **Run Draft**, inspecting each step. See [Test and debug a draft](../build-ai-agents/test-debug-draft.md).
4. **Validate the verification** against known policies with an experienced policy servicing rep.
5. **Pilot with the review gate on every request** to build trust before enabling straight-through issuance.
6. **Turn on straight-through issuance** once accuracy is proven out.
7. **Promote to production.** See [Drafts and publishing](../build-ai-agents/drafts-publishing.md).

## Where to go next

- [Utility nodes](../build-ai-agents/utility-nodes.md) — Field Validation and Review.
- [InsurGPT nodes](../build-ai-agents/insurgpt-nodes.md) — classification, extraction, and the coverage verification.
- [App integration nodes](../build-ai-agents/app-integration-nodes.md) — connect a lookup or write-back to your own systems.
- [Human review](../monitor-review/human-review.md) — the Insights and Review tabs a reviewer works from.
- [Endorsement Processing](./endorsement-processing.md) — for a broker-initiated policy change, rather than a third-party certificate request.
- [Item status reporting](../monitor-review/item-status-reporting.md) — track requests by status.
- [Use cases overview](./overview.md) — the full catalog of supported patterns.
