Service Cloud for agencies · certificates of insurance
Certificate requests stop drowning the inbox
once they are a case type of their own.
Make certificate of insurance requests a separate case type: every email to a service address becomes a case, and words kept as custom metadata records mark it as a certificate before anybody reads it. The requests then sit in their own list, are answered from saved replies and are timed like any other work. This is how it was built for a trucking insurance agency in the US, and what I would build differently now.
Reviewed 1 November 2026.
Why bother
Why should certificate requests be their own case type?
Because they are the most repetitive request an agency gets and the easiest to lose. Mixed with claims and policy changes, a certificate request waits behind them in the same inbox. As a type of its own it gets its own list, its own saved replies and its own count, so the manager sees the queue instead of guessing.
It also changes what the owner can ask. “How many certificates did we issue this week, and how long did they wait?” has an answer the same afternoon. The desk this comes from carried its agency from one Salesforce user to 35 in twelve months; how that desk was built is in the case study, and this article goes one level deeper, into the certificate rules alone.
Recognition
How does Salesforce recognise a certificate request in an email?
By words, not by a person. A custom metadata record for each service mailbox lists the words that mean certificate, additional insured or loss payee. When an email arrives, Apex reads the subject and body and ticks a checkbox for each match, and a flow turns the ticks into one request type such as CI/AI.
Custom metadata is the right home because, as Salesforce’s Trailhead unit on custom metadata types puts it, the records are metadata, not data, and Apex, flows, formulas and validation rules can read them directly. The administrator edits them in Setup; nothing waits for a release. These are the starting words; the agency’s own come from its last few weeks of mail.
| Certificate of insurancecertificate, COI, cert of insurance, certificate holder | CI |
| Additional insuredadditional insured, AI | AI |
| Loss payeeloss payee, lienholder | LP |
- 01
One settings record per service mailbox
A custom metadata type,
EmailToCaseSettings__mdt, holds each address clients write to: info@, service@, certificates@. Under it,EmailToCaseField__mdtrows name a checkbox on the case and the words that tick it, comma separated. The code reads To, Cc and Bcc, so a certificate request that only copies the service address is still recognised. - 02
Three ticks, one request type
Three checkboxes on the case: certificate of insurance, additional insured, loss payee. One email often asks for two of them at once, which a single picklist set from the email cannot say. A record triggered flow turns the ticks into one value: CI, CI/AI, CI/LP, CI/AI/LP, AI, AI/LP, LP, or Other when nothing matched. Any tick also sets the case Type to COI.
- 03
Compare the words the way people write them
The version that went live compared the text exactly as typed and as a fragment. That had two costs. The keyword AI also matched inside capital letters such as EMAIL or DETAILS in a shouted subject line, and a client who wrote coi in lower case was missed. The rule now: whole words, case ignored, subject and plain text body only. I now write that into the scope.
- 04
A follow up on a closed certificate is typed again
When a client answers a closed certificate case, a new case opens and is linked to the old one. The copied email passes through the same trigger, so the same rules type the new case. Test it on purpose: a follow up that arrives as Other drops out of the certificate list and nobody sees it until the client calls.
Routing and the answer
Where should certificate cases go, and who answers them?
Into the first line queue, not to a named person. The request type sorts the work rather than moving it: a list of new certificate cases, oldest first, is the certificate desk. One representative takes a case, owns it until it closes, and answers from a saved reply, so a client never gets two certificates or none.
The mail has to arrive as cases first: each service mailbox forwards to a Salesforce routing address, as Trailhead’s Email to Case set up shows. Duplicate cases and reply loops would inflate every number below, and their five causes are in the Email to Case duplicates article.
- 01
It stays in the first line queue
A certificate is usually answered by the service representative who takes it, so the type does not send it to another team. It sorts the work: a list view of new COI cases, oldest first, is the certificate desk. Claims, cancellations and policy changes move to their own queues by type.
- 02
One person takes it, then replies
Nobody answers a case they have not taken, so two people never issue the same certificate. How taking a case works, and why it beats assigning, is in the agency case study.
- 03
Holders the agency issues to again and again
If the same general contractors and shippers ask every month, keep them as a holder list on the client: name, address, email. The agent picks the holder instead of retyping it. Whether this is worth an object of its own is decided from the agency’s own mail, not in advance.
- 04
Saved replies for the four answers that repeat
Lightning email templates in one folder: certificate sent, certificate needs information, request received, request passed to the carrier. The certificate itself is still issued where the policy lives; the case records who sent which reply, and when.
What to count
Four numbers worth a weekly look.
Start with this query in the Developer Console once certificate cases exist. It shows the mix of the last 30 days by request type; field names are the ones used in this build.
- 01
Certificate cases per week, and their share of all cases
This is the number that tells the owner whether certificates need a person of their own. Compare it with the count from the last 100 emails before the build.
- 02
The mix: CI alone against CI with AI or LP
A plain certificate is a reply. One that names an additional insured or a loss payee sends the agent back to the policy, so it takes longer and belongs in a separate line of the report.
- 03
Time from arrival to taken, and from arrival to closed
Counted in working hours, as a median and a 90th percentile per week. The agency I built this for first asked for a separate clock just for certificates and then dropped it: the same four clocks every case has, filtered by request type, answer the question.
- 04
Cases typed Other that were really certificates
Open them once a week. Each one is a word missing from the rules: a broker who writes “evidence of coverage”, a carrier template, a new phrase. The administrator adds the word as a record and the next email is typed correctly, with no deployment.
Asked often enough to answer here
Questions
- Q
Does Salesforce create the certificate itself?
Not in this build. The certificate is issued where the policy lives, in the agency management system. Salesforce runs the request around it: who took it, which holder, which reply went out, and how long it took. Producing certificates inside Salesforce is a separate project and needs the policy data there first.
- Q
Do we need a developer to add a new phrase?
No. The administrator opens Setup, Custom Metadata Types, Manage Records, and adds a word to the right row. The next email that uses it is typed correctly. A developer is needed only to change how matching works, for example to read attachments.
- Q
What if a client writes to the wrong address?
The rules are kept per mailbox, so give every service address its own settings record with the same certificate words. Then a request typed correctly does not depend on which address the client remembered, and a dedicated certificates address is a convenience, not a requirement.
Certificates are recognised in mail that already arrives as cases, so the first stage is email to cases, 80 to 110 hours, €5,200 to €7,150. Certificates and quick requests follow as their own stage, 40 to 50 hours, €2,600 to €3,250, on the insurance agency page.
Serhii Skrypnyk · Senior Salesforce Administrator · 7 Salesforce certifications · on the platform since 2018. Reviewed 1 November 2026.
Read next
The question that usually comes after this one.
- 01
Applied Epic and Salesforce: Who Holds What
An agency on Applied Epic adding Salesforce: what stays in Epic, what moves to the service desk, and how clients and policies cross over without an integration.
- 02
Email to Case Duplicate Cases and Loops
Why Salesforce Email to Case is creating duplicate cases or an auto response loop: five causes, two queries that tell them apart, and the closed case decision.
- 03
Salesforce SLA Clocks in Business Hours
Why a Salesforce SLA clock counts nights and weekends, where business hours have to be set, and how to count only working time, holidays and waiting included.