Build Text-Based & Talking Chatbots using the Microsoft Power Platform

Mechanics Team
13 min readMay 24, 2022

New updates have come to Power Virtual Agents, our low-code bot creation service that’s part of the Microsoft Power Platform. We’ll show you how this single environment enables fusion teams of citizen and pro developers to author bots that are more engaging with dynamic custom greetings, in addition to quick replies, and more sophisticated and visual through adaptive cards.

@Gary Pretty, from the Power Platform Team, joins @JeremyChapmanMechanics to walk you through all of this along with the deep Power FX integration to dynamically adapt bot responses using variables, as well as new native telephony integration that gives your bot a voice.

Power Virtual Agents’ new authoring canvas.

Microsoft’s authoring studio is designed to meet the business and technical requirements of citizen and pro-developer teams. See how low code authoring is combined with advanced capabilities.

Familiar Microsoft commands, enhanced navigation, and productivity improvements.

Bot building made easy and efficient with Power Virtual Agents’ new authoring canvas. See what’s new in the top level navigation.

Give your bot a voice with expert-level speech authoring capabilities.

Do you remember the last positive experience with a chatbot? Check out how Power Virtual Agents is changing the game with rich responses and personalization for chat and voice. Watch the quick and easy way to connect a phone number to your bot and give it a voice.

QUICK LINKS:

00:00 — Introduction

01:23 — New changes

03:22 — Demo- topic navigation, question nodes

04:33 — Next level low-code capabilities

07:24 — Citizen developer and pro dev collaboration

10:06 — Telephony integration

12:17 — Wrap up

Link References:

Get more details on our blog at https://aka.ms/PVABuild22

Watch our show on creating chatbots with Power Virtual Agents at https://aka.ms/TeamsPVA

Unfamiliar with Microsoft Mechanics?

We are Microsoft’s official video series for IT. You can watch and share valuable content and demos of current and upcoming tech from the people who build it at Microsoft.

Keep getting this insider knowledge, join us on social:

Video Transcript:

- Up next, we’ll look at updates coming to Power Virtual Agents, our low-code bot creation service that’s part of the Microsoft Power Platform. Now, we’ll show you how this single environment enables fusion teams of citizen and pro developers to author bots that are more engaging, with dynamic custom greetings in addition to quick replies, and more sophisticated and visual through adaptive cards along with deep Power FX integration to dynamically adapt bot responses using variables, as well as new native telephony integration that gives your bot a voice. And I’m joined today by Gary Pretty to walk us through all the updates from the Power Platform team. Welcome.

- Yeah, thanks so much. It’s great to be here.

- Glad to have you on, because we’ve been following the Power Virtual Agents story for a while now, and it’s evolution. We recently actually had Lili Cheng on the show, who leads conversational AI at Microsoft, which you can check out if you missed that at aka.ms/TeamsPVA. Now at the time, she actually alluded to how fusion developer experiences will get better in the next round of updates so that citizen developers can more seamlessly collaborate with their peers as pro developers on projects.

- Yeah, and it’s really incredibly important because today five out of six organizations have what we would call fusion teams. So we really are laser focused on making sure that pro developers, citizen developers, and the other disciplines can work together collaboratively to build out their bots.

- I know that in the past we’ve had two distinct tools for building out chatbots; one of those is Power Virtual Agents which citizen developers could use for a low-code experience. Then we also have Azure Bot Framework Composer for more custom code targeted professional developers. And both environments were integrated, but separate. So what changes now?

- Well now we’ve got a brand new unified authoring canvas built from the ground up. It combines the intuitive authoring experience that PVA is known for, with the advanced capabilities of Bot Framework Composer. And it gives fusion teams a single bot building platform that spans the breadth of business and technical skill set requirements to author powerful next generation bots. Importantly, if you’re a pro developer, you can better take advantage of the advanced feature set that gives you the control you need. You don’t have to choose between the two different tools, and there’s no infrastructure or resources to provision thanks to the PVA SaaS service.

- So this is really the best of both worlds then? If you’re a pro developer you’re not limited, and citizen devs can more easily improve their bot building skills and also bring in experts when they need help. So I’d love to try this out. And I kind of consider myself a citizen developer, and you know, I’ve started building out a customer-facing airline bot, and I really wanted to be able to answer some simple questions and really complete some simple tasks. So I’ve built a simple topic to let the customer check the status of their flight. And it asks a couple of questions, you know, to ask for things like the flight number and also the date. And I’m calling Power Automate, as you can see, to get the status information. And then I have added also some conditions here to send the appropriate response back to the user, and all this was pretty easy and pretty familiar. And something else that I noticed was just how much easier it is now to build bots, because I can use my favorite Windows commands like cut, copy, and paste from the toolbar right here, or even use keyboard shortcuts if I want.

- Yeah, that’s right. Cut, copy, and paste are just one of the broader set of improvements that we’ve made on the new unified authoring canvas, to make authoring as efficient as possible. Another thing you should try out is the new Topic navigation experience.

- Okay, sounds good. So right now, I’ve noticed that’s a lot easier too because instead of moving back and forth between the Topics page to go between different topics, now from the authoring canvas, I can just use this drop down here and it’s so easy. I can go between the topics now. So I can move to the Confirmed Success topic. Now I’m going to go back to my Flight Status topic and it’s just that easy.

- Yeah, absolutely. Another thing you should do is take a look at the properties on one of your question notes and you’ll see how we’re giving you even more control there as well.

- Okay, so I’ll try this out. So I’m going to go ahead and look at this note and click on the ellipse, and then I’m going to open the properties. And wow, there’s a lot more that I can do now. So I can even control what happens then if a user enters an incorrect answer to a question. So in this case, what I want to do is customize the retry message. So if someone provides an invalid answer, you know, maybe I’m asking for a flight number and they just input the airline name pretty common, I think, I can just paste in a message like, ‘Oops, that doesn’t look like a flight number. For example, I’m looking for something like 173.’ Now, I’m guessing there’s even more I can do to make my bot even more engaging in terms of the experiences. So what can I do to take things then to the next level?

- Yeah, sure. We really are just scratching the surface as to how we are improving that low-code experience and enabling advanced authoring. Let me show you a few more low-code capabilities that you can add to the bot that you started. Right now I’m in the greeting topic, where the simple message to greet the user when they start a conversation with the bot. It would be good to make this a little more engaging though, and I can do this with our new rich responses feature. First, I can now add an additional alternative message, where one will be picked at random when the message gets sent. This is great because customers will likely engage with this bot multiple times. So this helps to solve the problem of the bot sounding too rigid or too stale over time. Next, for users chatting via text with the bot, I can now easily add images and videos to my responses. Here, I just provide a URL pointing to my Contoso logo, and I immediately get a preview of how that will be displayed to users. Another good way to improve the customer experience, especially on greeting messages, is to help users understand what the bot can do and what they might ask for. And I can now add quick replies which show up as suggestions for users. Here we can add a quick reply for the top two reasons users will speak to this bot: check flight status, and book a flight. Now these are great updates to greatly improve text-based interactions, but we also want to make sure the experience over voice is just as good. Switching to the speech tab on the message note, I can now provide tailored responses that will be used on voice-enabled channels. You can see here that I’m thanking the user for calling, and including those top two suggestions to guide users as to how they might answer. I can even include SSML or Speech Synthesis Markup Language, which helps further control how the message is spoken with things like short pauses or breaks, word emphasis, or prosody for better intonation. And just like that, in just a couple of minutes, we’ve made a meaningful difference to the user experience by updating just that single response.

- And this is really powerful because I think in the past it would’ve probably taken a professional developer using tools like the Bot Framework Composer.

- Absolutely, we’re taking those advanced capabilities from Bot Framework Composer, and we’re combining them with that intuitive, low-code experience that PVA is known for, so that it can be used by anyone. For the voice authoring capabilities that I showed, this goes hand-in-hand with the Dynamics 365 voice channel that’s already generally available, and allows for the creation of conversational, voice-enabled bots. Meaning you don’t need to be an IVR expert to bring voice capabilities to your bot. And we’re going even further now with new native telephony capabilities, right within PVA.

- Awesome, but I want to go back to our telephony integration that you touched on earlier for the developers and admins who are watching. But first, I feel like I’ve kind of reached my limit with the check flight status topic, and I think it could be enhanced, you know with something like an adaptive card. So how can I get help from you, as a pro developer, to add that to my bot?

- Right, sure. So you could just use the built-in commenting capability within PVA and @ mention me, and ask me for my help.

- Okay, let me try this out. So I’m going to go ahead and add a comment. I’ll @ mention you. Now is this going to then send a notification to you?

- Yeah, because this is all integrated with Microsoft 365, I just got an email notifying me of your comment. I can jump to that comment in the bot and even reply to you if I want to. I’ll clear out the original message and I’ll add an adaptive card using the Add menu. Because I’ve already designed the card on the adaptive cards website, I’ll copy the JSON to my clipboard. And if I jump back to the Power Virtual Agents canvas, I can paste it straight in. And that gives me a preview of the card. And just like that you, as a citizen developer, and me as a pro developer, have collaborated to improve the bots experience.

- And all these updates really show that the adaptive cards are a lot easier to add. So is it possible then for kind of the contents of the card to be dynamic as well?

- Yeah, so that’s where our work to deeply integrate Power Fx, our Excel-like formula language already used elsewhere in the Power Platform, really comes in. Power Fx now underpins the entire variable system for Power Virtual Agents. And we’ve added a new formula editor into the canvas which I can use to arbitrarily assign values to variables, write custom condition logic, and in this case I can use it to create a dynamic adaptive card. By choosing to edit my card as a formula, the JSON is automatically converted into a Power Fx record. And I can use the formula editor to reference the variables being used within the topic. In the interest of time, I’ll paste in an updated version of the record which I’ve already amended, and you can see here that I’ve referenced our flight details. We want the same status card to be used for all statuses. So I can even simplify my logic by copying and pasting the message note and removing the condition. Now I can save my topic and test that my card’s working correctly. I’ll enter the flight number, the date I want to check, and there it is, our new dynamic adaptive card to show the flight status summary.

- Good stuff. So what I’m seeing here is that we’ve basically taken something that would’ve required professional developers really making it available to everyone. So what you also did though, was you’ve uplifted kind of the pro dev experience, in terms of integrating more Power Fx?

- Yeah, exactly. And because it’s Excel-like in nature, anybody who’s familiar with formulas, whether they’re a pro developer or a citizen developer can get up and running with this.

- Okay, so now we’ve built and tested out our experience here within a new unified canvas, including tailored messages and also voice scenarios. So why don’t we come back to our topic of telephony integration and see what’s possible there?

- Right, I mean, there’s a lot to talk about here, but first let me show you how quick and easy it is to connect a phone number to your bot and give it a voice. I’ll head over to the Channels page and select the new Telephony channel, where I can connect an existing phone number. I’ll select my Azure subscription and my Azure Communication Services resource. Then my phone number type, in this case, it’s PSTN. And this lets me see what numbers are available to me to connect my bot. In this case, there’s one listed. I’ll select it and hit connect. And that’s it. The phone number is now connected and my bot is ready to answer phone calls. The next thing I want to do is go to the Speech Settings page, where I can configure the bot’s voice. Now you can choose from a wide variety of voices for your bot powered by Azure Cognitive Services. I’ll pick one, and now I can even choose specific speaking styles such as customer service, which might be a good one to use for our scenario. And that’s it, our bot’s now ready to be called.

- Okay, so as you can tell, I’m ready to try this out. So I’m going to go ahead and call Contoso Airlines customer service here, and I’ll go ahead and turn the speaker on to make sure that everyone can hear it. And it’s ringing now.

- [Contoso Bot] Hi, thanks for calling Contoso Airlines. In just a few words, tell me how I can help you today. For example, you could say ‘check the status of a flight,’ or ‘make a new booking.’

- Check the status of a flight.

- [Contoso Bot] Sure, I can help you check the status of a flight. What’s the flight number?

- Flight 73.

- [Contoso Bot] And for which day do you want to check status for?

- For tomorrow.

- [Contoso Bot] Good news, Flight 73 is currently on time and scheduled to leave Seattle-Tacoma Airport at 2:30 PM and arrive into Atlanta at 5:45 PM local time.

- I’ll go ahead and hang up. And that’s really great news. You know, this is pretty fluid, and it really sounded natural with the voice that you added when you were authoring your bot earlier.

- Yeah, and this really is just the tip of the iceberg. We’re also adding capabilities to make sure that your bot shined over voice, such as silence detection, where a bot can detect if the user stops speaking and connect accordingly. And we’ll now allow you to connect your bot with existing contact centers, so that your customers can be rerouted to a live agent if needed.

- That’s a really great update. So for anyone who’s watching right now and looking to try this out, what should they do?

- Sure, so you can register today for the technology preview to get hands on with the new features yourself. And first-time PVA users can also take advantage of a new limited time pricing offer. You can get all the details on our blog over at aka.ms/PVABuild22.

- Thanks so much Gary, for joining us today and also showing us all the updates for Power Virtual Agents. Of course, keep watching Microsoft Mechanics for the latest in tech updates, and be sure to subscribe to our channel if you haven’t already. And as always, thank you for watching.

--

--