I got a little different idea for the month of October, and it is not directly related to the PowerApps development, but it depends on what I can do with the bots. So, naturally, I’ve been trying Bot Framework, Virtual Agent, and may need to try Virtual Assistant samples.
If this interests you, carry on reading
First of all, Bot Framework is in the core of any “agent/assistant/bot” technology from Microsoft. However, the way I see it:
- Bot Framework is the underlying technology
- Virtual Agent is a self-driving vehicle
- Virtual Assistant is a Formula 1 car
And, of course, you can always develop your own bot from scratch directly on top of the Bot Framework.
Either way, let’s talk about the Virtual Agent in this post.
First of all, Virtual Agent is a Dynamics/PowerApps-connected technology. You can easily utilize Microsoft Flow directly from the Virtual Agent (but you can’t do much more in terms of “development”… which is how PowerPlatform often is – it’s a “low code”/”no code” platform in many cases)
Then, it’s in a preview. Don’t start posting questions to the community forum in the first 10 minutes after you’ve created a trial through the link below:
https://dynamics.microsoft.com/en-us/ai/virtual-agent-for-customer-service/
Wait till you see the confirmation:
Until then, you will see what can probably be described as “deployment work in progress” – some areas will be working, but others won’t. For example, all the buttons to create new topics or new bots will be greyed out and unavailable.
Either way, here is what I wanted to make my virtual agent do:
- Wake up – easy to do, just need to define some trigger phrases. That said, the agent does not seem to recognize a trigger phrase if it’s even slightly different
- Greet the visitor – not a problem, it’s just something the bot needs to say
- Take the answer and get the name
This last ones seems simple, but it actually requires a Flow. The user might say “I am…”, “My name is…”, etc. However, all I can do in the agent designer is take that answer into a variable and use “is equal to” condition in the expressions:
Which is not quite what I need since I’d rather knew the visitor name. Hence, I need to call a Flow through what is called an “action” in the Virtual Agent to try to parse the answer. Actually, there is a demo of a similar Flow here:
https://www.youtube.com/watch?v=joXCzvi38Fo&feature=youtu.be
That’s overly simplified, though, since I need to parse the user response to remove “I am…”, “My name is…”, etc.
This is where I quickly found out that error reporting between Flows and Virtual Agent may still need some work because, once I had my Flow created and added as an action to the bot, I started to get this:
If I could only see what’s wrong somehow? Apparently, the Flow was running ok:
Turned out that was just a matter of forming HTTP response incorrectly in the Flow:
The agent was expecting “VisitorName” since that’s how the parameter was named in the schema, but the flow was returning “Name” instead. In the absence of detailed error reporting it’s always the simplest stuff that you verify last, so took me a while to figure it out – was a quick fix after that.
In the end, it was not too complicated, and, apparently, this relative simplicity is why we’d want to use a Virtual Agent:
From there, if I wanted this agent to run on my own web site, there is an iframe deployment option. Basically, as I mentioned before, this is all in line with the low-code/no-code approach.
And, because of the Flow integration(which, in turn, can connect to just about anything), the possibilities there are just mind-blowing. We can use a virtual agent to:
- Confirm site visitor identity by comparing some info with what’s stored in Dynamics/PowerApps
- Help site visitors open a support ticket
- Provide an update on their support tickets
- Surface knowledge base articles from Dynamics
- Help them navigate through the phone directory
- Search for the special offers
- Etc etc
Besides, there is a Flow connector for LUIS, and I could probably add intent recognition and do other cool stuff using Flows:
https://flow.microsoft.com/en-US/connectors/shared_luis/luis/
I would definitely stick to trying it more, but I really wanted to integrate my bot with speech services, and, since this feature is not available yet (as per this thread: https://community.dynamics.com/365/virtual-agent-for-customer-service/f/dynamics-365-virtual-agent-for-customer-service-forum/358349/does-dynamics-365-virtual-agent-for-ce-support-voice-bot), will be moving on to the Bot Framework and Virtual Assistant for now.
Which means leaving the familiar PowerPlatform domain. Let’s see what’s out there in the following posts…
Awesome post from I must comment
Meanwhile I am facing similar error here
Kindly see below and assist
{
“output_staffleavedays”: @{body(‘Select’)}
}
{
“type”: “object”,
“properties”: {
“output_staffleavedays”: {
“type”: “string”
}
}
}