M365 Show -  Microsoft 365 Digital Workplace Daily
M365 Show with Mirko Peters - Microsoft 365 Digital Workplace Daily
Exposing Dynamics 365 APIs via Custom Connectors in Power Platform
0:00
-22:35

Exposing Dynamics 365 APIs via Custom Connectors in Power Platform

Ever tried connecting Power Automate to Dynamics 365, only to hit a brick wall with the standard connector? You're in the right place. Today, we're exposing the exact steps to break through those limitations—no more workarounds or hair-pulling. Curious to see how custom connectors can instantly solve your toughest integration headaches?

What Happens When Standard Connectors Hit a Wall?

If you’ve ever built a flow and reached the finish line only to realize the Dynamics 365 connector won’t fetch that one field, you’re not alone. It’s strangely common. You might have all the standard triggers and actions set up, but the moment you need something beyond basic records—a custom table, a calculated column, or more flexible filtering—it just doesn’t show up. Suddenly, your flow is only half as useful as you hoped. And the worst part? It’s not obvious at first glance which pieces are missing. It feels like staring into the fridge at 6 p.m.—plenty of stuff there, but nothing that adds up to an actual meal.

Picture a typical team trying to use Power Automate to manage daily business processes in Dynamics 365. Maybe it’s about moving customer leads from point A to point B or syncing support tickets to an external dashboard. Everything should just connect. But when the process calls for grabbing a value from a custom entity—let’s say “Warranty Claims” or “VIP Account Status”—the standard connector just shrugs. That data simply isn’t exposed. So, someone prints out a report, walks across the hall, and starts copying values by hand. It’s 2024, and we’re suddenly back to the days of double-entry. If you’ve ever listened to coworkers grumble about retyping the same number in two different systems, you know the feeling. There’s just that undercurrent of “why exactly are we doing this?”

The workaround phase starts here. People give up on automation and settle for a parade of Excel downloads, copy-paste sessions, or, if they're more daring, spinning up some half-documented flow that scrapes data from emails or exports. Meanwhile, every new request gets punted back to IT with the same answer: “Sorry, the connector doesn’t support that.” The reality is, manual workarounds aren’t just slow. They’re open invitations for mistakes. Typing errors, missed updates, and mismatched data have a way of stacking up. And those little discrepancies—or big ones, depending on your luck—turn into lost revenue, bad reporting, or frustrated clients down the line.

If you zoom out to watch a full week in one of those organizations, you’ll see some classic symptoms. Someone spends part of every Friday yelling at their screen because a scheduled flow ran but didn’t actually update the critical custom field. Monday rolls around and someone else spots the error, but only after a customer points it out. Management holds another meeting to talk about “digital transformation.” Meanwhile, teams are resending invoices and apologizing for delays that automation was supposed to fix in the first place. Microsoft’s forums and Power Users groups are full of threads where admins plead for help getting data out of custom entities or applying more advanced filters—usually met with a mixture of sympathy and “you’ll probably need a custom connector for that.”

Advanced filtering is another big source of frustration. Let’s say you want to pull only records changed in the last 48 hours, or filter based on a calculated status. The default connector might handle simple queries, but the moment you want to slice data a bit finer, you hit restrictions. This isn’t just a technical nuisance—these missed granular details might mean your sales dashboard isn’t up to date, or your compliance workflow skips over key cases. For some teams, the inability to fetch a small detail from Dynamics means the automation puzzle just never gets finished. There’s always a piece missing.

You can see the pattern repeat in every discussion about Power Platform’s promise versus the actual day-to-day. The marketing says automate everything, connect anything, let your teams focus on what matters. The lived reality for admins and business users is a bit messier. Instead of eliminating busywork, sometimes Power Automate just reshuffles it, moving the manual effort from the field team to a “data specialist” toggling between screens. When a connector doesn’t surface the one field you need or fails to trigger on an event unique to your business, you’re left asking: Is this actually making things better, or just making the same work look more modern?

Plenty of interviews and community Q&As showcase that irritation. Power Platform forums are filled with folks wrestling with the same handful of limitations, swapping tales of feature requests, add-on solutions, and of course, workarounds that involve more steps rather than fewer. It’s not a niche problem. In fact, mentioning “custom connectors” in those spaces is almost like using a secret password that signals you’ve moved beyond the basics and are ready to actually solve the problem—without waiting for Microsoft to add support three releases from now.

If you’ve ever felt that sense of frustration—seeing a world of automation just out of reach, thanks to a missing connector feature—you’re not imagining things. The spot where the standard connector gives up is usually where the business needs things to “just work.” And if you don’t stop to notice those gaps, you can end up automating a workflow that still needs just as much manual cleanup.

So, the very first step is to actually pinpoint which Dynamics 365 endpoints or features aren’t supported—because once you’re clear on exactly what you’re missing, you can finally decide if building your own connector is the answer. For most people, though, the question that follows is: even if you know the connector can’t help, how are you supposed to find that hidden Dynamics 365 API endpoint you actually need?

And this is usually where things start to get a lot more interesting.

Finding the Right Dynamics 365 APIs—Without Losing Your Mind

If you’ve ever tried to pull a single field out of Dynamics 365 using Power Platform, you know the documentation rabbit hole that follows. You realize it’s not about just finding an API—it’s figuring out which of the hundreds of options actually gets you what you want. Dynamics 365 exposes a massive set of APIs, and every time Microsoft changes a feature or renames something, another endpoint surfaces somewhere in the mix. It’s less like opening a neatly labeled toolbox, and more like sorting a drawer where every tool half-matches the label.

So, let’s say you’re staring at your flow, blocked by the standard connector. You’re ready to hunt that missing data field, but now the real detective work begins. The official docs are thick enough to double as a doorstop, and even with a map it’s not always clear which route to take. Sometimes you think you’ve pinned down the right API, only to find that it’s deprecated or missing the action you need. Other times, you stumble onto endpoints marked as “preview” with a quiet warning that they may change any time. Then there’s the maze of naming—one entity is listed as “accounts” in one corner, “customer” in another, and the table name might use an older term from Dynamics CRM days.

If you’ve been at this for a while, you know how quickly an afternoon can disappear just trying to match real business needs with the right endpoints. The kicker is, some endpoints seem designed for legacy clients, some use OData v4, some are tailored to newer Web API conventions, and others only exist for backward compatibility. Let’s not even start on SOAP. Just unlocking the specifics about which endpoint lines up with your custom data model can feel like reading a crossword puzzle where half the clues are swapped out every version.

Here's where things can really go sideways. Say your business has a custom entity—maybe “Warranty Claims,” “Special Pricing Configs,” or some edge-case table from an ISV solution. You search the documentation, but no clear API reference jumps out. Instead, you flip through forum posts and realize others have hit the same wall. One admin spends a night digging through the metadata browser, another runs Fiddler to watch what happens when the Dynamics UI loads that data, and a third just gives up and calls for outside help. Even getting the entity name spelled correctly is an adventure—schemas, logical names, display names, and case sensitivity can all trip you up.

When the endpoint finally surfaces, it might not quite fit what you imagined. Maybe it returns all records, but filtering is awkward. Or it wants a totally different authentication flow. Worse, sometimes you get access to more data than you intended, raising the risk of leaking sensitive records if you aren’t careful with permissions. Suddenly, what should have been a simple data retrieval becomes a game of “what did I just expose, and who can get to it?” Everyone wants that Goldilocks zone: not too much data, not too little, and only what your business role actually needs.

A lot of teams rely on Microsoft’s API Explorer, and it’s actually a strong starting point—when it works. It lets you probe the available endpoints, poke around with live queries, and see how Dynamics interprets your requests. But if you want a deeper dive, tools like Postman or Fiddler give you a window into what’s really happening under the hood. By capturing traffic between your browser and the Dynamics server, you can reverse-engineer the exact requests the UI is making—sometimes exposing unofficial endpoints that don’t show up anywhere in the documentation. Fair warning: that shortcut comes with its own risks, since undocumented APIs can disappear overnight.

There’s a learning curve around permissions, too. Not every API you discover will honor your security model. You might get a 401 error, or worse, find out your test user can see data they shouldn’t because a misconfigured privilege in Dynamics was copied forward into the custom connector. Preview APIs can also be their own brand of headache. They might look stable, but a feature in preview often means the endpoint, property names, or even the way it authenticates can change, breaking flows without warning.

Naming inconsistencies are one of those “I thought it was just me” problems, except everyone has a story about calling a field “PriceTier” only to find the logical name somewhere is “new_pricetierlevelid.” When you look at the entity metadata, Dynamics helpfully lists out properties that look right until you try to filter by them. There’s a certain art to cross-referencing logical names, schema names, and the display labels that show up in the UI—and a lot of trial and error before you know you’ve really landed on the right endpoint.

Once you actually find that target API and can pull a test response in Postman, there’s a real sense of relief. No more guesswork about what’s available or supported—you’ve got proof in hand. The trick is, from here, you’re one step away from surfacing that data in Power Platform, but with every victory comes a new risk. Just because the endpoint exists doesn’t mean it’s ready for primetime in a production flow. You have to ask: does this API require specialized authentication? Could it introduce data governance headaches if reused across teams? That’s the part often overlooked—one wrong configuration and you’ve bypassed all your organization’s security guardrails.

So, the real takeaway isn’t just about tracking down an endpoint—it’s making sure you understand what you’re exposing, who can access it, and whether the permissions line up with your business needs. When you master smart API discovery, suddenly those “impossible” automation scenarios become solvable. No more playing 20 Questions just to get your data. You’re ready for the next step: plugging these hard-earned endpoints into Power Platform—but everything hinges on getting authentication and governance right the first time, or risk opening an entirely new set of problems.

Securing and Governing Your Custom Connectors

So you’ve finally surfaced that elusive Dynamics 365 API and you’re itching to wire it into Power Platform. But before you get lost in a wave of “look what I automated,” there’s a reality check: exposing your API with a custom connector means you’re not just opening doors for your flow—you’re potentially opening them for everyone. If you think about it, a powerful new connector is a lot like a skeleton key. In the right hands, it can save hours; in the wrong hands, it’s a security exam waiting to happen. Most people don’t notice the catch until it’s too late. Suddenly you’ve got flows accessing data they shouldn’t, users running reports on information never approved for their eyes, and a heap of owners trying to figure out who’s responsible when something goes sideways.

It’s not just theoretical, either. There are cautionary tales buried all over Tech Community threads—an enthusiastic admin introduces a handy new connector, only to realize a week later that a misconfigured permission lets interns browse confidential sales deals, or someone copied a flow verbatim across departments and now HR data is mixed into ticketing requests. Sometimes the issue is too-simple authentication. Teams say, “we’ll fix this in phase two,” then get distracted. Suddenly, a single stagnant client secret, shared across half the company, is all that’s separating your private CRM from the curious intern on summer break.

Choosing the right authentication scheme makes a difference, and it’s not one-size-fits-all. OAuth2 gets thrown around a lot for its granular permissions, but setting it up through Azure Active Directory involves extra steps—app registrations, callback URLs, scopes, and user consent screens. If you stick with API key or basic authentication, yes, configuration is easier, but that convenience comes with strings attached. A hardcoded secret in your connector makes life simple until it leaks in a Teams chat or ends up buried in an open repo. Suddenly you’re not just worried about the right people accessing data, but about removing a secret from a dozen flows when someone leaves.

Azure Active Directory (Azure AD) App Registrations are where Microsoft gently nudges everyone now. You register an app, define permissions, and use it to handle authentication securely between your custom connector and Dynamics 365. It’s a bit more work up front, but it gives you leverage later—for both auditing and governance. Microsoft calls this “least privilege,” meaning your connector only gets the absolute minimum access needed to do its job, not a blank check to read every table in the database. Service principals—essentially non-human accounts—fit well for background tasks, scheduled flows, or scenarios where you want automation to keep churning when someone is out sick. User-delegated permissions, on the other hand, are for those situations where you want every action attributed to a real person. That becomes crucial during audits—because five months from now, when someone asks who updated all the credit limits last quarter, you’ll want a log that points to an actual user rather than a generic “system process.”

Not every organization has the size to worry about connector certification or formal governance, but it’s remarkable how quickly things spiral even in small teams. Connector sprawl is real. Without centralized management—assigning an actual owner to each connector, setting permissions, carrying out periodic reviews—you’ll find multiple versions of the same connector floating around, each tweaked for a different scenario. Bigger companies have started bringing custom connectors into their software certification programs—think code reviews, documentation, approval gates—just to slow down proliferation and keep tabs on who has access to sensitive APIs.

Role-based access control (RBAC) within the Power Platform helps cut down risk. You map connectors to security groups, limit who can install or run them, and integrate with existing Azure AD roles. That approach gives you a chance to police not only who can build a connector, but who’s allowed to use it in production. For example, maybe only managers in the finance group can launch a flow that pulls salary data, while everyone else gets an error—even if they have access to the connector itself. And while Power Platform’s built-in monitoring and logging might seem overkill when you start, it becomes indispensable the first time someone asks for a trail of “who changed what, and when.”

Now, here’s the curveball hardly anyone talks about: versioning. Creating a connector is one thing—managing its lifecycle is another. APIs evolve. Fields get renamed, endpoints move, authentication methods upgrade as security standards march forward. Without a plan for versioning your custom connector, you’re left dreading the day when a Dynamics 365 update quietly breaks every flow in the building. Some teams address this by copying the connector, slapping a “v2” on the name, and updating flows piecemeal. Others bake in versioning from the start—using different environments for test and production, documenting changes, and alerting teams before upgrades go live. It might seem like bureaucracy, but it’s the difference between a predictable outage and an afternoon of urgent Teams calls.

The real power of custom connectors only comes out when you blend the flexibility of Dynamics 365 APIs with airtight governance and careful authentication. You get the best of both worlds: flows tailored perfectly to your business, and the confidence that nobody’s sneaking data where they shouldn’t. It’s easier to keep things neat if you tackle these issues up front instead of chasing problems after rollout. But even the most organized teams find that new layers of complexity creep in as usage grows. One solution works with ten users, but how does it hold up when a hundred people are running flows against the same connector, or when Dynamics 365 adds new fields overnight?

From Clunky to Seamless: Real-World Payoffs and Performance Lessons

Picture a typical month before a custom connector lands: sales teams copy orders from a partner portal into Dynamics 365, line by line, juggling browser tabs and pasting in discounts or tracking numbers. Mistakes slip in—an extra zero here, a skipped address there. Reporting always runs a day behind. Nobody’s excited about reconciliation at month-end, and there’s a constant low-level hum of “why can’t this just update itself?” Fast-forward after a custom connector is deployed, and that manual mess is gone. Orders come in through the portal, and within minutes, new sales records show up inside Dynamics. Discounts always flow through as intended. The folks who usually fix spreadsheet errors now have time for something better. You see it in feedback too—staff joke about having “nothing left to double-check,” and the finance lead only needs one espresso as opposed to three.

Of course, the good times only last if you design with more than a handful of orders in mind. When traffic is steady and predictable, things hum along. The moment a marketing campaign works a little too well and order volume jumps, though, performance issues sneak in. Suddenly, that connector’s being hit sixty times a minute instead of six, and rate limits aren’t just a technicality—they’re a full stop. Microsoft’s APIs tend to, very politely, shut the door when you overload them. Instead of seamless automation, you start seeing errors pile up in flow run histories. Transactions hang, retries stack, and the outcome feels suspiciously like the old double-entry days, just with an extra layer of complexity.

Take one organization that synced incoming web orders into Dynamics via a custom connector. Everything ran fine at first. Then their seasonal sale hit, and the Power Platform flows started tripping over 429 “Too Many Requests” errors around noon each day. The lesson? It’s not enough to build the connector; you need planning around throughput. Error handling moves from a nice-to-have to essential overnight. Successful teams set up auto-retries with reasonable back-off times, so if Dynamics pushes back, records aren’t lost—they just wait and try again. Testing shouldn’t just mean a quiet Tuesday afternoon; it means throwing sample loads at your connector to mimic the busiest week of the quarter.

But performance goes beyond pure volume. As Dynamics 365 evolves, APIs shift. Names change, filters update, endpoints get new security expectations. The teams that keep their connectors humming aren’t relying on a set-it-and-forget-it mindset. Versioning matters, and here you see differences between band-aid solutions and future-proofing. Some build out a clear versioning model—every major API change triggers a new connector version. They communicate updates, give teams time to migrate their flows, and archive the old versions after validation. It’s the difference between a crisis call at midnight and a Friday-afternoon notice to review changes next week. It can help to use descriptive names—“SalesOrderSync_v1,” “SalesOrderSync_v2”—and keep an internal changelog for what each version fixes or updates.

Monitoring is another area that’s easy to overlook until something fails. Standard flow analytics inside Power Platform get you as far as basic success/failure rates, but the teams running mission-critical automation set up custom logging and error notifications. This means tracking not just failures, but unusually slow runs, repeated retries, or suspicious spikes in API usage. Advanced teams use Azure Monitor or Application Insights to catch early warning signs, but even a simple Power Automate flow that emails the owner on repeated failures puts you ahead of the game. When things go off-script, you want alerts routed somewhere they’re seen—not buried in a forgotten mailbox.

Then there’s governance, which sounds more bureaucratic than it is. The minute more than one team starts deploying custom connectors, you need structure. Assign an owner—someone technical enough to maintain it, but close enough to the business to understand its role. Define lifecycle policies so connectors don’t hang around unused and unmanaged. A quarterly review can catch connectors that rely on deprecated endpoints, use authentication methods you’d rather retire, or have open access that wasn’t intentional. Without active ownership, connector sprawl grows. That’s how you end up with five nearly identical connectors floating around, each with slight differences, none of them officially supported.

The payoff for doing this right isn’t subtle. Orders sync as soon as they’re placed; teams trust that what they see in Dynamics 365 matches reality. When new features are needed—maybe a new sales promotion with unique discounts—you add capabilities to the existing connector instead of piecing together another workaround. If the API for orders changes next quarter, you’ve got the versioning discipline to adapt without breaking a dozen flows overnight.

Building for performance means respecting rate limits and architecting fail-safes. Governance means giving someone real accountability so connectors aren’t forgotten or misused. Monitoring means problems get addressed before they become fire drills. When you get all this right, custom connectors do exactly what the Power Platform marketing promises—they quietly automate the background work, scale up as business grows, and keep sensitive data where it belongs. Teams stop thinking about “getting the data in,” and start asking what’s possible now that the plumbing works the right way.

Conclusion

If you’ve worked with Power Platform for any length of time, you know how often a “standard” solution is only half the answer. Custom connectors close that gap. Suddenly those missing Dynamics 365 features move from wish list to working reality. You get consistency, control, and, finally, automation that matches how your business really operates. Building your own connector isn’t just for developers with a weekend to spare—it’s for anyone tired of compromises. Give it a try, and watch your automation toolkit expand. If more stories like this are useful, hit subscribe and let me know what integration challenge is driving you up the wall.

Discussion about this episode

User's avatar