A Power Automate project · Insurance claims processing · Built on Microsoft 365

Power Automate Excel Online (Business) Office 365 Outlook OneDrive


🎯 The business problem

A claims team tracks cases in a spreadsheet while the core system catches up. When a claim's status changes, the claimant isn't told automatically — someone emails each person by hand. It's slow, the wording is inconsistent, and people get missed or emailed twice. I built seven flows that read the claims table, send the right message for each status, attach documents where needed, and write back so no claimant is contacted twice.

Metric Value
Flows built 7
Claim statuses handled 6
Connectors used 3
Sample claims 24 (scales to 500)

Table of Contents

The claims lifecycle

Every claim sits in one of six states. The whole project hangs on this: each state deserves a different message. An approved claimant wants payout details; a rejected one needs appeal rights; someone with missing paperwork needs a nudge — not the same template.

SubmittedUnder ReviewPending DocumentsApproved / RejectedPaid

Gemini_Generated_Image_jng5w8jng5w8jng5 (1).png


The seven flows

Grouped into four problems. Each pair shows two ways to reach the same result — and why I'd choose one over the other in production. That trade-off is the real point.

🟦 Flows 2A & 2B — Notify approved claimants

Problem. Only claimants whose claim is Approved should receive the payout email — nobody else.

Approach. Two ways. 2A loops every claim and uses a Condition to decide per row. 2B filters at the source with an OData filter query (ClaimStatus eq 'Approved') so only approved claims are ever loaded.

Why it matters. Both send the same emails, but 2A processes all 24 rows to email 6; 2B pulls back only the 6 it needs. On a real book of thousands of claims, 2B scales and 2A doesn't — filtering at the source is the production-ready choice.

Scenario2A_Approved_Condition_tree.jpg

Scenario2B_Approved_OData_Filter_tree.jpg