Table of Content
Scenario
On our way: Basics First
Implement the Copilot Studio part
Implement the Dynamics 365 Customer Service part and Demo Video
Conclusion
1. Scenario
Your child goes to daycare and makes friends not only with other children, but also with bacteria, viruses and other nice sickness buddies. And because your child likes to bring friends home, Mr Virus also says: "Of course I'd like to come home with you and meet your parents!”1 The most likely result: Your child gets sick one of the next days. Especially in winter.2
Fine, your child is sick. Fever, cough, sore throat, aching limbs, middle ear infection, ... (insert your favorite illness here), etc. In many cases, it makes sense to inform the pediatrician and make an appointment. Especially young parents who have never had a child before could use some medical advice. So you pick up the phone to make an appointment for your sick child. No sooner said than done, you hear one of the most "popular" sounds a phone can make: The busy signal (or better known by its common dubbing, beep beep beep). Now comes the invention of redial, and you try again. Busy. And again. Busy again. And the game goes on (endlessly). I do this thumb sport of permanent redialing up to 400 times before I finally get through once.3 Well, let's say you made it and get through. Congratulations. 👏🏻 But you're probably not so relaxed anymore, you're angry and annoyed. Is this really necessary? Isn't there a simple solution that could make everyone happy? Bam, there is! 🎉
2. On our way: Basics First
Before we come to the solution with Copilot Studio, we must of course create the basis. For this we need an account that has either Microsoft 365 E3 or E5 (or Office 365 E3 or E5). April Dunnam made a great video some time ago on how to install a Power Platform environment with a Developer M355 license and a Power Apps Developer license.
Important: You must install your environment as a US tenant! The voice capabilities for Copilot Studio and Dynamics 365 Customer Service only exist here (if you are reading this article later than January 2025, conditions may change and this feature might be rolled out globally).
Once we have done this, we need to install the licenses for Copilot Studio and Dynamics 365 Customer Service. Let's start with the latter.
Browse to Dynamics 365 Free Trial page.
Click on the button Try for free for Dynamics 365 Customer Service.
Enter the account aka email address you gained from your M365 Developer account (1), then acknowledge the agreement checkbox (2) and click on the button to start your trial (3).
After a few seconds or minutes, you should have your Dynamics 365 Customer Service demo environment ready.
Browse to the Copilot Studio page.
Click on the button Try free.
Use your M365 Developer account here again (1) to get your Copilot Studio trial license. Click on the button Next to complete the setup (2).
Now that we have the foundation in place, we can move on to implementation. 🎉
3. Implement the Copilot Studio part
Browse to the Copilot Studio Maker Environment.
Make sure you have selected the right environment (1). This will be most likely with the name “Customer Service Trial” (2).
Click on Create.
Select the Voice example.
Give it a proper name of your choice (1). Alternatively you can change the icon (2). Click on Create (3).
Now add your Knowledge Sources as public websites. I use these:
Click on Topics.
Click on Conversation Start. If you can’t see it, click on button All.
Click on Open code editor.
Replace the YAML code there with this.
kind: AdaptiveDialog beginDialog: kind: OnConversationStart id: main actions: - kind: SendActivity id: sendMessage_M0LuhV activity: text: - Hello and thank you for calling your {System.Bot.Name} Service. How may I help you today? speak: - Hello and thank you for calling your Health Service. How may I help you today? - kind: Question id: question_qcMsSV interruptionPolicy: allowInterruption: true variable: init:Topic.SicknessChoice prompt: text: - How shall we proceed? speak: - Here are your options. entity: kind: EmbeddedEntity definition: kind: ClosedListEntity items: - id: Fever displayName: Fever dtmfKey: Num1 - id: Cough displayName: Cough dtmfKey: Num2 - id: Cold displayName: Cold dtmfKey: Num3 - id: Ear infection displayName: Ear infection dtmfKey: Num4 dtmfMultipleChoiceOptions: generateMapping: true - kind: ConditionGroup id: conditionGroup_V08qHl conditions: - id: conditionItem_WYK5yK condition: =Topic.SicknessChoice = 'cr9a1_voice2.topic.ConversationStart.main.question_qcMsSV'.Fever - id: conditionItem_KothrH condition: =Topic.SicknessChoice = 'cr9a1_voice2.topic.ConversationStart.main.question_qcMsSV'.Cough - id: conditionItem_4f9rr3 condition: =Topic.SicknessChoice = 'cr9a1_voice2.topic.ConversationStart.main.question_qcMsSV'.Cold - id: conditionItem_3vmB1Q condition: =Topic.SicknessChoice = 'cr9a1_voice2.topic.ConversationStart.main.question_qcMsSV'.'Ear infection' - kind: SetVariable id: setVariable_7WoFBn variable: Topic.SicknessString value: =Text(Topic.SicknessChoice) - kind: SearchAndSummarizeContent id: of2nzk userInput: =Topic.SicknessString fileSearchDataSource: searchFilesMode: kind: DoNotSearchFiles knowledgeSources: kind: SearchSpecificKnowledgeSources knowledgeSources: - cr9a1_voice2.knowledge.httpswwwhealthychildrenorgEnglish_sEDgW9LlyYpTS3hb26hOp - cr9a1_voice2.knowledge.httpswwwkindergesundheitinfode_YxvJujt7OOekjUaPn2Wqr
Click on Save. Close the code editor.
You might run into errors like in the picture below. In this case you need to point to your knowledge sources you added in the steps before.
To correct the previous step, click on Edit (1) and then add the missing knowledge sources (2).
Click on Test (if your Agent is not visible) (1). Refresh the Agent (2) and test the result (3).
After testing, publish your Agent. 🎉
4. Implement the Dynamics 365 Customer Service part and Demo Video
The reason why we use Dynamics 365 Customer Service is that it includes voice capability in Omnichannel. You can connect a Copilot Studio Bot in Omnichannel Voice. To use the telephone function, you use Azure Communication Services (ACS). In the video embedded below you can see how to implement the customer service part and how the voice functionality works in the end.
5. Conclusion
A doctor's office can also easily use Copilot Studio with the telephone function, so that an Agent can give information to young parents without getting stuck in an unnecessary waiting loop. Sometimes there is no need for a doctor's appointment, and if the parents insist on one, Copilot Studio can still be configured to speak to the doctor's assistant.
The voice function is not yet available in many parts of the world, but will be rolled out to more and more countries in the coming months. There will also be a native way to use the voice function in Copilot Studio without having to go through the customer service. How will that look? Can we say in a few months. 😁
Mahalo for reading! If you like the content, leave a like in the comments and/or sign up so you don't miss anything! 🥳
Does that sound like sarcasm or pure desperation? I hope so!
We should no longer call winter winter, but simply months of illness. Just like that.
If it's significantly shorter for you, please contact me, I want to move to your town and see your doctor!