It is a common requirement for SaaS platform that exposes form over data to be able to share a secure link (a.k.a. Deep Link) to access a given record. That way, links can be shared publicly—via email or Teams message for example—but clicking them still requires the user to authenticate and have the right permissions to access the record.
For instance, Power Platform model-driven apps have this functionality built in. You can simply copy and share the URL exposed in the browser while looking at a specific record. If the recipient has the right credentials, they can click the link and go straight to the record. This predictable URL format also makes it super handy to build automations.

Unfortunately, it’s a bit more complex with D365 Finance and Operations since the URL shown in the browser while viewing a record doesn’t contain any specific record information and will not open the record if shared to another user.

In this post, I’ll explain how to use Dataverse virtual tables to create secure deep links to D365 F&O records.
I’ll guide you through an example using Power Automate to demonstrate how it works in practice. Plus, I will show you how to easily create deep links using the Finance and Operations Virtual Entity Manager for XrmToolBox.
Deep links in D365 Finance (F&O)
According to the official documentation there are 2 ways to create deep links in D365 Finance (F&O), the URL Generator and System Entity Navigation.
🔗Create shareable, secured URLs (deep links) - Finance & Operations | Dynamics 365 | Microsoft Learn
The URL Generator is a .NET library you can use from X++ code to create links in D365 F&O. But it only works within the F&O platform—like in user sessions or batch jobs. Since I’m not an X++ developer, we’ll skip this technique for this blog post.
Instead we will focus on the more versatile System Entity Navigation approach that leverages Dataverse Virtual Tables. This method lets you build deep link URLs dynamically—outside of the F&O runtime and without writing any X++ code.
Prerequisite
This System Entity Navigation feature was introduced in v10.41 of F&O. If you’re running an older version and try to access a link that relies on this feature, you’ll get the following error.

If its not already the case, you will also need to enable Dataverse virtual tables in your environment. (see docs below)
🔗Enable Microsoft Dataverse virtual entities - Finance & Operations | Dynamics 365 | Microsoft Learn
Once virtual tables are configured, you’ll need to enable any tables that you want to expose as a deep link on the Dataverse side. For our example, I’ll enable the VendVendorV2Entity, that corresponds to vendor accounts.
To enable a table, you could take the hard route and use Power Platform’s old-school Advanced Find method (see documentation)—or, you could make your life easier and use my FinOps Virtual Entity Manager tool for XrmToolBox, which offers a much smoother experience and many other nifty features (shameless plug ☺️).

This will expose a table called mserp_vendvendorv2entity
in the linked Dataverse environment.
System Entity Navigation URL Schema
Now that everything’s set up, you can start building deep links to F&O records—like vendor accounts. Just use the following URL schema:
https://[FinOpsUrl]/?cmp=[Dataarea]&mi=action:SysEntityNavigation&entityName=[EntityCollectionName]&entityGuid=[Guid]
- FinOpsUrl : This is the root URL of the F&O environment. ex. https://myfinopsenv.operations.dynamics.com
💡There is function part of the Dataverse Web Api called RetrieveFinanceAndOperationsIntegrationDetails.
You can use this function to dynamically get RootUrl of the linked F&O environment of a given Dataverse environment.
- Dataarea : This is the company name (legal entity) associated with the record. Note that this parameter is optional, and we won’t be using it in the examples below.
- EntityCollectionName : The plural of the schema name of the Dataverse virtual table
For the vendor account table, the plural name is mserp_vendvendorv2entities
You can find the plural name of a given table ‘buried’ in the maker portal, by navigating to a Virtual table properties and select ‘Advanced/Tools/Copy set name‘

But again I would advise you to use my XrmToolBox tool to get this info as it will save you a lot of time.
- Guid : the unique identifier property of the selected record in the Dataverse virtual table
Every record in a virtual table gets a GUID assigned by the Dataverse engine in the identity field. By convention, the field name is the name of the virtual table suffixed with ‘id’. So, for the Vendor Account table, the field would be mserp_vendvendorv2entityid
.
You can see this in action with a query on the virtual table using the epic SQL 4 CDS tool by Mark Carrington

Example with Power Automate
Time to try it out!
Another great feature of F&O Virtual tables is that once a table is enabled, you can create Power Automate flows that treat these F&O tables just like regular Dataverse tables.
To illustrate this I will create a Power Automate flow that triggers on every Vendor Account creation and send an email to an agent. Note that I’m using the Dataverse connector and not the classic F&O connector.
Since I’m using the virtual table in the trigger, I’m able to get the appropriate Guid of the record to compose the link, directly from the available values received by the trigger action.
In the Compose block, I’m hardcoding thee FinOpsUrl and the EntityCollectionName just to keep things simple—but keep in mind, there are ways to make this more dynamic and generic if needed.
Once the link is composed, it’s added as a hyperlink in an email message, which is sent to the agent.

And that’s it! I now get an email every time a new Vendor account is created in the system, and I can easily navigate to the record—provided my security role allows it.


Create DeepLinks with FinOps Virtual Entity Manager for XrmToolBox
To wrap up this post:
In the latest version of my FinOps Virtual Entity Manager Tool for XrmToolBox, I added a new feature to create DeepLinks on the fly.
When using the tool, just select an F&O entity that as been enabled for virtual entity. Notice that the FinOpsUrl and the EntityCollectionName are already available.

In the Deep Link section of the tool, you can select a given record and a deep link to that record will be generated. This will give the Guid of the record and complete the deep link.

Note that not all enabled virtual entities will generate valid deep links. For the link to work, the entity must correspond to a valid menu item in F&O. If it doesn’t, you’ll run into an error like below. This means the system couldn’t figure out where to send the user, so it’s important to test and verify which table supports deep linking.

Take Away
That’s all for now!
Deep links for D365 F&O records are a great way to deliver a slick user experience and take your automations to the next level.
I’m excited to see how the community puts this feature to use and what creative scenarios it will unlock.
Links





Photo by Edge2Edge Media on Unsplash
Be First to Comment