web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Dynamics 365 Community / Blogs / Learn with Subs / Using Deep links in D365F&O...

Using Deep links in D365F&O Copilot Studio

Subhad365 Profile Picture Subhad365 21 User Group Leader
With 10.0.48, D365F&O is having the amazing capability of generating the deep link for your generated/filter record(s). When the MCP server processes a request, it returns a deep link URL as part of the response. The agent uses this URL to construct its reply to the user, embedding the link where appropriate.
The destination of the deep link depends on how many records are included in the server’s response:
  • Single record → The deep link directs the user to the detailed form view of that specific record.
  • Multiple records → The deep link points to a list page in the client, automatically filtered to show only the records returned in the response.

Deep Link Handling in MCP Responses

MCP Response Behaviour

    • The MCP server includes a deep link URL in its response.
    • This URL is just a parameter — it is not automatically formatted or surfaced to the user.

Agent Orchestrator Considerations

    • Different agent clients may have unique conventions for displaying deep links (e.g., inline text, clickable buttons, citations, or contextual cards).
    • The orchestrator does not enforce a single format; instead, it passes the raw deep link to the agent client.

Deep Link Navigation Behaviour

Multiple Records When a query returns more than one matching record, the McpDeepLinkBrowser generates a dynamic grid view to display the results.
Tool-Specific Differences MCP provides several toolsets for handling operations. Because each toolset is built on different technologies, the way deep link URLs are generated — and how navigation behaves — varies slightly depending on the tool used.

SQL-Based Tools

Filters are extracted directly from the WHERE clause of the query.
The system applies a three-level strategy for link generation:
  1. Full filter resolution → Generates a deep link to the list page with all filters applied.
  2. Partial resolution → Falls back to per-record deep links if complex joins or subqueries prevent full filter mapping.
  3. No resolution → Directs to the unfiltered list page, leaving the user to manually refine the results.

OData-Based Tools

After create or update operations, deep links are generated using entity key fields.
Supports entity-to-table field resolution, even across joined data sources.
  • Example: OrganizationName on the entity maps to DirPartyTable.Name on the related form.

Form-Based Tools

  • Captures the primary table of the active form along with tracked filter expressions.
  • If the main form lacks usable filters, the system attempts to apply filters from subform data sources.

Format

The deep link must look like:
<Base Url>/?mi=action:McpDeepLinkNavigator&tableName=CustTable&filters=[{"f":"AccountNum","op":"BeginsWith","v":"Cust00012","ds":"CustTable"}]&cmp=USMF
Pass on the necessary field(s) of your data entity/table to filter from and call the URL in the above format (example given below).

Prerequisites

Ensure that you are with 10.0.48 with Proactive Quality update 1. And that you have turned on the following feature on:

Deep Links for Model Context Protocol

Demo

In the following instruction, I am mentioning the following:

You are an agent who is to create customers using "Dynamics 365 ERP MCP" tool:

Start by asking

  1. Get the details of the customer's name, group details and use them to create the customer; get the customer account number thus generated.
  2. Ask the user to provide address details of the customer. Ask multiple times if they want to add more address.​‌
  3. Once done, ask the user to provide contact address.​‌
  4. You need to generate a deep link to open the customer record simply by following the given format: https://d365bitsdev.operations.dynamics.com/?mi=CustTable&nav=CustCustomerV3Entity&nt=entity&filters=[{"f":"AccountNum","op":"Is","v":"<Get the generated Account Num from Step 1>"}]&crossCompany=true
  5. C‌reate a Display text of the <<Customer name>> on the link generated above. ​‌
  6. If asked to filter customers belonging to any field, you can generate the deep link by the following syntax: <Base URL>/?mi=action:McpDeepLinkNavigator&nav=CustCustomerV3Entity&nt=entity&filters=[{"f":<<For example if the user is asking to filter by group, the field should be CustomerGroupId>>,"op":"Is","v":"<<Filter value>>"}]&crossCompany=true
Look at the deep link instruction:
<Base_URL>/?mi=CustTable&nav=CustCustomerV3Entity&nt=entity&filters=[{"f":"AccountNum","op":"Is","v":"<Get the generated Account Num from Step 1>"}]&crossCompany=true

This apart you can create run time filters to your form, or SQL operations, by enabling deep links, as described above.

For example, you can filter the customers by the group = 10, using the following Deep link query:

<Base URL>/?mi=action:McpDeepLinkNavigator&nav=CustCustomerV3Entity&nt=entity&filters=[{"f":"CustGroup","op":"Is","v":"10"}]&crossCompany=true


img widget

Comments

*This post is locked for comments