Introducing the Customer Intent Agent In Dynamics 365 – Part 1

You might remember my article from February, where I gave a sneak peek at the new features coming in the 2025 Release Wave 1 for Dynamics 365 Customer Service and Contact Center. (If you missed it, no worries, you can catch up here.) In that post, I gave a quick overview of three new autonomous agents Microsoft rolled out: the Case Management Agent, the Customer Knowledge Management Agent, and the Customer Intent Agent. Each one has its own strengths, all designed to help support teams work smarter, move faster, and deliver better service. I’ve written articles about the Case Management Agent, and the Customer Knowledge Management Agent in the past weeks, and this week I am focusing on the last of the group, the Customer Intent Agent! There is a lot to cover here, so I am going to write two articles on this agent. In this article I will discuss what the agent does and how it works, and in the second article, which I plan to publish next week, I will cover the configuration of the agent. Let’s get started!

What does it do?

This autonomous AI agent that can be accessed in Dynamics 365 Customer Service (premium license) and D365 Contact Center is designed to identify and understand the intent of customers when they reach out to customer service. This can be during self service scenarios, when customers interact with a custom copilot, for example a copilot that is hosted on your website and connected to your D365 Customer Service or Contact Center instance, and it can be used during a live or persistent conversation between a customer and customer service reps. The agent analyzes the conversation using natural language understanding to understand the customers intent. When I say ‘understand intent’ I am referring to why the customer is reaching out to customer support, for example they could be looking for a refund, reporting a product issue, etc. Understanding why a customer contacts support is very important as it speeds up the process of solving the problem. But it doesn’t only do that! It can also be configured to generate the right questions for the CSR to ask to speed up the process of solving the issue. For example if someone is looking for a refund for something they purchased previously, we probably want to know the order number, how old the order is, the reason for a refund etc. These are questions that the agent can suggest (to the customer service rep or the custom copilot) making sure that all the information that is needed to solve the case, is captured.

How does it work?

The customer intent agent manages intent records inside the application. These intents represent the different issues or reasons a customer might reach out to customer support. For example if your organization sells and ships products to customers, your customers might contact support when a shipment didn’t arrive or when the items were damaged during shipment. Both of these problems can be 2 separate ‘intent’ records. Each intent record can have ‘attributes’ associated with them. These are things that are important to know to solve a specific problem (intent). For example, if a customer is requesting a refund (intent), I would like to know what the refund reason (attribute) is, as the reason could be due to damage, or maybe they didn’t like the product. However, if the problem is that the shipment never arrived, I would want to ask the customer when the item was supposed to be delivered and what the tracking number is. The different questions help resolve the issue. These ‘questions’ are all considered attributes related to the intent, and one intent record can have multiple attributes. As you can see in the screenshot below, we don’t need to populate the actual question that we want the agent to generate, just the type of information that we are looking for and the agent will generate the question(s) for the CSR based on the attribute. I’ll explain more about attributes in the ‘Agent Configuration’ section below.

Intent records can be grouped together by intent groups. For example I could have an intent group that is called ‘Shipment issues, returns and refunds’, which can have one or more intents related to it. In this example I could have an intent called ‘Request refund or reshipment for damaged items’ and ‘Resolve missing delivery issue’ grouped under the intent group. The intent group is the ‘parent’ of the intent records and represents the overarching issue that the underlying intents are trying to solve. NOTE: When looking under the hood I discovered that intents and intent groups are both from the ‘Intent’ table, but the intent group has a column called ‘isgroup’ set to ‘True’, which makes it an intent group.
When viewing intents groups in the Copilot Service Admin Center, you’ll be able to see the number of intents records that are related to the group. Intent groups can be generated by AI but they can also be created manually! Besides attributes, admins can also associate one or multiple knowledge articles to an intent record. This will help the agent propose a solution to resolve the issue.

Now that I’ve explained how intent groups, intent records and attributes work, lets discuss how this all works together. When a chat conversation comes into the D365 Contact Center Workspace (or customer service workspace) app, the customer service agent will see the Intent Agent on the top of the Copilot pane inside the app. The agent will start analyzing the conversation immediately by trying to map the conversation to a specific intent group and/or intent record. In the Copilot Pane, the customer service rep will see one of these options:

  • Looking for suggestions: The agent is in the process of mapping the conversation to the intent record/intent group
  • The identified intent record that was mapped by the agent with suggested questions to ask the customer
  • Nothing is shown if the agent is unable to map the conversation
  • Suggestions Unavailable: No intent is matched to the conversation

Once a conversation is mapped to an intent record/intent group, the customer service rep will see the intent name as the identified issue and any questions suggested by the agent. NOTE: If the intent is incorrect, a customer service rep can click on the thumbs down icon, which will stop the agent from showing the intent and it will disable the suggested questions related to it.

The first question the agent suggests, will be semi-populated in chat’s communication panel, and the customer service rep can press the tab key on their keyboard to load the question in the chat and hit ‘send’ to submit it to the customer. Once the customer answers the question, the response will be shown below the attribute in the copilot pane and the next question will be pre-loaded. If a customer service rep doesn’t want to wait for the question to be pre-loaded, they can hover their mouse over the question, which will reveal an icon they can click to load the question in the chat immediately.
At any point in time they can click on the ‘Request a solution’ button below the questions. This will populate a resolution or resolution steps based on the associated knowledge articles. NOTE: If the customer’s intent changes during the conversation, the agent updates its suggestions to match the new intent in real time. It also keeps a historical record of past intents and suggested responses as part of the conversation history. This means that if the conversation is handed off to another service representative, they’ll have the full context (including previous intents and suggestions) to pick up right where things left off.

Line of Business

The ‘line of business’ allows organizations to ‘group’ certain intents and intent groups together, based on the ‘Line of Business’. You can see this as a ‘family’ of intents and intent groups. These line of businesses can be services, products, product categories, etc. Think about a particular product or product group a case could come in for, like a Surface 1 Laptop or a Dell laptop, we could create two separate lines of businesses for these (Surface 1 laptops and Dell Laptops) or we could create one line of business called ‘Laptop’ and group it that way.
The configuration of ‘Lines of business’ is not mandatory, but if you want to configure intent based routing for certain ‘Lines of Business’ then I would recommend configuring this, because if you don’t, intent-based routing will be enabled for the whole organization. I am planning to write a separate article on intent based routing at a later time. To learn more about the ‘Line of Business’ setup click here.

Paid Preview

Just like the other two autonomous agents, this guy is also in PAID preview, which means that the agent will consume Copilot Messages each time it’s used. This means you’ll need to set up a billing model in your environment for these Microsoft Copilot Studio messages. Right now, there are two ways to go: prepaid capacity or pay-as-you-go. If you choose the prepaid option, you’re basically buying a bundle of message credits ahead of time through Copilot Studio’s licensing, kind of like stocking up so you know what you’re working with. On the other hand, if you’re looking for more flexibility, the pay-as-you-go model might be a better fit. With that setup, you’re only billed for the actual number of messages the agent uses each month, so you can scale up or down based on your needs. Once the billing has been set up, an admin will need to configure the agent itself. I hope you enjoyed this article! Next week I will publish the second part of this article, where I will discuss the configuration of the customer intent agent, including the configuration of the Copilot Studio messages I just mentioned. To get notified when new content is posted, you can  subscribe here.

Share this!

Leave a Reply