>> I think the only way that
you can integrate with Power Platform as
a prose atmos with APIs and custom connectors. Well, think again.
Linda Nichols is here with us today and
Low Code Revolution to show how we can
do event-driven integration with Power Platform. Stay tuned.
[MUSIC].
>> Hey everyone. Welcome to
another episode of the Low Code Revolution.
I'm your host, April Dunnam and
today we're joined by Linda Nichols,
who's an App Innovation Global Black Belt here
at Microsoft. Welcome to the show, Linda.
>> Thanks for having me.
>> Thanks. I'm sure you get this all the time,
but a Global Blackbelt is probably
the coolest job title and all of Microsoft job titles.
Do you mind telling everyone a little bit about what
specifically you do as an App Innovation Global Black Belt here?
>> Sure, so my team,
we help customers with all things relating to apps.
That might be what you think of
as a traditional app that sits in Azure.
We help pro developers and we also help
low code developers so really all applications.
My team is really interested in
using Teams and the fusion development story.
>> Awesome. Infusion development is what we love
talking about here on the show how
the ProDev and system does and
everyone can work together to build solutions.
One of the things that I think you brought to show
us was how we can integrate Azure IoT
with Power Platform because I know a lot when
we're talking about ProDev integration a lot of
the focus tends to be on custom connectors and
API integration and all that but I love this example
that you brought with us to show today about how to do
more of an event-driven integration with the Power Platform.
Can you tell us a little bit about
how you came up with this, how it works?
>> Sure. There was already in a sample and in
our Azure samples of an IoT architecture and so we
had a customer story that was very
similar to this architecture and so we thought
about what would this look like if we added
some low code components so we
added some of the power automate Power Apps,
but also ultimately made
this collaborative app that we could run inside of Teams with
a power virtual agent and so we
added the low code pieces to some of the existing architecture,
bind it together and then turned it
into a severe weather alerting system.
The concept is that there are devices running on
Edge that are in
Tornado prone areas and they are collecting data,
transmitting data to the system,
and then the system is sitting amendments through Azure and then
ultimately to Power Platform through a power automate workflow.
Here's the example that I'm going to show today.
We have this, this is open-sourced in our app innovation GDP,
GitHub and this is called Tornado Watchdog,
which the name is based on the Azure sample
that I mentioned that I have linked here in the GitHub repo.
But I'm going to talk through the architecture a little bit.
I'm not going to really show the Azure pieces today.
We're going to focus on the low code side but as I said,
there are some devices here running on Edge.
They are sending data to IoT Hub within Azure.
There are some processing that's happening here
with an Azure function and then it's
sending this data to an Event Hub
and storing some data in the Azure Data Lake.
From here to Power Automate,
there's a trigger within Power Automate that
is capturing these events as they come across.
Now also here, there is an arrow to
custom question answering because the idea
here is that we wanted to send notifications to
Teams to let people know that there was some severe weather alert,
but we also wanted something
interactive so someone receives a Tornado watch,
they can say, well what is a tornado watch,
or how fast is a tornado or ask
just general questions about severe weather that can
now go to our cognitive services
and answer the questions back in real time.
Also, we're saving this data in data verse so
that we have a historical power app,
so in case I want to look and see like,
what were all the events there that came through for Tulsa,
Wichita, we're going to search for them in the app.
First I'm going to come across here and show the flows.
This first flow here is
Power Automate workflow that has the trigger from Event Hubs.
It's going to show one of these successful flows.
Here you can see where we're capturing all of
the events as they come available in Event Hub and Azure,
this is the fusion connector here that connects back to Azure.
Then we go through, we have the events that come across
and all of this information about the severe weather alert.
This comes through, we just parse it and add in
a little bit better format so that
then we can send that data to data verse,
and we can also send it to Teams.
Here we're getting the team of people.
We have a Midwest team that's in
our Teams chat that will get all the notifications about
all these severe weather alerts because
essentially they are in cities
that would be near weather devices are recording this data.
Then, for each one of these messages basically,
it loops through each one of the people,
and then it posts the notification in the Teams chat.
Now I'm going to show you this is the Power App.
I have a weather events history
here which now records also these events.
This is just loading from data verse,
all of these events.
If I care mostly about Tulsa,
then I can search get only Tulsa events and then look at
specific ones and I can remove that also here if I say like,
maybe this weather alert wasn't actually a severe event.
It was just some data that came from
the device and remove that if I want to.
The other part that I want to show here is
the chatbot that backs
this chat that we're
going to do within Teams this interactive chat.
There's a concept of topics here within
Power Virtual Agents that also there is
a fallback topic that you can add so that
if your chat does not
fall into these existing topics that you have,
maybe the default topics,
then it will go to a fallback topic.
Within this fallback topic,
you can do calls
to cognitive services like I'm doing here, the flow.
You can also make any other calls to APIs.
Let's say the question that comes in as unrecognized input,
you could send this to an API,
get an answer back that way.
I've created a Power Automate flow that since the questions
to custom question answering
within Azure and look at one of these successful runs here.
Essentially from the Power Virtual Agent,
it's going to send a question like I asked,
what is tornado alley in a previous conversation with the bot?
It's going to send this to Custom Question Answering.
This is the Custom Question Answering connector
here and then here I'm just initializing a variable.
This is just so I can store
the answer that's coming back but basically,
the question will go from
the Power Virtual Agent to question answering.
As the questions come back,
it's going to loop through them.
It's going to select the best answer
and it's going to send that here
across and then it's going to return
the value back to power virtual agents.
Here if I say,
but it's a cyclone that it's going to make that call back
to the cognitive service and that comes
back really quickly considering that it's going through this flow,
it's going all the way back to Azure.
It's sending Azure a question,
it's getting this answer, and here it is.
Within power virtual agents,
you can also use channels so I am using the Teams channel here to
now publish a spot and send it
to Teams so that we can see our alerts in.
This is what it looks like. Here I've
got many alerts coming through
but this is all the data that's coming from
those devices in Azure IoT Hub.
Essentially each device it's in a different city near so Tulsa,
Topeka, Wichita,
and they're all sending different types of alerts
across but if I'm seeing this in Teams then I might ask,
what is a tornado watch?
Because maybe I don't know the difference between a watch
and a warning and when I send that out,
then it will hit that power automate low.
It will send the question to custom answers and
then to custom question answering and then I
will get this answer back here in chat and then I have now
this interactive but in addition to
getting these events that came across.
>> Well, that's really cool.
I love you're using
pretty much every piece of the power platform and we haven't seen,
or at least I haven't seen traditionally a lot of
fusion samples with Power Virtual Agents in there too.
You see a lot of power apps usually end in Power Automate but love
that power virtual agents integration and
even within the context of Teams as well,
to be able to get those proactive alerts
and then have that FAQ back and forth.
That's really cool scenario and I need that personally
living in Tornado Alley myself here in Tulsa.
>> I was thinking of you when I was creating this,
I was like, this is something April will personally care about.
It's really nice too, that Team's connector that I was using
within Power Automate that allows me to
send notifications across to
Teams but if I want those notifications to be really personalized
and look nice then doing it via PVA
is even a little bit nicer
even if you don't want to interact with the bot,
just having your own personalized icon,
and of course, then the new feature,
which is power apps cards.
I'm already thinking about how I'm going to integrate
that into the newest version of this app.
>> Well, that's cool.
We're glad to have you back on the show that
because that was the first thing when I saw that pop up.
Like I will always be cool the power cards too. Very cool.
Well, this is amazing.
Thanks for showing us and just expanding our knowledge here on
different ways so we can integrate from
the ProDev side with the Power Platform.
It's been amazing. Thanks so much for coming on the show, Linda.
>> Thank you. I appreciate it.
>> Thanks and make sure to check out
the sample that's filled with air on
the GitHub repo and we'll see you next
time on Low Code revolution. [MUSIC]