- Coming up, I'll show you how you can automate
your invoice approval processes, infuse intelligence,
and integrate your legacy apps
in just a fraction of the time using Power Automate
and its new robotic process automation capabilities
alongside AI Builder, which are all part
of the Microsoft Power Platform.
If you are new to the Power Platform,
its a powerful low-code platform
that helps you build beautiful, intelligent modern apps
and automations, even as a business user,
without being a professional developer or data architect.
In fact, you can learn more by checking out our recent show
with Charles Lamanna at aka.ms/IntroPowerPlatform.
So let's get started.
We know from studies that automation of invoice processes
can lower the cost associated with human error
by more than 5X.
So I've built a standard invoice processing workflow
using Power Automate.
This starts in a shared inbox,
where new invoices are received.
Now, the key here is that instead
of manually sending approval requests
to the relevant stakeholders, behind the scenes,
it uses AI to extract relevant data fields from the invoice
and then sends an approval request
to the right stakeholders automatically in Teams.
Once approved, this triggers a process
to enter the relevant information
into a legacy invoicing app.
In the past, I would have had to do that manually,
but now I can use robotic process automation
to automatically enter data into my application.
And of course, once the process is complete,
a confirmation notification is sent back to the sender.
So let me show you how you can build this yourself,
starting with a few easy steps,
and I'll show you how to quickly add more powerful
automation along the way without knowing how to code.
I'll start by using Power Automate.
Power Automate is a visual workflow engine
that's included with Office 365.
So to get there, once you're logged into Office 365,
you can get to it from the app launcher
or you can go to powerautomate.com.
In our case, the incoming email
with the invoice triggered our approval process.
So we'll create an automated flow that is triggered
every time an email arrives with an invoice.
I'll click on the tile and give it a name.
In this case, we're creating an invoice processing flow,
so I'll give it invoice processing.
Next, I need to choose my trigger.
You see, there are many different
built-in triggers available.
We'll use one for when a new email shows up.
So in this case, I'll search for email
and from the options, I'll pick when a new email arrives
and click Create.
We've just created a flow that will monitor a shared inbox.
So I can create a connection to it
by clicking on the ellipses.
In this case, I've already connected my shared inbox.
I'll expand advanced options,
so I can set a filter on this action
to only trigger this workflow
if the email has attachments
and I'll pull those attachments.
If I wanted to I could also specify additional filters.
For example, in the subject or the sender,
to limit when this automated flow is triggered,
but I'll keep it simple.
Next, I'll add a new step and choose a connector.
Connectors help you integrate
with other apps, services, and data,
and actions invoke operations within a connector.
There are over 300 built-in connectors
to both Microsoft and other services,
and you can also add your own.
In my case, I want the flow to route this invoice email
to my approval team in Microsoft Teams.
So I'll add a Teams connector
and route this invoice to the channel.
Power Automate is natively integrated with Teams,
so the teams and channels within them show up automatically.
I'll select the team...
and the channel, and I'll add a message.
Next, I'll use data from previous steps
by adding dynamic content.
Here, you see fields available
from the email connector and I'll use "From."
Let's save and test it.
In my case, I'll manually trigger this.
I've got an invoice here,
and I'll send it to the Invoice Inbox.
If we switch to the shared inbox, we'll see it coming in.
This triggers an approval notification in Teams.
And now within Power Automate
I can see the flow completed successfully in six seconds.
So we've automated the routing of invoices
coming from emails into Teams
and that's useful already.
But now let's look at how you could offload
some of the invoice processing to the service
with AI Builder.
I'll select Build to go to AI Builder
to first create a model.
You see AI Builder provides options that guide me through
building dedicated models for different scenarios.
My invoices look like a form,
so I will use Forms Processing in this case.
I'll give it a name,
and now all I have to do is supply five examples of invoices
I've received from a supplier.
These can be PDF files or images.
In my case, I have five invoices
from Contoso that I'll upload.
After uploading, I ask the system to analyze them.
And after a few moments, it shows me the fields
it has detected across the forms.
You see the system is smart enough to extract
both key value pairs, in this case invoice number
but also understands the structure of tables
that have rows and columns.
For our purpose, I'll pull out most of these fields.
Once I've specified these fields,
I can ask AI Builder to go ahead and train the model.
Notice that I'm going through these steps
of defining the model without needing to write Python
or knowing any advanced data science techniques.
I could test it, but to save time
I'm going to publish this model,
making it available for embedding
within my applications and workflows.
Now I've got all this intelligence
wrapped up inside the model,
and I want to use it in my automation
for extracting values from the invoice.
To do that, let's go back into the Flow, and edit it.
Now I add a new action, in this case I want to call
AI Builder, and I'll add a predict action.
I can choose from models I have access to.
In addition, some models like sentiment analysis
are available out of the box.
We'll select the one I've just created, Contoso Invoices.
Next, I'll specify the type of data
that we'll be sending to predict.
AI Builder supports both PDFs and images.
In this demo, I'll assume these invoices are PDFs.
And finally, we'll use the email attachment.
Now my email might have multiple attachments,
and you see the flow designer will recognize that.
As soon as I added this field,
the flow designer automatically recognized
that there might be multiple attachments,
and it gives me a loop that will automatically iterate
over each attachment in my email.
Let's move the teams action to be within this loop.
Next, I want to route this for approval,
using the fields that AI Builder extracts
from each invoice.
To do that let's add a new action that routes the message
to an approver in Teams.
In this case we'll choose a Teams connector,
we'll post a choice of option to the user
and we'll provide them with three custom fields:
Approve, Reject, and Process manually.
This is going to allow them to make the right decision
on each invoice.
Once I specify a process manually,
I can next specify a headline and I'll specify the approver
as a recipient.
I'll also update the message field
to use the information from AI Builder.
In my case I want to first see who the invoice is from,
so I'll search for from, use the from value
I'll also need to use the amount of the invoice.
So lets add that.
I'll search for total amount and use the field
from dynamic content.
Next I want to specify the date of the invoice.
So lets add that string, and search for the date field.
Our date value.
And finally, I'm going to add the job number
or the invoice number, let's search for invoice
and add invoice value.
That completes the dynamic message,
I just need to add a question to the approver
and I'm done.
So this extracts everything from the invoice
to automatically bill the senders for the approver
with info they need using our dynamic content.
Now we have a few possible outcomes,
so let's configure a switch to handle
the three options I just created.
In the interest of time, I've created a Flow
with these options using the concepts we've already covered.
In this case, I automatically reply back to the sender
with approval or rejection.
With a templated email, the process manually option
is represented by default case,
which will post the Teams message post
we saw earlier for manual approval.
This will save the team a lot of time
with manual processes.
In our case, the system is automating the mundane tasks
and routing to people for approval decision
and waiting for the response to continue.
But we could take this even further.
So let's get rid of the final manual step in our process,
which is entering this information
into a legacy system that doesn't have any APIs
or ways to automate data entry.
You will see in this app, there are a set of fields here
that someone enters manually.
Power Automate enables you to do Robotic Process Automation
through a new feature called UI Flows
that can help you automate this process.
Let's create a new UI flow.
In this case I go to flows, click on UI flows
to create a new flow.
And I want to automate a desktop app running on Windows,
so I'll select that option.
I'll give it a name, and next you'll see
a guided experience very similar to the AI Builder earlier.
I'll define the inputs for my UI flow.
I'll enter the first one, invoice number,
give it a sample value and a description.
We'll be matching these in a moment
using the same fields from AI Builder
we've been working with.
For now, these variables will be available
for me to use in the application.
I'll use this process for the next three.
Next, I'll launch the recorder to record my interactions
with the application.
You see the controls on top of the screen.
I'll first click Record.
As part of the data entry
the first step is to find the contact.
So I'll add the field for the email address
and use that to search.
In this case that's chris@contoso.com.
Now I'll click Search to find the contact.
Since we're entering invoice information in our case,
we need to add to our activities tab for this contact
and enter a few values.
First I'll create a new job.
Then I'll grab the invoice number from our fields
and enter that in the activity.
Now I need to grab the invoice date.
Finally for the balance or amount,
I need to grab that, clear what's in there
and input the amount value.
That's all the data we need to enter.
So I'll click Save, and close the app.
That's it!
I'm done with the recording so I can stop it.
Let's review what we've just recorded.
You see the recorder captured all the actions I took.
When I open each item, I see more information.
Here, you can see the screenshot of what was clicked.
And the next one is a step that passes
in contact dynamic field.
What we have done until now is to define a UI flow
that will automatically drive the user interface
of my application by mimicking human behavior,
like left click or enter value.
Let's use this UI flow in our automation.
To do that, I'll go back to Flow
and add an Action with UI flows.
This connector will allow me to invoke the UI flow
we just built.
Since we are automating a Windows desktop app,
let's select that action.
I can create a new connection that includes
a connection name, account credentials and the gateway.
This is the same one we used with Power BI,
allowing us to connect our machine
to the Power Automated service.
In my case, I've previously defined a connection
called a ashvinis-connection.
To the machine running my app, so we'll use that.
And let's select the UI flow we've just defined.
You see as soon as I do that,
Power Automate automatically inspects the UI flow
and exposes the input parameters.
These are the same fields that we define
as part of the UI flow
and now we'll bind these fields with information
AI Builder is extracting from each invoice.
I'll search for invoice, it'll return some options.
I'll select Response labels INVOICE value,
and we'll do the same for the other three.
Contact, invoice amount and date as well.
Once the email is sent, Power Automate will
send a approval request in Teams which includes
all the information AI Builder has extracted
from the invoice.
I'll click Approve and Submit
and now our legacy app is launched.
Now the information extracted by AI Builder
is automatically entered, just like that, hands-free.
Next you'll see that the system responds to me
with an automated approval email that we configured earlier.
And the whole approval process runs in about a minute.
(upbeat music)
So we've greatly reduced approval time and human error
by automating an approval process using Power Automate
with it's new RPA capabilities and AI Builder.
You can get started easily with prebuilt templates
at powerautomate.com.
And for foundational training,
you can walk through our learning path modules
at aka.ms/learntoautomate.
Thanks for watching.
(air swooshing)
(upbeat music)