Power Automate Guidance
Power Automate Guidance
e OVERVIEW
Introduction
Planning phase
Designing phase
Making phase
Testing phase
e OVERVIEW
Introduction
Conclusion
e OVERVIEW
Overview
Setup
p
e OVERVIEW
Overview
c HOW-TO GUIDE
Related content
e OVERVIEW
Create a flow
You can use Power Automate to automate your manual and repetitive
processes so that
you can focus on higher-value tasks.
It's a unique service that you can use to unify cloud
services, desktop applications, and legacy systems.
Do you have a process or task that you want to automate, but aren't quite sure
how?
This documentation can help you plan and design an
automation project, whether
you're a business user, an IT pro, or a professional
app developer who has never worked
on an automation project before.
2. Design: Design your new automated process "on paper," and consider
various
methods of automation.
This video provides a quick overview of process automation with Power Automate
https://www.microsoft.com/en-us/videoplayer/embed/RE4G4jU?postJsllMsg=true
Without writing any code yourself, you can use connectors to access data and use
a
wide variety of application functionality in your automation. For example, you
can use
the connectors for SharePoint and your email program to automate the process of
adding a new item to a SharePoint list when you receive an email
that has a specific
subject line.
Desktop-based RPA
The next question you might have is: what if I have an application that Power Automate
doesn't have a connector for, and I can't create a custom connector
because the app
doesn't have an API? This is where robotic process automation
(RPA) comes in. You can
use RPA to create automation
even in older systems that don't have an API. With RPA,
you
automate applications by teaching Power Automate to mimic the mouse
movements
and keyboard entries of a human user, as if a robot were using the
computer. In
other words, whereas digital process automation provides API connectors
so you can tell the application
what to do, with RPA you show it what to do.
Conversely, RPA is susceptible to breaking when things change, such as when updates
are applied to
a local computer's environment or the layout of an application's screens.
Additionally, you must take great care to ensure that you've been
clear in your
instructions to the robot. For example, if you selected cell B3 in a
worksheet, do you
want the robot to select cell B3 every time? Do you want
it to select the first empty cell
in column B? Do you want it to select the cell
in column B for the row where column A is
set to a specific value? When using RPA,
it's easy to give instructions or assume that
decisions have been made that aren't obvious just
from recording your mouse clicks and
keyboard entries. It might take some iteration
to ensure that you've provided all the
necessary instructions, including what to do
in case of errors.
Power Automate provides both digital process automation and RPA, to bridge what you
can
automate between modern, API-based services and the websites and desktop
applications for which you don't have an API-based connector.
Planning phase
Article • 02/16/2022 • 2 minutes to read
Planning is the most important part in automating your process or task. When planning,
you should consider the following:
Knowing the answers helps you stay on track when you design your process
automation. It's easy to fall into the trap of automating the process as the objective,
rather than
solving the problem.
The elements of planning your process automation are very similar to how you plan
your app creation using Power Apps, and include:
For detailed information about each of these elements in the planning phase, read the
planning section in Power Apps guidance content: Planning phase.
After reading the planning section in Power Apps guidance content, come back and
continue reading the Designing phase in this guidance content.
Process design
Article • 02/10/2023 • 4 minutes to read
When you design a process automation, the first step is to decide when and what
to
automate. Looking at the business process you currently have, you should
first identify
which part of the process to automate.
Streamline approvals
Increase throughput
An example case for the expense reporting scenario is where Abhay needs to
reimburse
cash to the employee by looking up the employee banking details, then
accessing the
banking system.
Streamline approvals
A different type of error occurs when people forget to perform their tasks. You can set
up automation to remind them to work on the task or process that they've been
assigned.
For example, Lee has submitted an expense report but Nick hasn't
responded to the
approval request for some time. An automation can be set up to
remind Nick to make a
decision, and even provide a button to respond directly
from the reminder.
Gain efficiency in high-volume processes
Another area you may want to automate are high-volume processes.
High-volume
processes are processes that occur very frequently on a daily basis.
It is closely tied to
repetitive processes but is slight different. You may have a process that can only have a
step or two that can be automated.
However, if a process must be done many times,
even small improvements can have large impacts.
For example, if the expense reporting scenario holds for 1,000 salespeople, each
minute
of improvement would equate to two working days' worth of time
saved. Analyzing the
actual impact can be done by using the analytics features.
You might also use automation for processes that take too much time compared
to a
human interaction, but is tolerable if done during night time when there's
no rush for
the automation to finish. For example, if a person starts their
day by processing orders
that came in overnight, you might create
automation that processes the orders as soon
as they come in, so that your team can start
fulfilling the orders first thing in the
morning.
Increase throughput
Similar to maximizing the use of available resources, automation also helps you
increase
the throughput of a particular process. With this type of automation,
your current
process can be performed by humans in parallel with the automation.
For example, Abhay the accountant may be the only person processing the expense
reports and their standard work hours may be between 9 AM to 6 PM. By setting up an
automation, you could also have Power Automate to process the expense reports as
well, and therefore have both Abhay and the automation to process it, resulting
in a
higher throughput.
Example scenario
When all of the automation areas are applied, the example below shows how an
expense reporting business process can be covered by Power Automate with
improvements to throughput, maximizing the available resources, automating data
entries as well as streamlining approvals.
After the process design is complete, the next step is architectural design, where
you
focus on how you'll automate that process.
First you determine what kind of connector you can use (if any), and then choose a
trigger to start the automation.
If there are no connectors available, you have the following options to choose from:
Use the HTTP connector: If you're a developer and have one-off scenarios where
you need to connect to
systems that have no connectors available—but you don't
want to set up custom
connectors—your next-best method is to use an HTTP
connector. More information from Azure Logic Apps documentation: Add an HTTP
trigger
Create a web browser automation: If you can't find a connector, and if the system
is a web browser–based
application or a website, you should consider web browser
automation.
Web browser automation mimics keyboard inputs and mouse
movements as if a human were using the browser. You can build a browser
automation process with Power Automate Desktop.
Create a desktop application automation: If you can't find a connector, and if the
system is a desktop application on
a PC, this is the automation method to use.
Power Automate has capabilities that mimic human keyboard inputs and mouse
movements. For desktop application automation, you create a new Power
Automate Desktop process with Power Automate Desktop.
Automated triggers
Scheduled triggers
Automated triggers
With an automated trigger, the system automatically starts the automation when
a
condition is met. (Note that not all connectors include automated triggers.)
An example use case for the expense report might be to set an automated trigger
to
start an approval flow when a new row is created in the Expense Approvals
table in
Dataverse. This ensures, for example, that when a form is created with Power Apps,
which creates a new row in Dataverse, an approval flow is automatically triggered.
Scheduled triggers
Scheduled triggers run at a specific date and time, and are
repeated periodically. They're
useful for situations where you need to
automate a task that occurs daily, weekly, or
monthly.
In the expense report example, the accounting team might use a scheduled trigger to
send an automated email every Friday when the weekly BI report is ready.
With any of the automation methods you use, the automation is going to be either
attended or unattended.
Attended Unattended
Sign-in isn't required because the automation assumes Windows Sign-in is automated with
that the system is already signed in. predefined user credentials
In the expense report example, the approval process can be automated with
unattended
automation. The cash reimbursement process might be better suited to attended
automation, because Abhay might want to check the details of the bank transaction
as a
final confirmation.
Next step: Separate flows into smaller automated processes
Separate flows into smaller automated
processes
Article • 02/16/2022 • 2 minutes to read
When you're setting up an automation, try to architect your flows so that you
don't have
a single automation that covers the entire process. There are several reasons why you
should make multiple, smaller flows:
Maintenance is easier.
There's no need to restart the automation from the beginning if a step fails.
In the example below, one automation has been set up for an approval process,
covering multiple
processes with a single automation.
If for example, the cash reimbursement process fails, the whole automation will
be
considered a failure. If a requirement or specification for looking up employee
banking
details changes, the whole process will have to be suspended until the updates are in
place.
Instead, you can separate the automation into modules, as shown in the following
image.
In this example, Automation #2 depends on the previous automation to
set the status of
the expense report to "Compliance
check complete." However, if there's a problem with
the mail system and
Automation #2 fails, the tasks in Automation #1 will still be
completed. Only tasks in Automation #2 will need to be restarted.
Your automation will probably access data and systems that are protected
by requiring
users to sign in. Different automation scenarios require Power
Automate to use different
authentication methods.
Before you set up your automation, you should ask yourself how you currently
sign in to
the systems or computers to do the tasks manually. Below are some
examples of
different types of authentication (sign-ins) that can be used when
automating with
Power Automate.
To set up the automation, make sure you have the necessary authentication
(sign-in)
information ready. You'll need this information when you're making a new connection to
set up your automation, setting up to access data via an on-premises data gateway,
or
when using desktop flows.
In any automation, there will be an input and an output. Before you start automating
processes
with Power Automate, you need to define what these are.
The following example shows how you can define the inputs and outputs.
In the expense approval scenario, Abhay must take the following steps to reimburse
an
applicant who submits an expense form:
3. If the request is approved, Abhay sends an email to the employee to let them
know.
Employee's employee Input To search in the employee management system for the
number banking number.
This might look overwhelming, but the majority of the inputs can be retrieved
automatically. For example, the employee's name and email can be retrieved if
the
automation is triggered manually by the employee.
By default in Power Automate, you can see inputs and outputs in the run history for a
flow. When you enable secure inputs and outputs, you can
protect this data when
someone tries to look into the inputs and outputs and instead display the message
"Content not shown due to security
configuration."
It may well be that some of the data you retrieve from a system needs to be
transformed
to be understood by other systems used later in the process. For
example,
you might need to convert local time to Coordinated Universal Time (UTC), or convert
one currency to another. To make your data understandable in another system, you can
convert it into a different format. Be sure to take data formats (and format conversions)
into
account when you design your process automation architecture.
Here are some of the ways you can transform and format your data.
Built-in actions
You can use built-in actions to convert values and strings to different formats.
Expressions
Expressions are Excel-like equations you can use to convert and manipulate data.
The lists of different expressions are listed below:
String functions
Collection functions
Conversion functions
Math functions
Workflow functions
When sending email notifications and Microsoft Teams messages, sometimes you might
not want to send them as yourself but you still want to ensure that people
who receive
them can reach you.
Add a signature
When using automation to send emails and post messages, you want people to know
where they're coming from. A shared mailbox helps the recipient realize that the
message isn't coming from you directly. However, in case the
automation breaks or
starts triggering too quickly, you should
be easily reachable to correct the problem. This
is especially important if the
automation works with people outside your organization or
in external systems where the
recipient might not be aware of your flow. People might
even want to contact you to
suggest ways to improve your flow! We use a signature like
"Sent with
Power Automate. Contact <your email> with questions." You might also find
it
helpful to link to the specific flow so that you can find it quickly if someone
forwards
you the email.
You should always design your automation so that there's a plan B—to make
sure your
business process can continue even if the automation doesn't work.
This isn't to suggest
that Power Automate is an unreliable system, but
connecting with different systems
increases the risk of failure, which can be
caused by reasons unrelated to Power
Automate.
In general, you should consider using connectors whenever possible because they're
more robust and aren't as fragile or easily affected by screen design changes
as web and
desktop application automation. If no connectors are available, but you do have web
APIs or other methods of system integration, you
should consult your IT pro or
development teams to help you set up custom connectors.
Screen design changes (so the bot can't tell how to proceed)
Screen design changes (so the bot can't tell how to proceed)
Retry policy
You can use this feature of Power Automate to set up policies that will
automatically
retry an action if it fails. By default, this is set to retry four times, but you can change it if
you need.
This way, you can keep track of how long it took for each end-to-end run of
automation
to be completed, and possibly find ways to make your
automation even better.
If you store this data in Dataverse, you can use Power BI to identify which part of the
process took the longest time to complete.
Based on the design considerations mentioned previously in this section, this flowchart
can help you determine how to architect your automation.
You have now planned and designed how you'd like to automate your process.
The next
step is to set up the automation.
More information: Create a cloud flow in Power Automate, Create a flow from a
template in Power Automate
5. If needed, set up triggers and links between cloud flows and Power Automate
Desktop.
After you've finished making your flows and automation, the next step is for you to test
it. You should consider testing all possible patterns and outcomes of your
flows. This is
because your flow might not simply fail, it might run but produce
unexpected results.
Testing all patterns will reduce this risk.
We recommend that you record your results in the Actual result column in a table like
the following, to make sure you've covered all
possible combinations that might fail.
1-2 Check whether report Compliance Email sent to employee to fix the
meets compliance not met expense report
1-3 Check whether report Compliance Notified flow maker and logged
meets compliance check fails failure to the "flow runs" feature.
3 Email sent to employee to Email send Notified flow maker and logged
fix the expense report fails failure to the "flow runs" feature.
Tip
To simulate email send failures, try sending a test email to a nonexistent address.
For data entry: Create a step to make new record, followed by another flow
to
delete the same record.
For sending data: If possible, set up a test environment on the system you want to
send the
data to.
This article describes the tools you can use to check your flows for basic errors and
detect
errors that occur when the automation runs.
Flow Checker
This tool checks for issues and errors in the automation you've created. After you feel
that you've completed setting up your automation, run the
Flow Checker to see if you've
made any mistakes. More information:
Find and fix errors with Flow Checker
Repair tips
If your automation fails, repair tips are automatically sent to whoever created
or owns
the automation. These tips contain actionable information
about the failure. More
information: Troubleshooting a flow
In the example below, when the Get manager (V2) action fails to run, the
**Send an
email notification (V3)"**action is executed.
Next step: Deploying and refining phase
Deploying and refining phase
Article • 02/16/2022 • 2 minutes to read
Keep in mind that the access applies not just to the flows themselves but
to the
connections they use. For example, if your flow sends mail from a shared
mailbox, make
sure that the co-owners have access to that mailbox in case they
need to re-create the
connection.
Use solutions
Solutions are a great way to organize flows to manage versions and migrate from
one
environment to another. You'll need to start by adding (or asking your admin
to add) a
Microsoft Dataverse database to your environment. After that's done,
you can go to the
Solutions tab to create a new solution for your team, or you
can create multiple
solutions if you have a lot of flows that you'd like to
further organize. There are a
number of other benefits too, such as native storage
for your data, child flows to reuse
functionality, and solution export as a
backup. Solutions do have some known
limitations, though, so this might
not apply to all your flows.
Mark it as production
Solutions are the recommended way to organize flows, but sometimes your flow
can't
go in a solution, or sometimes your solution will get crowded with other
drafts and
proofs of concept. Either way, we recommend prefixing the names of
your production
flows with "[PROD]" so that co-owners know to leave it be unless it has issues.
After you've successfully deployed your automation, you can assess its impact
by
comparing your original business process against your new process, using the
success
metrics you defined. Your automation results are stored for 30 days,
during which you
can view them to analyze the total number of actions and runs
in a day.
1. Go to My flows.
3. Select Analytics.
1. Hover over the graph that shows the data you want to export.
5. Select Export.
Get the flow run duration
To see the duration of each flow run
1. Go to My flows.
The CSV file includes start time and end time of each run. You can use Excel to
recalculate the duration and do additional analysis (such as finding the average
duration).
To get the duration in seconds, use the following formula:
To get the average duration, obtain the total the number of durations, and
divide it by
number of runs (no. of rows).
Now that you have the number of runs and duration of the runs, you'll be able
to find
out how much time your automation has saved by comparing it with the
previous
manual process.
Example scenario
Let's take the scenario from cash reimbursement as an example.
Based on the flow run analytics, Abhay can see that the automation ran between 91 to
110 times a day, for an average of 107 runs.
The duration of the automation obtained is 40 seconds on average. Therefore, the time
reduced per run is:
Time before automation (3 minutes + 5 minutes) − time after automation (40 seconds)
= 440 seconds
Because the automation ran 3,226 times in 30 days, total time saved is:
Reduced time (440 seconds) × number of runs (3,226 times) = 1,419,440 seconds =
394.28 hours
Action analytics
To review whether your automation has reached its limits, you can use action analytics
to get better insight into how much
you're using your actions.
1. Go to My flows.
3. Select Analytics.
When your automation has slowed down, it's a good idea to revisit your flow
design and
check for additional efficiency that can help reduce the number of actions
being
executed.
For flows that are consistently getting delayed due to overages, flow owners
also receive
a notification informing them about these overages with tips and
tricks about how to
keep flow run execution from being delayed.
The following image shows an example of an email that was sent for a flow that was
consistently running up against action limits.
A misconfigured flow can sometimes reach these limits, which usually manifest as errors
[429] or timeouts [5xx] in your flow runs. It's important to note that
these limits vary
based on the connector or service you're using within your
flow.
Introduction to SAP GUI–based RPA in
Power Automate Desktop
Article • 02/16/2022 • 2 minutes to read
Executives who implemented RPA in their organizations have experienced the positive
impact it brings. Increasing the level of automation is a top strategic priority at most
organizations.
Many of these of organizations use SAP to manage their finance, supply chain,
production, and human resources processes. They're looking for ways to automate their
most frequent, mundane, and rules-based tasks. That's exactly what we'll be focusing on
in this playbook: SAP GUI automation patterns and best practices using Microsoft Power
Automate, Power Automate Desktop, and desktop flows.
Here's an introductory video for the series of automating SAP GUI-based applications
with Power Automate Desktop:
https://www.microsoft.com/en-us/videoplayer/embed/RWJE53?postJsllMsg=true
This playbook takes you through prototyping the automation of an example SAP
scenario. However, it's important to understand that building sophisticated, robust, and
impactful RPA solutions that span multiple legacy systems takes time. And, as shown in
the following image, most of this time is spent on production readiness, including
advanced retry and exception handling.
Next step: Prerequisites for automating RPA SAP GUI
Prerequisites for automating SAP GUI-
based workloads
Article • 02/16/2022 • 2 minutes to read
The following prerequisites need to be met before you can start automating your SAP
GUI–based workloads.
License requirements
To build RPA solutions with Power Automate, you'll need one or more of the following
licenses or add-ons:
Power Automate per user plan with attended RPA (or trial)
Power Automate per user plan with attended RPA + unattended RPA add-on
Software requirements
Before you can use your device to create desktop flows and Power Automate Desktop
processes, you'll need to ensure that it meets the requirements outlined in Set up Power
Automate Desktop.
The latest version of desktop flows, which includes Power Automate Desktop and
browser extensions (make sure you've enabled the browser extensions)
On-premises data gateway (make sure the data gateway region matches your
environment's region) or use the latest direct machine connectivity option.
d. Select Display.
f. Confirm with the SAP team that S_SCR authorization is assigned to all
automating users.
7 Note
After you've changed the value, you might get a warning that says,
"Change not permanent, will be lost at server restart." To avoid this issue,
make the configuration permanent on the server side by using transaction
RZ10 instead. You'll need to restart the SAP server for these settings to take
effect.
2. Open SAP GUI Options, go to Accessibility & Scripting > Accessibility > Use
accessibility mode, and then select any other checkboxes that you need.
3. Open SAP GUI Options > Accessibility & Scripting > Scripting, and under User
Settings, select Enable scripting. Clear all other options.
4. On the SAP GUI Options screen, go to Security > Security Settings, and under
Security Module, select Open Security Configuration. Change the Default Action
to meet your specific requirements, and then select Ok.
Tip
You can select Allow as Default Action to avoid a security dialog appearing
during file save operations.
5. Gather use-case reference test data: Search for an active employee in your SAP
system and make a note of their Personnel number. Also make a note of a valid
Info subtype (for example, 2 = Temporary address).
7 Note
The address format we're using in the sample use case is based on US
requirements. Depending on your requirements, the field list and mandatory
fields might be different, so make sure you select controls that are relevant to
your setup.
Next step: Core components for Power Automate RPA SAP GUI automation
Core components for Power Automate
RPA SAP GUI automation
Article • 09/08/2022 • 2 minutes to read
Here are the four components needed to automate SAP GUI with Power Automate:
Power Automate
Desktop flows
Power Automate Desktop
On-premises data gateway
Power Automate
Let's start with the core platform service called Power Automate. Power Automate is an
enterprise service that helps you create automated workflows by using your favorite
apps and services to synchronize files, get notifications, collect data, and more. Learn
more in Get started with Power Automate and in our learning catalog.
Power Automate Desktop broadens the existing RPA capabilities in Power Automate. In
conjunction with desktop flows, all repetitive desktop processes can be automated.
You can use prebuilt drag-and-drop actions or record your own cloud flows to run later.
The following image shows an example of the Power Automate Desktop console,
showing desktop flows to which an individual has access.
The following image shows an example of the Power Automate Desktop designer, from
which you can create desktop flows.
On-premises data gateway
The on-premises data gateway acts as a bridge. It provides quick and secure data
transfer between on-premises data (data that isn't in the cloud) and several Microsoft
cloud services. These cloud services include Power BI, Power Apps, Power Automate,
Azure Analysis Services, and Azure Logic Apps.
By using a gateway, organizations can keep databases and other data sources on-
premises, while securely using that on-premises data in cloud services.
We've provided the following simplified example, which we'll use as the base for our
automation tutorials.
Let's say your organization doesn't have employee self-service functionality, but you
want to allow employees to add a second address to their personnel profile by using a
flow that they manually trigger.
7 Note
The following procedure was developed as an example for this playbook. Your HR
department can provide you with the exact steps for you to follow to add the
second address to SAP.
7. On the Maintain HR Master Data form, select Back (F3) to return to the starting
point of your process recording.
Next step: Pro-code RPA with SAP GUI in Power Automate Desktop
Pro-code RPA with SAP GUI in Power
Automate Desktop
Article • 02/16/2022 • 2 minutes to read
The VBScript-based approach is well-suited for RPA Center of Excellence (CoE) teams
because they typically consist of a mix of IT pros, pro developers, security specialists,
and business analysts whose charter is to create, maintain, secure, and scale enterprise
automation solutions across the organization. With these diverse skill sets, they can
pursue more complex SAP GUI automation techniques than those that citizen RPA
developers undertake.
One of these techniques involves using VBScript to interact with the underlying SAP GUI
Scripting API . In fact, SAP includes its own proprietary SAP GUI automation engine
that generates VBScript output that's based on user interactions that are captured
during screen recording.
The good news is that you can use the VBScript that the SAP GUI automation engine
generates in a Power Automate Desktop action. To use this VBScript, all you have to do
is to replace the manually entered text that was captured during recording with dynamic
inputs in Power Automate Desktop.
Take a look at this video (episode 8 of the series) to learn more about the pro-code
approach for automating SAP GUI-based applications:
https://www.microsoft.com/en-us/videoplayer/embed/RWJZLc?postJsllMsg=true
Next step: Record VBScript with the SAP GUI automation engine
Use SAP GUI automation engine to
record VBScript
Article • 02/16/2022 • 2 minutes to read
2. Open SAP Logon, and then select the SAP system to which you want to sign in.
3. Select Customize Local Layout (Alt F12), and then select Script Recording and
Playback.
4. Select More.
5. Under Save To, provide the path and file name where you want to store the
captured user interactions.
6. Select Record Script to start the screen capturing process.
7. Follow the steps outlined in Sample SAP GUI automation for this tutorial to
produce a recording.
8. Select the Record and Playback dialog, select Stop Recording, and then close the
dialog.
SAP's scripting engine records each click as VBScript commands and saves it to the
output file you provide. Open the file in your code editor of choice to examine its
contents.
The following image shows the anatomy of an SAP GUI automation script.
In this step of the RPA Playbook for SAP GUI Automation with Power Automate tutorial,
before we switch over to Power Automate Desktop, let's review all the hard-coded value
references in your VBScript and decide which ones to replace with dynamic input
variables.
%NewVar%
%file_path%
%Street%
The following image shows an example of replacing a hard-coded value with a variable.
Your script should look like the following after you've introduced variables.
Next step: Create a desktop flow that connects to SAP
Create a desktop flow that connects to
SAP
Article • 02/16/2022 • 2 minutes to read
In this section, we'll create a new flow with Power Automate Desktop and use the
previously prepared VBScript code in a Run VBScript action within the flow.
3. Select the Power Automate Desktop designer window, and then select Variables.
4. Select the plus sign (+), and then select Input to create several input variables.
You'll pass these variables into the flow from a desktop flow.
5. First, we'll create a few technical SAP variables, which will be needed in almost all
SAP-based automation flows. For each variable, enter the Variable name, External
name, and Description, and then select Update:
SAPPassword
SAPUser
SAPClient
SAPSystemId
6. Create the following use-case–specific variables:
EmployeeId
AddressType
EffectiveDate
Street
City
State
ZipCode
CountryCode
7. In the Actions pane, search for Run application and then drag it onto the design
canvas to create our first process action.
8. Enter the following information in the parameter list, and then select Save:
9. Now search for the Wait action, drag it onto the design canvas, enter 10 seconds
wait time into the Duration field, and then select Save.
10. Search for the Run VBScript action, drag it onto the design canvas, and paste the
previously generated and optimized VBScript into the VBScript to run field, and
then select Save.
11. Open the SAP Logon 760 (your version might differ) application, connect to an
SAP system, and then sign in to SAP Easy Access.
12. In Power Automate Desktop, select the UI elements icon on the right pane, expand
Add UI element, and then select Add a screen.
13. Bring SAP Easy Access to the foreground, and then hover over the outermost
frame of the SAP Easy Access window until a red border labeled Window appears.
While the border is active, hold down Ctrl, and then click to select the window.
14. Repeat steps 12 and 13 for the SAP Logon 760 (your version might differ) window.
You should now see the following in the UI elements pane.
15. Search for the Close Window action, drag it onto the design canvas, and then in
the Window dropdown menu, select Windows 'SAP Easy Access'.
16. Repeat step 15, but this time select Window 'SAP Logon 760'.
17. Select Save. Your authoring canvas should look like this now.
That's it! You've just configured your first SAP GUI automation desktop flow with Power
Automate Desktop. In the next step, we'll set up a cloud flow that provides the input
variables based on the employee's request.
Next step: Create the cloud flow with the Power Automate portal
Create the cloud flow with the Power
Automate
Article • 02/09/2023 • 3 minutes to read
You can close both Power Automate Desktop windows and then go to the Power
Automate designer . Here, we'll create a Power Automate cloud flow that calls our
desktop flow by using secure input parameters from the cloud.
7 Note
This cloud flow is designed as a "happy path," which means it has no exception
handling, scoping, or try-catch-finally patterns. You can find a more resilient design
approach in the Low-code RPA with SAP GUI in Power Automate Desktop section.
1. Go to Power Automate , sign in, and confirm that you're in the same Microsoft
Dataverse environment as the one you were in when you created the previous flow
in Power Automate Desktop.
2. On the left pane, select My flows, select New flow, and then select Instant cloud
flow.
3. In the Build an instant flow dialog, enter a flow name, select the Manually trigger
a flow trigger from the list, and then select Create.
4. This opens the designer, and it should look similar to the following image.
) Important
The next steps will involve configuring action components. To securely pass
parameters into our desktop flow, we'll be following the optional, but
recommended, approach of using Azure Key Vault secrets.
7 Note
If you don't have access to Key Vault, you can skip the following steps that
show you how to configure Key Vault and provide your credentials and other
parameters later as clear text. Microsoft does not recommend that you use
clear text credentials in production environments.
6. Search for Azure Key Vault Get secret, and then select Get secret action.
7. If this is the first time you've configured Key Vault in a flow, you'll get a prompt to
set up a connection. You can choose to connect either through user credentials or
a service principal account (which we recommend for production scenarios).
10. Turn on Secure Inputs and Secure Outputs, and then select Done.
7 Note
These settings will hide sensitive text from the run flow history.
11. Select ..., and then select Rename to enter a more specific action name—for
example, Get SAP User.
14. Select My Clipboard, and then select the name of the previously copied action—in
our example, Get SAP User.
15. Select ..., and then select Rename. Enter a more specific action name—for example,
Get SAP Password.
16. Repeat steps 14 through 18 for all other Key Vault–based secrets.
17. Select New step.
18. Search for Desktop flows, and then select Run a flow built with Power Automate
Desktop.
19. If this is the first time you've used the desktop flow action, you'll be prompted to
create a connection. Provide your Gateway name, Domain and username
(DOMAIN\User), and Password.
20. After the connection is established, select the previously created desktop flow.
21. Select Attended – Runs when you're signed in as Run Mode.
22. Enter each parameter field and either select the appropriate data from the
Dynamic content pop-up window (such as SAP System Id, SAP Client, SAP User,
and SAP Password) or manually enter placeholder data (for all the other
parameters in the list). If you aren't using the Key Vault option for your SAP
credentials, enter them manually and in free text instead.
23. After you've renamed the action to something meaningful and supplied all
parameters, the action should look like this.
Test the flow
1. Close all SAP windows.
3. Select Test, and then under Test Flow, select Test again.
6. Select Done.
) Important
Don't interact with your mouse or keyboard until the process completes.
) Important
This is an optional topic that covers the certified SAP ERP connector which allows
automation developers to connect to SAP through Business API (BAPI) and remote
function calls (RFCs). The prerequisites you'll need to meet before performing this check
are described in a blog post .
Let's extend our current scenario to include a validation check that uses the SAP ERP
connector to check whether the personnel number supplied to the flow is valid and that
the employee is in an active employment state. Depending on the results of this check,
we'll decide whether the flow ends.
Frees up virtual machine and bot capacity to run only on validated data.
1. Edit the SAP RPA Playbook Demo Flow you created in Create the cloud flow with
the Power Automate portal.
3. Search for SAP, and then select Call SAP function (preview).
4. For Authentication Type, select SAP Authentication. Enter the Data Gateway, SAP
Username, and SAP Password.
7 Note
You'll need to supply your credentials manually. You can't use Azure Key Vault
secrets here because Power Automate validates the connection at design
time.
5. Select More (...), and then select Settings.
6. Turn on Secure Inputs and Secure Outputs, and then select Done.
Tip
Use these settings to hide sensitive text from the run flow history.
9. Under Check whether the personnel number exists, select New step.
10. Search for, and select, Condition. Rename the condition to something meaningful,
and then select the dynamic content TYPE for the Choose value field.
11. Drag the desktop flow action SAP RPA Playbook onto the If yes box.
12. In the If no box, select Add an action, search for Send an email and configure the
email action as shown in the following screenshot.
1. In the If no box and below the email action, select Add an action. Search for
Terminate and configure the Terminate action as follows.
2. Go back up to the SAP RPA Playbook Demo Desktop flow action and enter a
personnel number that doesn't exist into the EMPLOYEE ID field.
3. Select Save, and then select Test to test your flow with the nonexistent personnel
number.
4. The resulting flow run should look like the following image.
5. Select Test again, but this time use valid personnel number. Confirm that the
results look like the following image now.
That's it. By incorporating the SAP ERP connector we've made the automation more
efficient, intelligent, and user-friendly.
Next step: Low-code RPA with SAP GUI in Power Automate Desktop
Use low-code RPA with SAP GUI in
Power Automate Desktop
Article • 02/16/2022 • 2 minutes to read
With the addition of Power Automate Desktop, it's quicker and easier to develop low-
code SAP GUI automation. You can use Power Automate Desktop to build from simple
to highly sophisticated end-to-end automation. To showcase this, we'll perform the
steps outlined in Sample SAP GUI automation for this tutorial by using Power Automate
Desktop actions. We’ll do some minor tweaks afterward in the designer. To make our
automation dynamic, first we'll need to create some variables that we'll use to fill in data
—like street, city, and country—and also system variables to connect to your SAP
system.
Next step: Create an SAP desktop flow with Power Automate Desktop
Create an SAP desktop flow with Power
Automate Desktop
Article • 02/16/2022 • 7 minutes to read
1. To create a desktop flow, open Power Automate Desktop, and then select New
flow.
2. Enter a name for the desktop flow, and then select Create.
You'll create several input variables which will be passed into this desktop flow
from a cloud flow.
5. First, we'll create a few technical SAP variables, which will be needed in almost all
SAP-based automation flows. For each variable in the following list, enter the
Variable name, External name and Description, and then select Update.
SAPPassword
SAPUser
SAPClient
SAPSystemId
6. Next, create the following use-case-specific variables.
EmployeeId
AddressType
EffectiveDate
Street
City
State
ZipCode
CountryCode
7. Next, we'll create our first process action. Search for, and then drag the Run
application action onto the design surface.
8. Enter the following information into the parameter list, and then select Save.
9. Search for the Wait action, drag it onto the designer, enter 10 (seconds) into the
Duration field, and then select Save.
10. Now, open SAP GUI and sign in to your system of choice.
11. In Power Automate Desktop, search for the populate action in the Actions search
box, and then drag the Populate text field in window action onto the canvas.
16. In the SAP window, hover over the green check mark button, and then hold down
Ctrl and click.
17. Enter transaction code PA30 into the list box, and then select the green check mark
button.
18. We'll continue our field selection process on the next screen.
23. Enter the transaction code PA30, and then select Save.
24. On the right pane, select the UI elements icon. Select each control in the list and
rename it.
Tip
This step isn't required, but it's highly recommended because your control
library might include dozens of controls, making it difficult to identify them by
their system names.
30. Under UI element select Employee id, and then select Select.
31. Select Save.
32. Enter populate into the Actions search box, and then drag the Populate text field
window action onto the canvas.
33. Under UI element select Employee id, and then select Select.
34. Select the icon, which is in the Text to fill-in text box, and then select
EmployeeId.
41. Select UI element, and then select the Add new UI element button to bring up the
Tracking session dialog.
42. The Tracking session dialog appears.
) Important
For the following steps, you'll need valid SAP reference test data as outlined in
step 5 of the SAP GUI scripting configuration prerequisites.
43. Enter values for Personnel number, Period From, Infotype (always provide 0006,
because this is a standard type in SAP systems), STy (this is the Infotype subtype),
and then select Create (F5).
44. Hover over Address line 1. A red frame surrounds the field Gui Ok Text Field. Hold
down Ctrl, and then click to add the control to the UI elements list, which shows
up in the Tracking session dialog.
45. Repeat step 44 for these fields as well: City/county, State, Zip code, Country key,
and the Save (Ctrl+S) button.
46. In the Tracking session dialog, select Done.
) Important
48. On the right pane, select the UI elements icon. Select each of the newly added
controls in the list, and then rename them. This isn't mandatory but highly
recommended because your control library might include dozens of controls,
making it difficult to identify them by their system names.
49. Enter populate in the Actions search box, and then drag the Populate text field
window action onto the canvas.
50. Select UI element, and then select Street.
51. On the Text to fill-in box, select the fx icon, and then double-click to select the
Street variable.
52. Select Save.
53. Repeat steps 50 and 52 with these controls: City, State, and ZipCode.
7 Note
SAP GUI combo boxes need special handling, which requires us to use a
combination of actions to select the correct list items within combo boxes.
54. Enter click UI into the Actions search box, and then drag the Click UI element in
window action onto the canvas.
55. Select UI element, and then Country.
56. Keep the default value for Click type.
57. Enter send keys into the Actions search box, and then drag the Click UI element in
window action onto the canvas.
58. In the Text to send field, select the fx icon, and then double-click to select
CountryCode.
59. Amend the %CountryCode% text by typing {Enter} right after the variable name.
The {Enter} reference mimics an Enter keystroke on your keyboard.
60. Drag another Send keys action onto the end of the flow.
61. Enter {Enter} into the Text to send field, and then select Save.
62. Enter press button into the Actions search box, and then drag the Press button in
window action onto the canvas.
) Important
Confirm that the save operation is complete for the SAP record before you
interact with other controls or windows.To make sure the operation is
complete, add a Wait action to wait for a control to become visible.
65. Enter wait into the Actions search box, and then drag the Wait for window
content action onto the canvas.
66. Under UI element, select Employee id, and then select Select.
67. Select Save.
68. Enter press button into the Actions search box, and then drag the Press button in
window action onto the canvas.
71. Hold down Ctrl while clicking to add the control to the UI elements list in the
Tracking session dialog. (Note: we kept this form open in step 46.)
72. Now, select the Back button (without the Ctrl key) to go back to the previous
screen.
75. Rename the button we've just added to the control library to Back button.
76. Enter close window into the Actions search box, and then drag the Close window
action onto the canvas.
77. Under UI element, select Window "SAP Easy Access", and then select Save.
78. Enter close window into the Actions search box, and then drag the Close window
action onto the canvas.
79. Under Window, select Add a new UI element.
80. Hover over the outer window frame of the SAP Logon 760 window. Hold down
Ctrl and click to add the window element to the UI elements list, which appears in
the Tracking session dialog.
81. Under UI element, select Window "SAP Logon 760" (the number 760 reflects the
SAP GUI version, so this might differ in your environment), and then select Save.
82. Select Save.
Now, let's modularize our current flow by moving actions that carry out specific
interdependent tasks (in our scenario, filling out a form) into a new subflow.
2. Go to the Main tab for the Subflows area, select the highlighted actions shown in
the following image (rows 4 through 11), right-click, and then select Cut.
3. Go to the ProcessHRMasterForm tab, right-click to select it, and then select Paste.
5. In the Actions search box, enter run subflow, and then drag the Run subflow
action onto the canvas. For Call subflow, select ProcessHRMasterForm, and then
select Save.
6. Create another subflow, name it ProcessEmployeeAddressForm, and then select
Save.
7. Go back to the Main tab.
8. On the Main tab, select the highlighted actions shown in the following image
(rows 4 through 14), right-click, and then select Cut.
9. Go to the ProcessEmployeeAddressForm tab, right-click to select it, and then
select Paste.
10. Go back to the Main tab.
11. In the Actions search box, enter run subflow, and then drag the Run subflow
action onto the canvas. For Call subflow, select ProcessEmployeeAddressForm,
and then select Save.
Before we continue with the primary flow in the Power Automate portal, let's test the
flow by temporarily assigning a default value to the variables that we defined earlier.
1. In the Variables pane, select More (…) next to the AddressType variable name, and
then select Edit.
3. Select Update.
If you run into an error as your flow is executed for this test run, observe the error status
bar in the lower part of the Power Automate Desktop designer and apply the
appropriate fix.
) Important
Delete all default values before you leave the desktop flow authoring experience in
Power Automate Desktop.
Next step: Create the cloud flow to update an address with Power Automate
Create the cloud flow to update an
address with Power Automate
Article • 02/09/2023 • 4 minutes to read
Now, we'll create the cloud flow that employees use to request an updated address. This
cloud flow passes the input variables to the desktop flow you created in the previous
section.
We highly recommended that you create cloud flows, desktop flows and other Microsoft
Power Platform artifacts within solutions to allow for better portability, application
lifecycle management (ALM), and encapsulation.
2. Confirm that you're in the same environment as the one in which you built the
desktop flow with Power Automate Desktop, and then select Solutions > + New
solution.
5. Select + Add existing, select Desktop flow, select the flow you created in Power
Automate Desktop, and then select Add.
6. Select + New > Cloud flow.
7. Give your flow a name, and select Manually trigger a flow as the trigger.
8. Select + Add an input, and then select the appropriate data type to create the
eight inputs listed in step 9.
9. Add the following inputs to the flow trigger.
10. Select New step.
7 Note
The following Azure Key Vault action configurations are optional, so if you aren't
using Key Vault today, or you just want to test your desktop flow without it, feel
free to skip them.
12. If you don't have an existing Key Vault connection, you'll be prompted to create
one. You can sign in either with an Azure AD user account or a Service Principal
(recommended).
13. Let's assume you select Connect with Service Principal.
14. After you establish the connection, add four Get secret Key Vault actions to the
canvas, select the secret, and then rename the actions as shown in the following
image.
15. Select More (…) next to the action name, select Settings, turn on Secure Inputs
and Secure Outputs, and then select Done. Repeat this step for the other three
Get secret actions.
16. Select the plus sign (+), and then select Add an action.
17. Enter scope into the search box, and then select the Scope action.
18. Drag all your Key Vault actions onto the Scope container, and then rename it to
Try.
19. Search for, and then select, the initialize variable action to add it under the trigger.
20. In the Initialize variable dialog, make the following settings, and then select OK in
the Expression dialog:
21. Add two scope actions. Name them Catch and Finally.
22. In the upper-right corner of the Catch scope, select …, and then select Configure
run after.
23. Select has failed, is skipped, and has timed out, and then select Done.
24. In the upper-right corner of the Finally scope, select …, select Configure run after,
and then select the is successful, has failed, is skipped, and has timed out
checkboxes. Select Done.
25. Search for, and then add, the set variable action to the Catch scope container.
26. Select the Bot failed variable, enter true in the Expression dialog, and then select
OK.
27. Search for the condition action, and then add it to the Finally block.
28. Select the Bot failed variable from the Dynamic content list and then assign it to
the Choose a value field.
29. Set the expression to false, and then assign it to the value field.
32. In the Try container, select New step. Search for Desktop flows, and then select
the Run a flow built by Power Automate Desktop action to add it to the flow.
33. Select your data gateway and then enter a domain, username, and password for an
account that has sufficient privileges to run your desktop flows.
) Important
Your on-premises data gateway must be deployed into the same region as
your environment; otherwise, it won't appear in the dropdown list.
34. For Desktop flow, select SAP RPA Playbook Demo. For Run mode, select
Attended – Runs when you're signed in.
35. Select the System Id field, and then select value from the Get SAP System Id
action output in the Dynamic content list.
36. Check the expected date time format in SAP and make adjustments if needed by
using the formatDateTime function. For example, use
formatDateTime(triggerBody()['date'],'dd.MM.yyyy') to get a date formatted day-
month-year, as in the German-formatted date of 13.10.2020.
37. Supply the data for all other fields by selecting the appropriate property from the
trigger Dynamic content list for the cloud flow.
38. Select Save to save the flow.
40. Select I'll perform the trigger action, and then select Save & Test.
41. Authenticate if needed, and then select Continue.
42. Supply values for all variables, and then select Run flow.
43. Select Done.
7 Note
Don't interact with your mouse or keyboard until the process is completed.
The cloud flow starts and calls the desktop flow, which enters data into SAP.
Congratulations! You've successfully implemented two SAP GUI automation techniques.
We're excited to see what you build next with SAP and Power Automate.
Next step: No-code RPA with SAP GUI in Power Automate Desktop
Use no-code RPA with SAP GUI in Power
Automate Desktop
Article • 02/16/2022 • 2 minutes to read
You can use the Power Automate Desktop recorder to record SAP GUI interactions. The
desktop recorder translates each mouse click and keystroke into Power Automate
Desktop actions, and then adds these actions to your desktop flow.
If you want to see the new desktop recording experience in action, follow these steps to
reconfigure the action-based automation you built in the Low-code RPA with SAP GUI in
Power Automate Desktop section of this playbook.
You can also follow along in the no-code approach in episode 6 of the video series:
https://www.microsoft.com/en-us/videoplayer/embed/RWJEiJ?postJsllMsg=true
1. Select the ProcessHRMasterForm subflow tab, and then select Desktop recorder.
2. Open SAP, bring the SAP Easy Access window to the foreground, and then in the
Desktop recorder window, select Start recording.
3. Enter PA30 into the Transaction field, and then select Enter.
6. Enter a date in the From field, and then select the New icon.
7. Enter a street name along with a house number in Address line 1.
8. Enter values for City, State/zip code and Country key, and then select Save.
9. Select the Back (F3) icon.
10. This completes the address creation process, so select Finish in the desktop
recorder window.
11. Your desktop flow script should look similar to the following image.
12. During recording, you might have accidentally selected windows or other UI
elements that aren't relevant to your flow. If this happens, you can remove
duplicate or unnecessary action steps from the script.
17. Highlight the actions that you'll need for the employee address creation subflow,
right-click the actions you selected, and then select Cut.
18. Open the ProcessEmployeeAddressForm subflow, select all actions, right-click,
and then select Delete.
Awesome! With this new desktop recording option, some minor action tweaks, and a bit
of refactoring, you've reduced development time and simplified the overall desktop flow
action definition process.
) Important
Delete all previously defined default values before you leave the desktop flow
authoring experience.
Next step: Extract data from the SAP GUI UI with Power Automate
Extract data from the SAP GUI UI with
Power Automate
Article • 02/16/2022 • 5 minutes to read
When you create or update records in SAP, it generates status information which
includes the newly generated record IDs. SAP displays this status information in the
lower part of the SAP UI.
Here's a sample status message that SAP displays after you create an SAP PM
notification.
This status information might be useful for the automation process steps later.
Therefore you should extract and assign this status data to variables for downstream
data processing.
We have multiple ways to achieve this, depending on your development approach. The
two approaches are low-code or pro-code techniques.
Pro-code approach
The pro-code approach uses VBScript commands to extract information from SAP UI
elements.
To extract SAP status data, such as a newly created purchase requisitions or plant
maintenance notification numbers, you need access to the status bar UI element.
session.findById("wnd\[0\]/sbar/pane\[0\]").Text
Let's walk through the end-to-end experience. We'll record how to create an SAP PM
Notification and modify the code that's generated to return the newly created Id to
Power Automate Desktop.
In case you've never heard of SAP's PM Notification or you don't have access to it, don't
worry you'll still be able understand the steps needed to extract such data for your own
scenario.
Here are the steps:
2. Open SAP Logon and select the SAP system to which you want to sign in.
3. Select Customize Local Layout (Alt+F12), and then select Script Recording and
Playback....
4. Select More.
5. Under Save To, provide the file path and filename where you want to store the
captured user interactions.
6. Select the Record Script button to start the screen capturing process. Every
interaction you do now in SAP is captured as repeatable VBScript commands.
7 Note
If you recorded steps and saved to this file before, you'll need to confirm if
you want to overwrite the file.
9. Enter a Short Text, Planner Group, Main WorkCtr, and any other field that you
need.
11. Back in the Create PM Notification initial form, you'll notice a new status message
in the status bar in the lower-left corner of the UI.
12. Select Exit (Shift+F3) on the toolbar, and then stop the recording.
13. Optionally, log off from SAP and close all SAP windows.
This sets the VBScriptOutput variable of the Run VBScript action to the newly created
notification ID.
If you want to see the contents of the VBScriptOutput, you can use a display message
action, similar to the output in the following images.
Low-code approach
The low-code approach uses actions and custom selectors to extract newly generated
record IDs or other status messages that are important for downstream flow processing.
The following steps won't go into detail about how to record or use manual action
design to create a new SAP PM Notification record. Please review Low-code or No-
code RPA with SAP GUI in Power Automate Desktop if you need a refresher on how to
do that.
1. Use the desktop recorder or manual action design to capture all controls that you
need for the SAP PM Notification process.
2. Create a notification record, and capture the status text that appears after you
select Save on the toolbar of the Create PM Notification screen.
After the item is saved, you'll be redirected to the previous screen where you
should see a new notification number in the status bar text.
3. Now, go back to Power Automate Desktop, search for an action named Get details
of a UI element in window, and add it to your authoring canvas.
4. Select the UI element dropdown menu, and then select Add a new UI element
button.
5. Select the SAP Easy Access window and hover over the status bar until a red
border labeled Gui Statusbar appears. While the border is active, hold down Ctrl
and then click to select the status bar.
6. Select Save.
7. Search for the Replace text action in the Actions pane, and drag it onto the design
canvas.
8. In Text to find, enter Notification. Under Replace with, enter a blank string by
entering the following characters: %''%
9. Add another Replace text action, and rename the Variables produced to
%NotificationId%. In Text to find, enter save, and under Replace with, enter a
blank string (%''%).
10. Search for the Trim text action on the Actions pane, drag it onto the design
canvas, select %NotificationId% as Text to trim value and rename Variables
produced to %TrimmedNotificationID%.
11. Search for the Display message action on the Actions pane, and drag it onto the
design canvas. Set Message box title and Message to display to suit your needs.
12. Run the automation that creates a new SAP PM Notification and extracts its newly
generated notification ID that can be displayed as shown in the following image.
Next step: Summary of the benefits of VBScript vs. actions for SAP GUI
automation
Summary of the benefits of VBScript vs.
actions for SAP GUI automation
Article • 02/16/2022 • 2 minutes to read
As with many other technologies and techniques, there are pros and cons for each
approach. Depending on the type of developer you are, you might find that a certain
approach better fits your intended use case and skill set.
There will be occasions when combining both techniques will be beneficial, like adding a
VBScript action with some Excel VBA code to support advanced formatting as part of
your action-based automation.
Faster development
Faster execution
Lower maintenance
Reusability support
Next step: Conclusion of RPA Playbook for SAP GUI automation tutorial with
Power Automate
Conclusion of RPA Playbook for SAP GUI
automation tutorial with Power
Automate
Article • 02/16/2022 • 2 minutes to read
By taking advantage of known and proven SAP recording techniques, combined with
the latest and greatest cloud and desktop automation authoring tools in Power
Automate, we were able to build an end-to-end SAP RPA prototype in less than an hour!
Of course, we've only looked at the happy path for this use case, but it already includes
some important security best practices and recording tips and tricks.
Now that you understand the basics of using Power Automate to automate SAP, you
can use the Power Automate documentation and best practices guidance (including the
Automate It! video series) to automate your most frequent, mundane, and rules-
based tasks.
Tips for using Automation Kit for Power
Platform with ALM
Article • 09/20/2022 • 2 minutes to read
Organizations can use any of the following three ways to implement application lifecycle
management (ALM).
Manual Actions
Manual activities can include the following.
Automated Actions
Azure DevOps and the Microsoft Power Platform Build Tools for Azure DevOps provide a
great way to automate manual ALM activities and more. Together with Power Automate,
you can orchestrate a complete set of activities.
For organizations that prefer to use GitHub instead of Azure DevOps, there is a preview
version of GitHub Actions for Microsoft Power Platform which offers a subset of the
Azure DevOps functionalities. Power Platform Build Tools webinar and live demo .
The ALM Accelerator for Power Platform includes a set of prebuilt tools and templates
to accelerate your ability to build and deploy automation solutions.
Overview of the Automation Kit
Article • 12/01/2022 • 2 minutes to read
The Automation Kit is set of tools that accelerates the use and support of Power
Automate for desktop for automation projects. The kit provides tools that help you
manage automation projects and monitor them to estimate money saved and return on
investment (ROI).
The Automation Kit applies the HEAT (Holistic Enterprise Automation Techniques) to
support your organization.
The kit is especially useful to an Automation Center of Excellence (CoE) team, which is a
team of experts who support automation within your organization. They have good
knowledge about Power Automate for desktop, set up and maintain the Automation Kit,
and maintain the configuration data such as departments, process categories, goals, and
more.
The goal of the Automation Kit is to enable organizations to manage, govern, and scale
automation platform adoption based on best practices. The Automation Kit provides the
following items in support of your Automation Center of Excellence.
Near-real time ROI / SLA: Short and long-term analytics to drive towards your
business goals.
Tools for all users: These tools are for makers (citizen and pro developers), your
Automation CoE team, and executive sponsors.
End-to-end automation lifecycle: These tools help to automate and manage all
aspects of hyperautomation scenarios, including ALM and templates to drive
consistency.
Enterprise readiness: Helps to secure, govern, audit, and monitor your automation
deployment.
Use satellite environments to develop and test your automation projects before you
deploy them to production. The production satellite monitors and meters the solutions
and solution artifacts for an automation project.
The data from the metered solutions syncs to the main environment in near real time for
monitoring on a dashboard.
Conceptual design
The Automation Kit has the following conceptual design components.
The key element of the solution is the Power Platform main environment.
There are usually several satellite production environments that run your automation
projects. Depending on your environment strategy, these could also be development or
test environments.
The Automation Kit, along with the ALM Accelerator from the Power Platform CoE Kit,
supports your Automation Center of Excellence strategy.
The process can start by setting goals for your overall automation ambitions, such as
target savings over one, two, or three years, or target efficiency gains.
The executive sponsor from a business unit, who could be a manager or managing
director, would collaborate to share responsibility and own the overall business process
improvement ambitions.
The automation owner, who could be the head of an individual department (for
example, Finance) or sub-department (for example, Accounts Payable), specifies and
develops the automation solutions.
The automation team often needs collaboration with the Microsoft 365 or Power
Platform Center of Excellence team to enable the Automation Center of Excellence.
These teams can provide guardrails, governance, and best practices. For unattended
automation, they will need infrastructure provisioning, networking, and security to
support the operation of the deployed solutions.
For the risk and compliance side of the diagram, the corporate rules, regulations, cyber-
security, data privacy, and auditing requirements owners must be consulted and
involved in the process.
Automation lifecycle
The Automation Kit supports the journey from ideation and project definition to
production automation with SLA and ROI measured with near real-time reporting.
The left side of the diagram shows various stakeholders or participants in the process.
The center of the diagram displays specific components that are related to each part of
the process.
Bot developers
This includes citizen developers who need a guided experience to go from identifying an
opportunity for building a bot, to building, deploying, and maintaining it.
Infrastructure Ops
Partner with the infrastructure operations team to ensure that an efficient provisioning
process exists.
An Automation CoE may not always have full access to perform these activities.
Executive sponsors
Monitor and track outcomes against goals. The Automation Kit helps you track projects
from early in the bot development lifecycle. Key elements can include assigning the
business case to the project and tracking the impact that the automation project it's
delivering.
In the Automation Kit dashboards, you can view the outcome for a particular use case
and the value that's being obtained through the investments.
ALM components
Code Review: Reviews for solutions in Azure DevOps with the ALM Accelerator.
The ALM Accelerator Azure DevOp extensions allow the solution to be unpacked
and the script definition from the exported solution versions to be compared for
changes side by side.
Monitoring: The Automation Kit provides a near real-time tracking process to
measure the impact of deployed solutions.
Data Loss Prevention: Determine the impact of DLP rules on deployed desktop
flows using the Automation Kit.
Dashboard and Data ETL: Synchronize data from multiple environments to a
centralized dashboard to monitor the impact of deployed solutions.
The Automation Kit and the ALM Accelerator can be combined to help customers grow
their maturity in adopting best practices.
The dotted blue boxes indicate the maturity model areas that the Automation Kit
addresses using the Holistic enterprise automation techniques (HEAT). Dotted green
boxes indicate areas address by the ALM Accelerator.
Empower
The Automation Kit can be used with Hackathons to help validate possible automation
projects and monitor the impact of the Hackathon experiments.
The ALM Accelerator enables profiles to be created that enable RPA solutions to be
deployed between development, test and production environments.
Use the ALM Accelerator to define deployment environments and deployment settings
for machines and machine groups along with environment variables.
Build and implement
Use the ALM Accelerator to automate the deployment of RPA solutions so that the
Automation Kit can monitor them.
Use the near real-time ROI automation to monitor the impact of automation projects.
See also
ALM Accelerator for Power Platform - The ALM Accelerator is released as part of
the CoE Kit and provides tools and templates to provide enterprise-scale end-to-
end Application Lifecycle Management.
Admin and Governance Whitepaper
Manage Power Automate for desktop on
Windows https://aka.ms/padonwindowspnp
RPA Migration Whitepaper https://aka.ms/PAD/RPAMigrationWhitepaper
Prerequisites to install and use the
Automation Kit
Article • 12/07/2022 • 2 minutes to read
The following prerequisites are required to install and use the Automation Kit.
Roles
Microsoft Power Platform service admin or Dynamics 365 service admin.
Account must be mail enabled.
Azure contributor role (for Key Vault and app registration).
KV-Contoso-Dev
KV-Contoso-Test
KV-Contoso-Prod
7 Note
The Automation Kit uses the new Azure Key Vault secrets (preview).
Azure Key Vault must have Get secret access policy set for the Dataverse service
principal.
3. Select Create.
7. Click Next.
8. Click Next.
9. Click Create.
License requirements
All users must have one of the following licenses:
The Creator Kit uses a component library and code components. You must enable code
components inside all the environments into which the Automation Kit will be installed.
2 Warning
You'll have to uninstall and potentially lose all data if the Power Apps component
framework for canvas apps isn't turned on for the environments where the
Automation Kit is installed or upgraded. Enable the component framework before
installing or upgrading.
The following checklist provides an overview of the key steps, to assist you in setting up
the Automation Kit.
Use this checklist to ensure you have followed the key steps in the setup instructions.
ROI calculations
Example data:
Frequency Daily*
# of FTEs to Process 1
# of FTEs to Fix 1
Overhead 15%
Total Cost per Year = Cost to complete (per Year) + cost to remediate (per year)
Cost to Complete (per Year): ((((FTE Cost/60) x # of FTEs to process) x time to process
(mins)) x frequency)
Cost to Remediate (per Year): (((Frequency x (Error Rate/100)) x Time to Fix (mins)) x FTE
Cost/60) x # of FTEs to Fix))
Cost to Complete (per $12,550 (((FTE Cost/60) x # of FTEs to Process) x Time to Process) x
Year) Frequency
Cost to Remediate (per $522.92 ((Frequency x (Error Rate/100)) x Time to Fix (mins)) x ((FTE
Year) Cost/60) x # of FTEs to Fix)
Cost element Calculation
Cost to Remediate (per $20.83 (Cost to Remediate (per Year) / (Frequency x (Error Rate/100))
Instance)
Total Cost per Year $13,072.92 (Cost to Complete (per Year) + Cost to Remediate (per Year)
Total Cost per Month $1,089.41 (Cost to Complete per Year / 12)
) Important
Perform all steps using the Automation CoE Admin account mentioned in the
prerequisites.
Once the environment is created, enable the Power Apps component framework.
Wait for the Creator Kit to finish importing before continuing to next step.
This process usually takes 5-10 minutes. So, you can easily do this step while the main
solution is being imported.
2. Select the My flows tab on the left > New flow > Instant cloud flow.
3. Under the button trigger, add the Start and wait for approval action to the flow.
Here is an example of how you can configure the Start and wait for approval
action.
To learn more about approvals provisioning, go to Power Automate Approvals
Provisioning Overview and Troubleshooting .
This must be done for all environments in which the Automation Kit is installed, such as
main and all satellites.
1. Sign in to Azure .
2. Go to Azure Active Directory > App registrations.
3. Select New Registration.
4. Enter a name (for example, Automation CoE Dataverse API), leave everything else,
and then select Register.
5. In the Overview tab, select Add an Application ID URI.
6. Select Set, leave the default, and then select Save.
3. Enter description (for example, Auto CoE Dataverse), and then select appropriate
expiry value.
4. Select Add.
6. Go back to the Overview tab, and then copy down the following information.
Application (client) ID
Directory (tenant) ID
7. Next, go to your Azure Key Vault. (This is where we'll store the values so that Power
Automate can use them to call the Dataverse Web API.)
Create secrets for the client ID and tenant ID
you copied earlier
1. Inside the Secrets tab, select Generate/Import.
2. Use a descriptive name for each secret. Here are a few examples.
KVS-AutomationCoE-ClientID
KVS-AutomationCoE-TenantID
KVS-AutomationCoE-Secret
3. Select Users + permissions > Application Users > New app user.
Tip
8. Select Create.
This must be done for all environments in which the Automation Kit is installed, such as
main and all satellites.
1. To get the information for the environment variables, open a new tab.
2. Go to the satellite environment from the maker portal .
3. Select the Settings in the top right nav bar and select Developer resources. The
information on this panel will be copied to the Key Vault secrets that follow.
Next, we need to get the URL path for our Azure Key Vault secrets.
The Azure Key Vault secrets are using the environment variable type. These environment
variables need to be in the following format.
Azure CLI
1. Sign in to Azure portal , and then open your Key Vault with the secrets for your
app registration.
6. At the end of the URL, add /{SecretName}. Replace {secretname} with your secret
name.
7. Do this for all three Azure Key Vault secrets (Client ID, Client Secret, Tenant ID).
Refer to the example in the screenshot. These reference strings are needed for
three environment variables.
Use this information for the environment variables.
Environment Description
variable
name
AKV Client ID Azure Key Vault secret for client ID (application ID) from app registration:
Secret /subscriptions/{Subscription ID}/resourceGroups/{Resource Group
Name}/providers/Microsoft.KeyVault/vaults/{Key Vault Name}/secrets/{Secret
Name}
AKV Client Azure Key Vault secret for secret from app Registration
Secret Secret
AKV Tenant Azure Key Vault secret for Tenant ID from app Registration
ID Secret
Automation The email address where operational reports and alerts should be sent to, for this
CoE Alert environment. (See Flow exception rules framework)
Email
Recipient
Automation Enter the Automation Project app Id of the Power Apps that is deployed with the
Project app main solution (main environment)
ID
Environment Use Session details to find this value from current environment that you're
ID importing into (satellite)
Environment Region of the satellite. Can be found in the Power Platform admin center
Region
Environment Description
variable
name
Environment Use Session details to find this value from the current environment that you're
Unique importing into (satellite) Also must add .crm to the end of the string. Example:
Name unq08ed139e532b4edc8f38851fd1bb3279.crm. Please note that the extension
'crm', 'crm[x]', and more. is region dependent. See datacenter regions
*Environment Use Session details to find this value from Main. Also must add .crm to the end
Unique of the string. For example: unq08ed139e532b4edc8f38851fd1bb3279.crm. Please
Name of CoE note that the extension 'crm', 'crm[x]', and more. is region dependent. See
Main datacenter regions
Environment Open a new tab and then sign in to the Power Platform admin center .
URL
Flow Session This is the UserID (GUID) from the Users table inside the satellite environment for
Trace Record the admin account. Select Tables under Data on the left > User > Data. Change
Owner Id the view to "All columns". Find the Auto CoE Admin account, and then copy the
value under User.
For each of the security roles that follow, execute these steps:
1. Select the column security profile, Desktop Flow Script Field Security.
3. Select Add.
4. Once the popup opens, search for the user to whom you want to assign this
profile.
6. Select Select.
7. Select Add.
Disable syncing of desktop flows script
(optional)
Article • 12/01/2022 • 2 minutes to read
By default, the Desktop flows definition script is stored inside the Desktop Flow
Definition table. This field could contain sensitive information.
2 Warning
System Administrators and higher can view the definition tables and fields by
default.
Follow these steps in the environment in that contains the solution to disable sync.
7 Note
You must stop and then start all flows in an environment after you make changes to
environment variables for the flows to get the new environment variable values.
See Limitations.
) Important
The script field isn't synced back to main due to security. You can extend the
Automation Kit to configure your environment to sync data back to main, if
needed.
Frequently asked questions about the
Automation Kit setup guidance
Article • 12/01/2022 • 2 minutes to read
This article provides answers to some of the most common questions about the
Automation Kit.
Region URL
Region URL
NAM crm.dynamics.com
DEU crm.microsoftdynamics.de
SAM crm2.dynamics.com
CAN crm3.dynamics.com
EUR crm4.dynamics.com
FRA crm12.dynamics.com
APJ crm5.dynamics.com
OCE crm6.dynamics.com
JPN crm7.dynamics.com
IND crm8.dynamics.com
GCC crm9.dynamics.com
GBR crm11.dynamics.com
ZAF crm14.dynamics.com
UAE crm15.dynamics.com
GER crm16.dynamics.com
Region URL
CHE crm17.dynamics.com
CHN crm.dynamics.cn
You can also review Environment variables are not editable after you import a solution
and Environment variables continue to use the old values after a manual change to learn
more.
GetDataverseSolutionArtifacts.Run failed
Details
This error happens inside the Automation Solution Manager app (inside a satellite) when
you try to view the solution artifacts.
Answer
1. The application user isn't created in the satellite environment. Create application
user inside Dataverse (Per satellite Env)
There are a few things you need to configure when you first import the kit.
First, add an automation goal. Follow these steps to add an automation goal.
1. Sign in with your Automation CoE Admin account, and then go to the main
environment.
You'll use the automation center app to configure how the Automation Kit
operates.
4. Select New.
5. Fill in the required fields. The following table presents some sample data as a
guide.
Field Value
Period To 11/1/2022
Next, we'll make further configurations. This configuration is split into the following
three sections:
1. General - Configuration that's related to resources and processes.
2. ROI calculation - Configuration that's used as a scoring metric to better determine
the estimated ROI and complexity of an automation project.
3. Console configuration - Information that pertains to the Automation Kit apps. This
configuration is used to build a console where users can launch the related apps.
Environments
4. Repeat the previous three steps for all of your Satellite environments (DEV, TEST,
PROD, and so on).
Departments
1. On the Department tab, select New.
Accounting
Enterprise Integration
Finance
Human Resources
Information Technology
Logistics
Operational Change Management
Purchasing
Process categories
2. Create top level categories that will have child categories (subcategories). Here is a
sample names of the categories that an organization may need.
Artificial Intelligence
Claims
Invoicing
Legacy System
Process subcategories
Define the subcategories that relate in some way.
1. Select New Process Sub Category and define the subcategories as your
organization needs. Here are some samples you can use as a guide.
2. Artificial Intelligence
Forms Processing
Forms Validation
3. Claims
Return
Warranty
4. Invoicing
Internal
External
Other
5. Legacy System
Complex
No API
Other
Roles (app roles)
These roles don't give access to anything. They're used as lookups for the fallback
record, if needed.
Field Value
Field Value
3. Create developer role – This role is optional and is used to sync maker information
back to main.
Field Value
Type Developer
1. Define one fallback record. Use the following screenshot as a guide for your
fallback record.
Steps to configure ROI calculation
Inside the Setup page, you can find the ROI calculation configuration. These tables are
used to calculate the complexity of each Automation Project (scores). Some values are
also used for estimated ROI and savings.
Value Score
Daily 12
Hourly 18
Monthly 3
Quarterly 1
Weekly 5
Average automation steps scores
The following table contains some examples, and it's fully customizable based on your
organization's needs and processes. The table is used to get the score for the average
automation steps which the user inputs when they request a new automation project.
You can modify this table per your needs.
>= 1, < 5 1 5 1
Value Score
daily 15
hourly 20
monthly 5
quarterly 2
weekly 10
Configuration - console
The automation console app and the project approval automation use these tables.
Automation Manage and configure all aspects of your automation Follow these
Center resources steps.
How to get canvas app URL/ID
Sign in to the maker portal , and then perform the following steps:
3. Select Details.
4. Copy the AppID.
3. Select Details.
4. Select Properties.
) Important
You may need to switch to classic mode to see the properties pane.
Flow exception rules framework
Article • 02/09/2023 • 3 minutes to read
The flow exception rules framework is the combination of components in the satellite
solution.
This custom-built framework introduces new automation capabilities that are aimed at
automation Center of Excellence (CoE) or operations teams. It allows you to define
custom exception handling rules that are automatically applied to failed desktop flow
runs that meet certain threshold criteria.
Feature details
Desktop flow execution results together with their statuses are automatically stored in a
Dataverse table named process (flowsession is the internal name) which allows us to
build custom solutions that further process its data in automation. A common use case
is to automatically turn off a parent cloud flow if its child desktop flow reports three
consecutive errors, including the same error code, such as WindowsIdentityIncorrect or
NoUnlockedActiveSessionForAttended.
Components
These components are part of the Automation Satellite solution.
Table Flow Session Exception This table is used to define exception rules.
Rule Configuration
Table Flow Session Exception This table is used for flow exception logs and
downstream analytics.
Cloud flow Flow Session Exception This is the main processing flow that takes processing
Sync instructions from the rule configuration.
Security Flow Session Exception Provides full CRUD permissions to the Flow Session
Role Admin Exception data captured in above’s tables.
Environment Automation CoE Alert Defines the email address or distribution list where
Variable Email Recipient operational reports and alerts should be sent to.
These steps must be done with a user with the following roles.
7 Note
If you don't see the tables mentioned in the previous step, confirm that you have
the roles mentioned.
This table contains the field names and the corresponding values.
Field Value
When you launch the Power BI template, enter the URL for the environment you wish to
report on.
7 Note
Status Overall: Overall count and percentage of failed vs. successful flows for the
environment.
Total Exceptions by Rule: Displays the total number of flow runs, categorized by each
exception rule setup through the flow exceptions framework.
Failure Rate by Type: Displays the total number of errors for the environment across all
flows, the number of successful runs, and the percent of frequency for each error
compared to all other errors.
Exceptions by Month: Displays the total number of exceptions triggered for each rule
according to the flow exception framework, categorized by month.
Flow Exception Detail: Displays the detailed information for the flow exceptions.
Flow Exceptions Tree Diagram: Displays and allows you to drill into specific flows
organized into the following categories: cloud flow name, desktop flow name, error
code, error message, run mode, or host name.
Feature details
The recently launched preview for DLP support for Power Automate for desktop actions
is a critical and highly requested governance feature addition, as most organizations
expect the same governance breadth and depth for RPA as we have for the Desktop
Power Automate based flows.
This new DLP support allows even the most risk-averse organizations to enable Power
Automate for desktop. Power Automate for desktop enables citizen automation
developers to achieve unprecedented productivity gains and save thousands of hours by
automating highly repetitive and error-prone tasks, leading to higher employee and
customer satisfaction.
Administrators and CoE teams can define which action groups and individual actions
can be used as part of desktop flows created with Power Automate for desktop. In the
case of policy violations (for example, VBScript isn't allowed, but it's used in a desktop
flow), the platform notifies the maker that the action is disabled by the policy and
prevents the flow from being saved. However, it’s important to note that bots that are
already developed and deployed might also be affected by policy changes, potentially
causing production bots to stop without prior notice.
Components
Component Description
Canvas App DLP Impact Analysis for Power Automate for desktop
- Environment ID
- Environment URL
You can access this app in the main or any satellite environment.
Module: This is the module to which the action belongs (for example, the scripting
module).
Action: The individual actions that are under Module > Scripting. These include,
Run DOS command, Run JavaScript, Run Python script, and more.
7 Note
The Power Automate for desktop DLP impact analysis app is in both main and
satellite environments. The satellite versions only display desktop flows that are in
the current environment. Open the app from main to get an overview of all the
satellite environments.
7 Note
The script field in the Desktop Flow Definitions table doesn't sync to main from
satellite environments.
Use the filter pane on the left to filter by Scripting module, to see which desktop flows
would be impacted.
Tip
Select the desktop flow name to go directly to the flow.
This article details how to use each component in the Automation Kit:
Functionality
The Automation Console app is used to launch Automation Kit apps. You must update
the information for the apps manually. The setup process goes over configuring the
Automation Console
Features
The automation console is a console-like dashboard of all apps to enable you to launch
any of them from one place.
The designated business owner must approve the automation project before
development begins.
The Power BI dashboard contains a scatter plot of all saved or submitted automation
projects, which is useful to decide which automation projects are good candidates to
develop.
Project Contributor Sees only automation project requests that you created.
Main screen
On this screen, you can perform the following tasks.
1. Project information section: Fill out the information as it relates to the automation
project.
2. Business owner field: This is the approver for the request. If no business owner is
selected, the fallback is used.
3. ROI information section: Provide this information as it relates to ROI for the
automation project.
4. Command bar: Use for new, save, edit, and submit tasks on the form. This submit
button is available after the automation project has been saved.
Some fields are required to save the form. This is because when you submit a request, a
flow (Calculate ROI saving potential for automation project) runs. This flow calculates
the complexity score and then populates this information when you select the save
button.
Learn more about how to create and maintain the configuration data in setting up the
Automation Kit.
After a solution is created in or imported into the satellite environment, a CoE admin
maps the solution to an automation project.
Data syncs from the satellite environment to the main environment using real-time
trigger flows inside of the satellite. Only solutions that have been mapped (using the
Automation Solution Manager app) will sync data back to the main satellite
environment.
2. In the new screen, select your automation project from the list. If it's not listed,
select the Refresh button until it appears.
3. Select Submit, and then select Yes on the confirmation screen that appears.
3. Click rename flow (only available to unmanaged solutions). The naming convention
should apply automatically.
4. Click Save.
7 Note
The last 3 digits will default to 001. If you have multiple solutions for a single project,
you could increase that number by 1 for each additional solution if you wish to
distinguish them. Read more about the naming convention.
We can get to the solution screen from the home screen by selecting the name of the
mapped solution.
Once selected, the + icon switches to a meter. Now, data flows to main (flow sessions). If
this option is grayed out, then the cloud flow doesn't follow the naming schema.
[Rename the cloud flow](./use-automation-kit.md#rename-a-cloud-flow-to-match-
naming-convention, if needed.
Main dashboard
The main Power BI dashboard has the following sections:
Home: This screen provides an overview of key KPIs for the Automation Kit.
Project Backlog: Provides details of the ideas and projects submitted, status, and
ranks based on estimated savings and complexity.
Business KPI: Displays business details for savings realized, efficiency, hours saved,
and other business metrics.
Goals: Outlines savings and efficiency goals for the organization and the status by
department and project.
ROI: Overall ROI for the projects implemented.
Flow Run Detail: Detailed information on flow runs, durations, status, run modes,
hosts, and errors.
Run Performance: Shows a graphical display of run performance day over day.
Flow Exceptions Tree Diagram: Displays and allows you to drill into specific flows
organized by categories, including cloud flow name, desktop flow name, error
code, error message, run mode, or host name.
Action Usage Analysis: Includes functionality similar to the Automation Kit DLP
impact analysis Power App but with added Power BI filters.
Action Decomposition Tree Analysis: Tree-like diagram that shows how each
action module or flow relates.
ROI Calculations: Contains examples on how calculations related to ROI and
efficiency are determined throughout the dashboards.
Detail pages
Every detail page consists of the following items:
CoE admin Power Platform admin (or system admin for all environments used)
Automation Console app
Automation Project app
3. Create a new automation project request by selecting the + or selecting the New
Project tab.
Question Value
Department ANY
Processing Time 85
ROI
Automation Steps 14
Maintenance Overhead % 10
2. Select the Refresh button within the app until the ROI and score show up. These
should show up in a few seconds.
3. Now, select the project record for approval, and then select the Submit Project
button.
Now that the request has been submitted, it can be approved or rejected by the
business owner, or if none was provided, the fallback approver is used.
If this is the first time an approval is being used within this environment, it'll take around
5 minutes for the approval solutions to initialize. This is only a one-time event, and you
can avoid it by following the steps laid out in the setup steps.
) Important
Perform step five only after the automation project is deployed to the test
environment.
6. Map the automation project to the test environment.
) Important
Perform step six only after the automation project has been deployed to the
production environment.
3. If the department publisher does not exist, create one for the department to use.
5. Create a cloud flow that will trigger the desktop flow. Name the cloud flow using
the following naming convention: [CloudFlowName][AutomationProjectNumber]
[3digits].
3digits The last 3 digits can be used for advanced use cases and are
typically 001 if you only have one solution per automation
project. If you have multiple solutions for a single project, you
could increase that number by 1 for each additional solution
to distinguish them.
7 Note
The renaming process can also be done easier inside the Automation
Solution Manager app.
The cloud flow should trigger the desktop flow based on the frequency defined in the
automation request.
CoE admin maps the solution to automation project by metering the solution and its
artifacts.
Next, we can validate the ROI calculations using Power BI and the Excel ROI calculator.
1. Take the same information you entered into the automation project app, enter it
into the Excel ROI calculator.
2. Compare Power BI with the results from the Excel ROI calculator.
Limitations and resolutions for issues in
the Automation Kit
Article • 02/09/2023 • 2 minutes to read
Resolution
1. Go to Power Automate .
2. On the left pane, select Solutions.
3. Select the Default Solution and change the filter to show Environment Variables.
4. Select a variable that you want to update, and then configure its Current Value.
Resolution
For canvas apps, the new value will be used during the next session (for example,
closing the app and then playing it again).
7 Note
You must deactivate and then reactivate cloud flows for them to use the updated
value.
Can't meter non-solution aware flows
Issue
At this time, the current solution can't meter any flows that aren't inside a solution.
Resolution
Cloud flows must follow a specific naming convention before they're used for metering.
Resolution
All solution-aware cloud flows that you want to be metered must follow a new naming
convention that is internally being validated using RegEx (AP-[0-9]{9}[0-9]{3}\b). Here's
the expected format.
[CloudFlowName]AP-[9digits][3digits]
Tip
You can select the disable naming convention button inside the solution manager
app to bypass this requirement.
Resolution
Turn off parent cloud flows if they're configured to allow them to be turned off.
Issue
If you configure your flows to require acknowledgements when they fail, all flow runs
remain in a waiting stage until either you acknowledge the email or the flow times out.
There's a limitation where only new or modified desktop flows will be analyzed and
shown in the app.
Resolution
7 Note
You can use a solution to extend the Automation Kit to sync all desktop flows in an
environment with the RPA CLI .
More information
Read more on how to use the RPA CLI for the Automation Kit .
Released versions for the Automation
Kit
Article • 12/01/2022 • 2 minutes to read
The Automation Kit is published in GitHub. Feature requests and bug fixes are worked
on in Issues .
View the Latest Releases to learn what bugs have been fixed and what new features
have been introduced.
Feedback and support
Article • 01/11/2023 • 2 minutes to read
Although the underlying features and components used to build the Automation Kit
(such as Microsoft Dataverse, admin APIs, and connectors) are fully supported, the kit
itself represents sample implementations of these features. Our customers and
community can use and customize these features to support an Automation CoE in their
organizations.
The core features in Microsoft Power Platform, Power Automate, or Power Apps
Use your standard channel to contact Microsoft Support.
Automation adoption best practices
overview
Article • 10/07/2022 • 2 minutes to read
Microsoft Power Platform adoption best practices for Automation CoEs provide proven
guidance for establishing and scaling an Automation Center of Excellence in your
organization. It consists of best practices, documentation, and tools.
By using these best practices, organizations can better align their business and technical
strategies to ensure success. Automation CoE members, RPA developers, Cloud
architects, IT professionals, and business decision makers use this information to achieve
their automation adoption goals.
These adoption best practices from Microsoft employees, partners, and customers are a
set of tools, guidance, and narratives to help shape your technology, business, and
people strategies to get the best business outcomes for your automation rollout.
Read the following articles in the Power Automate guidance center to learn more about
how to roll out the Microsoft automation platform at enterprise scale.
Microsoft Power Automate includes powerful workflow automation directly in your apps
with a no-code approach that connects to hundreds of popular apps and services. It
covers the full range of hyperautomation scenarios, which includes automating using
APIs, UI, and AI. The cloud-first robotic process automation (RPA) platform delivers
fundamental technology benefits that can help your enterprise execute multiple
business strategies.
As you scale adoption of the platform, you will need to ensure your system is managed
and governed according to your organization’s strategic priorities. This is where the
Automation CoE comes in.
Governance: Security, data integrity, auditing: Ensures that only the right people
have the access to specific data that's governed in a specific way to avoid any risk
to the organization itself.
Repeatable patterns and templates: Error handling, instrumentation,
components: Avoids duplication and rework and enables everyone to get the
benefits of automation with the least effort.
Consistent benefits realization: KPIs/tracking/metrics, process rationalization:
Defines strategic benefit indicators, tracks and measures the return on investment
(such as time saved), and ensures that the processes being automated are
optimized.
As a result of these activities, the CoE helps the organization to scale by enabling
automation for everyone. Innovation doesn’t happen while standing in a line waiting for
your automation needs to be serviced!
Some of common stakeholders and their roles and responsibilities within the
automation platform and projects are:
Executive Sponsors: Organization leaders who set goals and business KPIs for an
automation initiative.
Automation CoE team: Automation CoE team comprised of admins, pro-devs,
RPA-devs, architects, and administrators to deploy, manage, and scale the
automation platform.
Citizen developers: Business users, citizen developers, process owners, and pro-
developers who can propose new project ideas, develop, and deploy projects into
production.
HEAT is guidance that's designed to help you deploy the automation platform and
manage the entire lifecycle of an automation project. Cloud architects, RPA developers,
IT professionals, and business decision makers use these best practices, documentation,
and tools to achieve their cloud adoption goals.
By using HEAT, organizations can better align their business and technical strategies to
ensure success.
Empower
Discover & plan
Design
Build & test
Deploy & manage
Secure & govern
Nurture
We have recorded a special series on our video channel Automate It where we go into
each of these stages in detail.
Each stage of the HEAT technique is described below, with additional resources.
Empower
The start of any successful automation project is to ensure that the key stakeholders
understand the automation capabilities of the platform. In this stage, users new to
Microsoft Power Automate can learn about the automation capabilities in Power
Automate.
Resources for determining ROI, process discovery, and setting up Power Automate
environment:
Design
Building robust automation solutions require well-defined design principles that will
build the foundation for scale, security, and compliance.
In Robotic process automation (RPA) with SAP, shows how to build an enterprise grade
Invoice Processing automation solution. This intelligent automation solution processes
invoices in SAP and showcases some of the key enterprise scenarios such as logging,
auditing, tracking each invoice processing, human in the loop, ROI calculation, and
more.
Watch the video series: SAP GUI based RPA in Power Automate for desktop
Deploy & manage
Power Automate provides a rich set of capabilities for admins and developers
throughout the deployment cycle for a given automation, including detailed information
on the success or failure of each individual run and the ability to schedule, queue, and
prioritize an automation.
Developers can set up CI/CD with test integration to deploy automation and avoid
accidental changes that would break the automation in production.
Power Automate also helps users manage their automations. All execution data is
available in Dataverse, with reports and views that visualize this data. Power Automate
provides real-time information on individual bots and the machines and clusters they
run on, giving more-detailed visibility into the full automation health, bot health, and
infrastructure health.
The platform provides a rich set of auditing logs that help admins keep track of what
happened in the system. The deep integration of Microsoft Power Platform with Azure
and Microsoft 365 allows IT admins to define reactive and proactive policies and
procedures to track automation activity.
Nurture
CoEs should establish their strategy to nurture and upskill their employees. They can
create a community of champions, train them, run bot wars, and evangelize success
stories. Power Automate provides a rich set of learning resources (documentation,
videos, tutorials, labs, courses, certifications, whitepapers, etc.). Microsoft Power Platform
Adoption Center provides guidance, workbooks, and tools to accelerate adoption
within your enterprise.
The Automation Kit is set of tools that accelerates the use and support of Power
Automate for desktop for automation projects. The kit provides tools that help you
manage automation projects and monitor them to estimate money saved and return on
investment (ROI).
The Automation Kit applies the HEAT (Holistic Enterprise Automation Techniques) to
support your organization.
The kit is especially useful to an Automation Center of Excellence (CoE) team, which is a
team of experts who support automation within your organization. They have good
knowledge about Power Automate for desktop, set up and maintain the Automation Kit,
and maintain the configuration data such as departments, process categories, goals, and
more.
The goal of the Automation Kit is to enable organizations to manage, govern, and scale
automation platform adoption based on best practices. The Automation Kit provides the
following items in support of your Automation Center of Excellence.
Near-real time ROI / SLA: Short and long-term analytics to drive towards your
business goals.
Tools for all users: These tools are for makers (citizen and pro developers), your
Automation CoE team, and executive sponsors.
End-to-end automation lifecycle: These tools help to automate and manage all
aspects of hyperautomation scenarios, including ALM and templates to drive
consistency.
Enterprise readiness: Helps to secure, govern, audit, and monitor your automation
deployment.
Use satellite environments to develop and test your automation projects before you
deploy them to production. The production satellite monitors and meters the solutions
and solution artifacts for an automation project.
The data from the metered solutions syncs to the main environment in near real time for
monitoring on a dashboard.
Conceptual design
The Automation Kit has the following conceptual design components.
The key element of the solution is the Power Platform main environment.
There are usually several satellite production environments that run your automation
projects. Depending on your environment strategy, these could also be development or
test environments.
If you’re managing Power Automate for desktop on Windows at scale throughout your
organization, our PDF playbook and eight-episode YouTube video series introduce you
to:
Watch the Automate It Special Series: Managing Power Automate for desktop video
series on YouTube.
Download your copy of the Managing Power Automate for desktop on Windows
playbook .
Power Platform automation maturity
model overview
Article • 10/04/2022 • 4 minutes to read
This article explains the automation maturity levels. More information about the
capabilities at each level is available in Power Platform automation maturity model
details.
The organization begins its journey with Power Automate in the Initial phase. During
this phase, the organization evaluates its alignment and integration with its architecture
and automation vision. Representatives from technology and business verticals discuss
the overarching technology and business goals, encompassing the networking,
information security, legal, and privacy requirements that are specific to the
organization. Technology upskilling endeavors are launched to support Power Automate
adoption across the organization. Key performance indicators (KPIs) are established to
measure the benefits of automation and its subsequent influence on operational
metrics. Recording progress is still manual in this phase.
In the Repeatable phase, the organization codifies lessons learned from the Initial phase.
An automation Center of Excellence (CoE) is established to evangelize adoption, serve as
a liaison between technology and business stakeholders, and define best practices. The
organization understands the value proposition that automation offers, promotes Power
Automate training across the board, and drives change management initiatives. Based
on their experiences during the Initial phase, teams highlight potential automation
opportunities.
In the Defined phase, the organization standardizes and refines processes that were
established in the Repeatable phase. Organizations may redefine goals based on lessons
learned and progress made in earlier phases. The groundwork established earlier is
evolved with a bias towards scale, security, and resilience. The CoE drives initiatives to
automate governance and platform-related concerns to promote scale. Platform
governance-related initiatives, encompassing environment provisioning, Data Loss
Prevention (DLP) policy requests, licensing, and machine management are implemented
in this phase.
In the Capable phase, the organization has established processes for monitoring and
managing automation health from both a quantitative and a qualitative perspective. The
organization is successful in democratizing automation across both business and
technical verticals. Automation initiatives shift; no longer driven by the CoE, now citizen
developers drive them. The organization builds on and enriches its technology
capabilities. Process mining tools are used to optimize processes, and pro developers
collaborate to build APIs that enable citizen developers to build automation. AI-based
capabilities are implemented to solve business problems in the context of process
automation. Organizations can attend to a wider array of use cases based on the fusion
of technologies.
Level 500 – Efficient
In this phase: Community beacons, cross-team collaboration, addressing gaps hindering
excellence
In the Efficient phase, the organization is at a mature state in its automation journey
from a business process, technology enablement, and automation adoption perspective.
In the context of automation, the organization has established its capabilities to
harmoniously integrate Power Automate into its digital landscape. Governance, security,
KPI dashboarding, and application lifecycle management are thoroughly automated,
with minimal to no manual effort required to sustain them.
Customer Stories
Coca-Cola
Coca-Cola United
TC Energy Bot Wars
Inter Pipeline Botwars
Chemours
Customer stories collection
Learning resources
Automate It
Holistic enterprise automation techniques (HEAT)
RPA in a Day training
Power Automate learn
Power Platform automation maturity
model details
Article • 02/09/2023 • 12 minutes to read
Empower
Level Details
100: Initial Goal: Training resources available and Automation CoE have a fair grasp on tool
capabilities and usage
Indicators:
200: Goal: Organizations have a standard training curriculum that gives new users a
Repeatable starting point. All makers have undergone basic Power Automate training.
Indicators:
300: Goal: Extend lessons learned and share knowledge across the various verticals
Defined internal to the organization.
Indicators:
400: Goal: Contribute to the community of Power Automate practitioners external to the
Capable organization.
Indicators:
100: Initial Goal: Initiate technology readiness discussions with supporting IT/Business teams.
Indicators:
200: Goal: Organizations document accepted priorities and concerns, initial draft to
Repeatable address foundational aspects of Power Automate are addressed. Strategy plan is
defined with a bias towards a "CoE led - Business supported" model
Indicators:
Resources:
Azure VM deployment
Power Automate Desktop Pre-Requisites
Design consideration for VM scale sets
300: Goal: Strategic planning document is enriched such that organizational level security
Defined and governance level parameters are addressed.
Indicators:
Resources:
400: Goal: Strategic planning document includes ideation around advanced reporting
Capable constructs, AI based automation strategy, process mining tools with a bias towards a
"Business led - CoE supported" model
Indicators:
Resources:
AI Builder
Process Advisor
Power Automate Analytics
500: Goal: Strategic planning document is complete with necessitate revisions from time
Efficient to time. Business and technology teams are aligned on strategy and corresponding
investments.
Indicators:
Resources:
Solution Overview
Machine Management
Design
Level Details
100: Initial Goal: Initial design is scoped to support experimentation with Power Automate as
the organization familiarizes with the tool.
Indicators:
200: Goal: Design is scoped to support a few bots in the production environment
Repeatable addressing basic automation needs within a department. Organization is still very
early in its automation journey.
Indicators:
Resources:
Environment Strategy
API versus UI Approach
300: Goal: Design is scoped towards supporting many bots for production usage needs
Defined for the organization. Organization is maturing in its automation journey.
Indicators:
Resources:
Try-Catch-Finally pattern
Secure secrets in Power Automate with Azure Key Vault
Level Details
400: Goal: Design is scoped towards supporting many bots across cross-functional teams
Capable for production usage - leveraging AI/ML, custom connectors and advanced error
handling.
Indicators:
Resources:
500: Goal: Design is at a matured state and addresses all architectural challenges from an
Efficient infrastructure, security, and governance perspective in conformance to the
overarching organizational guidelines.
Indicators:
100: Initial Goal: Initial pockets of success are realized from an implementation standpoint. CoE
validates feasibility of the solution by building proof of concepts to support simple
use case scenarios.
Indicators:
Practitioners build basic cloud and desktop flows to understand ground level
functionality of the tool.
Testing is confined to a PoC level.
Monitoring is manual.
Implementation is confined to a generic development environment.
200: Goal: Implementation is targeted towards building a few bots for production usage.
Repeatable Organization continues to explore Power Automate capabilities.
Indicators:
300: Goal: Implementation is targeted towards building many bots for production usage.
Defined Organization is maturing in its automation journey.
Indicators:
Resources:
400: Goal: Implementation is targeted towards building many bots supporting cross-
Capable functional teams for production usage with a bias towards high level of resilience
and reusability.
Indicators:
Custom connectors, API support (for in house applications) are built by pro-
developers to facilitate citizen developers to build automation.
Reusable templates for both cloud and desktop flows are utilized.
ROI calculation is automated.
Processes are implemented leveraging AI Builder.
Parallel execution of workloads to improve throughput are implemented
Business Component Testing is well executed (validating other components,
workload management, process branching, exception handling and
performance measurement)
Resources:
Custom Connectors
AI Builder in RPA
Indicators:
Indicators:
Indicators:
Resources:
Indicators:
Resources:
ALM Basics
Configuration management
Level State of Nurture and Citizen Makers
400: Goal: Scope of deployment is targeted towards supporting bots serving cross-
Capable functional teams for production usage with a bias towards optimization and
efficiency.
Indicators:
Resources:
Indicators:
Resources:
100: Initial Goal: Security and Governance are envisioned to support automation at a
foundational level to facilitate future growth.
Indicators:
200: Goal: Security and Governance are envisioned towards supporting a few bots for
Repeatable production usage.
Indicators:
Resources:
300: Goal: Security and Governance are envisioned towards supporting many bots for
Defined production usage. Organization is maturing in its automation journey.
Indicators:
Resources:
Access Management
AAD groups
Power Platform Admin Center Analytics
400: Goal: Security and Governance are targeted towards supporting bots serving cross-
Capable functional teams for production usage with a bias towards optimization and
efficiency.
Indicators:
Resources:
500: Goal: Security and Governance are at a mature state. Organization is well equipped
Efficient to secure and govern solutions efficiently ensuring a high degree of resilience.
Indicators:
Nurture
Level State of Fusion Teams
100: Initial Goal: Organization has just begun its automation journey, the objective is to
evangelize Power Automate adoption at a foundational level.
Indicators:
200: Goal: Organization is expanding its automation footprint, whilst still evaluating
Repeatable feasibility from a scale perspective. Nurture is geared to support and promote
makers who have a fair grasp of Power Automate.
Indicators:
300: Goal: Organization ascertains Power Automate as a viable solution. The organization
Defined is maturing in its automation journey and with it comes many "learning moments".
"Nurture" at this level is attuned to support growing pains typical to increasing
maturity.
Indicators:
Indicators:
Teams share success stories, citizen developers advocate ROI gains across the
organization because of automation.
Teams initially hesitant to automation, begin to embrace automation
convinced by its value proposition.
7 Note
Approvals is a key use case that's present across every industry, organization, and
department. You can use Power Automate to streamline your business processes by
digitalizing the approvals experience.
) Important
Business approvals templates provide no-code templates that are built on top of
Microsoft Power Platform components. Your organization can use these templates to
accelerate the speed at which it creates sophisticated approvals workflows that include
conditional branching, delegation, administrative overrides, and more. Since these are
no-code templates, almost anyone in your organization can use them to meet your
approval needs.
Organizations need approvals for a variety of business processes, including expense
reporting, time sheet management, business travel requests, procurement orders, sales
discounts, etc. With Power Platform, you can meet these approval needs by combining
components from Power Apps and Power Automate. However, as the complexity of
your approvals increases, so does your configuration. The business approvals templates
are available with a collection of components and tools that are designed to help
organizations automate their approvals processes quickly.