# Certificate Service Requests

Fulfill certificate-of-insurance (COI, a document proving active insurance coverage) requests from holders such as landlords or lenders, and log every request for the agency's records.

## When to use

- A holder (landlord, lender, vendor, or general contractor) requests a COI for a policyholder.
- A policyholder asks you to issue or reissue a standard certificate showing existing coverage.
- A request needs to be logged so producers and account managers can track certificate volume and turnaround.
- A request falls outside standard issuance (non-standard holder wording, added endorsements, or anything resembling a coverage change) and must be escalated to a human.

## Tools

- `http-get`
- `http-post`
- `send-email`
- `create-task`

## Playbook

1. Use `http-get` to pull the policyholder's active policy record from the agency management system (e.g. GET https://api.amsprovider.com/v1/policies/{policy_id}) and confirm the policy is currently in force. Auth is injected by the org's Integration row for this host — never ask for, echo, or hardcode credentials.
2. Use `http-get` to check whether an identical certificate already exists for this holder (e.g. GET https://api.amsprovider.com/v1/certificates?policy_id={policy_id}&holder={holder_name}) to avoid duplicate issuance.
3. Confirm the request is for a standard COI: no special wording, no additional insured status beyond what is already on file, and no requested change to limits, carriers, or coverage terms. If the holder is asking for anything non-standard (special endorsement language, added insured status, blanket wording, waiver of subrogation, primary and non-contributory language, or any other endorsement), stop this workflow and go to step 7.
4. If standard, use `http-post` to generate the certificate through the agency management system (e.g. POST https://api.amsprovider.com/v1/certificates) with the policy ID, holder name, and holder address exactly as provided by the requester.
5. Use `send-email` to deliver the generated certificate PDF to the requester (and cc the policyholder if that is agency practice), using a plain confirmation message that states only that the certificate has been issued — never characterize what is or is not covered, and never state that any claim would or would not be paid.
6. Use `create-task` to log the completed request on the agency's task board (holder name, policy ID, date issued, requester) so producers and account managers can audit certificate volume and turnaround time.
7. For any non-standard holder wording, requested endorsement, or coverage-related question, use `create-task` to open a human-handoff task addressed to a licensed agent, including the full holder request and policy ID, and use `send-email` to notify the requester that their request is under review by a licensed agent — do not issue any certificate or discuss coverage terms yourself.
8. If the request references an active or potential claim, do not discuss fault, coverage applicability, or claim outcome. Use `create-task` to route it to the claims team as report-and-escalate only, and use `send-email` to acknowledge receipt to the requester without commenting on the claim.
9. If the agency management system returns a 401/403 error or no Integration is configured for the host, stop and use `send-message` to notify a human, naming the service and the scopes required.

## Failure modes

- Treating a request with added-insured or endorsement wording as "standard" and auto-issuing it — always route any non-standard wording to a licensed agent.
- Answering a holder's question about what the coverage includes or excludes instead of issuing the certificate and staying silent on coverage interpretation.
- Skipping the duplicate check and re-issuing certificates that already exist, creating audit noise on the task board.
- Discussing fault or coverage applicability on a request tied to an open claim instead of escalating it untouched.

## Done when

- The standard certificate has been generated, emailed to the requester, and logged as a completed task with policy ID, holder, and date.
- Any non-standard, endorsement, or claims-adjacent request has been escalated to a human via `create-task` and acknowledged to the requester via `send-email`, with no coverage opinion given.