M365 Show -  Microsoft 365 Digital Workplace Daily
M365 Show with Mirko Peters - Microsoft 365 Digital Workplace Daily
Automating Month-End Close with Power Automate + Dynamics 365 Finance
0:00
-21:59

Automating Month-End Close with Power Automate + Dynamics 365 Finance

Ever feel like your month-end close is stuck in quicksand, trapping your finance team in endless journal validations and email ping-pong? What if you could automate approvals, streamline postings, and get real-time notifications—all in one seamless workflow using tools you already have?

Today, I’ll show you, step by step, how to connect Power Automate, Dynamics 365 Finance, and Teams for a month-end close that’s smarter, faster, and nearly hands-off.

Why Manual Month-End Close Holds Teams Back

If you’ve ever spent the last week of the month glued to spreadsheets and Outlook, you’re not alone. A typical close in a mid-sized finance team still looks like this: someone starts a workbook, maybe color-codes cells for each account owner, and then—almost instantly—teams start chasing missing lines, misplaced journal numbers, and yet another copy of the policy checklist. Updates trickle in through email chains. There’s at least one person pasting journal entries from a subsidiary file, hoping nothing gets overwritten. Approvals start as a set of requests but quickly turn into a ping-pong match, bouncing from folder to folder. Even with cloud solutions, almost everyone falls back to spreadsheets because it feels safer, or at least, more familiar than chasing workflows across three different apps.

Pressures build from the first day and keep mounting up to deadline. The controller is tracking a growing tally of incomplete sign-offs late into the evening. No matter how many times you’ve standardized your templates or tried to centralize the signoff process, old habits never seem to die. That final Friday, you still see reminder emails with phrases like “Just checking if you saw this...” or “Quick nudge for your approval.” The process drags as the team waits for all the pieces to fall into place.

Let’s look at what actually happens when steps still hang on manual work. Even if you’ve invested in Microsoft 365, like a lot of organizations have, much of the muscle memory is built around workarounds. Finance teams open Dynamics 365 Finance for reporting, but the heavy lifting—cross-checking, documenting, deciding who approves what—all plays out in Outlook and Excel. That brings us right back to classic bottlenecks: the spreadsheet isn’t locked down, so someone might change a figure without a digital trace. Deadlines create a sense of urgency, but when the process is manual, urgency just raises stress and doesn’t solve the real issues.

Ask any controller about their worst-close story and you’ll probably get some version of this: one month, you’re close to wrapping things up, but you’re missing one crucial approval. You send three reminders, copy the manager, escalate to a director—only to learn that the original approver put on an out-of-office reply two days earlier and is relaxing on a beach somewhere. The domino effect stops the entire close process. No one else in the approval chain can move forward, and the close date slips. Nobody enjoys explaining that sort of delay to leadership or auditors.

This isn’t just an anecdote. Industry data puts the typical month-end close at anywhere from six to ten days for mid-market companies, and as long as two weeks for more complex organizations. The longer the close takes, the higher the risk of spotting errors too late to correct them. Late entries or forgotten journals sometimes surface during audits, not during the close. Studies show that nearly 70% of finance teams have had at least one material error crop up during audit season thanks to missed or rushed approvals during month-end. Each manual handoff is a chance for human error, and those mistakes can turn into write-ups in the audit trail—at best—or heavy risk exposure, at worst.

What’s interesting is that most organizations have access to Microsoft 365 and Dynamics 365, and plenty are tinkering with Power Automate, even if it’s just for simple notifications. Yet when it comes to automating finance processes, especially month-end, old patterns persist. The tools are everywhere, but only a minority are truly connecting them to handle real workflow. That’s partly because teams assume finance automation means a huge technology lift. Sometimes it’s just a lack of guidance. Many teams worry about breaking something, losing control, or missing compliance—a real concern if you’re talking about financial data.

So what goes wrong? First, manual handoffs mean no real-time tracking. If you’ve got ten journal batches waiting for approval, you’re relying on email threads and spot-checks to see where things are stuck. Second, visibility is almost always after the fact. By the time you realize who missed an approval, you’re running out the clock. Third, error detection is patchwork. One person might catch a duplicate journal, but if they’re busy or unavailable, the error gets through. There’s also the very real possibility of approvals being completely missed because they landed in an overflowing inbox.

Given all that, the obvious question is: if every team has access to these tools, what’s stopping broader adoption of automation? Is it the actual complexity? Sometimes, sure, but often it’s just a culture of caution. It feels safer to stick with the known pain than to risk an automation misfire—especially if you’re the one on the hook for compliance. There’s also the challenge of not knowing where to start. Automation sounds expensive, or maybe it only feels relevant to massive companies with an army of IT support.

But here’s what teams miss: automation for month-end close isn’t about futuristic AI systems. We’re talking about making approvals flow where your team already works. It can be done without rewriting core processes or needing six months of consulting. You can actually cut cycle times by automating the most stubborn approval and validation steps, and audit trails become automatic, not a chore to catch up on later.

So if you’ve ever wondered if all this could be easier, the answer is yes—it’s available, it’s practical, and you probably already own the licenses. The challenge is knowing how to bring Dynamics 365 Finance, Power Automate, and Teams together so your workflow finally matches how your team actually wants to work. And that’s exactly where we’re heading next—how can you actually build this workflow, step by step, to make automation the default and not just another tech project you never quite finish?

Connecting Power Automate to D365 Finance: The Unlocked Shortcut

Integrating Power Automate with Dynamics 365 Finance might sound like the sort of project that takes half your admin’s weekend and a six-page permissions matrix, but the reality is a lot less intimidating. You don’t need a secret map to hidden configuration settings, though you do need a clear idea of what D365 expects at each step. The good news is, if you know what to set up ahead of time, connecting these systems doesn’t have to stall your project before it even starts.

Let’s talk through what you have to get right up front—the nuts and bolts that trip up most teams. First, there’s the basics inside Dynamics 365 Finance. You’ll need a user account with rights to the Finance and Operations APIs. “User” here isn’t an excuse to grant every privilege under the sun. The safer way is to either use a service account given only API access, or better yet, an actual user with only the journals and legal entities in scope. If you try firing up the connector with your own admin login, you’ll have more access than needed and potentially more risk. Next, check your Power Automate licensing. If you’re running on E3 or E5, you may have basic flows, but for heavier automation—like pulling journal line details, triggering from status changes, or posting entries—you’ll want at least a per-user or per-flow license with premium connectors enabled.

Licensing is usually the “surprise” step, and it’s where pilots buckle if no one planned for premium tier access. You also need to enable the D365 Finance and Operations connector within Power Automate—not just the generic Dynamics connector. This specific connector unlocks direct triggers and actions for journal entries, approvals, and status updates. That’s where most teams get stuck. It’s tempting to just grab the simpler Common Data Service connector because it looks familiar or faster, but it’s missing all the journal-specific triggers that keep flows efficient. So, before you even start, double-check you’re using the D365 Finance and Operations connector and that all permissions map back to your minimum-rights principle.

Once you’re authenticated, you can start to pull data straight from the source. Typical triggers you’ll see include events like “When a journal is created,” “When a journal is posted,” or “When status changes to pending approval.” Here’s where you need to make a decision—what really matters for your workflow? In a clean process, you might kick off the flow as soon as a journal record is created, but in reality, it makes more sense to trigger when a journal hits “ready for approval.” That way, you don’t flood your workflow with incomplete entries or draft lines that never get submitted. Filtering by type, such as only “General” journals or only ones over a certain dollar threshold, happens right here on the trigger. This isn’t about being fancy—it’s about reducing noise downstream so only relevant journals move through your automation.

Now, while it’s tempting to go broad with access and just “make it work,” that decision can haunt you. There’s no shortage of stories where a team, desperate to get things rolling, gave service accounts wide-ranging Finance access, and only later realized they’d opened a backdoor to sensitive payroll data. Least-privilege access isn’t just something auditors like—it’ll keep accidental exposure down and prove security diligence when the inevitable questions come. If you’re not sure how to scope it, start with a single legal entity and strip away anything not needed for the approval chain. Review connector permissions, double-check who can actually post journals, and segment responsibilities. That way, even if a flow misfires, it can’t bulldoze your GL.

Authentication for the connector typically uses Azure Active Directory OAuth, so once your app registration is done on the D365 side, Power Automate picks up the handshake. You authorize the connection—usually as a global admin or with the app registration—then test pulling a set of journals to check success. If it works, you’ll see journal metadata come through in seconds: journal number, date, status, amount, type. For the demo, we’ll actually pull live journal entries, filtering to “pending approval,” and pipe those straight into Power Automate’s flow builder. It looks intimidating if you’re more used to Excel than Azure, but after the initial handshake, you’re just dragging in fields and plugging them into approvals.

Security really deserves another moment here. In practice, it’s easy to just give the connector full access in the rush to meet deadline, but that shortcut opens things up for mistakes that might not get caught until year-end audit or, worse, a breach. Stick with detailed role assignments and double-check who’s allowed to run flows with those credentials.

If you build things out this way, you’re setting yourself up for much less manual meddling and many fewer “Why didn’t this get approved?” emails. Trigger selection—choosing the right event and filtering by journal type or value—keeps your flow crisp. You avoid approval spam, limit security exposure, and align the workflow exactly with your close process.

So, once you’ve got journal data securely flowing into Power Automate, and only the right records, you’re primed to tackle the next level: building in all those business rules that drive finance approvals. Conditional logic, multi-stage sign-offs, and those custom “If amount over $50K, loop in leadership” requirements finally come into play. Now that journals are flowing in, the question shifts: how do you design workflows that match all those real-world policies without adding back the same email headaches?

Designing Conditional Approvals and Teams-Driven Collaboration

Let’s get right to the question that almost every finance team has run into: does every journal entry need to land on the CFO’s desk, or should some journals just go through the department head? This is where automation actually earns its stripes. You aren’t just automating emails or building a checklist. With Power Automate, you control how approvals flow and who sees what, using the sort of rules that teams already follow—just without relying on memory or shared spreadsheets.

You start by building approval workflows that aren’t one-size-fits-all. The pattern is straightforward. We set up conditions in the flow builder so the process adapts to your business logic. Imagine this: journals over $50,000 go straight to finance leadership, anything under $10,000 hits department managers, and those in between follow the usual review group. It could be based on amount, journal type (such as accruals, reclass entries, or intercompany), or even business unit. And you can take it further—maybe VAT journals loop in the tax lead, while payroll entries route to HR. What’s refreshing is how specific you can get. The condition controls in Power Automate aren’t buried in menus; they’re drag-and-drop, readable, and traceable. You see exactly where each decision routes the approval—not a black box.

Most teams run into trouble when they take a one-size-fits-all approach. It nearly always fails in two directions: too many notifications, or not enough. If everyone gets pinged on every journal, key people start tuning out. On the opposite side, making the chain too restrictive can leave a gap if a major entry sneaks through without escalation. Custom conditions prevent that mess by targeting only the right approvers per scenario. Setting up these logic flows in Power Automate means that, when a new journal is flagged as “pending approval,” it instantly branches down the appropriate route based on values you define during setup. For instance, if an entry amount field reads $87,000, the flow recognizes this, skips the line-of-business manager, and moves straight to the CFO—or whoever your policy dictates.

Now, this all sounds neat in the flow builder, but in practice, notification overload is a real productivity killer. That’s where Teams comes in. The reality is, email isn’t always the best channel. Journal approvals can get buried under newsletters or, worse, lost to spam filters. Teams integration changes the game for engagement. Instead of email, approvers receive actionable cards within Teams. These aren’t just notifications—they’re interactive. The card pops up in the recipient’s feed, showing a summary of the journal (date, amount, type, and maybe even supporting notes), with clear buttons for Approve, Reject, or Add Comments.

There’s actual research behind why this works better. Microsoft found that Teams actionable cards drive quicker response rates than email-based approvals, simply because they show up where people are already collaborating. Approvers see the request in context, during the flow of work, and can act on it without breaking stride. No more “Let me find that email from last Tuesday.” Instead, a department head approves a journal with one click and moves on. Lost requests become a thing of the past.

Real teams are already seeing results from this. I spoke with a mid-sized services firm that switched from Excel-based sign-offs to fully Teams-driven journal approvals. They saw approval durations drop from two days, on average, down to four hours—sometimes less—during peak close. No more group texting “Did you see my approval request?” Everything happened where the conversation was already live.

Setting up these Teams adaptive cards in Power Automate doesn’t take developer skills. The flow builder provides templates. Pick the Adaptive Card action, design your card with journal data fields, then add the approve/reject buttons. You can also collect comments, so those quick “Looks good, but please flag for next quarter” notes are saved directly to the context of the journal itself. Nothing is lost in a reply chain or forgotten on a phone call.

There’s also the all-important audit trail. Every single action—who approved, when, the decision, and any comments—is logged back to Dynamics 365 or whatever data repository you set in the flow (some teams use Dataverse or SharePoint for this). You can view the history for each entry at audit time without chasing files. If someone questions when an approval really happened or wonders what changed in the process, it’s all there at your fingertips.

The result is a workflow that finally matches the way finance wants to work—segmented, efficient, and impossible to lose track of. The manual scramble slows down. Approvals go to exactly the right person, get tracked instantly, and appear right inside Teams where action happens. There’s just more transparency and less back-and-forth. Instead of asking, “Where is this stuck?” you’re only asking, “Who’s next in line?”

All this cuts chaos, but let’s be honest—no system is flawless. Someone’s on leave, or a step breaks, and you’re staring at a stalled close. So how do you keep the gears turning even when automation itself runs into issues?

Building Resilient Automation: Error Handling, Logging, and Escalation

Automation’s great until you hit that one point where things don’t move—a journal sits in limbo, and nobody notices until deadlines get tight or, worse, auditors start asking for a record you never approved. Trust is tough to earn back once a workflow has missed a critical step. So let’s be real about it: even the smartest workflow can get tripped up by simple things like someone being out of office or a Teams card not landing where you expected. If your close depends on approvals moving in sequence, every bottleneck compounds risk instead of removing it.

The first place teams run into trouble is with silent failures. People expect notifications to just work, but maybe an approver’s Teams app is offline or has notifications snoozed. Or, worse, an API call to D365 fails mid-flow. You don’t just lose a signature—you lose the visibility into where that journal’s stuck. Unhandled errors are like black holes in finance processes. They absorb time and leave a trail of frustrated emails, with everyone asking, “Did this go through?” or “Who’s got the approval?” Sometimes the problem comes down to incomplete journal data—maybe a required dimension’s missing or an attachment got dropped somewhere along the way. If the automation can’t post or validate due to data quality issues, you might not find out until three or four steps downstream.

Time matters here. A gap in approvals that goes unnoticed can snowball. The whole close could wait on a single decision, or a policy could be violated because a fallback action didn’t trigger. A “silent fail” isn’t just an annoyance—it’s an audit finding waiting to happen. That’s why most seasoned teams don’t just build automation—they bake in guardrails for errors, dead ends, and communication drops.

Power Automate actually gives you a decent toolkit for handling these edge cases. For example, say you have a flow that triggers on journal status change. You can set retry policies for each action—if an API call times out, the flow can retry multiple times before logging a failure. You also get timeout settings. Maybe an approval is supposed to finish in twenty-four hours. Instead of sitting forever, Power Automate can automatically send a nudge—then, if there’s still no action after the deadline, it jumps to a backup plan. For high-stakes approvals, you set up fallback logic: if no decision comes in, escalate the task up the management chain or even send a notification to a shared monitoring channel. It isn’t code magic. It’s just setting the right conditions and responses for every “what if.” Think of it as insurance for your workflow.

Escalation paths are especially valuable when people are out of office. You can build a rule that checks for response every hour or two, and if an approver doesn’t act within your window, the request automatically reassigns to a secondary approver or direct manager. The handoff is tracked, so you’re never left with “I didn’t see it in my inbox” as an excuse. If you want things even tighter, throw in push alerts via Teams or even a text message integration for critical paths. Or, for less urgent tasks, have the system simply loop the action back into the queue for the next available day.

Logging is the piece nobody gets excited about until something breaks. Every flow in Power Automate can be set up to write a record of approvals, comments, exceptions, and fallback paths to a SharePoint list, Azure SQL table, or Dataverse. That becomes your master log—not just for compliance, but for process improvement. If something fails, you catch it within the day instead of weeks later at audit time. Every update—when it happened, by whom, what was decided—is locked in the log. That history isn’t extra work to gather at month’s end; it’s already there, searchable, and pivot-ready for internal control checks.

There’s a reason auditors perk up when they see robust process logs. It’s not just about showing decisions were made—it’s about catching patterns. Maybe you notice the same approval bottlenecks crop up close after close. That pattern only emerges if you’ve tracked exceptions and handoffs step by step. Plenty of teams see an approval hanging for two or three closes in a row. One finance director shared that their workflow caught a recurring delay tied to a specific department manager, who had been delegating reviews without letting their team know. The fix was a simple policy update and a tweak to the escalation rule, but without logs highlighting the delay, it would have stayed under the radar.

Continuous process improvement hinges on this level of transparency. When errors and exceptions get surfaced automatically, you’re no longer relying on memory or gut feel to spot inefficiencies. Automated alerts, regular exception logs, and visible escalation actions remove surprises from the close cycle. Instead of dreading the month-end scramble, teams find themselves asking what else they can automate—or which process step they can reinforce further.

The best part? Once error handling and logging are in place, your team stops losing sleep over who missed what. Approvals flow even if someone’s away, critical issues get picked up by the right backup, and the audit trail practically writes itself. Automation is only as strong as its weakest handoff—so building in resilience makes the whole process both faster and more trustworthy.

But that’s just one piece of the puzzle. Once you’ve got resilient workflows and bulletproof logs, it changes how finance teams think about their own roles—unlocking new time and headspace not just for efficiency, but for actual strategic work that used to get lost in the grind.

Conclusion

If you’ve ever wondered why your finance team spends more time chasing approvals than analyzing numbers, automation is the lever you’ve been missing. By connecting Power Automate with Dynamics 365 Finance and using Teams for quick, visible approvals, you finally get a close process that’s predictable—not panic-driven. The real payoff isn’t just speed; it’s peace of mind and a clear audit trail without manual follow-up. If your goal is more time for actual analysis instead of inbox triage, now’s the time to standardize your workflow with automation. For practical step-by-step guides, make sure you’re subscribed right here.

Discussion about this episode

User's avatar