Here’s the catch Microsoft doesn’t highlight: Power Automate’s run history is time‑limited by default. Retention depends on your plan and license, and it’s not forever. Once it rolls off, it’s gone—like it never ran. Great for Microsoft’s servers. Terrible for your audit trail. Designing without logging is like deleting your CCTV before the cops arrive. You might think you’re fine until someone actually needs the footage. Today we’ll show you how to log approvals permanently, restart flows from a stage, use dynamic approvers, and build sane escalations and reminders. Subscribe to the newsletter at m365 dot show if you want blunt fixes, not marketing decks. Because here’s the question you need to face—think your workflow trail is permanent? Spoiler: it disappears faster than free donuts in the break room.Why Your Flow History VanishesSo let’s get into why your flow history quietly disappears in the first place. You hit save on a flow, you check the run history tab, and you think, “Perfect. There’s my record. Problem solved.” Except that little log isn’t built to last. It’s more like a Post-it note on the office fridge—looks useful for a while, but it eventually drops into the recycling bin. Here’s the truth: Power Automate isn’t giving you a permanent archive. It’s giving you temporary storage designed with Microsoft’s servers in mind—not your compliance officer. How long your runs stay visible varies by plan and license. If you want the specifics, check your tenant settings or Microsoft’s own documentation. I’ll link the official retention guidance in the notes—verify your setup, because what you see depends entirely on your license. Most IT teams assume “cloud equals forever.” Microsoft assumes “forever equals a storage nightmare.” So they quietly clean house. That’s the built-in expectation: logs expire, data rolls off, and your history evaporates. They’re doing housekeeping. You’re the one left without receipts when auditors come calling. Let’s bring it into real life. Imagine HR asks for proof of a promotion approval from last year. Fourteen months ago, your director clicked Approve, everyone celebrated, and the process moved on. Fast forward, compliance wants records. You open Power Automate, dig into runs... and there’s nothing left. That tidy approval trail you trusted has already been vacuumed away. That’s not Microsoft failing to tell you. It’s right there in the docs—you just don’t see it unless you squint through the licensing fine print. They’re clear they’re not your compliance archive. That’s your job. And if you walk into an audit with holes in your data, the meeting isn’t going to be pleasant. Now picture this: it’s like Netflix wiping your watch history every Monday. One week you know exactly where you paused mid-season. Next week? Gone. The system pretends you never binged a single show. That’s how absurd it looks when an auditor asks for approval records and your run history tab is empty. The kicker is the consequences. Missing records isn’t just a mild inconvenience. Failing to show documentation can trigger compliance reviews and consequences that vary by regulation—and if you’re in a regulated industry, that can get expensive very quickly. And even if regulators aren’t involved, leadership will notice. You were trusted to automate approvals. If you can’t prove past approvals existed, congratulations—you’re now the weak link in the chain. And no, screenshots don’t save you. Screenshots are like photos of your dinner—you can show something happened, but you can’t prove it wasn’t staged. Auditors want structured data: dates, times, names, decisions. All the detail that screenshots can’t provide. And that doesn’t live in the temporary run history. Here’s a quick reality check you can do right now. Pause this video, go into Power Automate, click “My flows,” open run history on one of your flows, and look for the oldest available run. That’s your retention window. If it’s missing approvals you thought were permanent, you’ve already felt the problem firsthand. Want to know the one-click way to confirm exactly what your tenant holds? Stick around—I’ll show you in the checklist. So where does this leave you? Simple: if you don’t build logging into your workflows, you don’t have approval history at all. Pretending defaults are enough is like trusting a teenager when they say they cleaned their room—by Monday the mess will resurface, and nothing important will have survived. The key takeaway: Power Automate run history is a debugging aid, not a record keeper. It’s disposable by design, not permanent or audit-ready. If you want usable records, you have to create your own structured logs outside that temporary buffer. And this isn’t just about saving history. Weak logging means fragile workflows, and fragile workflows collapse the first time you push them beyond the basics. Which leads to the next problem—designing approval flows that don’t fall apart under real-world pressure.Designing Approval Flows That Don’t CollapseThe harsh truth is most approval flows implode because they’re built too thin. A single-stage design feels quick and clever, but it’s fragile. It looks fine on paper until people actually try to run real processes through it. One person signs off? Easy. But the second another department asks for an alternate rule or an extra checkpoint, that quick win starts cracking. You’re stuck patching half-baked fixes on top of hard-coded steps. That’s why admins end up in trouble three months later. You built the demo, showed your manager, looked like a hero. Then Procurement comes knocking with five-stage rules, HR wants a single approver, and Legal demands two plus compliance. Suddenly, your flow is Frankenstein’s monster, stitched together with duct tape and conditions nobody understands. Sure, it runs—but it’s just waiting to crash. The worst habit? Hard-coding emails. That’s the death sentence of reusability. You wire the flow directly to Bob in Finance. Bob leaves. Now every approval for that process either fails or vanishes into a black hole. Critical approvals die in silence—all because one person’s address was baked into the logic. Store role membership, not emails. Use object IDs when possible so changes don’t break flows. Here’s the better play. Instead of hard-coding addresses, fetch approvers dynamically. Use a role lookup—an Azure AD group, a SharePoint list, or Dataverse (if you use it). Each option gives you a central place to swap out owners when people leave. That’s sustainable. For example, you define “Finance Approvers” in AD. If Bob quits, remove him from the group, add his replacement, and the flow never skips a beat. Keep it blunt: if Joe’s email is hard-coded and Joe quits, approvals either fail or disappear into nowhere. Avoid that nonsense. Always map a role to a person record, never tie business logic to a single mailbox. The rigidity problem doesn’t stop with emails. I’ve seen admins chain one approval after another, custom to each department, no dynamic routing, no fallback logic, no state tracking. Looks great in a demo because everyone’s at their desks, clicking on time. But the first vacation, sick day, or missed reminder? Dead in the water. What your flows really need is state awareness. That means a persistent stage field—some durable store that records what step the request is on. Design your workflow to read and write that stage value. Then if the flow chokes, you can restart it at the right stage without guessing or resending the entire process. It’s a reset button baked into the design, and it saves you from firefighting messy re-runs. Now, let’s get practical. Finance might demand dual approvals for purchases. HR may only need one quick signoff. IT might worry people will stall, so they demand escalation logic. If you try cramming all three departments into one hard-coded flow, you either water down their rules or spam the wrong people. Modular, stage-driven flows solve that by flexing to each need without creating chaos. Pro tip: always pilot your multi-stage design with one department first. Don’t roll it out tenant-wide on day one. You’ll catch the edge cases quicker, and you won’t inherit a mountain of technical debt before you know the weak spots. The bottom line is simple. Fragile approval flows collapse because they assume nothing changes—same staff, same process, same perfect conditions. But in reality, people leave, rules shift, and exceptions pop up constantly. Make your flows modular, stage-aware, and role-driven. Store roles instead of emails. Track state so you can recover gracefully. Every shortcut you skip now turns into rework later. But even with clean design, there’s another killer. Approvals stall when people sit on them, and admins try to fix it with wave after wave of reminder emails. That’s how you create a whole new problem waiting to explode.Escalations and Reminders Without the Spam StormNothing says “bad flow design” louder than a pile of 45 unread reminder emails at the top of someone’s inbox on Monday morning. If your automation looks less like a workflow and more like a spam cannon, you didn’t build a process—you built workplace harassment with a subject line. And let’s be clear: reminders aren’t the enemy. Escalations aren’t the problem. The issue is when “nudging” gets confused with “relentless inbox hammering.” What you actually want is persistence, not digital water torture. Reminders exist because people get distracted, go on leave, or assume someone else will handle a task. Escalations exist because no one wants approvals left in limbo until three weeks later when someone finally complains. So yes, you need them. But you need them smart. Nobody is thrilled to join a call just to say, “Hey, thanks for the 19th reminder today—I finally clicked approve.” That’s how you push users from mild annoyance into open revolt. Here’s the trap most admins fall into: they believe more reminders equal faster res
Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support.
If this clashes with how you’ve seen it play out, I’m always curious. I use LinkedIn for the back-and-forth.