PowerAutomate Guide
PowerAutomate Guide
Welcome! What can you expect from Power Automate? Here are a few examples of what you can do with Power
Automate.
Automate business processes
Send automatic reminders for past due tasks
Move business data between systems on a schedule
Connect to more than 500 data sources or any publicly available API
You can even automate tasks on your local computer like computing data in Excel.
Just think about time saved once you automate repetitive manual tasks simply by recording mouse clicks,
keystrokes and copy paste steps from your desktop! Power Automate is all about automation.
The following video shows you how to get started building your first flow.
2. Select Continue .
4. Select Save .
NOTE
You can explore the conditions that trigger the flow and the action that results from that event. Play around with the
settings to make the flow your own. You can even add or delete actions.
TIP
Follow this tutorial to learn more about creating flows from templates.
Get creative
Now that you've created your first flow from a template, use any of the more than 380 data sources that Power
Automate supports to create your own flows from scratch.
When you create a cloud flow from scratch, you control the entire workflow. Here are a few ideas to get your
started:
Flows with many steps.
Run tasks on a schedule.
Create an approval flow.
Watch a cloud flow in action.
Publish a template.
Create flows from a Microsoft Teams template.
3. Notice the full JSON representation of the actions and triggers. This includes all inputs, such as the text
you enter directly, and expressions used. You can select expressions here and then paste them into the
Dynamic Content expression editor. This can also give you a way to verify the data you expect is present
in the flow.
Power Automate is a service that you can use to automate repetitive tasks to bring efficiencies to any
organizations.
You can create cloud flows, desktop flows, or business process flows.
Check out this video about the different types of flows.
Cloud flows
Create a cloud flow when you want your automation to be triggered either automatically, instantly, or via a
schedule.
Automated flows Create an automation that is triggered Connectors for cloud or on-premises
by an event such as arrival of an email services connect your accounts and
from a specific person, or a mention of enable them to talk to each other.
your company in social media.
Instant flows Start an automation with a click of a Wide range of tasks such as requesting
button. You can automate for an approval, an action in Teams or
repetitive tasks from your Desktop or SharePoint.
Mobile devices. For example, instantly
send a reminder to the team with a
push of a button from your mobile
device.
Scheduled flows Schedule an automation such as daily Tasks that need to be automated on a
data upload to SharePoint or a schedule.
database.
Desktop flows
Desktop flows are used to automate tasks on the Web or the desktop. Using Power Automate for desktop you
can automate tasks on the desktop as well as the Web. Alternatively, you can use the two legacy methods of
creating desktop flows: Windows recorder (V1) and Selenium IDE.
More info
Get started with cloud flows.
Get started with desktop flows.
Get started with business process flows in conditions in advanced mode.
Sign up and sign in for Power Automate
1/15/2022 • 3 minutes to read • Edit Online
Starting with Power Automate, as an individual, is easy! Before you can create a cloud flow, sign up by using any
email address. If you've never used an online Microsoft product with that address, you'll need to take a few
moments to register it.
Sign up free
If you haven't used other online Microsoft products, you'll need to sign up.
1. In flow.microsoft.com, select Tr y free in the upper-right corner.
2. Enter your email address.
3. Select the right arrow.
Sign in
If you've used other Microsoft online products, either for work or yourself, all you need to do is sign in.
1. In flow.microsoft.com, select Sign in in the upper-right corner.
2. On the sign-in page, enter your email address and password.
Troubleshooting
In many cases, you can register for Power Automate by following the simple process described earlier in this
topic. However, this table summarizes the most common reasons why you may not be able to sign up and
describes available workarounds.
No Microsoft account created yet You signed up with an email that doesn't yet have a
You receive a message after entering your email during Microsoft account created for it. Select the Sign up now
signup: link on that page and you'll be able to create a new
Microsoft account for your email. You can use your existing
That Microsoft account doesn't exist. Enter a different email to create a Microsoft account.
account or get a new one.
.gov or .mil email addresses You cannot currently sign up for Power Automate with a
You receive a message like the following during signup: .gov or .mil address. Instead, you can sign in with any
Microsoft Account email address such as a @outlook.com
Power Automate unavailable: Power Automate is not address.
available for users with .gov or .mil email addresses at this
time. Use another work email address or check back later.
SY M P TO M / ERRO R M ESSA GE C A USE A N D W O RK A RO UN D
Self-ser vice signup disabled You have selected Sign up instead of of Sign in . If you
select Sign in in the top of the home page you will be able
You receive a message like the following during signup: to access Power Automate.
We can't finish signing you up. Your IT department has
turned off signup for Power Automate. Contact them to
complete signup.
or
We can't finish signing you up. It looks like Microsoft Power
Automate isn't currently available for your work or school.
Email address is not an Office 365 ID Your organization uses IDs to sign in to Office 365 and other
Microsoft services, and those IDs differ from your email
You receive a message like the following during signup: address. For example, your email address might be
We can't find you at contoso.com. Do you use a different ID [email protected], but your ID might be
at work or school? Try signing in with that, and if it doesn't [email protected]. To complete signup, use the ID that
work, contact your IT department. your organization has assigned to you for signing in to
Office 365 or other Microsoft services.
Next steps
Start with a template, which is a pre-built flow that's set up for you.
Start from blank if you already have a process in mind and can't find a template for it.
Get help planning your cloud flow project.
What's new in Power Automate?
1/15/2022 • 2 minutes to read • Edit Online
This article provides resources that you can use to learn about the features that have been released recently,
features that will be released soon, and known issues.
Weekly releases
For information about the new features, fixes, and improvements that were released in the past few weeks, see
Released versions for Microsoft Power Automate.
NOTE
Releases are rolled out over several days. New or updated functionality might not appear immediately.
Release plans
Get familiar with upcoming features and plan your deployments by reading 2021 release wave 1 plan or the
2021 release wave 2 plan.
Find the right online training, in person workshops, and events for your role as a user of Power Apps.
Business and Technical Decision Makers
Do you decide whether to invest in new technologies?
Business and Technical Decision Makers Learning Catalog
App Makers
Are you interested in quickly creating custom business apps without writing code?
App Maker Learning Catalog
Get Started
Create Flows
Process advisor
Exam
Developers
Do you need to write code to integrate with other data sources, extend core system functionality, or build a
complex application?
Developer Learning Catalog
Administrators
Do you need to keep systems and data flowing, provisioned, and secure round-the-clock?
Administrators Learning Catalog
Partner Sales and Marketing
Are you responsible for helping your customers buy the right solution?
Partner Sales and Marketing Learning Catalog
Functional Application Consultants
Are you an implementation expert for a business domain?
Functional Application Consultant Learning Catalog
Get started
Create Flows
Process advisor
Administer
App Maker Learning Catalog
1/15/2022 • 2 minutes to read • Edit Online
Are you interested in quickly creating custom business apps without writing code?
The following catalog is organized from core knowledge to specific domains, and from most basic to most
advanced. If content exists in multiple formats, we'll let you know, so that you can choose the training format
that best meets your needs.
Get started
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
Get started with Power Power Automate is an Free, self-paced online 58 minutes
Automate online workflow service that learning path
automates actions across
the most common apps
and services.
Get Started with Power Get Started with Power Documentation 4 minutes to read
Automate Automate
Overview of Power Discover how you can work YouTube video 1 minutes 24 seconds
Automate less and do more. With
Microsoft Power Automate,
previously Microsoft Flow,
you will be able to
automate your repetitive
daily tasks.
Create Flows
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
Automate a business This learning path Free, self-paced online 3 hours 11 minutes
process using Power introduces you to Power learning path
Automate Automate, teaches you how
to build workflows, and how
to administer flows.
Get started with Power Do you want to create Free, self-paced online 4 hours 30 minutes
Automate buttons button flows to solve learning path
business problems? Then,
take this learning path,
which introduces you to
Power Automate buttons
and demonstrates how to
create button flows.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
Process advisor
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
Optimize your business Power Automate's process Free, self-paced online 24 minutes
process with process advisor allows you to record learning module
advisor existing business processes
and analyze them in order
to increase the efficacy by
tracking time to complete
tasks and mapping out the
various actions involved.
Understanding a process is
the first step to automating
a solution, and process
advisor simplifies that
exercise.
Exam
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
Microsoft Power Platform This exam measures your Exam cost varies by region
Fundamentals ability to understand the
business value of Microsoft
Power Platform; understand
the core components of
Microsoft Power Platform;
demonstrate the business
value of Power BI; and
demonstrate the business
value of Power Automate.
Administrators Learning Catalog
1/15/2022 • 2 minutes to read • Edit Online
Do you need to keep systems and data flowing, provisioned, and secure round-the-clock?
The following catalog is organized from core knowledge to specific domains, and from most basic to most
advanced. If content exists in multiple formats, we'll let you know, so that you can choose the training format
that best meets your needs.
Administer
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
Use the admin center to Tenant and environment Free, self-paced online 36 minutes
manage environments and admins use the Power learning path
data policies in Power Automate admin center to
Automate manage data policies and
environments for Power
Automate deployments.
Use best practices to secure Is the Microsoft Power Free, self-paced online 4 hours 35 minutes
and govern Power Platform new to your learning path
Automate environments organization? Are you
looking to better
understand how you can
improve your organization’s
productivity, without
compromising your security
posture, while enabling
governance? Take this
learning path, to identify
best practices for securing
and governing Power
Automate environments.
We will share tools and
templates that can be used
to ensure you are
productive as you secure
and govern the Power
Platform.
Developer Learning Catalog
1/15/2022 • 2 minutes to read • Edit Online
Do you need to write code to integrate with other data sources, extend core system functionality, or build a
complex application?
The following catalog is organized from core knowledge to specific domains, and from most basic to most
advanced. If content exists in multiple formats, we'll let you know, so that you can choose the training format
that best meets your needs.
Extend
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
Extending the Microsoft Create client scripting, Free, self-paced online 4 hours
Dataverse perform common actions learning path
with client script, and
automate business process
flow with client script is
covered in this learning
path. Learn about what
client script can do, rules,
and maintaining scripts.
Discover when to use client
script as well as when not
to use client script.
Extending the Microsoft Getting started with Free, self-paced online 2 hours 3 minutes
Power Platform user extending the Microsoft learning path
experience in Model Driven Dataverse can be
apps overwhelming. This learning
path looks at the tools and
resources needed for
extending the Microsoft
Power Platform. We'll start
with looking at the SDKs,
the extensibility model, and
event framework. This
learning path also covers
when to use plug-ins.
Configuration of plug-ins as
well as registering and
deploying plug-ins.
Functional Application Consultant Learning Catalog
1/15/2022 • 2 minutes to read • Edit Online
Get Started
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
Get started with Power Power Automate is an Free, self-paced online 58 minutes
Automate online workflow service that learning path
automates actions across
the most common apps
and services.
Get Started with Power Get Started with Power Documentation 4 minutes to read
Automate Automate
Overview of Power Discover how you can work YouTube video 1 minute 24 seconds
Automate less and do more. With
Microsoft Power Automate,
previously Microsoft Flow,
you will be able to
automate your repetitive
daily tasks.
Create Flows
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
Get started with Power Do you want to create Free, self-paced online 4 hours 30 minutes
Automate buttons button flows to solve learning path
business problems? Then,
take this learning path,
which introduces you to
Power Automate buttons
and demonstrates how to
create button flows.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
Process advisor
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
Optimize your business Power Automate's process Free, self-paced online 24 minutes
process with process advisor allows you to record learning module
advisor existing business processes
and analyze them in order
to increase the efficacy by
tracking time to complete
tasks and mapping out the
various actions involved.
Understanding a process is
the first step to automating
a solution, and process
advisor simplifies that
exercise.
Administer
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
Use the Admin center to Tenant and environment Free, self-paced online 36 minutes
manage environments and admins use Power learning path
data policies in Power Automate admin center to
Automate manage data policies and
environments for Power
Automate deployments.
Use best practices to secure Is Microsoft Power Platform Free, self-paced online 4 hours 35 minutes
and govern Power new to your organization? learning path
Automate environments Are you looking to better
understand how you can
improve your organization’s
productivity, without
compromising your security
posture, while enabling
governance? Take this
learning path, to identify
best practices for securing
and governing Power
Automate environments.
We will share tools and
templates that can be used
to ensure you are
productive as you secure
and govern Microsoft
Power Platform.
Partner Sales and Marketing Learning Catalog
1/15/2022 • 2 minutes to read • Edit Online
Are you responsible for helping your customers buy the right solution?
The following catalog is organized from core knowledge to specific domains, and from most basic to most
advanced. If content exists in multiple formats, we'll let you know, so that you can choose the training format
that best meets your needs.
Get started
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
The process advisor feature allows you to gain a better understanding of your business processes so you can
optimize them. It can also help you improve how you work by finding opportunities for automation. Process
advisor offers task mining and process mining capabilities to do this.
Task mining and process mining share the same goal of improving process efficiency. The main difference is
their area of focus:
Task mining: Enables you to understand how your company performs its process tasks through
monitoring recorded user actions and collecting data from these actions. You'll gain insights from this
data that will let you know how processes are performed, find common mistakes while performing tasks,
and identify tasks that can be automated.
Process mining: Enables you to gain a deep understanding of your processes using event log files that
you can get from your system of record (apps you use in your processes). Process mining displays maps
of your processes with data and metrics to recognize performance issues.
Licensing
Process advisor is licensed as part of Power Automate user licenses. If you don’t have a license, you can start a
Power Automate trial to try process advisor.
For more information about process advisor licensing, go to Power Automate pricing and Power Apps and
Power Automate licensing FAQ.
For complete licensing details, go to the Microsoft Power Apps and Power Automate licensing guide.
Prerequisites
Before you start using process advisor, make sure you have the following prerequisites:
A Microsoft Power Platform environment with a Microsoft Dataverse database.
For information about how to create an environment, go to Create and manage environments in the
Power Platform admin center.
For information about how to add a database to an environment, go to Add a Microsoft Dataverse
database.
A Power Automate license.
Power Automate for desktop.
Overview of task mining in process advisor
1/15/2022 • 2 minutes to read • Edit Online
With task mining in process advisor, you can quickly capture detailed steps for each process in your organization
to help you better understand places to streamline workflows. You can do this on your own or invite colleagues
to contribute and collaborate.
Business example
For example, in a healthcare facility, you can use task mining to record patient check-in procedures. Process
advisor automatically produces a process map that visualizes the check-in process. You can see which activities
take the longest, how many variations of the check-in process there are, and what variations and actions take the
most time.
Application analytics and analytics dashboards show you which applications teams spend the most time in, and
the best activities to optimize. You're then guided to create cloud flows with automation recommendations that
reveal which connectors to use based on your workflows.
With insights and guided recommendations from process advisor, you're ready to begin automating and reclaim
the time you need for what matters most.
This tutorial with sample data allows you to experience task mining in the process advisor feature. In this
tutorial, you will:
Import a solution
View sample recordings
Analyze a process
Gather insights with a process map
View metrics with activity combinations and variants
Identify automation opportunities
For the task mining tutorial, download User recording demo data. For the process mining tutorial, go to Tutorial:
Get started with process mining (preview).
Once this process has completed, you should see the following screen:
Import a solution
1. On the navigation pane to the left, select Solutions .
5. Select Next .
6. Select Impor t and wait for the solution to import.
NOTE
If this is the first time you're accessing process advisor, make sure you've selected Processes at least once and
waited until the Getting things ready loading spinner has disappeared before importing. If you try to import
the RPAinaDayProcessAdvisor_1_0_0_7.zip solution without first initializing the Processes section of process
advisor, you'll see only a couple of recordings in the imported solution.
Analyze a process
1. Select Analyze to analyze a process. When you perform this action, process advisor will analyze existing
recordings to identify any bottlenecks within the business process.
2. Select Confirm .
3. The analysis will take a few minutes to complete. During this process, a status message displays under
the New recording button. If you run into an error during the analysis stage, select Analyze to trigger
this action again.
4. Once it's done, you'll see the Process analysis status change to Analyzed . Select Analytics to see the
process map and insights. This step may take a couple minutes to complete after the analysis has been
performed.
Recording by average time in min : Notice that some people (Preston Morales and Shakti
Menon ) are taking more time than others.
4. Select the Application (preview) tab to see details on which applications were used.
7. Start creating a flow for automation by selecting Automate activities (preview) at the top.
A tab will open in the browser and show the flow designer. The recommended actions that match to the
activities from the process map automatically appear on the right panel. For example, several email
connectors are suggested for you to use in order to automate the Download invoice attachment
from email activity.
Prepare processes and recordings in process advisor
1/15/2022 • 4 minutes to read • Edit Online
Before you can use process advisor task mining to visualize and analyze your processes, you need to:
Create your process in process advisor.
Record the activities that make up the process using the Power Automate recorder.
Prepare the recording for analysis.
(Optional) Manage activity names to make it easier for you and others to prepare the recording for analysis.
Create a process
In general, processes you think might be inefficient or repetitive are good candidates for analysis.
1. Sign in to Power Automate.
2. Select Process advisor on the left-side navigation pane.
3. Select Create under Process advisor .
4. Select the Create a new process tile.
5. Give your process a name and description, and then select Create .
NOTE
If you aren't able to see the process in the dropdown, ensure that the process has been correctly shared with you.
NOTE
You should have downloaded Power Automate before you started. However, you can also select Get the app to
install it.
2. If you've installed Power Automate, you should see an Open Power Automate browser pop-up window.
Select it to open the app.
3. If Power Automate is installed but didn’t open correctly, select Open again .
NOTE
Depending on the length of the recording, it may take some time before the actions will be available.
Recorder features
As you record your actions, the action descriptions will be listed in the recorder screen. You can select the
trash can icon to delete any action from your recording.
Select Pause recording at any time during the recording.
Select Star t recording again to continue recording from where you left off.
Select Reset recording to erase all the recorded actions and start over.
Recording tips
Be methodical in your actions to improve the readability of the recording. There's a slight delay, so wait
for the red box to focus on the item you're trying to interact with before selecting.
If there were any clicks made by mistake, delete the action in the recorder screen.
4. If you made a mistake and want to delete an activity, use the Delete activity button in the command bar.
5. At any time, select Save on the top right to save your work.
To analyze, you need at least two activities. Otherwise, the process map wouldn't be meaningful.
6. When you finish grouping, set Ready to analyze on the top right.
7. Select Close to return to the process details screen.
Grouping tips
As much as possible, use an existing activity name. This creates a more consistent and accurate process
map.
Activity names will be available in the dropdown list whenever a recording is saved. To remove an activity
name from the list after it was removed from all recordings that used that name, you need to analyze the
recording.
Manage activity names
As a process owner or co-owner, you can create recommended activity names for a process. This will ensure
more consistency in naming across recordings. To do this:
1. On the process details screen, select Create activity names to bring up the panel.
2. Select New name to add a new activity name entry to the recommended list.
3. Select Save when you're done.
The activity names you added will now show up under Recommended names in the dropdown list when
grouping actions for a recording. Any activities that aren't defined in the recommended list will show up under
Custom names .
Analyze processes in process advisor
1/15/2022 • 2 minutes to read • Edit Online
On the left navigation pane in Power Automate, select Process advisor > Processes , and then select your
process to go to the Details screen. This is where you'll access most of your process management activities.
NOTE
The TDS endpoint setting for your organization needs to be enabled. This feature is enabled by default, but if it's disabled
for any reason, contact your Microsoft Power Platform administrator to enable it in the Power Platform admin center.
Some key things to do here are to view the status of the recordings and analyze your process. The Analyze
option in the menu gets you started. The analyze feature adds a selected recording into the process map and
associated analytics. If a recording's status isn't analyzed, it won't be part of the analytics reports.
After the process is analyzed, the process map and related analytics are available when you select Analytics
in the menu.
The process status on the Details pane shows the status of the analysis and whether the process has been
analyzed before.
Analysis happens at the process level for all recordings that are ready to be analyzed.
Pay attention to the recording status, which you can find under the Status column of the Recordings pane.
Only recordings with a specific status will be considered for analysis.
Here's a short video on how to view analytics with process advisor:
Recording status
Each recording can have one of the following statuses:
In progress: Recording is in progress, but it's also possible that the recording hasn't yet started. Since
recording happens in the desktop client, the web portal won't know its status until it's been saved. It's also
possible to see this status after a recording has been saved since some processing is required after
recording to make it ready to view.
Failed: An error occurred while processing the recording. You need to create a new recording.
Not analyzed: The recording has been processed and is available to view and edit, but it hasn't been
marked as ready to analyze.
Ready to analyze: The recording has been marked as ready to analyze and will be considered the next
time you analyze the process.
Analyzed: The recording has been analyzed and is part of the analyzed output that can be viewed
through the Analytics screen.
An analyzed recording might also have one of the following icons next to it:
Indicates that even though the recording was analyzed, it's been marked not ready to analyze and
won't be included if the process is analyzed again.
Indicates that the recording has been modified and might be out of sync with the previous analysis.
Analyzing again will synchronize the recording with the analysis output and the process map.
Visualize processes in process advisor
1/15/2022 • 4 minutes to read • Edit Online
Process map
The process map makes it possible to visualize and analyze processes. By looking at a graphical representation
of how your business processes are performed, you can glean insights into where opportunities for
improvement exist. To get to the process map, select the Analytics > Process tab.
Activities describe tasks or actions that make up a business process. Activities can be performed by humans or
by machines during automation. In the process map, different activities appear as nodes, and transitions
between activities appear as edges. Each process sequence will have a start and an end.
Different activity combinations and variants are shown separately on the process map. A process variant is a
unique path from the very beginning to the very end of the process. In other words, a process variant is a
specific activity sequence, like a “trace” through the process, from start to end. Each variant differs from the
others by at least one activity. You can see more metrics, frequency of the activities, and throughput time on the
process map. Frequency shows you the total number of recordings/cases passing through it. Throughput time is
the time between the first event of the case and the last.
There are various filters available for you to drill down into the process:
Variant selector allows you to select one variant or a set of process variants to visualize in your process
map.
Recording selector allows you to select one recording or a set of recordings to visualize in your process
map.
Time filter allows you to see the process visualization in a particular period. Additionally, there are key
performance indicators available to help you better understand your process. They're described in more
detail below.
Process KPIs
Number (#) of recordings : Shows you how many recordings of the same process were submitted to
analyze this process. The more recordings you have available, the more insights you will get. For example,
if you provide only a few recordings of a process that often has different paths to completion, you might
not get insights into all the variations that the process could take.
Number of variants : Shows the number of paths a process could take. For example, if a process has
one other activity, that would be counted as one additional variant of a process.
Average time : Shows you the average time it takes for a process to be completed across all recordings
associated with the process. It's one of the most important data points for process mining because deep-
diving into the duration of a process can inform you of any bottlenecks.
Process map visualizations
Variants by frequency : How many times a particular process path was taken by the process.
Variants by time : The average time spent to finish the process per variant.
Activity by average time : The average time each activity takes. A quick glance at this visual can reveal
the most time-consuming activities of a process.
Recordings by time : The time it took for each recording in a process.
Star t date : A filter for the time when recording started. For example, if your process changed over time,
you may want to see if there was any impact on your metrics after the process changed by filtering for
recordings that started after a certain time.
Application analytics
Application analytics allow you to gain more insights from recordings by understanding application usage. This
report informs you about:
The top apps used
Access patterns and what apps are used together
App insights for each activity or recording
The process advisor automation recommendation feature helps you identify automation opportunities and
guides you through automating your processes using Microsoft Power Automate.
Here's a short video on how to use the automation recommendation feature in process advisor:
The blue recommendation icons on the process map activities show the automation opportunities.
When you select +Automate activities above the process map, you'll be taken to the Power Automate form
designer. This is where you'll see the connector recommendations for the activities in your process map. You can
select and add the connectors to your flow to automate your process.
See also
Connector overview
Visualize processes
Share processes in process advisor
1/15/2022 • 2 minutes to read • Edit Online
When you create a process in process advisor, only you can see it. But getting input from others is a key to
understanding different ways to accomplish the process you've created. Share your processes with others in
your organization so they can also manage or contribute to them.
Here's a short video on how to share a process in process advisor:
IMPORTANT
You must be the co-owner to add or remove owners and contributors to a process.
Share action
The share action is available on the Processes screen for the following:
Each process where you're a co-owner
The system administrator in the environment
Any security role that has share permissions on process advisor system entities
The share action is also available on the process details page with the same conditions. Sharing isn't needed at
the recording level. Once you share a process with a co-owner, they can manage the recordings associated with
a process.
Share panel
When you select the share action, a share panel is displayed. The share panel is where you select Microsoft
Dataverse users and teams in your organization, and share your process with them.
When sharing a process with others, the option to automatically send an email invitation is selected. As co-
owners or contributors, they're asked to help you manage the process or add new recordings, respectively.
There's a link in the email invitation that leads them to the shared process.
IMPORTANT
Only the owners of a process can analyze it.
Overview of process mining in process advisor
(preview)
1/15/2022 • 2 minutes to read • Edit Online
IMPORTANT
This is a preview feature.
Preview features aren’t meant for production use and may have restricted functionality. These features are
available before an official release so that customers can get early access and provide feedback.
This short video explains the concept of process mining in process advisor:
Business example
For example, as a business owner in accounts payable, you can use process advisor to find the steps and actions
in your procure-to-pay process. Using event log files from your ERP systems like Dynamics 365 or SAP, process
advisor produces a process map. This map enables you to visualize the activities in the procure-to-pay process
to gain the following insights:
Which activities in a process take the longest?
How many variations of invoice approval exist in the organization?
Are the activities of the process within compliance?
You can easily filter for custom attributes such as location, department, and other dimensions that are relevant
to your process.
IMPORTANT
This is a preview feature.
Preview features aren’t meant for production use and may have restricted functionality. These features are
available before an official release so that customers can get early access and provide feedback.
Create a process
1. Sign in to Power Automate.
2. Select your environment.
3. On the navigation pane to the left, select Process advisor > Create .
4. Select Create a new process .
5. Enter a process name, and then select Data (preview) .
6. Select Create .
3. Use Notepad or any other text editor to open the sample event log CSV file that you downloaded.
4. Select all contents of the CSV file by pressing Ctrl + A .
5. Copy the selection by pressing Ctrl + C .
6. Paste the selection you copied into the blank table in process advisor by pressing Ctrl + V .
7. Select Use first row as headers .
8. Upload your event log, select your file from the list, and choose Select to continue.
9. Select Next twice to open the Power Query editor.
10. Validate that your fields are correct in the table view.
11. On the toolbar, select Map to entity .
IMPORTANT
This is a preview feature.
Preview features aren’t meant for production use and may have restricted functionality. These features are
available before an official release so that customers can get early access and provide feedback.
Data requirements
Event logs and activity logs are tables stored in your system of record that document when an event or activity
occurs. For example, activities you perform in your customer relationship management (CRM) app are saved as
an event log in your CRM app. For process mining to take place, the following fields are necessary:
Case ID (caseId when mapping)
Case ID should represent an instance of your process and is often the object that the process acts on. It
doesn't need to be a case. It can be a "patient ID" for an inpatient check-in process, an "order ID" for an
order submission process, or a "request ID" for an approval process. This ID must be present for all
activities in the log.
Activity Name (activityName when mapping)
Activities are the steps of your process, and activity names describe each step. For example, in a typical
approval process, the activity names may be "submit request," "request approved," "request rejected," and
"revise request."
Star t Timestamp (star tTimestamp) and End Timestamp (endTimestamp)
Timestamps indicate the exact time that an event or activity took place. Event logs have only one
timestamp. This indicates the time that an event occurred in the system. Activity logs have two
timestamps: a start timestamp and an end timestamp. These indicate the start and end of each activity.
Where to get log data from your application
Regardless of your application, it's important to note that process advisor needs log data. Many of the tables
that exist in your application’s database will contain the current state of the data. It might not contain a historical
record of the events that happened, which is what an event log is. Fortunately, in many larger applications, this
historical record or log is often stored in a separate table. For example, many Dynamics applications keep this
record in the Activities table. Other applications, like SAP or Salesforce, have similar concepts, but the name may
be different.
While there may be tables that log historical records, the way that data is structured can be complex. You might
need to join the log table with other tables in the application database to get specific IDs or names. Also, not all
events that you're interested in are logged. You may need to determine what events should be kept or filtered
out. If you need help, you should contact the IT team that manages this application to understand more.
NOTE
You must have OneDrive for Business to use the Text/CSV connector. If you don't have OneDrive for Business, consider
using Blank table instead of Text/CSV, as in step 1. You won't be able to import as many records in Blank table.
4. Upload your event log by selecting the Upload icon in the upper right and then selecting Files .
5. Upload your event log, select your file from the list, and then select Open to use that file.
Use the Dataverse connector
The Dataverse connector isn't supported in Microsoft Power Platform. You need to connect to it using the OData
connector, which will require a few more steps.
1. Make sure you have access to the Dataverse environment.
2. You need the environment URL of the Dataverse environment you are trying to connect to. Normally it
looks like this:
To learn how to find your URL, go to Finding your Dataverse environment URL.
3. On the Power Quer y - Choose data sources screen, select OData .
4. In the URL textbox, type api/data/v9.2 at the end of the URL so it looks like this:
5. Under Connection credentials , select Organizational account in the Authentication kind field.
6. Select Sign in and enter your credentials.
7. Select Next .
8. Expand the OData folder. You should see all the Dataverse tables in that environment. As an example, the
Activities table is called activitypointers.
9. Select the checkbox next to the table you want to import, and then select Next .
Transform and map data in process advisor
(preview)
1/15/2022 • 3 minutes to read • Edit Online
IMPORTANT
This is a preview feature.
Preview features aren’t meant for production use and may have restricted functionality. These features are
available before an official release so that customers can get early access and provide feedback.
Here are some reasons why you might want to transform the data:
You might not be interested in all the activity names that are logged, and so you want to filter for specific
activity names that are important to the process you're trying to mine.
You might want to rename some of the activity names to be more descriptive and understandable. This is
often not the case with names in a database.
You might be interested in only the most recent year's history, and not the entire history.
NOTE
For public preview, we only support up to 150,000 rows of data. Because of this, filtering to a specific period may
be necessary.
You might want to combine multiple ID columns to form the case ID. This is often done when the ID you
want to use for process mining doesn't exist or is a combination of multiple IDs in the application. For
example, when a customer files support tickets, the support ticket might be assigned to multiple
customer service agents. If you want to analyze how each agent handles each ticket, you would combine
the agent ID and the ticket ID into the case ID.
Rename activities
1. Ensure that the Activity Name column is selected.
2. Above the toolbar, select the Transform tab.
3. On the toolbar, select Replace values .
4. Under Values to find , type the activity name as it appears in the data source that you want to replace.
5. Under Replace with , type the activity name you want to show in the process map.
6. Repeat this process for all the values you want to replace.
2. (Optional) Select a separator from the dropdown list. Alternatively, you can select none .
3. Change the name (or make a note of the default name that's generated), so you can select it when
mapping to a case ID.
Map data
Mapping tells process advisor what columns represent case ID, activity name, or timestamp.
1. In the toolbar, select Map to entity .
2. In the left column, if your data only has one timestamp, select the Event log entity. If your data has both
a start and an end timestamp, select the Activity log entity.
3. Select each of the dropdown lists under the Quer y output column heading, and select the
corresponding column in your data that maps to:
a. Activity name (activityName)
b. Case ID (caseId)
c. Start timestamp (startTimestamp)
d. End timestamp (endTimestamp) only if you select Activity log in step 2.
4. After everything is mapped, select OK to close the map to entity screen.
Select additional columns
When performing process mining, having additional information about a process is especially useful. If your
data contains only five or fewer columns outside of the required columns that you've mapped in the previous
procedure, nothing else needs to be done. You can select Save and all the columns will be analyzed. You'll also
be able to filter on these columns in the Analytics page.
If you have more than five columns:
1. Select Choose columns in the toolbar.
Ensure that the mapped columns (activityName, caseId, startTimestamp, endTimestamp) from the previous
procedure are selected. The five additional columns are on top of the mapped columns.
Troubleshoot issues in process advisor (preview)
1/15/2022 • 4 minutes to read • Edit Online
IMPORTANT
This is a preview feature.
Preview features aren’t meant for production use and may have restricted functionality. These features are
available before an official release so that customers can get early access and provide feedback.
For more information and a short video of analytics, go to Use KPIs and visualizations for analytics.
2. Make a note of the value of Name in the Data Source card below the Details card.
3. Sign in to https://powerapps.microsoft.com/.
4. Select the same environment that you noted in step 1.
5. Select Dataverse > Dataflows .
6. Find the dataflow name that you noted in step 2.
7. View the issue by selecting the Warning icon in the Last refresh column.
8. Download the report by selecting the Download icon in the Actions column.
9. Open the report to see details of the issue.
One possibility is that although the timestamp column has a valid datetime format, the format is valid for a
different locale than the locale that the process is created in. A typical example is this datetime format being
used in the United States locale: dd/mm/yyyy hh:mm:ss . In this case, we won't automatically detect that
column as a datetime column. One way to fix this is by manually changing the locale. To do this:
1. Delete the Changed column type step that you did previously. Do this by selecting X next to the last
applied step in the Query settings pane on the right.
2. On the toolbar, select Options > Project options .
3. On the Locale dropdown list, select the correct locale and then select OK .
4. Use the same method to set the timestamp column to the Date/Time data type again.
Where the format is dd/mm/yyyy hh:mm:ss , setting the locale to English (Canada) should result in
successful conversion of the column type. For other cases, find the correct locale that supports your specific
datetime format.
"More than 50% of your data has invalid format. Please check your data and try again."
To fix this, go to "Following column(s) do not have the right data types: [x]. Please check your data and try again."
"Following column(s) are missing from your dataflow: [x]. Please check your data and try again."
This issue should occur only if you didn't properly map the columns in your data source to the columns. For
more information, go to Map data.
"Your entity contains no data, check your dataflow and try again."
This issue should occur only if there is no data. Either the data source that you are connecting to has no data, or
the power query expression you used filtered out all the data. Check your query and ensure that you can see
some data rows in the preview table.
"The number of rows in your data exceeds the limit. [x] rows have been ignored."
For preview, we support only up to 150,000 rows of data. To learn how to fix this using Power Query, go to
Reduce the number of total records.
"There are too many columns in your data. Please select no more than 5 columns."
For preview, we support only up to five columns in addition to your mapped columns. To learn how to fix this
using Power Query, go to Select additional columns.
"Analysis failed, please try again."
You might have run into other analyze issues. For more ways that we can support you, go to Support, or post
your issue in the Community Forums.
Visualize and gain insights from processes in process
advisor (preview)
1/15/2022 • 4 minutes to read • Edit Online
IMPORTANT
This is a preview feature.
Preview features aren’t meant for production use and may have restricted functionality. These features are
available before an official release so that customers can get early access and provide feedback.
Visualize and gain insights from processes with the process map
The process map empowers you to visualize and gain insights from processes. By looking at a graphical
representation of how your business processes are performed, you can glean insights about where
opportunities exist.
Activities describe tasks or actions, the sequence of which makes up a business process. Activities can be
performed by humans, or, in the case of automation—by machines. In the process map, different activities
appear as nodes, and transitions between activities appear as edges. Each process sequence will have a start and
an end.
Different activity combinations and variants are shown separately on the process map. A process variant is a
unique path from the beginning to the end of the process. In other words, a process variant is a specific activity
sequence, like a "trace" through the process, from start to end. Each variant differs from the others by at least
one activity.
You can see additional metrics, frequency of the activities, as well as process throughput time (case duration), on
the process map.
Frequency shows you the total number of workflows (also known as cases) passing through it. Case duration is
the time between the very first event of the case and the last.
To drill down into the process, various filters are available:
Variant selector : Allows you to select one variant, or a set of process variants to visualize in your
process map.
Activity selector : Allows you to select cases that contain the selected activity.
Star t date filter : Allows you to see the process visualization in a particular period.
Additionally, key performance indicators (KPIs) are available to help you better understand your task. The
following section describes them.
KPIs
Average case duration : Shows you the average time it takes for a process to be completed across all
cases you are analyzing. It is one of the most important data points when analyzing your process. The
reason is that understanding how long a process lasts, how it changes over time, and further
investigating the root cause of the process duration could make a great starting point in speeding up
your process.
Median case duration : Median in general shows the most frequent duration for a task to complete. It's
a very useful metric in cases where a small number of cases (or even a single activity) are so different
from most cases that the average time for completion would look skewed toward this offending case. To
prevent the user from misinterpreting the time to completing the process, this measure shows the most
frequent time as opposed to a simple average.
Number of variants : Shows how many different paths were taken to accomplish a process. For
example, one case of a process might have 10 steps to complete a purchase order, while another only
nine.
Number of cases : Shows the number of cases analyzed in a particular process.
Number of activities : Shows the number of steps or activities taken to complete the process.
Visualizations
Variants by frequency : Shows which variants are the most common, sorted by the most common to
the least common. You could select one or multiple variants in the bar chart to analyze details of the
variants by filtering for them. This would update the process map, KPIs, and other visualizations.
Variants by time : Shows a bar chart of the longest duration variant to the shortest one. Filtering on
specific variants updates the process map and KPIs so you could get insights into the behavior of the
selected variants. To select multiple variants, press Ctrl and select the desired variants.
Variant number per Date : Shows how the number of variants for a selected time frame changes and
informs if the processes are getting more or less standardized. An increasing number of variants over
time would suggest an increased complexity in process execution over time.
Time (case duration) per Date : Shows how duration of the process changes over time.
Filters
Activity filter : Filters for all cases where the selected activity is present
Unit filter : Filters for a specific unit of time to make the process easier to analyze. For example,
processes that last days would be more easily analyzed by selecting a Days unit. As a default, the process
advisor selects what it thinks is the best unit, but you can change it to accommodate your analysis.
Star t date filter : Filters for the time range when recording has started and ended. For example, if your
process changed over time, you can see if there was any impact on your metrics after the process change
by filtering for recordings that started after a certain time.
Optional filters : If you imported Optional Columns during your data upload process, you'll have additional
filters to slice and dice the data by. In the previous image, we have examples of optional filters for Location,
Role, and Resource.
Edit and refresh processes in process advisor
(preview)
1/15/2022 • 2 minutes to read • Edit Online
IMPORTANT
This is a preview feature.
Preview features aren’t meant for production use and may have restricted functionality. These features are
available before an official release so that customers can get early access and provide feedback.
Edit query
1. In the process details page, return to the Query Editor by selecting Setup .
2. Select (or double-click) the corresponding steps in the Applied steps area under Quer y settings to
edit those steps.
Don't select Map to entity or Choose columns again.
Refresh data
If you have a data source that's transactional, like Dataverse or SQL, select Refresh on the right side of the Data
Source card in the Process details page. You need to select Analyze again after selecting Refresh . You also need
to do this if you want to see the Analytics page updated with the latest data from that data source.
Disconnect data
If you want to change the data source for your process, you can easily do this. For example, you might have
been using a CSV file before but now you want to connect to a transactional data source instead. In this example,
select Disconnect data on the right side of the Data Source card. In the Process details page, once you
disconnect, select Setup again to connect to your new data source.
Security and privacy
1/15/2022 • 2 minutes to read • Edit Online
Security
Process advisor relies on environment security and Microsoft Dataverse security roles and privileges to grant
access to its features in Power Automate. For more information, see Power Platform security overview.
Some privileges are set by default in Dataverse. This allows built-in security roles to use process advisor without
further actions from system administrators. Specifically:
Process advisor user can create, share, and contribute to processes. This role has a restricted set of
privileges that are only meant to be used by process advisor. If you need to provide access to other Power
Platform features, make sure to assign less restrictive security roles on top of the process advisor user
role.
Environment makers can use process advisor to create, share, and contribute to processes.
Administrators and system customizers can access all processes created in the environment.
These security roles have privileges to the process advisor tables in Dataverse. Custom security roles can create
processes in process advisor if they have the following permissions:
Organization read permission on the Organization, User, and User Settings tables (Business management
tab).
Organization read permission on the table, field, and relationship tables (Customization tab).
User create, read, write, delete, append, append to, assign, and share permissions on the process table
(Customization tab).
User create, read, write, delete, append, append to, assign, and share permissions on the PM inferred task,
PM recording, and workflow binary tables (Custom tables tab).
IMPORTANT
The Process Advisor Application is an internal security role that process advisor uses. Don't assign this security role to
users. Don't modify the set of privileges in the Process Advisor User or Process Advisor Application security roles.
If you’re using Conditional Access polices to limit access to Power Automate and it’s features, the following apps must be
included in Cloud apps policy application:
Microsoft PowerApps
Microsoft Flow
Currently, having conditional access to only Microsoft Flow is not enough . To learn how to set up Conditional
Access policies, see Plan a Conditional Access deployment and Control Access to Power Apps and Power Automate with
Azure AD Conditional Access Policies.
Privacy
Sharing processes and their recordings is essential to create rich analysis and insights in process advisor. Users
can add recordings to a process. They can then use Power Automate to record processes and then import the
processes into process advisor. Owners and contributors can see some data from the process and its recordings.
While most of the information process recordings capture can be essential to the understanding of the process
activities, some steps might contain sensitive information. You can modify and delete sensitive information such
as Personal Identifiable Information (PII) from your recordings.
In Power Automate, users can:
Delete sensitive steps or modify input data information.
Pause and resume recording to avoid recording sensitive information and PII.
After you import the recording into process advisor, you can still remove sensitive information by doing the
following:
Rename step names or descriptions.
Delete screenshots.
Protect your data in process advisor
1/15/2022 • 2 minutes to read • Edit Online
You can use process advisor features to remove screenshots and text entries stored during the recording session
if they contain sensitive data. You can also remove any confidential information in the text or images from your
recordings when preparing them.
Delete screenshots
To delete screenshots when preparing your recording, select the step that contains the screenshot you want to
remove and select Delete screenshot .
Remove text
To remove sensitive data from a text entry, select the text entry and modify the step description.
Export and import your process in process advisor
1/15/2022 • 2 minutes to read • Edit Online
You can copy or move process advisor processes from one environment to another using Microsoft Power
Platform solutions. You need to be an owner or co-owner of a process to export it.
To learn more about solutions from Microsoft Power Platform, go to Overview of solution-aware flows.
Export a process
1. Sign in to Power Automate.
Make sure you've selected the environment where the process you want to export has been created.
2. Select Solutions in the navigation pane on the left.
3. In the list, select the solution you want to use to add your process, or create a solution and select it.
4. Select Add existing > PM Inferred Task .
5. Search for and select the process you want to export, and then select Add .
You can now export your solution and import it in another environment.
For more information about solution export, go to Export a solution.
Import a process
To import a process into another environment:
1. Make sure you've exported your process with a solution.
2. Go to the environment where you want to import your process.
3. Follow the instructions in Import a solution.
Known issues in process advisor
1/15/2022 • 2 minutes to read • Edit Online
We'll continue to add issues here. If you're experiencing an issue not mentioned, check the Process advisor
community forums .
Activity —Activities in process advisor describe tasks or actions, the sequence of which results in a business
process. Activities can be performed by humans or (automated) by machines.
Attributes —Attributes are the dimensions of your data. Also known as columns.
Contributor —A role which can create and upload recordings to a task mining process. Contributors can label
and manage their own recordings, but they can't edit the process or other people’s recordings.
Co-owner —A role which has similar privileges to the process owner roles. They can edit the process and its
recordings, invite people to the process, manage activate label templates, and more.
Dataflow —A self-service, cloud-based, data preparation technology that enables customers to ingest,
transform, and load data into Microsoft Dataverse environments, Power BI workspaces, or the organization's
Azure Data Lake Storage account.
Data Lake —Azure Data Lake includes all the capabilities required to make it easy for developers, data scientists,
and analysts to store data of any size, shape, and speed, and do all types of processing and analytics across
platforms and languages.
Data source —Where the source event log data is located. Dataflow accesses different data sources through its
connectors.
Event logs —Tabular data of processes (or cases) and activities stored in an information system of record. The
minimum column requirements for process mining are case ID, activity ID, and start timestamp. Also known as
event data.
Power Quer y —A data transformation and data preparation engine. Power Query comes with a graphical
interface for getting data from sources and a Power Query Editor for applying transformations. Learn more:
What is Power Query?
Process —A series of activities taken to accomplish a goal. Planning demand and converting purchase
requisition to purchase orders are examples of processes.
Process map —Visualizes the actual flow of your process based on the imported user or system data.
Process mining —Visualization and analysis of processes based on event logs. Event logs are information
stored in information systems. For example, in CRM (Customer Relationship Management), you can find event
logs on orders, start and completion of an activity, resources used, and more.
Recording —A recorded sequence of activities that users perform on their desktop. Usually, multiple recordings
are analyzed together to get insights into different variants of the same task.
Robotic process automation (RPA) —Software that can be easily programmed to do basic, repetitive tasks
across applications.
Task mining —Technology that captures users’ interaction with computers and analyzes how people get jobs
done, and how they can do them better.
Variant —A specific path it takes for a process to be completed.
Workflow —The sequence of industrial, administrative, or other processes through which a piece of work
passes from initiation to completion.
Overview of cloud flows
1/15/2022 • 2 minutes to read • Edit Online
Create a cloud flow when you want your automation to be triggered either automatically, instantly, or via a
schedule.
This video gives an overview of cloud flows.
Automated flows Create an automation that is triggered Connectors for cloud or on-premises
by an event such as arrival of an email services connect your accounts and
from a specific person, or a mention of enable them to talk to each other.
your company in social media.
Instant flows Start an automation with a click of a Wide range of tasks such as requesting
button. You can automate for an approval, an action in Teams or
repetitive tasks from your Desktop or SharePoint.
Mobile devices. For example, instantly
send a reminder to the team with a
push of a button from your mobile
device.
Scheduled flows Schedule an automation such as daily Tasks that need to be automated on a
data upload to SharePoint or a schedule.
database.
If you're ready to start your Power Automate project, visit the guidance and planning article to get up and
running quickly. |
Get started with triggers
1/15/2022 • 2 minutes to read • Edit Online
What is a trigger?
A trigger is the event that starts a cloud flow. For example, if you want to get a notification in Microsoft Teams
when someone sends you an email, in this case you receiving an email is the trigger that starts this flow.
Power Automate offers connectors (apps/services like SharePoint, Outlook, /.) and most connectors offer
prebuilt triggers that you can use to start your flows. Here's a partial look at the triggers that Office 365 Outlook
connector provides by default.
Real-time, in-product help is available from the documentation and the Power Virtual Agent bot to solve the
most common workflow scenarios. While building your flows, you can access content from the documentation,
community, blogs, and templates.
Select the ? on a connector, action, or trigger to see the in-product help experience.
The right pane opens with details about the action and provides documentation links for that action.
In the following example, the Send an email (V2) action is selected, showing help topics regarding the top
email scenarios, an overview of the action, and more.
If you select ? on a different action, the help pane updates to show guidance documents for the currently
selected action.
TIP
In product help is contextual, always displaying content that's relevant to the currently selected action, trigger, or
connector.
Now that you've displayed the in-product help, follow these steps to use the various topics.
1. Select any link from the list of help topics.
The corresponding documentation opens.
Share a cloud flow with others in your organization so they can also benefit from automation you've created.
There are three primary ways to share a cloud flow in Power Automate:
Add an owner to a cloud flow.
Share a cloud flow with run-only privileges.
Share a copy of a cloud flow.
Prerequisites
You must have either a Power Automate license (except the free license) or a seeded license (Office 365,
Dynamics 365 Enterprise plans, Dynamics 365 Professional plans, Dynamics 365 Team Member, Power Apps
(Canvas and Model driven Apps)- Per App plans, Power Apps per user plan, Power Apps Plan 1
(grandfathered), Power Apps Plan 2 (grandfathered), Windows licenses) to share a cloud flow.
You must be the creator or owner to add or remove owners from a cloud flow.
About embedded and other connections
Connections used in a cloud flow fall into two categories:
Embedded : These connections are used in the flow.
Other : These connections have been defined for a cloud flow, but aren't used in it.
If you stop using a connection in a cloud flow, that connection appears in the Other connections list, where it
remains until an owner includes it in the flow again. To make changes to embedded connections, follow the
steps in Modify a connection, later in this article.
The list of connections appears under the list of owners in a cloud flow's properties, as shown in the following
image.
NOTE
Shared connections can be used only in the flow in which they were created.
Owners can use services in a cloud flow but can't modify the credentials for a connection that another owner
created.
To add more owners to a cloud flow
1. Sign in to Power Automate, and then select My flows .
2. Select the flow that you want to share, select More commands , and then select Share .
3. Enter the name, email address, or group name for the person or group that you want to add as an owner.
The user or group you've selected becomes an owner of the flow.
TIP
Use a list when the flow is connected to SharePoint, and use a group in all other cases.
IMPORTANT
SharePoint users must have Edit permission or be a member of the Members or Owners group to run flows in
SharePoint.
Adding a list as a co-owner is not available in GCC High and DoD tenants.
Remove an owner
IMPORTANT
When you remove an owner whose credentials are used to access Power Automate services, you should update the
credentials for those connections so that the flow will continue to run properly. More information: Modify a connection
Modify a connection
You might need to change the owner of a connection in a cloud flow if you remove the existing owner or if you
just want to use a different account to sign in to an action or trigger.
1. Go to the flow that you want to modify.
2. Select Edit .
3. Select More commands (...) in the step where you want to edit the connection.
4. If you have a connection already, select it; if not, select Add new connection to create a new connection,
and then select Sign in to create your new connection.
2. In the Manage run-only permissions panel, specify the users and groups you want to provide run-
only access to.
3. As an owner, you can specify whether run-only users will need to provide their own connections or you
can choose use a connection that's already defined in the flow.
NOTE
Sharing a copy creates an independent instance of the flow for the recipient. You can't revoke access to the flow after you
share it.
2. In the Send a copy panel, you can edit the name and description of the flow you want to share, and
specify the users with whom you want to share it.
3. The recipient will receive an email stating that you have shared a cloud flow template with them, and they
can then create their own instance of that flow.
NOTE
As a recipient, you can also access the flow by selecting Templates on the left pane and then selecting the
Shared with me tab.
FAQ
What happens if the user who created a shared flow leaves the organization?
If the shared flow still has an active owner, the flow continues to run.
NOTE
If the flow uses any active or embedded connections that belong to the user who has left the organization, those specific
actions might fail. To fix this, follow the steps in Modify a connection, earlier in this article to update the credentials.
If there's no active owner for a flow, you should change the owner. To change the owner of a flow, make a copy
of the flow, and then let the intended owner create the flow from the copy.
How can I change the owner of a solution flow?
It is currently not possible to change the owner of a solution flow in the modern solution explorer. That
capability will be added in the future. In the meantime, there is a workaround:
1. Obtain the environment organization URL by selecting "Switch to classic" in the Solutions Explorer and
copying the host name from the URL. This is an example: https://org123456.crm10.dynamics.com/.
2. Open environment using organization URL
3. Select Settings > Advanced Settings .
4. Select Advanced Find .
5. In the Look for lookup , select Processes .
6. Select Clear to clear the existing filter.
7. In the filter area, add a filter for Category Equals "Modern Flow"
8. Select Results to see the list of flows that you own.
9. Select the check box next to the desired flow and then select Assign Processes .
10. Change Assign to to User or team .
11. Use the User or team lookup to provide the new owner.
12. Select Assign .
Create a cloud flow from a template in Power
Automate
1/15/2022 • 2 minutes to read • Edit Online
A good way to get started is to use a template that is suited to your organization's scenario. You can choose
from a collection of templates to find the one that best matches your scenario. Search all templates or browse
by category to find your scenario, and then follow the steps in the template to create a cloud flow from the
template.
The following video gives insights into using templates to create your flows.
You can tweak templates by adding, editing, or removing triggers and actions to create your own flows. You can
copy paste actions in the same flow or across flows to speed up the your tweaks.
Create a cloud flow from one of many built-in templates that can, for example, send you a Slack message when
your manager sends you an email in Microsoft 365.
TIP
Create a cloud flow from scratch if you already have a process in mind and can't find a template for it.
Here, we'll follow an example that uses a template to create a flow that sends you a Slack message when your
manager sends you an email in Microsoft 365.
Prerequisites
To complete this example, you'll need accounts with access to the following:
Power Automate.
Slack.
Microsoft 365.
Choose a template
1. Sign into Power Automate, and then select Templates in the left-side navigation pane.
2. Use the search bar to search for slack manager to find the Send a message on Slack when my
manager emails me template, and then select it.
3. If you aren't signed into Office or Slack, select Sign in and then follow the prompts.
4. After you confirm your connections, select Continue .
Your flow appears, showing each action with an orange title bar.
Customize your flow
1. Select the title bar for an event to expand it, and then customize it (for example, by specifying a filter on
the email that interests you).
2. Actions that require input from you will automatically be expanded.
For example, the Post message action is expanded because you need to enter a channel, such as your
@username. You can also customize the message content. By default, the message will contain just the
subject, but you can include other information.
3. Near the top of the screen, specify a name for your flow, and then select Create flow .
4. Finally, if you're happy with your flow, select Save .
Now, when your manager sends you an email, you'll receive a Slack message that contains the information that
you specified.
More information
Watch your flow in action
Publish your own template
Use a template with Microsoft Dataverse
Get started with team flows and invite others to collaborate with you to design flows.
Create a cloud flow in Power Automate
1/15/2022 • 3 minutes to read • Edit Online
Create a cloud flow that performs one or more tasks automatically after it's triggered by an event. For example,
create a cloud flow that notifies you by email when someone sends a tweet that contains a keyword you specify.
In this example, sending a tweet is the event, and sending mail is the action.
Prerequisites
An account on flow.microsoft.com
A Twitter account
Office 365 credentials
TIP
Connectors support multiple types of authentication. For example, SQL Server supports Azure AD, SQL Server
authentication, Windows authentication, and SQL connection string. Users choose which type of authentication
they want to use when configuring a connector.
2. If you haven't already connected your Twitter account to Power Automate, select Sign in to Twitter , and
then provide your credentials.
3. In the Search text box, type the keyword that you want to find.
Specify an action
1. Select New step .
2. In the box that shows Search connectors and actions , enter send email , and then select Send an
email (V2) .
3. If prompted, select the sign-in button, and then provide your credentials.
4. In the form that appears, enter your email address in the To box, and then select your name from the list
of contacts that appears.
5. In the Subject box, enter New tweet from:, and then type a space.
6. In the list of tokens, select the Tweeted by token to add a placeholder for it.
7. Select the Body box, and then select the Tweet text token to add a placeholder for it.
Optionally, you can add more tokens, other text, or both to the body of the email.
8. Near the top of the screen, select Save .
TIP
Use the Send email (V2) action to format email in which you customize the font, use bold, italic or underline, customize
the color and highlight, and create lists or links, and more.
Manage a cloud flow
1. In Power Automate, select My flows in the navigation bar on the left side.
2. In the list of flows, do any of the following:
To pause a cloud flow, set its toggle to Off .
To delete a cloud flow, select the ... icon, select Delete , and then select Delete on the message box
that appears.
To view the run history of a cloud flow, select the flow from the My flows page, and then view the
history under the 28 day run histor y section of the page that opens.
Select a cloud flow run from the list of runs to see the inputs and outputs of each step.
NOTE
You can have up to 600 flows in your account. If you already have 600 flows, delete one before you create another flow.
Next steps
Add steps, such as different ways to be notified, to your flow.
Run tasks on a schedule, when you want an action to occur daily, on a certain date, or after a certain number
of minutes.
Add a cloud flow to an app to allow your app to kick off logic in the cloud.
Get started with team flows and invite others to collaborate with you to design flows.
Create a cloud flow by using Dynamics 365 (online)
1/15/2022 • 7 minutes to read • Edit Online
IMPORTANT
Dynamics 365 apps such as Dynamics 365 Sales, Dynamics 365 Customer Service, Dynamics 365 column Service,
Dynamics 365 Marketing, and Dynamics 365 Project Service Automation, use Microsoft Dataverse as the data source.
The Dynamics 365 connector is deprecated, but continues to work until removed. More information: Dynamics 365
Connector is deprecated.
Do not use the Dynamics 365 connector for new flows. Use the Microsoft Dataverse connector whenever you can. If the
Microsoft Dataverse connector does not fit your needs, use the Microsoft Dataverse (legacy) connector.
The Microsoft Dataverse connector should be your first choice because it provides the most capability and best
performance. However, it does not currently provide certain capabilities that the Dynamics 365 and Microsoft Dataverse
connectors do, such as the ability to connect to multiple environments. The Microsoft Dataverse (legacy) provides the
same capabilities as the Dynamics 365 connector, but also provides substantially improved reliability.
By using a Dynamics 365 connector, you can create flows that initiate when an event occurs in Dynamics 365, or
some other service, which then performs an action in Dynamics 365, or some other service.
In Power Automate, you can set up automated workflows between your favorite apps and services to
synchronize files, get notifications, collect data, and more. For more information, see Get started with Power
Automate.
IMPORTANT
To invoke a Power Automate trigger, the table used with the flow must have Change Tracking enabled. More
information: Enable change tracking to control data synchronization
[IMPORTANT] In order for the flow to trigger on the Dynamics 365 table, the table definition must
have Change Tracking enabled. See Enable change tracking to control data synchronization
7. Click or tap New step , and then click or tap Add an action .
8. Click or tap Dynamics 365 – Create a new row .
9. Under Organization Name , select the Dynamics 365 instance where you want the flow to create the
row. Notice that it doesn’t have to be the same instance where the event is triggered from.
10. Under Table Name , select the table that will create a row when the event occurs.
For this walkthrough, select Tasks .
11. A Subject box appears. When you click or tap it, a dynamic content pane appears where you can select
either of these columns.
Last Name . If you select this column, the last name of the lead will be inserted in the Subject column
of the task when it's created.
Topic . If you select this column, the Topic column for the lead will be inserted in the Subject column
of the task when it's created.
For this walkthrough, select Topic .
Tip: On the dynamic content pane, click or tap See more to display more columns that are
associated with the table. For example, you can also populate the Subject column of the task with the
Company Name , Customer , Description , or Email column of the lead.
Text columns Text columns require Settings > categor y Single Line of Text
a single line of text or Customizations >
dynamic content that Customize the
is a text type column. System > Tables >
Examples include the Task > Fields
Categor y and Sub-
Categor y columns.
Date columns Some columns Settings > createdon Date and Time
require a date Customizations >
entered in Customize the
mm/dd/yyyy format System > Tables >
or dynamic content Task > Fields
that is a date type
column. Examples
include Created On ,
Star t Date , Actual
Star t , Last on Hold
Time , Actual End ,
and Due Date .
C O L UM N T Y P E H O W TO USE W H ERE TO F IN D NAME DATA T Y P E
Fields that require Some columns that Settings > accountid Primar y Key
both a row ID and reference another Customizations >
lookup type table row require Customize the
both the row ID and System > Tables >
the lookup type. Account > Fields
More examples of columns that require both a row ID and lookup type
Expanding on the previous table, here are more examples of columns that don't work with values selected from
the dynamic content list. Instead, these columns require both a row ID and lookup type entered into the columns
in Power Apps.
Owner and Owner Type .
The Owner column must be a valid user or team row ID.
The Owner Type must be either systemusers or teams .
Customer and Customer Type .
The Customer column must be a valid account or contact row ID.
The Customer Type must be either accounts or contacts .
Regarding and Regarding Type .
The Regarding column must be a valid row ID, such as an account or contact row ID.
The Regarding Type must be the lookup type for the row, such as accounts or contacts .
This example adds an account row that corresponds to the row ID, adding it to the Regarding column of the
task.
This example also assigns the task to a specific user based on the user's row ID.
To find a row's ID, see Find the row ID later in this topic.
Impor tant: Fields shouldn't contain a value if they have a description of "For internal use only." These
columns include Traversed path , Additional Parameters , and Time Zone Rule Version Number.
2. On the actions toolbar, click or tap Pop Out (or click or tap EMAIL A LINK to copy the full URL to
your default email program).
In the address bar of the web browser, the URL contains the row ID between the %7b and %7d encoding
characters.
Related topics
Troubleshooting a cloud flow
Flow in your organization Q&A
Frequently asked questions
Create flows from the OneDrive for Business launch
panel
1/15/2022 • 2 minutes to read • Edit Online
Similar to the Power Automate Launch Panel in SharePoint, you can run flows on specific files in OneDrive for
Business.
This feature enables the person running the flow to use their own credentials, which is especially applicable for
flows that have been created by an IT department.
Users can also get prompts for runtime inputs like Approver or Message , which can be of type text, file, email,
Boolean, or number.
In this walkthrough, we'll create a simple flow that uses one of the many OneDrive for Business templates to
request approval of a file by the requestor's manager.
TIP
Sign into all connectors that request that you sign in.
6. Select Continue .
7. Make any changes you want to the template and then save your flow with a name that you'll remember
easily.
Learn more
Get started with Power Automate
Build multi-step flows
Filter and copy data with Power Automate
1/15/2022 • 5 minutes to read • Edit Online
This walkthrough shows you how to create a cloud flow that monitors a source for new or changed items and
then copies those changes to a destination. You may create a cloud flow like this one if your users enter data in
one location, but your team needs it in a different location or format.
While this walkthrough copies data from a Microsoft SharePoint list (the source) to an Azure SQL Database table
(the destination), you can copy data among any of the more than 380 connectors that Power Automate
supports.
TIP
For detailed information about using SharePoint with Power Automate, see the SharePoint documentation.
IMPORTANT
Changes you make in the destination aren't copied to the source because two-way syncs aren't supported. If you attempt
to set up a two-way sync, you'll create an infinite loop where changes are sent endlessly between the source and
destination.
Prerequisites
Access to a data source and a destination. This walkthrough doesn’t include steps to create the source and
destination.
Access to Power Automate.
A basic understanding of how your data is stored.
Familiarity with the basics of creating flows. You can review how to add actions, triggers, and conditions. The
following steps assume that you know how to perform these actions.
TIP
Every column name in the source and destination doesn't need to match, but you must provide data for all required
columns when you insert or update an item. Power Automate identifies the required fields for you.
NOTE
If you haven't created a connection to SharePoint or Azure SQL Database previously, follow the instructions when you're
prompted to sign in.
TIP
Confirm you've selected value from the Get rows category. Don't select value from the When an item is
created or modified category.
When your flow "gets" items from the destination, there're two possible outcomes.
O UTC O M E N EXT ST EP
NOTE
The images of the Inser t row and Update row cards shown next may differ from yours because these cards show the
names of the columns in the Azure SQL Database table that's being used in the flow.
3. At the top of the page, enter a name for your flow in the Flow name box, and then select Create flow to
save it.
Now, whenever an item in your SharePoint list (source) changes, your flow triggers and either inserts a new
item or updates an existing item in your Azure SQL Database (destination).
NOTE
Your flow isn't triggered when an item is deleted from the source. If this is an important scenario, consider adding a
separate column that indicates when an item is no longer needed.
Learn more
Use data operations in your flows.
Run your flows with Flics smart buttons (Preview)
1/15/2022 • 4 minutes to read • Edit Online
Trigger your flows by pressing a physical button, known as a Flic, from Shortcut Labs. For example, press a Flic
to track your working hours, block your calendar, count visitors at an event, or save geographical locations.
IMPORTANT
Configure all Flic properties by using Flic's mobile app for Android or iOS before you create your flow.
Prerequisites
To use Flics with Power Automate, you must have:
Access to Power Automate.
Downloaded Flic's Android or iOS mobile app, and used it to pair one or more Flics.
After you've linked a Flic event to Power Automate, you can then select that Flic as a trigger for your flows. You
select triggers later in this walkthrough.
2. Enter flic into the search box, and then select the search icon.
3. Select the Track your working hours with Flic smar t button template.
2. Enter flic into the search box, and then select the Flic - When a Flic is pressed trigger.
3. Select the Flic you want to use from the Flic button list on the Flic - When a Flic is pressed card.
4. Select click from the Events list to indicate that you want to trigger the flow when the Flic is pressed
once.
Optionally, you can select any to indicate that each Flic event (click, double-click, or hold) triggers the
flow.
Double-click indicates that the flow triggers when the Flic is quickly pressed two times. Hold indicates
that a long press on the Flic triggers the flow.
You're free to create other flows and trigger them using the other events in the Events list. For example,
you can use the double-click event to note the time you leave a client.
Configure the sheet
On the Inser t row card:
1. Select the spreadsheet you created earlier from the File list.
2. Select the sheet from the Worksheet list.
Note: Two additional boxes appear on the Inser t row card after you select the sheet. These boxes
represent the two columns in the sheet you created earlier.
3. Select the ClickType box, and then select the Click type token.
4. Select the Timestamp box, and then select the Click time token.
Confirm the email settings are correct
1. Confirm the Send me an email notification card looks like this screenshot.
If you've followed along, pressing the Flic once triggers the flow. The flow then records the click type and the
current time in the sheet and then sends an email to you.
1. Press your Flic once.
2. Open your worksheet in Google Sheets. You should see the ClickType and the Timestamp columns
populated with the "click" and the time, respectively.
3. You can also see the results of the run from the Power Automate website or from the Power Automate
mobile app. Here's a screenshot of my test run.
4. Here's what the body of the notification email that I received from the run of the flow looks like.
For extra credit, consider extending the flow to automatically store your location (latitude and longitude) when
the Flic is pressed.
More information
Share button flows.
Learn to use button trigger tokens to send current data when your button flows are executed.
Install the Power Automate mobile app for Android, iOS, or Windows Phone.
Run your flows with bttns from The Button
Corporation (Preview)
1/15/2022 • 3 minutes to read • Edit Online
Trigger your flows by pressing a bttn (a physical button made by The Button Corporation). For example, you can
press a bttn that triggers a cloud flow to perform these tasks:
contacts your helpdesk with location information
sends an email to your team
blocks your calendar
reorders supplies
IMPORTANT
You must register your bttn before you can use it in a cloud flow.
TIP
Configure all bttn properties such as name, location, and email address on the bttn website before you create your flow.
You can also trigger a cloud flow by using a Flic physical button.
Prerequisites
Access to Power Automate.
At least one registered bttn.
Now that you've registered and configured your bttn, let's get started creating our flow.
Sign in and select a template
1. Sign into Power Automate.
Note: As an alternative, you can create flows in the Power Automate mobile app for Android, iOS, or
Windows Phone.
2. Enter bttn into the search box, and then select the search icon.
After you select the search icon, all templates that you can use with bttns appear.
3. Select the Use Bttn to call technical suppor t for meeting room template.
Authorize Power Automate to connect to your bttn
1. If prompted, sign into the bttn and the Office 365 Outlook services, which will enable the Continue
button.
2. When you sign into the bttn service, authorize Power Automate to use your bttns.
Impor tant : If you don't authorize Power Automate to use your bttns, you can't see or connect to them
from Power Automate.
2. Give your flow a name, and then select Create flow to save it.
More information
Share button flows.
Learn to use button trigger tokens to send current data when your button flows run.
Install the Power Automate app for Android.
Install the Power Automate app for iOS.
Run flows on a schedule
1/15/2022 • 2 minutes to read • Edit Online
Create a cloud flow that performs one or more tasks (such as sending a report in email):
Once a day, an hour, or a minute
On a date that you specify
After a number of days, hours, or minutes that you specify
3. Specify when your flow should start by editing Star ting boxes, and specify the flow's recurrence by editing
Repeat ever y boxes then select Create .
Configure advanced options
1. Follow the steps in the previous section. and then select Recurrence > Show advanced options .
NOTE
These options change based on the values to which Inter val and Frequency are set. If your screen doesn't
match the graphic below, make sure that Inter val and Frequency are set to the same values that the graphic
shows.
2. Select a Time zone to specify whether the Star t time reflects a local time zone, Universal Coordinated
Time (UTC), etc.
3. Specify a Star t time in this format:
YYYY-MM-DDTHH:MM:SSZ
4. If you specified Day under Frequency , specify the time of day when the flow should run.
5. If you specified Week under Frequency , specify the day or days of the week on which the flow should
run and the time or times of day when the flow should run.
For example, configure the options as shown to start a cloud flow no sooner than noon (Pacific time) on
Monday, January 1, 2018, and run it every two weeks on Tuesdays at 5:30p (Pacific time).
6. Add the action or actions that you want the flow to take, as Create a cloud flow from scratch describes.
Learn more
Learn more about the advanced options and how to configure them.
Use the apply to each action in Power Automate to
process a list of items periodically
1/15/2022 • 5 minutes to read • Edit Online
Many triggers can immediately start a cloud flow based on an event such as when a new email arrives in your
inbox. These triggers are great, but sometimes you want to run a cloud flow that queries a data source on a
predefined schedule, taking certain actions based on the properties of the items in the data source. To do this,
your flow can be started on a schedule (such as once per day) and use a loop action such as Apply to each to
process a list of items. For example, you could use Apply to each to update records from a database or list of
items from Microsoft SharePoint.
Watch this video for a demo of the Apply to each action.
In this walk-through, we'll create a cloud flow that runs every 15 minutes and does the following:
1. Gets the last 10 unread messages in your Office 365 Outlook Inbox.
2. Checks each of the 10 messages to confirm if any has meet now in the subject.
3. Checks if the email is from your boss or was sent with high importance.
4. Sends a push notification and marks as read, any email that has meet now in the subject and is either from
your boss or was sent with high importance.
This diagram shows the details of the flow we'll create:
Prerequisites
Here are the requirements for successfully performing the steps in this walk-through:
An account that's registered to use Power Automate.
An Office 365 Outlook account.
The Power Automate mobile app for Android, iOS, or Windows Phone.
Connections to Office 365 Outlook and the push notification service.
TIP
For detailed information about using SharePoint with Power Automate, see the SharePoint documentation.
6. Select + New step , and then type outlook into the search box to find all connectors and actions related
to Microsoft Outlook.
7. Select the Get emails (V3) action:
8. The Get emails (V3) card opens. Configure the Get emails (V3) card to select the top 10 unread
emails from the Inbox folder. Don't include attachments because they won't be used in the flow:
NOTE
So far, you've created a simple flow that gets some emails from your inbox. These emails will be returned in an
array; the Apply to each action requires an array, so this is exactly what's needed.
8. On the Send me a mobile notification card, provide the details for the push notification that will be
sent if the subject of an email contains "meet now" and the Impor tance is high .
9. Going back to the Condition 2 card, on the If no branch:
Select Add an action , and then type get manager into the search box.
Select the Get manager (V2) action from the search results list.
Enter the To token into the User (UPN) box of the Get Manager (V2) card.
2. On the Send me a mobile notification 2 card, provide the details for the push notification that will be
sent if the email is from your boss, and then select Add an action :
3. Add the Mark as read or unread (V2) action.
4. Add the Message Id token to the Mark as read or unread (V2) card. You may need to select See
more to find the Message Id token. The Message Id is the Id of the message that will be marked as
read.
5. Select Read from the Mark as list on the Mark as read or unread (V2) card.
5. Select Flow Runs Page , and then select the flow run in which you are interested to view the results.
NOTE
If you don't receive the push notification, confirm that your mobile device has a working data connection.
Introducing instant flows
1/15/2022 • 5 minutes to read • Edit Online
There are many repetitive tasks that we all wish we could run with just a tap of a button. For example, you may
need to quickly email your team to remind them to join the daily team sync, or you may want to start a new
Visual Studio Codespaces build of your code base after you've been notified that there are no more checkins
planned for the day. Instant flows allow you to accomplish these and many other tasks simply by tapping a
button on your mobile device.
NOTE
You can create instant flows either from your mobile device or from Power Automate.
Create a button
Prerequisites
Access to Power Automate.
An account with permissions to use the connectors to create your button. For example, you will need a
Dropbox account in order to create a button that accesses Dropbox.
From the portal
In this walk-through, let's create a button that starts a Visual Studio Codespaces build and sends notifications to
let you know when the build starts:
1. Sign in to Power Automate.
2. Select Create from the left side of the screen.
3. Select Instant flow .
4. Give your flow a name in the Flow name > Manually trigger a flow > Create .
5. Select the Trigger a new build in VSO template from the list of templates.
6. Select the Use this template button on the Trigger a new build in VSO page.
9. Select the Accept button if you agree to authorize Power Automate to access your VSO account.
Note You'll need to authorize each connector similarly. The designer should appear like this when you are
ready to move on to the next step. Select the Continue button to move on:
10. You are now ready to configure the properties for the build you wish to start:
11. Select or enter the Account name , Project name , Build definition Id , Source branch and optionally,
Parameters , in the Queue a new build card:
12. Next, configure the properties of the push notification on the Send a push notification card. By default,
this push notification is configured to send an HTML link to a Web page that displays the status of the
build:
13. Select the Create flow button to save your instant flow:
14. You should see this success message within a few moments:
Congratulations, you've created a instant flow! You can now run this instant flow anytime, any place, from the
Buttons tab in the Flow app. Simply press the "button" and it will run! The Power Automate mobile app is
available for Android, iOS, or Windows Phone.
From your mobile device
NOTE
While this walk-through displays screens from an Android device, the screens and experience on an iOS device are similar.
In the app:
1. Select the Browse tab and scroll to the Button category.
2. Select the See all link. This displays all ready-to-go button templates.
3. Select the Send an email to remind your team to join a meeting template
4. Select the USE THIS TEMPL ATE link, at the bottom of the page.
5. You'll need to sign into all services that this template uses:
6. Select the Next link after you've signed in to all services.
7. Select the Create link. Here you can also review the flow and make any changes you require to personalize
the email, for example.
8. After a few moments, the instant flow is created. Select SEE MY FLOW :
3. Finally, the page updates, indicating that the instant flow has completed:
That's all there is to running a cloud flow.
You should now receive the push notification, indicating that the email has been sent.
WARNING
All run history is deleted when you delete a cloud flow.
Tap Update after you are done editing a instant flow, to save your changes:
Tap Run histor y to see the results of all runs of a particular instant flow:
If you disable a cloud flow, it will no longer be available on the Buttons tab:
Next steps
Share instant flows.
Learn to use button trigger tokens to send real-time data when your instant flows are run.
Install the Power Automate mobile app for Android, iOS, or Windows Phone.
Create a flow from your phone
1/15/2022 • 2 minutes to read • Edit Online
Create a cloud flow from your phone by using a Power Automate template. On the Templates screen in Power
Automate, you can select the Mobile category to find templates designed to work on your mobile phone.
In this topic, we'll follow an example to create a flow that sends a push notification to your phone when you get
mail from your boss.
If you're unfamiliar with Power Automate, get an overview.
Prerequisites
To complete the example in this topic, you'll need the following:
Access to Power Automate.
The Power Automate mobile app for Android, iOS, or Windows Phone on a supported device. The
graphics in this topic reflect the iPhone version of the app, but the interface on an Android device or
Windows Phone is similar.
To use the template demonstrated in this topic, you'll also need:
Office 365 credentials.
Push notifications enabled on your phone.
Find a template
1. Open the mobile app, and then tap Browse at the bottom of the screen.
You can find a template in any of these ways:
Specify a keyword in the search box at the top of the screen.
Tap an option in the list of services.
Scroll down to show a variety of categories, and then tap a template in any category.
For this tutorial, you'll open the template that sends a push notification when you get mail from
your boss.
2. In the list of services, tap See all .
3. Tap the Notifications service icon.
4. In the search bar, type boss , and then tap the template to send a push notification when you receive a
message from your boss.
5. In the screen that gives details about the template that you've selected, tap Use this template .
Finish the flow
1. If prompted, tap Sign in , and provide your credentials for Office 365 Outlook, Office 365 Users, or both.
TIP
You can use the same connections when you create other flows.
PA RA M ET ER DESC RIP T IO N
City The city in which the device that's running the flow is
located.
Full address The full address where the device that's running the flow is
located.
Latitude The latitude in which the device that's running the flow is
located.
Longitude The longitude in which the device that's running the flow is
located.
PostalCode The postal code in which the device that's running the flow is
located.
State The state in which the device that's running the flow is
located.
Street The street on which the device that's running the flow is
located.
Timestamp The time in the area where the device that's running the flow
is located.
Date The date in the area where the device that's running the flow
is located.
PA RA M ET ER DESC RIP T IO N
User name The user name of the person signed into the device that's
running the flow.
User email The email address of the person signed into the device that's
running the flow.
2. Select the Send a 'Working from home today' email to your manager service under the Button
category
3. Select USE THIS TEMPL ATE
6. With the cursor still in the subject text box, scroll to the manual list of parameters and tap Date . Notice the
date parameter is now in the Subject text box:
7. Scroll to the Body text box and tap after the default message so that additional tokens can be included there.
3. Within a few moments, notice that the email was sent to your boss:
Congratulations, you've just created a button flow that uses both the date and full address trigger tokens.
Next steps
Share button flows
Learn about button flows
Introducing button flows with user input
1/15/2022 • 3 minutes to read • Edit Online
Create a button flow to run routine tasks by simply tapping a button. Customize your flow by allowing the user
to provide specific details that will be used when the flow runs. This topic walks you through creating a button
flow that takes input from the user and then running the button flow, highlighting how to provide the user input.
You can create a button flow in the Power Automate website or the mobile app for Power Automate. For this
topic, you'll use the website.
Prerequisites
An account on the Power Automate website.
5. (optional) Change the name of the flow by typing a name of your choice into the box at the top of the
portal:
2. Select the + icon to expand the page so that you can add custom input fields:
3. Enter the Input title and Input description for each custom field that you want to make available when
someone runs your flow.
In this example, you'll create two custom input fields (Bug repro steps and Bug severity ) so that
anyone who uses this flow can enter the steps to reproduce the bug and rate the bug's severity:
Customize the bug
1. Tap the Create a new work item card's title bar:
2. Make the selections that are appropriate for your VSTS environment, and then select Edit :
For example, connect to myinstance.visualstudio.com by typing myinstance .
3. Select Show advanced options to reveal the other fields for this card:
4. Place the cursor before the Bug title token, and then enter "Severity: " into the Title text field.
5. With the cursor still in the title text field, select the Bug severity token, and then enter " -- ".
6. In the Description text field, place your cursor just after the Bug description token, and then press
Enter to start a new line.
7. Place your cursor on the new line, and then select the Bug Repro steps token:
2. Enter the title for the bug you are reporting, and then tap Next . For example:
3. Enter the description of the bug you are reporting, and then tap Next . For example:
4. Enter the steps to reproduce the bug you are reporting, and then tap Next . For example:
5. Enter the severity of the bug you are reporting, and then tap Done :
The flow runs.
6. (optional) Tap the Activity tab to show the results.
7. (optional) Show the detailed results of the flow's run by tapping the Create a new work item step.
Use different input types
Your button flows can also accept rich data types. Here's the list of data input types that button flows accept:
Text
Drop-downs (like radio buttons)
Email address
File (for example, a photo on your phone)
Yes or No check box
Number
Date (with a calendar picker)
To use these input types, add the Manually trigger a cloud flow trigger, and then add any of these types to
your flow:
Additionally, you might want to designate some inputs as required and others as optional. Use the action menu
(... at the right side) on each input field. There's a limit of five inputs per button.
Next steps
Share button flows
Learn about button flows
Learn about button flows with trigger tokens
Share button flows in Power Automate
1/15/2022 • 3 minutes to read • Edit Online
In the Power Automate mobile app, you can share button flows (buttons) with other users or groups within your
organization. When you share a button, the person or group with whom you share can run your button, the
same way they run their own buttons. You can also share a link to buttons that another person shared with you.
You can stop sharing your buttons at any time.
The screenshots used in this document were taken from an Android device. If you're using an iPhone, the
images may appear differently, but the functionality is the same.
Follow these steps to use a button that someone shared with you.
Prerequisites
To share buttons, you need:
An account with access to Power Automate.
A flow to share.
A mobile device with the Power Automate mobile app for Android, iOS, or Windows Phone.
A group or user within your organization with whom to share your button.
Share a button
You can share a button from the Buttons tab of the Power Automate mobile app.
1. Tap the small icon next to the button you want to share.
5. Tap DONE on the page that indicates the button sharing operation completed successfully.
Require users to use their own connections
NOTE
When you share a button, you can allow persons with whom you've shared the button to use all connections that your
button uses. You can also require them to use their own connections. If you allow others to use your connections, they
can't access the credentials in your connection, or reuse them in any other flow.
Follow these steps to require persons with whom you've shared your buttons to use their own connections.
1. Select MANAGE CONNECTIONS on the screen that's displayed immediately after you share a button.
2. Select EDIT on the button you want to manage.
3. Select Provided by user or your email address.
Your choice indicates whose connections must be used in the shared button.
You can view or change your choice any time. To do so, select the Flows tab > the flow you shared >
Users and connections > the CONNECTIONS tab > EDIT on the button you want to manage.
View the list of button users
You can view all groups or users with whom a button is shared by following these steps from the Buttons tab:
1. Tap the small icon next to the button in which you're interested.
2. On the Button users page, view all groups or users with whom the button is shared.
4. Wait for the remove operation to complete. Notice the Button users list refreshes, and the user or group
you removed is no longer listed.
3. Select the app that you'd like to use to share the button, and then follow the steps to send the button to
the person with whom you want to share.
Stop using a shared button
If you no longer want to use a button that was shared with you, remove it from the Buttons tab by taking these
steps:
1. On the Buttons tab, tap ... next to the button you no longer want to use.
NOTE
After you remove a shared button, you can add it back by selecting GET MORE from the Buttons tab.
Add multiple actions and advanced options to a
cloud flow
1/15/2022 • 5 minutes to read • Edit Online
Customize a cloud flow by adding one or more advanced options and multiple actions for the same trigger. For
example, add an advanced option that sends an email message as high priority. In addition to sending mail
when an item is added to a SharePoint list, create a file in Dropbox that contains the same information.
TIP
For detailed information about using SharePoint with Power Automate, see the SharePoint documentation.
Prerequisites
Create a cloud flow
4. In the list of possible actions, search for Create file , and then select Dropbox - Create file .
5. If prompted, provide your Dropbox credentials.
6. Select the folder icon on the right side of the Folder path box.
7. Find and then select the folder in which you want to place the new file.
8. Enter the name of the new file into the File name box. Be sure to append an extension, such as ".txt", to
the file name. Here, let's use the TweetId in the file's name to ensure uniqueness of the files. You may
have to select See more to find the TweetId token.
9. Add the text that you want the file to contain by typing into the File content box. You can also add
tokens into the File content box.
IMPORTANT
If you give the file a name that matches an existing file's name (in the selected folder), the existing file will be
overwritten.
10. Select Update flow , which is located on the menu at the top of the screen.
11. Send a tweet that contains the keyword you specified.
Within a minute, a file is created in your Dropbox account.
NOTE
You can't move a step before another if you're using any outputs from that step.
To delete an action, select the ellipsis (...) near the right edge of the title bar for the action you want to
delete, select Delete , and then select OK .
Note: You can't delete an action if you're using any outputs from it anywhere in the flow. First, remove
those outputs from the fields, and then you can delete the action.
IMPORTANT
Comments are supported for environments that have a Dataverse database.
Follow these steps to add a comment to any action or trigger in your flow.
1. Select the ellipsis on the trigger or action.
2. Select New Comment .
If the person you want to @mention is not a co-owner of the flow, they'll see the Share and notify
option. This would automatically share the flow with the other user, and send an email notification.
Limitations
Makers must save the flow at least once before a comment could be added.
The comment thread count icons don't appear for control actions such as condition, switch, and scope.
Comments aren't allowed for managed solution flows.
The Share and notify option is available only for non-solution aware flows. For solution aware flows,
@mentioning is limited to users who are already co-owners of the flow.
Ability to choose dynamic content in the expressions without having to switch tabs.
Ability to preserve expressions with errors and unblock the view to work in parallel on other parts of
flow.
NOTE
Some actions may not support the new expression editor.
Add a condition to a cloud flow
1/15/2022 • 2 minutes to read • Edit Online
Use a Condition to specify that a cloud flow performs one or more tasks only if a condition is true or false. For
example, you can use a Condition that indicates that you'll get an email only if a tweet that contains a keyword
is retweeted at least 10 times.
Check out the following video tutorial to learn more about conditions.
Prerequisites
Create a cloud flow from a template - this tutorial uses this template as the example
Add a condition
1. In Power Automate, select My flows .
You might need to sign in if you're not already signed in.
2. Select one of the flows from My flows , and then select More commands (the three dots).
This tutorial uses an example with a Twitter trigger and a SharePoint action.
3. Select Edit .
4. Under the last action, select New step > Condition .
5. On the Condition card, select an empty area in box on the left.
The Dynamic content list opens.
6. Select the Retweet count parameter to add it to the box.
7. In the box in the middle of the Condition card, select is greater than or equal to .
8. In the box on the right, enter 10 .
Now that you've configured the condition, continue with the following steps to send an email if the
Retweet count is more than 10.
9. Select Add an action on the If yes send of the condition.
10. Enter Send an email into the search box, and then select Send an email (V2) .
11. Configure the Send an email (V2) card to your liking, indicating the contents of the email that the flow
sends if the Retweet count is greater than 10.
You can also configure the If no side of the condition if you'd like to take an when the Retweet count is
less than 10.
12. Save the flow.
TIP
You can create complex conditions by using the Add button on the condition card.
Next steps
Learn how to use expressions in conditions in advanced mode.
Use data operations with Power Automate
1/15/2022 • 5 minutes to read • Edit Online
In this walkthrough, you'll learn about some common data operations in Power Automate—such as compose,
join, select, filter arrays, create tables, and parse JSON—that are available to manipulate data when you create
flows.
Here's a quick video about data operations.
Prerequisites
Access to Power Automate.
A tool such as PostMan to send HTTP POST requests with a JSON array to your flow.
2. In the Inputs box, enter the array that you want to reference later.
TIP
To make the Compose card easier to find later, rename it by selecting the text Compose on the title bar of the card and
entering a name that's easy to remember.
When you need to access the contents of the compose action, do so by following these steps:
1. Add an action, such as Data Operation – Join .
2. Select the control to which you'd like to add the contents you saved in the compose action.
The Add dynamic content from the apps and connectors used in this flow screen opens.
3. On the Dynamic content tab, in the Compose section, select Outputs .
2. In the From box, enter the array, and in the Join with box, enter a semicolon (;).
3. Save your flow, and then run it
4. After your flow runs, the output of the Data Operation – Join action will be a string with the addresses
joined by semicolons, as shown in the following image.
NOTE
Although you can add or remove elements by using the select action, you can't change the number of objects in the
array.
In this example, data enters your flow via a web request in this format:
You want to reshape the incoming data by renaming first to FirstName and last to FamilyName , and adding
a new member named FullName that combines first and last (separated with a space).
To do this:
1. Add the When an HTTP request is received trigger to your flow.
2. Select Use sample payload to generate schema .
3. In the box that appears, paste a sample of your source data array, and then select Done .
4. Add the Data Operation – Select action, and then configure it as shown in the following image.
Screenshot showing the select action. From is set to Body. In the Map section, FirstName is set to first,
FamilyName is set to last, and FullName is set to first and last, separated by a space.:::image-end:::
TIP
The output from the select action is an array that contains the newly shaped objects. You can then use this array
in any other action, such as the compose action discussed earlier.
In this example, you use the filter array action on this array:
to create a new array that contains only objects in which first is set to Eugenia .
Let's do this.
1. Find, and then add, the Filter array action to your flow.
2. Configure the filter array action as shown in the following image.
1. Find, add, and then configure the Data Operation - Create CSV table action to resemble the following
image.
The Body token in this image comes from a When a HTTP request is received action; however, you
can get the input for the Create CSV table action from the output of any previous action in your flow, or
you can enter it directly in the From box.
2. Save, and then run, your flow.
When your flow runs, the Create CSV table action displays the output shown in the following image.
TIP
If you plan to send the HTML table via email, remember to select IsHtml in the email action.
Use expressions in conditions to check multiple
values
1/15/2022 • 7 minutes to read • Edit Online
In this walkthrough, you'll learn to use expressions and Conditions to compare multiple values in Advanced
mode .
When you create a cloud flow, you can use the Condition card in basic mode to quickly compare a single value
with another value. However, there're times when you need to compare multiple values. For example, you may
want to check the value of a few columns in a spreadsheet or database table.
You can use any combination of the following logical expressions in your conditions.
and Takes two arguments and returns true This expression returns false:
if both values are true. and(greater(1,10),equals(0,0))
Note : Both arguments must be
Booleans.
or Takes two arguments and returns true This expression returns true:
if either argument is true. or(greater(1,10),equals(0,0))
Note : Both arguments must be
Booleans.
equals Returns true if two values are equal. For example, if parameter1 is
someValue, this expression returns
true:
equals(parameters('parameter1'),
'someValue')
less Takes two arguments and returns true This expression returns true:
if the first argument is less than the less(10,100)
second argument.
Note : The supported types are
integer, float, and string.
lessOrEquals Takes two arguments and returns true This expression returns true:
if the first argument is less than or lessOrEquals(10,10)
equal to the second argument.
Note : The supported types are
integer, float, and string.
greater Takes two arguments and returns true This expression returns false:
if the first argument is greater than the greater(10,10)
second argument.
Note : The supported types are
integer, float, and string.
greaterOrEquals Takes two arguments and returns true This expression returns false:
if the first argument is greater than or greaterOrEquals(10,100)
equal to the second argument.
Note : The supported types are
integer, float, and string.
EXP RESSIO N DESC RIP T IO N EXA M P L E
empty Returns true if the object, array, or This expression returns true:
string is empty. empty('')
Prerequisites
Here's what you'll need to complete this walkthrough.
Access to Power Automate.
Your own spreadsheet with the tables described later in this walkthrough. Be sure to save your spreadsheet
in a location such as Dropbox or Microsoft OneDrive so that Power Automate can access it.
Microsoft 365 Outlook (While we use Outlook here, you can use any supported email service in your flows.)
Given the preceding spreadsheet, you want to use Power Automate to remove all rows with a Status column
that's set to completed or unnecessary.
Let's create the flow.
Start with a blank flow
1. Sign into Power Automate.
2. Select My flows .
3. Select New flow > Scheduled cloud flow .
Add a trigger to your flow
1. Give your flow a name.
2. Set the schedule to run the flow once daily.
3. Select the Create button to move on to the next step.
3. Add the Value token to the Select an output from previous steps box.
This value token represents the spreadsheet table and all of its data.
4. Select Add an action on the Apply to each card.
5. Search for condition , and then select the Condition control.
6. Add the following or expression. This or expression checks the value of each row in the table. If the value
of the status column is completed or unnecessary, the or expression evaluates to "true".
Your Condition card resembles this image:
Delete matching rows from the spreadsheet
1. Select Add an action on the If yes branch of the condition.
The If yes branch runs if the or condition evaluates to true .
2. Search for Delete a row , select Excel Online (Business) , and then select Delete a row .
3. On the Delete a row card, set the Location , Document Librar y , File , and Table boxes exactly as you
set these boxes on the List rows present in a table card earlier in this walkthrough.
4. Select PowerAppsId in the Key Column list, and then insert the PowerAppsId dynamic value into the
Key Value box.
5. Be sure to save your flow!
Run the flow with the or expression
The flow runs after you save it. If you created the spreadsheet shown earlier in this walkthrough, here's what the
it looks like after the run completes:
Notice all data from rows that had "completed" or "unnecessary" in the Status column were deleted.
Has the full amount due been paid? greater @greater(item()?['Due'], item()?['Paid'])
Here's the implementation of the and expression that identifies all persons who have paid less than the amount
due from them and the due date is less than one day away from the current date:
@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))
This article shows how to create and work with variables to store values in your cloud flows. For example,
variables can help you track the number of times that a loop runs. To iterate over an array or check an array for a
specific item, you can use a variable to reference the index number apply to each array item.
You can create variables for data types such as integer, float, boolean, string, array, and object. After you create a
variable, you can perform other tasks, for example:
Get or reference the variable's value.
Increase or decrease the variable by a constant value, also known as increment and decrement.
Assign a different value to the variable.
Insert or append the variable's value as the last item in a string or array.
Variables exist and are global only within the cloud flow that creates them. Also, they persist across any loop
iterations inside the flow.
When you reference a variable, use the variable's name as the token, not the action's name, which is the usual
way to reference an action's outputs.
WARNING
By default, each iteration in "apply to each" loops run sequentially. You can run the loop iterations in parallel to improve
performance. If you use variables in "apply to each" loops, you must run the loop iterations sequentially if it's important
for your loop variables to return predictable results.
Prerequisites
Access to Power Automate.
A cloud flow in which you want to create the variable.
If you're new to Power Automate, review Getting started with Power Automate and Overview of cloud
flows.
NOTE
Before you can add actions for creating and working with variables, your flow must start with a trigger.
Initialize variable
You can create a variable and declare its data type and initial value - all within one action in your flow. You can
only declare variables at the global level, not within scopes, conditions, and loops.
1. Sign into Power Automate.
2. Create a cloud flow and under the step where you want to add a variable, follow one of these steps:
To add an action under the last step, select New step .
To add an action between steps, move your mouse over the connecting arrow so that the plus sign
(+ ) appears. Select the plus sign, and then select Add an action .
3. Under Choose an action , in the search box, enter variable as your filter. From the actions list, select
Initialize variable .
4. Provide this information about your variable:
For example:
5. Now continue adding the actions you want. When you're done, select Save .
NOTE
Although the Initialize variable action has a variable section that's structured as an array, the action can create only
one variable at a time. Each new variable requires an individual Initialize variable action.
"name": "myStringVariable",
"type": "String",
"value": "lorem ipsum"
Boolean variable
"name": "myBooleanVariable",
"type": "Boolean",
"value": false
"name": "myArrayVariable",
"type": "Array",
"value": [1, 2, 3]
"name": "myArrayVariable",
"type": "Array",
"value": ["red", "orange", "yellow"]
@{string(variables('myArrayVariable'))}
Increment variable
To increase or increment a variable by a constant value, add the Increment variable action to your flow.
IMPORTANT
This action works only with integer and float variables.
1. In the Power Automate designer, under the step where you want to increase an existing variable, select
New step .
For example, this cloud flow already has a trigger and an action that created a variable. So, add a new
action under these steps:
To add an action between existing steps, move your mouse over the connecting arrow so that the plus
sign (+) appears. Select the plus sign, and then select Add an action .
2. In the search box, enter "increment variable" as your filter. In the actions list, select Increment variable .
For example:
4. When you're done, on the designer toolbar, select Save .
7. In the search box, enter "increment variable" as your filter. From the actions list, select Increment
variable .
NOTE
The Increment variable action must appear inside the loop.
8. In the Increment variable action, from the Name list, select the Count variable.
9. Under the loop, add any action that sends you the number of attachments. In your action, include the
value from the Count variable, for example:
Decrement variable
To decrease or decrement a variable by a constant value, follow the steps for increasing a variable except that
you find and select the Decrement variable action instead. This action works only with integer and float
variables.
Here are the properties for the Decrement variable action:
P RO P ERT Y REQ UIRED VA L UE DESC RIP T IO N
Set variable
To assign a different value to an existing variable, follow the steps for increasing a variable except that you:
1. Find and select the Set variable action instead.
2. Provide the variable name and value you want to assign. Both the new value and the variable must have
the same data type. The value is required because this action doesn't have a default value.
Here are the properties for the Set variable action:
NOTE
Unless you're incrementing or decrementing variables, changing variables inside loops might create unexpected results if
you run loops in parallel. For these cases, try setting your loop to run sequentially, which is the default setting.
Append to variable
For variables that store strings or arrays, you can insert or append a variable's value as the last item in those
strings or arrays. You can follow the steps for increasing a variable except that you follow these steps instead:
1. Find and select one of these actions based on whether your variable is a string or an array.
Append to string variable
Append to array variable
2. Provide the value to append as the last item in the string or array. This value is required.
Here are the properties for the Append to... actions:
P RO P ERT Y REQ UIRED VA L UE DESC RIP T IO N
Next steps
Learn about Power Automate connectors
Design flows in Microsoft Visio
1/15/2022 • 2 minutes to read • Edit Online
The Power Automate designer is a rich tool in which you can configure every detail of your logic. However,
sometimes you may want to just sketch your flow logic before you start building your flow. To do this, use
Microsoft Visio directly from within Power Automate.
TIP
Many processes share a common model but have minor variations throughout an organization. You can save time within
your organization by using Visio to create a master workflow model that others will then adjust with specialized
parameters.
Prerequisites
A Power Automate account.
The Microsoft Visio desktop app (English version).
Expertise in using Microsoft Visio.
4. Select the Basic Flow BPMN Diagram template from the list of Visio templates that displays.
IMPORTANT
Visio warns you that files from the Internet could harm your device. If you are comfortable, select YES on the
warning message.
3. On the Flow Mapping tab of the Prepare to Expor t group, map your BPMN diagram to Power
Automate controls.
4. On the Triggers and Actions tab of the Prepare to Expor t group, map your BPMN diagram to Power
Automate triggers and actions by selecting each shape and then selecting either a trigger or action to
represent that shape in Power Automate.
Your workflow is ready to be exported when there are no issues remaining on the Prepare to Expor t control.
Export your workflow
1. Select the Expor t to Flow button to export your workflow diagram to Power Automate.
2. Name your flow and then select the Create flow button.
You can now run or make edits to your flow from the Power Automate designer, just like any other flow.
TIP
Use Visio’s sharing and commenting capabilities to collaborate with multiple stakeholders and create a complete workflow
quickly.
Learn more
Get started with Power Automate
Build multi-step flows
Design a cloud flow with Microsoft Visio
Manage flows in Power Automate from your phone
1/15/2022 • 2 minutes to read • Edit Online
View a list of all flows that you created and, for each flow, view its events and actions, enable or disable it, and
explore its run history.
Prerequisites
Install the Power Automate mobile app for Android, iOS, or Windows Phone on a supported device. The
graphics in this topic reflect the iPhone version of the app, but the graphics on Android and Windows Phone
look similar.
If you don't already have a cloud flow, create one on the website for Power Automate. For easier testing, use
one that you can trigger yourself instead of waiting for an external event.
The flow in this tutorial runs when you receive mail from a specific address:
You could configure such a cloud flow with your personal email address for testing and a different address (for
example, your manager's) when the flow is ready for real use.
When the flow runs, it sends a custom push notification, with this syntax, to your phone:
Note : You can also monitor flow activity from the mobile app.
6. Tap a run to show whether each event and action succeeded and, if so, how much time (in seconds) it
took.
Submit a template to the Power Automate gallery
1/15/2022 • 2 minutes to read • Edit Online
Submit a cloud flow template to the gallery of templates for Power Automate. Templates help people not only to
create flows more easily but also to imagine additional scenarios that would benefit from a cloud flow.
1. On the My Flows page, select the ellipsis (...) for a cloud flow.
You can only submit flows that have run successfully at least once since the last save:
4. Specify a meaningful title, a clear description of the scenario that your template will help automate, the
biggest benefit, the number of users, number of runs, and the categories that apply for the template.
5. Select Submit .
The Power Automate team verifies and possibly modifies your template. If the team approves your
template, it appears in the gallery of templates for Power Automate.
NOTE
Templates are for use in the public gallery only. They are not supported for private use.
Turn flows on or off
1/15/2022 • 2 minutes to read • Edit Online
At times, you might want to turn off a cloud flow to prevent it from running. Follow these steps to turn flows off
or on.
NOTE
If you turn off a flow, its runs are queued and they'll run when you turn the flow on.
Turn flows on
If you've turned a cloud flow off, but want to turn it back on so that it will run again, follow these steps:
1. On the My flows page , select the flow that you want to modify.
2. On the menu at the top of the screen, select Turn on to enable or disable the flow.
3. Message appears with the new flow status.
NOTE
If you disable a flow while it's running, the run will continue. If you delete a flow that's running, the current run terminates.
Get started with approvals
1/15/2022 • 4 minutes to read • Edit Online
Whether you need written acknowledgment from your manager or a formal authorization from a diverse group
of stakeholders, getting things approved is part of almost every organization.
With the approvals capability in Power Automate, you can automate sign-off requests and combine human
decision-making for workflows. Some popular cases where approvals can be used include:
Approving vacation time requests.
Approving documents that need sign-off.
Approving expense reports.
When you submit an approval in a flow, approvers are notified and can review and act on the request.
Approvals actions
Actions are the events you want your flow to perform after the trigger starts the flow. For example, when a new
item is added to a SharePoint list, trigger an approval to have somebody review the new item.
The following image shows the full list of approval actions that you can use in your flows.
If you want to quickly get started with approvals, use the Star t and wait for an approval action. This action
lets you provide the information that should be in the approval request and the approvers who will receive the
request.
When you use the Star t and wait for an approval action, the flow starts and then waits for the approvers'
response before it completes the run.
There are four approval types you can use:
A P P RO VA L T Y P E B EH AVIO R
Approve/Reject - Everyone must approve All approvers are given two options: Approve or Reject .
A response is needed from each approver before the flow
run is completed. The actions that follow the Star t and
wait for an approval action run after all the approvers
respond, or when a single rejection occurs.
Approve/Reject - First to respond Assigned approvers are given two options: Approve or
Reject .
Approval or rejection by any approver completes the
request. The actions that follow the Star t and wait for an
approval action run after any one of the approvers gives
approval.
Custom Responses - Wait for all responses You define the options the assigned approvers can choose
from.
All approvers must respond to complete the process.
Custom Responses - Wait for one response You define the options the assigned approvers can choose
from.
A response from any approver completes the process.
Prerequisites
If it's the first time you're using approvals in your organization, ensure that you've met the following
prerequisites:
A Microsoft Dataverse database.
A valid license to create flows.
NOTE
If you're using the default environment, you don't need to provision the Dataverse database. If you create approval flows,
the Dataverse database is created for you automatically in the default environment.
Get started
Use one of the following options to get started creating approval flows.
Use an existing template—You can search the list of approvals templates for your scenario, and then
follow steps to create a flow that suits your needs.
Tweak an existing template—If one of the existing templates is similar, but doesn't fit your needs precisely,
create a flow from that template and then tweak the flow to your liking.
After you create a flow from a template, it's yours to modify or extend. Do this by adding, editing, or
removing triggers and actions.
TIP
You can copy and paste actions in the same flow or across flows to speed up the editing process.
Create an approval flow from scratch—If you can't find a suitable template, you can create a flow from
scratch and then connect it to the services and the approvals you need by using the approvals
actions. Learn how to create a flow from scratch.
Consult the community for inspiration and help—Power Automate has a thriving community that can
help if you're stuck or looking for some inspiration. Just head over to the Power Automate forums to ask
specific questions and get answers.
Imagine that you have a SharePoint list in which employees store requests for devices like monitors or headsets.
You want to create an approval process so that every time an employee adds a request to a SharePoint list,
somebody receives a request to approve it.
To follow this guided walkthrough, create a list in a SharePoint site to which you have access. You can use the
following example of a list:
Once you have a SharePoint list for which you want to create an approval process:
1. Go to the Start approval when a new item is added template, which provides a flow that's configured to
create an approval process on a SharePoint list. Make sure all connections listed have a green check, and
then continue.
2. Once the flow is created, configure these three items:
Site address : Select the SharePoint site where you have your list from the dropdown list. If the
SharePoint site doesn’t appear on the dropdown list, just write your SharePoint site URL.
List name : once you have defined the Site Address, select the list you want every new item added
to trigger an approval
Assigned to : the person in your company who should receive the approval request. You can start
by putting yourself as the approver!
That’s it! The approval flow is now all configured. If you look at the whole flow the steps are:
The flow is triggered every time a new item is added to the SharePoint list you have defined on the
first step.
An approval request is sent to the person you've chosen.
If the approval is answered as Approve , the person that created the item on the SharePoint list
gets an email with the approval confirmation. If the request was answered as Reject , that person
gets an email saying that the request was rejected.
If for some reason the approval fails, you as the maker of this flow will get an email informing you
that the approval failed. In this case, you will need to look at the run history of the flow to see why
the approval failed.
3. Now let’s test this flow. first, select Save on the top right.
4. Once the flow has been successfully saved, select Test .
7. Power Automate alerts you once the flow is in test mode. When it is, create a new item on your
SharePoint list and then look at your flow to see it.
You will see that once your flow starts, it runs to the approval action where it shows an orange circle on
the top right of the approval action step. This means that the assigned approvers need to respond to the
approval request for the flow to continue.
Next steps
Create approval flows
Trigger approvals from a SharePoint document
library
1/15/2022 • 3 minutes to read • Edit Online
This article shows you how to create an approval flow for new documents (invoices) when they are added to a
SharePoint document library and how to attach the document to the approval request.
In the approval process, every time a new invoice is added to a SharePoint library, a request is sent for
somebody to reviews its contents. If the request is approved, the invoice files are then moved to a folder.
Follow these steps to complete this tutorial.
1. Create two folders, for example: Incoming Invoices and Reviewed Invoices .
2. Go to the Start an approval for new file to move it to a different folder template. This template provides
us a flow that's configured to setup an approval process for a SharePoint document library. Confirm that
all the connections listed have a green check, and then select continue.
4. Replace the Star t an approval action with another approval action that will let you attach files to it.
Delete the Star t an approval action from the flow.
Where the approval action used to be, select the vertical line to add a new action.
Search for, and then select Star t and wait for an approval .
Select Approve/Reject – First to respond as the approval type.
Give the approval request a title, and then assign it to the approver. The approver can even be you!
3. Select, I’ll select the trigger action , and then select Save and test .
4. Power Automate indicates to you when the flow is in test mode. When it is, add a new file to the incoming
files folder in the SharePoint document library that you specified earlier.
The person to whom you have assigned the approval now receives the approval request in various places where
they can approve or reject it. The file to review is attached to the approval request for easy reference.
By email
If you are not seeing the email displayed correctly, make sure you have the latest updates in your Outlook app
or use the web version of Outlook.
In Power Automate, on the Action items Approvals section
Once the the request is approved or rejected, the flow execution continues. If the request was approved, the file
you put in the incoming folder will be moved to the other folder.
Congratulations! You have successfully run your flow with approval capabilities. Now that you know the basics,
you can build on top of this flow to tailor it to your specific business needs.
Next steps
Create approval flows
How to - Top scenarios with approval flows
1/15/2022 • 4 minutes to read • Edit Online
Here are the top how to questions and answers about approvals in Power Automate.
After the approval request is answered, the flow sends an email to the salesperson who requested the discount,
informing them about the outcome of the request.
To get the response to the approval request, just use the Outcome output.
The approver sees the approval request like this.
Using markdown
Markdown is a language that's used to format text into Webpages like headers, tables, or bold text. In an
approval request, you can use markdown in the Details field to format the information presented to approvers.
You can learn more about how to use markdown and the supported apps in the Use Markdown in Power
Automate approval requests article.
Here is an example of its usage.
And here's how the approvers see it in a nicely formatted email in Outlook.
Display approval date in my timezone
By default, approval emails display the Date Created field in GMT. There no way to change this field.
You can work around this by displaying the date the flow was run, in your desired timezone, in the Details field
of the approval request. For example, to display the approval request date in Paris time, add two time actions
like this.
And the resulting approval email will look like this:
Reassign an approval to another person
If received an approval request, but you want somebody else to make the approval decision, you can reassign
the approval to somebody else:
1. Login to the Power Automate.
2. On the left navigation bar, go to Action items > Approvals
3. Hover your mouse over the approval you want to reassign, select the three dots > Reassign .
On the other hand, if you are the requester, you cannot reassign the approval request. However, you can Cancel
the approval request, and then edit the flow to change the Assigned to approver.
To cancel an approval:
1. Login to the Power Automate.
2. On the left navigation bar, go to Action items > Approvals
3. Select the Sent tab.
4. Select Cancel .
Do sequential approvals
Some processes require pre-approval before the final approver is required to sign off. For example, an
organization may have a sequential approval policy that requires pre-approval for invoices over $1,000.00
before they're approved by the Finance department. This walkthrough guides you on how to manage sequential
approvals with Power Automate.
2. In the Assigned to field, define the list of persons to whom the approval request should be sent.
Separate each person with a semicolon (;).
Next steps
Create approval flows
Create and test an approval workflow with Power
Automate
1/15/2022 • 6 minutes to read • Edit Online
With Power Automate, you can manage the approval of documents or processes across several services,
including SharePoint, Dynamics 365, Salesforce, OneDrive for Business, Zendesk, or WordPress.
To create an approval workflow, add the Approvals - Star t and wait for an approval action to any flow.
After you add this action, your flow can manage the approval of documents or processes. For example, you can
create document approval flows that approve invoices, work orders, or sales quotations. You can also create
process approval flows that approve vacation requests, overtime work, or travel plans.
Approvers can respond to requests from their email inbox, the approvals center in Power Automate, or the
Power Automate app.
TIP
For detailed information about using SharePoint with Power Automate, see the SharePoint documentation.
IMPORTANT
Always follow the best practices for SharePoint security and your organization's best practices to ensure your environment
is secure. Security is outside the scope of this article.
Prerequisites
To complete this walk-through, you must have access to:
Power Automate.
A SharePoint Online list.
Office 365 Outlook and Office 365 Users account.
NOTE
While we use SharePoint Online and Office 365 Outlook in this walk-through, you can use other services such as Zendesk,
Salesforce, or Gmail. If you are using SharePoint 2010, see SharePoint 2010 workflow retirement
Before you create the flow, create a SharePoint Online list. Later, we'll use this list to request approval for
vacations.
Create these columns in your SharePoint Online list:
C O L UM N TYPE
Approved Yes/No
Make note of the name and URL of the SharePoint Online list. You'll need these items later when you configure
the SharePoint - When an item is created trigger.
Add a trigger
1. Give your flow a name.
2. Under Choose your flow's trigger , select When an item is created - SharePoint , and then select
Create .
3. On the When an item is created card, select the Site Address and the List Name for the SharePoint list
that you created earlier.
The Site Address and the List Name are the items you noted earlier in this walkthrough.
4. Select the fields from your profile that you want to include in your flow, and then select Create to save
the work you've done so far.
NOTE
The Approval type , Title and Assigned To fields are required. You can use Markdown to format the Details
field.
NOTE
This action sends the approval request to the email address in the Assigned To box.
If your scenario requires it, you can attach files to your approval requests that use Microsoft Dataverse.
Add a condition
1. Select New step , and then select Condition in the list of actions.
2. On the Condition card, select Choose a value on the left.
A list of dynamic values display.
3. Select Responses Approver response from the list of dynamic values.
4. Select the Choose a value box on the right, and then enter Approve into the box.
NOTE
The valid responses to the Approvals - Star t an approval action are "Approve" and "Reject". These responses
are case-sensitive.
2. Enter send email into the search box on the Choose an action card.
3. Select the Send an email (V2) action.
4. Configure the email card to suit your needs.
NOTE
To , Subject , and Body are required.
This card is a template for the email that is sent when the status of the vacation request changes.
In the Body box on the Send an email (V2) card, use the Comments token from the Approvals -
Star t an approval action.
Add an update action for approved requests
1. Select Add an action in the If yes branch.
2. Enter SharePoint in the search box on the Choose an action card, select the SharePoint filter, and
then select the Update item action.
NOTE
Site Address , List Name , Id , and Title are required.
Add an email action for rejections
1. Select Add an action on the If no branch.
2. Enter Send into the search box of the Choose an action card, select Office 365 Outlook to filter the
actions, and then select the Send an email (V2) - Office 365 Outlook action.
3. Configure the email card to suit your needs.
This card represents the template for the email that's sent when the status of a vacation request changes.
NOTE
Site Address , List Name , Id , and Title are required.
4. Select Save to save the work we've done.
If you've followed along, your flow should resemble this screenshot:
Now that we've created the flow, it's time to test it!
TIP
If you use modern email clients, you don't have to wonder if a request is still required because Power Automate
automatically updates the email to indicate that the approval request is completed.
TIP
You can always select the Histor y tab to view the approval requests that you've canceled.
NOTE
The cancel feature is supported on the Create an approval (v2) action.
Learn more
View and manage pending approval requests
Create sequential approval flows.
Create parallel approval flows.
Install the Power Automate mobile app for Android, iOS, or Windows Phone.
Create approval flows with attachments
1/15/2022 • 2 minutes to read • Edit Online
Sometimes, you need to get a file approved for business purposes. Fortunately, you can use Power Automate
approvals to do this task. For example, let's say you are an accountant and you want to get approval for an
invoice, you could create an instant flow that lets you send the file for approval by simply tapping a button and
selecting the file to send.
In this article, you’ll learn how to create an approval flow that sends an attachment that the approver needs to
review before deciding if the request should be approved.
3. Give your cloud flow a name > search for, and then select Manually trigger a cloud flow , and then
select Create .
4. Select the Manually trigger a cloud flow trigger > Add an input > File .
The previous steps configure your flow so that when it runs, it requests a file from the user to trigger
your flow.
5. Select New step
6. Search for Approvals and then select Star t and wait for an approval .
7. Select Approve/reject - First to respond in the Approval type list of the Star t and wait for an
approval card.
8. Provide the following information on the Star t and wait for an approval card:
Title - This is a short description that tells the approver what the request is about.
Assigned to - The person to whom the request is sent.
Details - This text shows up in the approval request.
9. Select Show advanced options to reveal the fields in which you'll provide information about the file
attached to the request.
10. Provide a file name in Attachments Name - 1
TIP
You must include the file extension that matches the file type that's uploaded.
11. Provide the contents for the file that will be sent to the approver in the Attachments Content - 1 box.
An easy way to do this is to use the File Content item from the list of dynamic content that's displayed
when you select the Attachments Content - 1 box.
12. Select Save to save your flow.
Learn more
In most approval flows, you'd want to notify the person who requests the approval of the decision. Follow the
modern approvals article to learn how to add a condition to an approval flow to take specific actions based on
the outcome of the request.
Manage sequential approvals with Power Automate
1/15/2022 • 8 minutes to read • Edit Online
Some workflows require pre-approval before the final approver is required to sign off. For example, a company
may have a sequential approval policy that requires pre-approval for invoices over $1000.00 before they're
approved by the Finance department.
In this walkthrough, we create a sequential approval flow that manages employee vacation requests.
NOTE
SharePoint is used here only as an example; it is not required to create approval flows. You can use any of the more than
200 services with which Power Automate integrates to drive your flows. If you are using SharePoint 2010, see SharePoint
2010 workflow retirement
TIP
For detailed information about using SharePoint with Power Automate, see the SharePoint documentation.
NOTE
While we use SharePoint Online and Office 365 Outlook in this walk-through, you can use other services such as Zendesk,
Salesforce, or Gmail. If you are using SharePoint 2010, see SharePoint 2010 workflow retirement
Before you create the flow, create a SharePoint Online list. Later, we'll use this list to request approval for
vacations.
For the purposes of this walkthrough, the SharePoint Online list that you create must include the following
columns:
The SharePoint Online list you create must include the following columns:
T IT L E SIN GL E L IN E O F T EXT
Approved Yes/No
Pre-approved Yes/No
T IT L E SIN GL E L IN E O F T EXT
Make note of the name and URL of the SharePoint Online list. We use these items later when you configure the
SharePoint - When a new item is created trigger.
Add a trigger
1. Give your flow a name.
2. Under Choose your flow's trigger , select When an item is created - SharePoint , and then select
Create .
3. On the When an item is created card, select the Site Address and the List Name for the SharePoint list
that you created earlier.
Get the manager for the person who created the vacation request
1. Select +New step , and then type get manager into the Choose an action search box.
2. Find, and then select the Get manager (V2) - Office 365 Users action.
3. Insert the Created By Email token into the User (UPN) box on the Get manager card.
This action gets the manager for the person who created the vacation request in SharePoint.
NOTE
It's a good idea to periodically save changes to your flow as you go.
NOTE
The Approval type , Title and Assigned To fields are required. You can use Markdown to format the Details
field.
Note: This action sends the pre-approval request to the email address in the Assigned To box.
Add a condition
1. Select New step , and then select Condition in the list of actions.
2. On the Condition card, select Choose a value on the left.
A list of dynamic values display.
3. Select Responses Approver response from the list of dynamic values.
4. Select the Choose a value box on the right, and then enter Approve into the box.
NOTE
The valid responses to the Approvals - Star t an approval action are "Approve" and "Reject". These responses
are case-sensitive.
2. Enter send email into the search box on the Choose an action card.
3. Select the Send an email (V2) action.
This card is a template for the email that is sent when the status of the vacation request changes.
In the Body box on the Send an email (V2) card, use the Comments token from the Approvals -
Star t an approval action.
Request an approval
Create a vacation request in the SharePoint Online list you created earlier.
After you save this request, the flow triggers, and then:
1. Creates a request in the approvals center.
2. Sends an approval request email to the approvers.
Your request should resemble this image:
Pre-approve a request
If you're an approver in an approval flow, you receive an email whenever someone creates a request. The
approval request is also sent to the approvals center. You can then approve or reject requests from the email, the
approvals center, or the Power Automate app.
To approve a request:
From email
1. Select Approve from the email you receive when an item is added to the SharePoint Online list.
Note: If you're using a mobile device with the Power Automate app installed, the Power Automate app
launches, otherwise, the approvals center opens in your browser.
2. Enter a comment, and then select the Confirm button.
From the approvals center
1. Sign in to Power Automate.
2. Select the Action items >Approvals in the left-side navigation pane.
3. Select Approve on the request you want to approve.
4. Add any comments, and then select Confirm at the bottom of the screen.
From the Power Automate app
1. On your mobile phone with the Power Automate app installed, select Approve from the request
approval email.
2. Select Confirm in the upper right corner of the screen.
3. The success page shows, indicating that your approval has been recorded.
NOTE
The screens on Android, iOS and Windows Phone may differ slightly, however, the functionality is the same on all devices.
Reject a request
You can reject a request via email, the approvals center, or the Power Automate app. To reject a request, follow
the steps for approving a request, but select Reject , instead of Approve .
After you confirm your decision (rejection of the request), the flow runs the following steps:
1. Sends an email to the person who requested vacation.
2. Updates the SharePoint Online list with the decision, and the comments from the approver.
More information
Single approver modern approvals walkthrough
Create parallel approval workflows with Power
Automate
1/15/2022 • 7 minutes to read • Edit Online
In a parallel approval workflow, multiple persons are required to approve items such as invoices, purchase
orders, vacation requests, etc. Each person's approval is independent of all other approvers.
In this walkthrough, we use Power Automate to create a cloud flow that automates a parallel approval workflow.
This flow automates an employee vacation request process that requires approval from all persons (or teams)
that the employee supports regularly. Employees use a SharePoint list to request vacation. Vacation approvals
are required from the employee's direct manager, the Sales team, and the Human Resources team. Each vacation
request is routed to each approver for a decision. The flow sends email with status changes and then updates
SharePoint with the decisions.
TIP
For detailed information about using SharePoint with Power Automate, see the SharePoint documentation.
Prerequisites
Power Automate.
A SharePoint Online list.
Office 365 Outlook and Office 365 Users account.
NOTE
While we use SharePoint Online and Office 365 Outlook in this walk-through, you can use other services such as Zendesk,
Salesforce, or Gmail. If you are using SharePoint 2010, see SharePoint 2010 workflow retirement
Before you create the flow, create a SharePoint Online list. Later, we'll use this list to request approval for
vacations.
The SharePoint Online list you create must include the following columns:
T IT L E SIN GL E L IN E O F T EXT
Make note of the name and URL of the SharePoint Online list. We use these items later to configure the
SharePoint - When an item is created trigger.
Add a trigger
1. Give your flow a name.
2. Under Choose your flow's trigger , select When an item is created - SharePoint , and then select
Create .
3. On the When an item is created card, select the Site Address and the List Name for the SharePoint list
that you created earlier.
Get the manager for the person who created the vacation request
1. Select +New step , and then type get manager into the Choose an action search box.
2. Find, and then select the Get manager (V2) - Office 365 Users action.
3. Insert the Created By Email token into the User (UPN) box on the Get manager card.
This action gets the manager for the person who created the vacation request in SharePoint.
NOTE
Select the Save icon periodically to save the changes to your flow.
NOTE
The Approval type , Title and Assigned To fields are required. You can use Markdown to format the Details
field.
IMPORTANT
This action sends the vacation request to the email address in the Assigned To box, so insert the Email token from the
Get manager (v2) list.
4. Search for, select, and then configure a Star t and wait for an approval action that sends the vacation
request to the sales team. See the steps used to Add an approval action for immediate manager if you're
not sure how to add the Star t and wait for an approval action.
IMPORTANT
Use the sales team's email address in the Assigned To box of the Star t an approval 2 action.
Insert a parallel branch approval action for the human resources team
Repeat the steps to insert a parallel branch for the sales team to add, and then configure a Star t an approval
action to send vacation requests to human resources.
IMPORTANT
Use the human resources team's email address in the Assigned To box of the Star t an approval 3 action.
Add a step to the flow: Use the larger +New step button at the bottom of the entire workflow. Steps
you add with this button run after all previous branches complete. This button is shown here:
5. Confirm the list (in the middle of the Condition card ) is set to is equal to .
6. Enter Approve (this text is case-sensitive) into the last box.
7. Your condition card should now resemble this example:
NOTE
This condition checks the response from the Star t an approval action that goes to the employee's manager.
8. Repeat the preceding steps on the Star t an approval 2 (the approval request to sales) and Star t an
approval 3 (the approval request to human resources) branches.
Add email actions to each branch
Perform the following steps on the IF YES side of the Condition branch.
Note: Your flow uses these steps to send an email when the request is approved:
1. Select Add an action on the If yes branch of the condition.
2. Enter send email into the search box on the Choose an action card.
3. Select the Send an email (V2) action.
This card is a template for the email that is sent when the status of the vacation request changes.
In the Body box on the Send an email (V2) card, use the Comments token from the Approvals -
Star t an approval action.
To send an email when a request is rejected, use the IF NO side of the Condition branch, and then repeat the
preceding steps to add a template for the rejection email.
Repeat the preceding steps on the Star t and wait for an approval 2 (the approval request to sales) and Star t
and wait for an approval 3 (the approval request to human resources) branches.
This walkthrough shows you how to create an approval workflow that requires everyone (all assigned
approvers) to agree for a vacation request to be approved, but any approver can reject the entire request.
This type of approval workflow is useful in an organization that requires a person's manager and the manager's
manager, to both agree to a vacation request for it to be approved. However, either manager can decline the
request without the other person's input.
NOTE
While this walkthrough highlights a vacation approval scenario, you can use this type of approval flow in any situation
where multiple approvers are required to approve a request.
Prerequisites
Access to Power Automate, Microsoft Office 365 Outlook, and Microsoft Office 365 Users.
A SharePoint list.
This walkthrough assumes you've created a SharePoint list that's used to request vacations. See the
parallel approvals walkthrough for an in-depth example that details what your SharePoint list might look
like.
TIP
For detailed information about using SharePoint with Power Automate, see the SharePoint documentation.
NOTE
While we use SharePoint and Office 365 Outlook in this walkthrough, you can use other services such as Zendesk,
Salesforce, Gmail, or any of the more than 200 services that Power Automate supports.
This walkthrough uses tokens. To display the list of tokens, tap or click any input control, and then search for the
token in the Dynamic content list that opens.
Sign into Power Automate, and then perform the following steps to create your flow.
1. Select My flows > New > Automated-from blank , in the top left of the screen.
2. Give your flow a name and then add the SharePoint - When an item is created or modified trigger.
3. Enter the Site Address for the SharePoint site that hosts your vacation request list, and then select a list
from List Name .
4. Select New step , add the Office 365 Get manager (V2) action, select the User (UPN) box, and then
add the Created By Email token to it.
The Created By Email token is located under the When an item is created or modified category of
the Dynamic content list. This token dynamically provides access to data about the manager for the
person who created the item in SharePoint.
5. Select New step , add another Office 365 Get manager (V2) action, and then add the Mail token to the
User (UPN) box.
The Mail token is located under the Get manager (V2) category of the Dynamic content list. This
token dynamically provides access to the email address for the manager's manager.
You can also rename the Get manager (V2) 2 card to something meaningful like "Skip level manager".
6. Select New step , add the Star t and wait for an approval action, and then select Approve/Reject -
Ever yone must approve from the Approval type list.
IMPORTANT
If any approver rejects, the approval request is considered rejected for all approvers.
7. Use the following table as a guide to complete the Star t and wait for an approval card.
Item link A URL to the approval item. In this example, this is a link
to the item in SharePoint.
The Star t and wait for an approval card is a template for the approval request that's sent to
approvers. Configure it in a way that's useful for your organization. Here's an example.
When a cloud flow with the Star t and wait for an approval action is configured with Approve/Reject
- Ever yone must approve , it waits until all Assigned to approve or at least one Assigned to rejects
the approval request.
TIP
Add a Condition step if you want your flow to check the response of the approval request and perform different
actions based on the Outcome . The Outcome can be Approve or Reject .
Let's continue with the flow and send an email when a decision is made on the approval request.
8. Select New Step , search for "send an email", add the Office 365 Outlook Send an email (V2) action,
and then configure the action to send an email with the results of the request to the person who wants to
go on vacation.
Here's an example of what the Send an email (V2) card might look like.
NOTE
Any action that follows the Star t and wait for an approval action runs based on your selection in the Approval type
list on the Star t and wait for an approval card. The following table lists the behavior based on your selection.
Approve/Reject - Everyone must approve Approval or rejection is needed by all approvers to complete
the request. The actions that follow the Star t and wait for
an approval action run after all of the approvers approve,
or when a single rejection is done.
Custom responses - Wait for all responses All approvers must respond to complete the process.
Custom responses - Wait for one response A response from any approver completes the process.
Here's an example of what a response and a response summary may look like after your flow runs.
Learn more about approvals
Single approver modern approvals
Sequential modern approvals
Parallel modern approvals
Approvals and Dataverse
Approve requests on the go
Request approvals from Microsoft 365 groups
1/15/2022 • 3 minutes to read • Edit Online
NOTE
Effective February 2022, support for Microsoft 365 Groups (previously known as Office Groups) and Yammer in Dynamics
365 will be deprecated. This will impact customers who use Microsoft 365 Groups and/or Yammer for collaboration in
Dynamics 365. We recommend that customers transition to Microsoft Teams for more advanced collaboration
functionalities. For information about integrating Dynamics 365 with Teams, see Integrate customer engagement apps in
Dynamics 365 with Microsoft Teams.
If you've questions about the deprecation, contact your Microsoft Customer Service representative or Microsoft Partner.
You can send approvals to Microsoft 365 groups and to individuals. It's useful to send approvals to groups in
scenarios where you need an approval from any one person in the group. For instance:
You need the approval of a representative of the leadership team for a project.
You want the copy of the new marketing material to be approved by someone on the social media team.
TIP
Only a single user from the group needs to respond to the approval. That user's response is used to represent the entire
group.
NOTE
This example uses the First to respond action, but you can combine this action with other types of approvals as well.
4. Select the Manually trigger a flow trigger > Add an input > File .
This step configures your flow so that when it runs, it requests a file from the user to trigger your flow.
5. Select New step .
6. Search for Approvals , and then select Star t and wait for an approval .
7. On the Star t and wait for an approval card, for Approval type , select Approve/reject - First to
respond .
8. Enter the following:
Title : This is a short description that gives the approver some details about the approval request.
Details : This text shows up in the approval request.
9. In the Assigned to field, start entering the name of the group to which you want to send the approval.
The Assigned to field accepts both user and Microsoft 365 group inputs. If you know the email ID
associated with the group, you can include that as well.
TIP
You can include multiple groups and users in the Assigned to field.
Learn more
In most approval flows, you'd want to notify the person who requests the approval of the decision. Follow the
modern approvals article to learn how to add a condition to an approval flow to take specific actions based on
the outcome of the request.
Build an approval loop by using Power Automate
and Dataverse
1/15/2022 • 9 minutes to read • Edit Online
Dataverse can give you a way to build flows that have information stored in a database independent of a cloud
flow. The best example of this is with approvals. If you store the status of the approval in an table, your flow can
work on top of it.
In this example, you'll create an approval process that starts when a user adds a file to Dropbox. When the file is
added, information about it appears in an app, where a reviewer can approve or reject the change. When the
reviewer approves or rejects the change, notification mail is sent, and rejected files are deleted from Dropbox.
By following the steps in this section, you'll build:
a custom table that will contain information about each file added to Dropbox and whether the file's status
is approved, rejected, or pending.
a flow that adds information to the custom table when a file is added to Dropbox, sends mail when the file is
approved or rejected, and deletes rejected files. These steps demonstrate how to build such a cloud flow from
scratch, but you can create a similar flow from a template.
an app in which a reviewer can approve or reject files added to Dropbox. You'll use Power Apps to generate
this app automatically based on the columns in the custom table.
Prerequisites
Sign up for Power Automate and Power Apps.
Create connections to Dropbox and Office 365 Outlook, as Manage your connections describes.
3. In the left navigation bar, click or tap Manage , and then click or tap Tables .
If your browser window isn't maximized, this button might appear in a different place.
6. Under Table name , specify a name that doesn't contain spaces and that no other table in your database
has.
To follow this example exactly, specify ReviewDropboxFiles .
2. In the blank row that appears at the bottom of the list of columns, set the properties of an Approver
column. (As you set these properties, you can switch to the next column by pressing Tab.)
In the Display Name column, type Approver .
In the Name column, type ApproverEmail .
In the Type column, click or tap the Email option.
In the Required column, select the checkbox.
5. Near the right edge, click or tap the ellipsis (...) for the FileID column, and then click or tap Set as Title
column .
7. (optional) When the list of tables reappears, maximize your browser window if it isn't already maximized,
and then click or tap the Type column header. The list is sorted with the custom tables, such as the one
you just created, appearing at the top.
3. In the top right menu you select the environment that you created the database in powerapps.com.
Note : if you do not select the same environment then you will not see your table.
4. Near the upper-left corner, click or tap My flows .
2. Under Folder , click or tap the folder icon, and then browse to the folder where files will be added.
2. In the box that contains Search for more actions , type or paste Dataverse , and then click or tap
Dataverse - Create object .
3. Under The table , type or paste Review , and then click or tap Review Dropbox files .
4. Under Title , click or tap in the box, and then click or tap File name in the list of parameter tokens to add
that token to the column.
5. Under Approver , type or paste the email address of the person who will review the files.
Note : To make testing the flow easier, specify your own address. You can change it later, when the flow is
ready for actual use.
7. Under File Identifier , click or tap in the box, and then click or tap File identifier in the list of parameter
tokens to add that token to the column.
2. In the upper-left corner of the Do until action, click or tap in the box that contains Choose a value .
Note : If your browser window isn't maximized, click or tap in the upper box that contains Choose a
value .
3. Under Outputs from Create object , click or tap Status to add that parameter token to the column.
4. Open the list near the center of the Do until action, and then click or tap is not equal to .
5. In the upper-right corner of the Do until action, type or paste Pending in the box that contains Choose
a value .
Note : If your browser window isn't maximized, click or tap in the lower box that contains Choose a
value .
6. Near the bottom of the Do until action, click or tap Add an action .
7. In the box that contains Search for more actions , type Dataverse , and then click or tap Microsoft
Dataverse - Get object .
8. Under The namespace , click or tap your database.
9. Under The table , type or paste Review , and then click or tap Review Dropbox files .
10. Under Object id , click or tap in the box, and then click or tap the File identifier parameter token to add
it to the column.
2. In the upper-left corner of the condition, click or tap in the box that contains Choose a value .
Note : If your browser window isn't maximized, click or tap in the upper box that contains Choose a
value .
3. Under Outputs from Get object , click or tap the Status parameter token to add it to the column.
4. In the upper-right corner of the condition, type or paste Approved in the box that contains Choose a
value .
Note : If your browser window isn't maximized, type or paste Approved in the lower box that contains
Choose a value .
2. In the box that contains Search for more actions , type or paste send mail , and then click or tap Office
365 Outlook - Send an email .
3. Under To , type or paste the address of the person whom you want to notify when an item is accepted.
Note : To make testing the flow easier, specify your own address. You can change it when the flow is ready
for actual use.
4. Under Subject , click or tap in the box, and then click or tap the File name parameter token to add it to
the column.
5. Under Body , type or paste The item has been approved.
6. Under If no, do nothing , repeat steps 1-5 in this procedure except specify the body of the email
message as The item has been rejected.
2. In the box that contains Search for more actions , type or paste Dropbox , and then click or tap
Dropbox - Delete file .
3. Under File , click or tap in the box, and then click or tap the File identifier token parameter to add it to
the column.
2. In the dialog box that appears, click or tap the option to open either Power Apps Studio for Windows or
Power Apps Studio for the web.
3. If you opened Power Apps Studio for Windows, click or tap New in the left navigation bar.
4. Under Create an app from your data , click or tap Phone layout in the Microsoft Dataverse tile.
8. If the opening screen of intro tour appears, take the tour to get familiar with Power Apps (or click or tap
Skip ).
You can always take the tour later by clicking or tapping the question-mark icon near the upper-left
corner and then clicking or tapping Take the intro tour .
9. (optional) Near the bottom of the screen, drag the slider to increase the zoom so the app is easier to see.
2. On the BrowseScreen , click or tap just under the search bar to select the larger text-box control.
3. In the right-hand pane, open the lower list by clicking or tapping its down arrow.
4. In the lower list, click or tap Title so show the file name of the added files.
5. In the right-hand pane, open the upper list, and then click or tap Status to show the status of each file.
2. For the first file in the list, click or tap the arrow to show details about that file.
3. In the upper-right corner, click or tap the pencil icon to change details about the file.
5. In the upper-right corner, click or tap the checkmark icon to save your changes and return to the details
screen.
In a few minutes, you'll receive email stating that the file was approved.
6. In the upper-right corner, click or tap the back button to return to the browse screen.
7. For the other file in the list, click or tap the arrow to show details about that file.
8. In the upper-right corner, click or tap the pencil icon to change details about the file.
9. In the Status box, type or paste Rejected (or anything except Approved , including Aproved or
Approoved ).
10. In the upper-right corner, click or tap the checkmark icon to save your changes and return to the details
screen.
In a few minutes, you'll receive email stating that the file was rejected, and the file will be deleted from
Dropbox.
Use Markdown in Power Automate approval
requests
1/15/2022 • 4 minutes to read • Edit Online
This article teaches you how to use Markdown syntax to add rich formatting to your approval requests.
IMPORTANT
Approval request emails are actionable messages. If your Microsoft Outlook client doesn't support actionable
messages, it displays approval requests in HTML format.
All Markdown renderers have implementation differences. Review the Client Support section for details.
Markdown is not currently supported for the Approvals app on Microsoft Teams.
Markdown is not currently supported for GCC and GCC High customers.
Client Support
Markdown support among clients is inconsistent. The Power Automate team works to address these
inconsistencies, however, inconsistencies remain. The following table lays out the known limitations among the
supported clients.
P O W ER
A UTO M AT E T EA M S A P P RO VA L
P O W ER M O B IL E O UT LO O K M O B IL E S T EA M S
F EAT URE A UTO M AT E APP O UT LO O K W EB T EA M S APP APP
Images No No No No No No No
*Forced line breaks within table cells are not supported for Power Automate, the Power Automate mobile app,
Outlook Web, Teams, and the Teams mobile app.
NOTE
For Outlook Mobile, the previous parameters can vary depending on the Outlook client app and version that you are
using.
Headers
Structure your comments using headers. Headers segment longer comments, making them easier to read.
Start a line with a hash character # to set a heading. Organize your remarks with subheadings by starting a line
with additional hash characters, for example #### . Up to six levels of headings are supported.
Example:
# This is a H1 header
## This is a H2 header
### This is a H3 header
#### This is a H4 header
##### This is a H5 header
Result:
Result:
This is line 1.
Line 2 has extra space before it.
Lists
Organize related items with lists. You can add ordered lists with numbers, or unordered lists with just bullets.
Ordered lists start with a number followed by a period for each list item. Unordered lists start with a * . Begin
each list item on a new line. In a Markdown file or widget, enter two spaces prior to the line break to begin a
new paragraph, or enter two line breaks consecutively to begin a new paragraph.
Ordered or numbered lists
Example:
0. First item.
0. Second item.
0. Third item.
Result:
1. First item.
2. Second item.
3. Third item.
Bullet lists
Example:
- Item 1
- Item 2
- Item 3
Result:
Item 1
Item 2
Item 3
Nested lists
Example:
1. First item.
- Item 1
- Item 2
- Item 3
1. Second item.
- Nested item 1
- Nested item 2
- Nested item 3
Result:
1. First item.
Item 1
Item 2
Item 3
2. Second item.
Nested item 1
Nested item 2
Nested item 3
Links
HTTP and HTTPS URLs are automatically formatted as links.
You can set text hyperlinks for your URL using the standard markdown link syntax:
Example:
[Power Automate](https://flow.microsoft.com)
Result:
Power Automate
Tables
Organize structured data with tables.
Place each table row on its own line
Separate table cells using the pipe character |
The first two lines of a table set the column headers and the alignment of elements in the table
Use colons ( : ) when dividing the header and body of tables to specify column alignment (left, center, right)
Make sure to end each row with a CR or LF.
Example:
Result:
Use _emphasis_ in comments to express **strong** opinions and point out ~~corrections~~
**_Bold, italicized text_**
**~~Bold, strike-through text~~**
Result:
Use emphasis in comments to express strong opinions and point out corrections
Bold, italicized text
Bold, strike-through text
Special characters
SY N TA X EXA M P L E/ N OT ES
To insert one of the following characters, prefix with Some examples on inserting special characters
a backslash: Enter ```\\``` to get \\
```\ backslash ``` Enter ```\_``` to get \_
\` `backtick` Enter ```\#``` to get \#
```_ underscore ``` Enter ```\(``` to get \(
```{} curly braces ``` Enter ```\.``` to get \.
```[] square brackets ``` Enter ```\!``` to get \!
```() parentheses ```
```# hash mark ```
```+ plus sign ```
```- minus sign (hyphen) ```
```. dot ```
```! exclamation mark ```
Create custom response options for approval flows
1/15/2022 • 2 minutes to read • Edit Online
Let’s say you want to send an approval request each time an employee uploads an expense report to SharePoint
and then allow the approver to respond with one of three options: Accept, Need more info, or Reject.
Prerequisites
A Power Automate account.
A SharePoint list for employees to enter their expense reports.
TIP
For detailed information about using SharePoint with Power Automate, see the SharePoint documentation.
4. On the screen that opens, provide a name for your flow in Flow name .
5. Search for SharePoint in Choose your flow's trigger , select When an item is created from the list
of triggers, and then select Create .
6. Provide the SharePoint Site Address and List Name .
TIP
Select Enter custom value from the Site Address field before you enter text into Site Address .
7. Select New step , search for Approval , and then select Star t and wait for an approval .
8. On the Star t and wait for an approval card, select the Approval type list.
9. Select Custom Responses - Wait for one response .
Next, you will create the custom responses that your approvers will use when they respond to an
approval request for an employee expense.
10. In the Response options Item box, enter Accept and then select Add new item .
11. In the Response options Item box, enter Reject and then select Add new item .
12. In the Response options Item box, enter Need more info .
13. Enter a Title , Assigned to (email for the approver), and Details (the details to be contained in the
approval request).
Here's an example of what you might include for your organization.
Now that you've created your custom responses, you might want to do different things in your flow, depending
on the response from the approver.
NOTE
For approvals using a single custom response, Outlook and OWA expand the response field so users do not need to
select a button before they can respond like they do when there are multiple approval options.
Learn more
Create single approver flows
Create sequential approver flows
Known issues
1/15/2022 • 2 minutes to read • Edit Online
Connectors represent the service to which you want to connect. For example, you can use the OneDrive,
SharePoint, or Twitter connectors to use those services. One of the most popular connectors used in flows to
send or receive email are the Outlook.com connector and the Office 365 Outlook connector. Both connectors
offer similar operations that you can use to manage your mail, calendars, and contacts. You can perform actions
such as send mail, schedule meetings, add contacts, and so on with both of these connectors.
Triggers
A trigger is an event that starts a cloud flow. For example, When a new email arrives (V2) is a trigger that
starts a cloud flow when an email arrives into an inbox. Here is the full list of the Office 365 Outlook triggers
you can use to start flows. Use the Trigger a cloud flow based on email properties article to learn more on how
to trigger flows based on email properties.
The following image shows a partial list of Office 365 Outlook triggers. For the full list of triggers you can use to
start a flow, go to Office 365 Outlook triggers.
Actions
Actions are the events you want the flow to do after the trigger event takes place, for example "when someone
sends me an email, save it to OneDrive."
The following image shows a partial list of Office 365 Outlook actions. For the full list of actions you can use in
your flows, go to Office 365 Outlook actions.
More information
Create flows to manage email
Customize email in flows
View the top email scenarios
Create flows to manage email
1/15/2022 • 2 minutes to read • Edit Online
TIP
You can copy and paste actions in the same flow or across flows to speed up the process.
3. Create a cloud flow from scratch—If you can't find a template that's similar to your scenario, you can
create a cloud flow from scratch and then connect the services you want.
4. Create a cloud flow from a connector—In Power Automate, select Connectors from the left side of the
screen, search for the connector you want, and then select it to create your flow. For example, search for
"outlook" to find connectors for Office 365 Outlook.
More information
Overview of email with flows
Customize email in flows
Create the top email scenarios
Create flows for popular email scenarios
1/15/2022 • 2 minutes to read • Edit Online
Here are some of the top scenarios in which you can use Power Automate to manage your email:
Send an email from your account.
Send an email from a distribution list (DL) or shared mailbox.
Send an email with voting options.
Build an approval process and notify colleagues via email.
Send reminder email to approvers.
Send a daily digest email with a summary table.
More information
Overview of email with flows
Create flows to manage email
Customize email in flows
Trigger a cloud flow based on email properties
1/15/2022 • 6 minutes to read • Edit Online
Use the When a new email arrives (V3) trigger to create a cloud flow that runs when one or more of the
following email properties match criteria that you provide:
P RO P ERT Y W H EN TO USE
Subject Filter Search for the presence of specific words in the subject of an
email. Your flow then runs actions that are based on the
results of your search.
IMPORTANT
Each Power Automate plan includes a run quota. Always check properties in the flow's trigger when possible. Doing so
avoids using your run quota unnecessarily. If you check a property in a condition, each run counts against your plan's run
quota, even if the filter condition that you defined isn't met.
For example, if you check an email's From address in a condition, each run counts against your plan's run quota, even if it's
not from the address that interests you.
In the following walkthroughs, we check all properties in the when a new email arrives (V3) trigger. Learn
more by visiting the frequently asked billing questions and the pricing page.
Prerequisites
An account with access to Power Automate
A Microsoft 365 Outlook account
The Power Automate mobile app for Android, iOS, or Windows Phone
Connections to Office, Outlook, and the push notification service
NOTE
Although this walkthrough sends a push notification, you're free to use any other action that suits your workflow needs.
For example, you might store the email contents in another repository such as Google Sheets or a Microsoft Excel
workbook stored on Dropbox.
NOTE
To display all your email folders, select the Show Picker icon, which is located on the right side of the Folder box
on the When a new email arrives (V3) card.
1. In the Subject Filter box, enter the text that your flow uses to filter incoming emails.
In this example, we're interested in any email that has the word "lottery" in the subject.
a. Select New step .
b. Search for "notification," and then select Send me a mobile notification from the list of actions.
2. Enter the details for the mobile notification you want to receive when you receive an email that matches
the Subject Filter you specified earlier.
Congratulations! You now receive a push notification each time you receive an email that contains the word
"lottery" in the subject.
6. Select the folder that you'd like the flow to monitor for incoming emails, and then select Show
advanced options .
NOTE
To display all your email folders, select the Show Picker icon, which is located on the right side of the Folder box
on the When a new email arrives (V3) card.
3. Give your flow a name, and then save it by selecting Create flow at the top of the page.
NOTE
If you don't already have a rule that routes email to a folder other than your inbox, create such a rule and confirm it works
by sending a test email.
3. Search for "email", and then select Office 365 Outlook - When a new email arrives (V3) from the
list of triggers. This trigger runs each time an email arrives.
1. Select the folder to which you're routing specific emails. To display all email folders, first select the Show
Picker icon, which is located on the right side of the Folder box on the when a new email arrives
(V3) card.
a. Select New step .
b. Search for "notification," and then select Send me a mobile notification from the list of actions.
2. Enter the details for the mobile notification you'd like to receive when an email arrives in the folder you
selected earlier. If you haven't already, enter the credentials for the notifications service.
a. Select New step .
b. Search for "read", and then select Mark as read or unread (V2) from the list of actions.
c. In the Mark as read card, add the MessageId token in the Message Id box.
If the Message Id token isn't visible, search for it by entering Message Id in the search box.
3. Give your flow a name, and then save it by selecting Create flow at the top of the page.
Test the flow by sending an email that gets routed to the folder you selected earlier in this walkthrough.
Customize email in flows
1/15/2022 • 3 minutes to read • Edit Online
Here are the top how-to scenarios about email in Power Automate, with examples of how to achieve them:
1. Send a beautifully formatted email.
2. Add an image to your email.
3. Send email to a distribution list.
4. Send automatic replies from a shared mailbox.
5. Change the date and time format of an email.
IMPORTANT
Inline images are limited to a size of 100 KB. This might affect the quality of the image.
Known limitations
For known limitations of the Send an email action, go to Office 365 Outlook: Known issues and limitations.
More information
Overview of email with flows
Create flows to manage email
Customize email in flows
Top email scenarios
Use SharePoint and Power Automate to build
workflows
1/15/2022 • 2 minutes to read • Edit Online
Power Automate is deeply integrated with SharePoint. You can start with any of the more than 100 SharePoint
templates, or create your own flow that integrates with SharePoint from scratch.
Learn more about how to use Power Automate with SharePoint in the following video.
Next steps
Get started with Power Automate and SharePoint.
Get started with approvals.
Create modern approval flows in conditions in advanced mode.
SharePoint remind me
1/15/2022 • 2 minutes to read • Edit Online
SharePoint lists and libraries allowed you to define custom metadata columns to track dates. With Power
Automate's integration with SharePoint, you can easily create reminder flows, based on DateTime columns in
SharePoint. With reminder flows, you receive a personal email alert a predetermined number of days in advance
of a date on any document or item in SharePoint.
Prerequisites
Access to Microsoft SharePoint Online.
A SharePoint list, or library with a DateTime column.
Access to Power Automate.
TIP
For detailed information about using SharePoint with Power Automate, see the SharePoint documentation.
3. Optionally, you might need to sign into the the services that this Power Automate template uses.
4. Select Continue .
5. Provide a Flow name and the number of days prior to the DateTime column entry when you want to
receive the reminder alert on the Set a reminder card.
6. On the Set a reminder card, select Create .
7. You'll receive the following message, indicating that the flow was created:
Learn more
Getting started with Power Automate.
Set a reminder flow in SharePoint.
Manage SharePoint page approvals with Power
Automate
1/15/2022 • 2 minutes to read • Edit Online
SharePoint site admins can use Power Automate to require new or updated site pages to be approved before
being published.
In this article, you'll learn how to configure your SharePoint site to use a cloud flow to require changes to the
site to be approved before they go live.
NOTE
SharePoint approvals isn't available in all goverment cloud environments.
TIP
For detailed information about using SharePoint with Power Automate, see the SharePoint documentation.
3. Select Automate > Power Automate > Configure page approval flow .
That's it! Now, each time a page is added or modified, an approval request goes to the Approvers you listed in
the flow.
The page approval flow is just like any other flow, so it's listed in the My flows tab.
Approve a page
Approvers receive an email whenever there's a page approval request. They can either approve the requests
directly in the email (if their email client supports actionable messages) or open the page from the email to
review, and then approve the page in SharePoint.
Learn more
Page approval flow
Configure page approval
Use flows in Microsoft Teams
1/15/2022 • 2 minutes to read • Edit Online
Trigger flows from Teams messages. In this scenario, you can create flows that are triggered when
someone selects a Teams message. The flow can then run as
any other flow you create.
Use flows with adaptive cards. Here, adaptive cards can be used as the trigger for flows. The
full set of rich adaptive cards is available to you.
Create flows from within the Power Apps app in Teams. Use the Power Apps app in Teams to create flows that use
Project Oakdale. Project Oakdale is a built-in, low-code data
platform for Teams that empowers users to build custom
apps and workflows within Teams by using Power Apps and
Power Automate.
Learn more about how to use Power Autoamte with Teams in the following video.
Licensing
There are no additional licensing requirements when you use Power Automate with Microsoft Teams.
For detailed licensing information about Project Oakdale, see licensing and restrictions in the Microsoft Power
Platform admin guide.
Related topics
Power Apps and Teams
Power Virtual Agents and Teams
Install the Power Automate app in Microsoft Teams
1/15/2022 • 2 minutes to read • Edit Online
The Power Automate app lets you automate your Microsoft Teams activities or and connect Microsoft Teams to
other apps and services.
1. Sign into Microsoft Teams.
2. Select More added apps (...) , search for Power Automate , and then select the Power Automate app.
After a few moments, the Power Automate app installs. You can access the app in Microsoft Teams from
the left pane.
TIP
You can also install the Power Automate app from the Microsoft Teams app store.
Follow these steps to pin the Power Automate app in Microsoft Teams:
1. Right-click on Power Automate in the pane on the left side.
2. Select Pin .
Get started with the Power Automate app
From the Home tab, you can create and manage your flows.
Known issues
The Power Automate app in Microsoft Teams only shows flows from your organization's default environment.
Any flow that you create from the Power Automate app is located in the default environment.
Next Steps
Create flows in Microsoft Teams.
Manage your flows in Microsoft Teams.
Create flows in Microsoft Teams
1/15/2022 • 2 minutes to read • Edit Online
You can use the Power Automate app to create and manage flows from within Microsoft Teams. To get started
quickly, use one of the existing templates to create your flows, or you can create customized flows from scratch.
Prerequisites
To use the Power Automate app, you need an account with access to Microsoft Teams.
Follow these steps to create a cloud flow from a Microsoft Teams template:
1. Sign into Microsoft Teams.
TIP
You may also use the Microsoft Teams app.
4. Select the Create tab, and then select the template on which you'd like to base your flow.
5. If the template that you selected is optimized for Microsoft Teams, a dialog that lets you rename the flow
and authenticate with the apps necessary for the flow displays.
NOTE
You must login to all connectors so that your flow can run successfully. A green check indicates that you've
authenticated.
8. You're all set! You will get a confirmation screen showing that your flow was successfully created. After
you create your flow, you can find it on the Home tab.
IMPORTANT
When you create flows from within the Power Automate app in Microsoft Teams, they are always created in your
organization's default environment. You can also access these flows from Power Automate.
This brings up the full Power Automate designer experience within Microsoft Teams where you can create a fully
customized flow.
Known issues
Any flow that you create from within the Power Automate app is located in your organization's default
environment.
Related articles
Manage your flows in Microsoft Teams.
Visit the Microsoft Teams connector documentation.
Use flows in teams created from templates
1/15/2022 • 2 minutes to read • Edit Online
Microsoft Teams templates are pre-built definitions of a team's structure that are designed around a specific
business need or project.
Power Automate templates and team templates are meant to address similar business scenarios. When you
create a team with a Microsoft-provided team template, you get a curated selection of flow templates that are
specific to your team scenario.
Here are the five team templates that support scenario-specific flow templates.
Manage a Project
Manage an Event
Organize a Help Desk
Incident Response
Onboard Employees
For example, if you create a team from the Manage a Project template, the recommended flow templates on
the Power Automate tab in the General channel is filtered to your Manage a Project scenario.
For example, follow these steps to use the Manage a Project template from within Microsoft Teams.
1. Open Microsoft Teams.
2. Select Teams from the top of the panel on the left.
3. Select Join or create a team from the bottom of the Teams panel on the left.
4. Select Create team from the Join or create a team screen.
10. After you create the team, select the Power Automate tab in the General channel, and then select Set
up tab .
11. Select Post to the channel about this tab , and then select Save on the Power Automate screen.
12. Scroll on the Power Automate tab to view the list of suggested Power Automate flow templates that are
relevant to your team's scenario.
You can now select any of the flow templates listed to customize your team.
TIP
You can use any of the five team templates listed earlier in the article to create a team that's right for your organization.
Related links
Use team templates in the admin center
Create a team with a Teams templates
Manage flows in Microsoft Teams
1/15/2022 • 2 minutes to read • Edit Online
The Home tab provides an overview of your flows from your organization's default environment.
By default, the Home tab is filtered to display flows that use Microsoft Teams triggers and actions. You can select
Microsoft Teams flows to change the filter to display all your flows.
On the Home tab, you can view the information that's displayed in each of the following six columns to get an
overview of your flows.
C O L UM N DESC RIP T IO N
Flow name Represents the name that you provided for the flow.
Status Displays the status of the flow. For example, is the flow
enabled or disabled? You can change the status of your flows
directly from this list.
Modified Displays the amount of time that's passed since the flow was
last changed.
Team and channel If your flow reads from or writes to any team or channel,
that information is provided here so you can get a quick
glance of the teams your flow touches.
TIP
You can select any flow to view more details about it.
Known issues
The Power Automate app in Microsoft Teams only shows your flows that are located in your organization's
default environment.
Related articles
Create flows in Microsoft Teams.
View the Microsoft Teams connector documentation.
Send a message in Teams using Power Automate
1/15/2022 • 6 minutes to read • Edit Online
You can use Power Automate to set up a flow that sends messages to a Teams Channel or group chat using the
Microsoft Teams connector. Messages can be posted either as the user who's signed into the connector in the
flow or by using the Flow bot.
This article covers all the different ways in which you can send a message in Teams.
Flow setup
For the purposes of this document, we're using a scenario where a flow is used to notify a Channel or a Group
chat, but the same principles can be used to apply to any flow where the Post a message in a chat or
channel is used.
1. Sign in to Power Automate.
2. Select My flows > New > Automated cloud flow .
3. Enter a name for your flow.
4. Select the When a file is created (proper ties only) trigger.
5. Select Create .
6. Set up your trigger by choosing a SharePoint site and Folder ID that you want to monitor
7. Select the + New Step to add an action to this flow, and search for the Post a message in a chat or
channel action and select it
Create a new group chat and post a message to it as the Flow bot
The Post message in a chat or channel action can be combined with the Create a chat action to create a
new group chat and post a message to it. This is useful in scenarios where a chat might not already exist for this
topic and one needs to be created.
In order to create a new group chat add the Create a chat action before the Post message in a chat or
channel action. Add the members who need to be in the chat using their emails. Separate multiple emails with
a semi-colon and enter the title for the chat if needed.
To send a message as the Flow bot in the new created group chat select the Post as option as Flow bot and the
Post in option as Group chat . Once you do an additional option will show up that lets you select the Group
chat to post in. In the Group chat field, choose Enter custom value and select the Conversation id from the
Create a chat action in the dynamic token picker.
Posting a message as the Flow bot directly to a user
When sending a message as the Flow bot you have the additional option of posting directly to a user. This is
useful in notification scenarios where you want to reach out to an individual user using the Flow bot. For this
select the Chat with Flow bot option and specify the user you want to message and the specific message you
want to send.
IMPORTANT
By default Teams only lists the 50 most recent named group chats in the drop down. If you want to send a message to a
new group chat use the option below.
Then add the mention token generated from that action in any of the Post a message in chat or channel
action scenarios above.
IMPORTANT
The Get @mention token for a user action only supports mentioning users and not channels or Teams at the
moment.
You can use messages to trigger processes in Teams. For example, you might use a Teams message as a starting
point to create a work item in Azure DevOps or create a sales opportunity in Dynamics 365.
Use the For a selected message trigger in the Teams connector to trigger a cloud flow directly from within
Teams.
4. Select Create .
NOTE
You must sign in to Teams if you aren't already signed in.
The For a selected message trigger has an optional input in the form of an adaptive card. Use an adaptive
card to construct a form to collect information from the user who triggers the flow. For instance, if the flow
creates a task, you can use an adaptive card to collect information like the title of the task and the description.
Each input within the adaptive card form has an ID. You can use the ID later in the flow through dynamic tokens
to reference inputs that a user might have entered as part of running the flow.
Use the message details within the flow
Several message elements are available as a trigger output for use within the flow. Here's an overview of some
of the properties:
Message content : The full HTML content of the Teams message.
Plain text message output : The plain text variation of the Teams message.
Link to message : A direct URL to reference the message.
Sender display name, Sender ID : The details about the user who sent the message.
Originating user display name, originating user ID : The details about the user who invoked the flow.
For more information, go to the full list of trigger outputs.
IMPORTANT
If you don't see the flows you create with the For selected message in Teams trigger, ask your admin to confirm
whether the Power Automate Actions app is enabled in the Teams admin center
https://admin.teams.microsoft.com/policies/manage-apps.
Any flow that uses the For a selected message trigger shows up as a message action in the Teams message in
the More actions menu for the flow.
IMPORTANT
The name of the flow is used to reference the flow within Teams, so be sure to provide a descriptive name for it.
Best practices
Be sure to include a form of a confirmation to the user after the flow is completed. We recommend using Post a
message as the flow bot to a user or Post a message as the flow bot to a channel to notify the user in
Teams when a triggered flow has been completed.
Here's an example of a cloud flow that creates a work item in Azure DevOps and then posts a confirmation to
the originating user.
Known issues and limitations
You must create these flows within the default environment to ensure they get listed in Teams.
Create flows using the Power Apps app in Microsoft
Teams
1/15/2022 • 2 minutes to read • Edit Online
You can build flows to customize and add further value to Teams from within the new Power Apps app in Teams.
You can create instant, scheduled, and automated flows, with access to over 350 connectors. This includes a
connector to work with Microsoft Dataverse for Teams tables within Teams as well.
NOTE
You need a Power Automate license to access all Power Automate connectors, including the premium connectors. Users
with a Microsoft 365 license can use all standard connectors.
Prerequisites
The Power Apps app must be installed before you can create flows in Teams. More information: Install the
Power Apps personal app in Microsoft Teams
Before you can use the Power Apps app in Teams to create a cloud flow, a Dataverse for Teams
environment must already exist for that team. A Dataverse for Teams environment is automatically
provisioned when you create your first app in Teams.
3. If this is your first time creating a cloud flow, you'll have to select your country/region, and then select
Get star ted .
4. The Build an automated flow screen appears, where you can select a trigger, and create and save your
flow.
NOTE
The screen that appears here will be different depending on whether you selected Instant or Scheduled in step
2 earlier.
Related articles
Use the new Power Apps app in Microsoft Teams
What is Dataverse for Teams?
About the Dataverse for Teams environment
Create your first adaptive card
1/15/2022 • 4 minutes to read • Edit Online
Adaptive cards within Power Automate may either share blocks of information or collect data via a form for a
given data source.
In either case you will need to sketch out which datasets you will share, and/or what data the form will need to
collect.
TIP
Use simple blocks of data rather than complex table arrays.
Prerequisites
Microsoft Teams with the Power Automate app installed.
Add an action
In this procedure, you’ll add an action which will use the data from previous actions in the flow to post
information to a Microsoft Teams channel.
1. Sign into Power Automate.
2. Select My flows in the top navigation bar.
3. Select New flow > Instant cloud flow .
4. Give your flow a name.
5. Select Manually trigger a flow as the trigger.
6. Select Create .
7. Select New Step .
8. Search for Microsoft Teams , and then select Post an adaptive card to a Teams channel and wait
for a response as the action.
9. Select the Team and the Channel to which you'd like to post the card.
10. Paste this JSON into the Message box.
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"text": "Poll Request",
"id": "Title",
"spacing": "Medium",
"horizontalAlignment": "Center",
"size": "ExtraLarge",
"weight": "Bolder",
"color": "Accent"
"color": "Accent"
},
{
"type": "TextBlock",
"text": "Header Tagline Text",
"id": "acHeaderTagLine",
"separator": true
},
{
"type": "TextBlock",
"text": "Poll Header",
"weight": "Bolder",
"size": "ExtraLarge",
"spacing": "None",
"id": "acHeader"
},
{
"type": "TextBlock",
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer vestibulum lore
m eget neque sollicitudin, quis malesuada felis ultrices. ",
"id": "acInstructions",
"wrap": true
},
{
"type": "TextBlock",
"text": "Poll Question",
"id": "acPollQuestion"
},
{
"type": "Input.ChoiceSet",
"placeholder": "Select from these choices",
"choices": [
{
"title": "Choice 1",
"value": "Choice 1"
},
{
"title": "Choice 2",
"value": "Choice 2"
},
{
"title": "Choice 3",
"value": "Choice 3"
}
],
"id": "acPollChoices",
"style": "expanded"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "Submit",
"id": "btnSubmit"
}
]
}
IMPORTANT
Do not remove any quotation marks when you do the replacements. You can revise the car choices to suit your
needs:
T EXT TO C H A N GE N EW T EXT
Poll Question Please vote on your preferred car model from the
choices listed here.
Replace the latin text with a reason, or business context, We are polling our employees in order to determine if we
related to why you are conducting the poll. should provide personalized parking places that are sized
for the most popular cars.
12. Select New Step , and then search for and select one of the Send an email actions to which you have
access.
13. Provide the email recipient as the person who selected the instant button (use the Email tag from the
dynamic content from the trigger ).
14. Configure the Body of the email as follows. Replace the words in curly parentheses "{}" with dynamic
tokens:
Your poll response was {acPollChoices} (acPollChoices is dynamic content from the wait for a
response action). It was submitted by {User Name} (User Name is dynamic content from the trigger)
Improperly formatted JSON – This is not usually as complex as one might expect. These are most
often just situations where:
There are curly quotes, or missing quotes, around values within the JSON. Always check the
JSON to ensure all text values are enclosed within double quotes, and that numbers are
enclosed in quotation marks. All quotation marks should be straight and not curly.
You can validate the format of your JSON by pasting the JSON into the Card Payload Editor.
Missing Image URLs – All image values within Adaptive Cards must refer to a valid URL. Full image
content is not be directly supported in an Adaptive Card. Test your image links by pasting the URL
into the browser to see if an image is displayed.
Adaptive Cards may not look like what’s expected during to styling and schema constraints:
Check that placeholder values, text styles, and any markup language align with Adaptive Card
schema requirements (review Adaptive Card schema best practices here)
Leverage the Visual Studio Code Adaptive Card validator. To install it from the Visual Studio
Code application, open the Extensions Marketplace, and search for Adaptive Card Viewer .
Truncated screenshot of the Adaptive Card Viewer extension installed in Visual Studio Code (shortcut: Ctrl+V+A
once enabled).
Errors following Adaptive Card submission are often due to:
Using an action, which does not include ‘wait for response’ in the name
Attempting to submit the card more than once. Each Adaptive Card can be submitted only once,
after which all further submissions will be ignored.
Overview of Adaptive Cards for Microsoft Teams
1/15/2022 • 4 minutes to read • Edit Online
Adaptive Cards are a platform-agnostic method of sharing and displaying blocks of information without the
complexity of customizing CSS or HTML to render them. You author Adaptive Cards in JSON format, with
integrations that cloud apps and services can openly exchange. When delivered to a specific host, such as
Microsoft Teams, the JSON is transformed into native UI that automatically adapts to its host. Therefore, process
designers can now offer consistent UI patterns whenever they need to display information as part of a business
process/automation.
Since Adaptive Cards adapt to their host, they are perfect vehicles for sharing information between Microsoft
Teams and other services.
NOTE
Adaptive Cards aren't available within the DoD environment.
Post an adaptive card as the Flow bot to a Teams user, and wait for a response
This action posts an adaptive card as a Flow bot to a specific user, like the case presented earlier in this
article. However, in this case the flow run will not continue after the post until the recipient responds to
inputs that are required within the card. The flow continues after the recipient responds. The flow returns
dynamic content for one (1) response per recipient and per card.
Known issues
It is not possible to collect data from Adaptive Cards unless they are created using one of the "wait for a
response" actions. Adaptive Cards that don't wait return an error for all button actions except OpenURL.
Learn more on OpenURL buttons.
Selecting Action.Submit buttons on a card which doesn't include the "wait for a response" suffix, will
throw an error.
Adaptive Cards created using the "wait for response" actions can only be submitted once per card. The
flow run will continue after the first response, and any further submissions are ignored.
Only the information within the ‘Update message’ input box (see image 3) will be shown on the
replacement card after consumers submit the card.
Additional details, such as the user id of the person submitting the card, will be available within the
dynamic content in actions following the ‘wait for a response’ action. However, it may be necessary to
include the Office 365 Users connector in order to complete desired profile information for the user who
submitted the card.
Once the "wait for a response" Adaptive Cards are submitted, the card resets and then appears exactly the
same, unless the replacement/update message area is configured. Update messages are a best practice,
and are recommended in order to update others, but also to prevent consumers from attempting to
submit the card more than once.
TIP
The Update Message and the Should update card inputs must be configured if a replacement card is desired.
Power Automate uses Microsoft Adaptive Cards' unique features and services to handle the cards within any
host. This article is intended to clarify any specifics related to flow actions. You can also use the full
documentation for building Adaptive Cards.
Learn more
Create your first adaptive card
Full documentation for the Microsoft Teams connector
Full documentation on Adaptive Cards IO
Create your first adaptive card
1/15/2022 • 4 minutes to read • Edit Online
Adaptive cards within Power Automate may either share blocks of information or collect data via a form for a
given data source.
In either case you will need to sketch out which datasets you will share, and/or what data the form will need to
collect.
TIP
Use simple blocks of data rather than complex table arrays.
Prerequisites
Microsoft Teams with the Power Automate app installed.
Add an action
In this procedure, you’ll add an action which will use the data from previous actions in the flow to post
information to a Microsoft Teams channel.
1. Sign into Power Automate.
2. Select My flows in the top navigation bar.
3. Select New flow > Instant cloud flow .
4. Give your flow a name.
5. Select Manually trigger a flow as the trigger.
6. Select Create .
7. Select New Step .
8. Search for Microsoft Teams , and then select Post an adaptive card to a Teams channel and wait
for a response as the action.
9. Select the Team and the Channel to which you'd like to post the card.
10. Paste this JSON into the Message box.
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"text": "Poll Request",
"id": "Title",
"spacing": "Medium",
"horizontalAlignment": "Center",
"size": "ExtraLarge",
"weight": "Bolder",
"color": "Accent"
"color": "Accent"
},
{
"type": "TextBlock",
"text": "Header Tagline Text",
"id": "acHeaderTagLine",
"separator": true
},
{
"type": "TextBlock",
"text": "Poll Header",
"weight": "Bolder",
"size": "ExtraLarge",
"spacing": "None",
"id": "acHeader"
},
{
"type": "TextBlock",
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer vestibulum lore
m eget neque sollicitudin, quis malesuada felis ultrices. ",
"id": "acInstructions",
"wrap": true
},
{
"type": "TextBlock",
"text": "Poll Question",
"id": "acPollQuestion"
},
{
"type": "Input.ChoiceSet",
"placeholder": "Select from these choices",
"choices": [
{
"title": "Choice 1",
"value": "Choice 1"
},
{
"title": "Choice 2",
"value": "Choice 2"
},
{
"title": "Choice 3",
"value": "Choice 3"
}
],
"id": "acPollChoices",
"style": "expanded"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "Submit",
"id": "btnSubmit"
}
]
}
IMPORTANT
Do not remove any quotation marks when you do the replacements. You can revise the car choices to suit your
needs:
T EXT TO C H A N GE N EW T EXT
Poll Question Please vote on your preferred car model from the
choices listed here.
Replace the latin text with a reason, or business context, We are polling our employees in order to determine if we
related to why you are conducting the poll. should provide personalized parking places that are sized
for the most popular cars.
12. Select New Step , and then search for and select one of the Send an email actions to which you have
access.
13. Provide the email recipient as the person who selected the instant button (use the Email tag from the
dynamic content from the trigger ).
14. Configure the Body of the email as follows. Replace the words in curly parentheses "{}" with dynamic
tokens:
Your poll response was {acPollChoices} (acPollChoices is dynamic content from the wait for a
response action). It was submitted by {User Name} (User Name is dynamic content from the trigger)
Improperly formatted JSON – This is not usually as complex as one might expect. These are most
often just situations where:
There are curly quotes, or missing quotes, around values within the JSON. Always check the
JSON to ensure all text values are enclosed within double quotes, and that numbers are
enclosed in quotation marks. All quotation marks should be straight and not curly.
You can validate the format of your JSON by pasting the JSON into the Card Payload Editor.
Missing Image URLs – All image values within Adaptive Cards must refer to a valid URL. Full image
content is not be directly supported in an Adaptive Card. Test your image links by pasting the URL
into the browser to see if an image is displayed.
Adaptive Cards may not look like what’s expected during to styling and schema constraints:
Check that placeholder values, text styles, and any markup language align with Adaptive Card
schema requirements (review Adaptive Card schema best practices here)
Leverage the Visual Studio Code Adaptive Card validator. To install it from the Visual Studio
Code application, open the Extensions Marketplace, and search for Adaptive Card Viewer .
Truncated screenshot of the Adaptive Card Viewer extension installed in Visual Studio Code (shortcut: Ctrl+V+A
once enabled).
Errors following Adaptive Card submission are often due to:
Using an action, which does not include ‘wait for response’ in the name
Attempting to submit the card more than once. Each Adaptive Card can be submitted only once,
after which all further submissions will be ignored.
Candidate feedback sample
1/15/2022 • 2 minutes to read • Edit Online
The candidate feedback form sample is an Adaptive Card input form that's designed for collecting feedback
during an interview loop. We recommend using this with a shared instant flow button to enable anyone on the
team to provide feedback on candidates during an interview loop. Extend this by recording responses in a
database or other desired data sources to support these additional opportunities:
Facilitate the review of follow-up suggestions before the next session with the candidate.
Facilitate aggregated data review after all responses are recorded.
Notify the human resources representative with the hire/no hire vote count at the end of the process
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"size": "Medium",
"weight": "Bolder",
"id": "Title",
"text": "CANDIDATE FEEDBACK FORM",
"horizontalAlignment": "Left"
},
{
"type": "Input.Text",
"placeholder": "{acFullName}",
"style": "text",
"isMultiline": false,
"maxLength": 75,
"id": "acFullName"
},
{
"type": "Input.Text",
"placeholder": "{acComments}",
"style": "text",
"isMultiline": true,
"maxLength": 200,
"id": "acComments"
},
{
"type": "TextBlock",
"size": "Medium",
"weight": "Bolder",
"text": "Decision",
"horizontalAlignment": "Left",
"separator": true
},
{
"type": "Input.ChoiceSet",
"id": "acDecision",
"value": "1",
"choices": [
{
"title": "Hire",
"value": "Hire"
},
{
"title": "No Hire",
"value": "No Hire"
}
],
"style": "expanded"
},
{
"type": "TextBlock",
"text": "Suggest follow-up discussion regarding:",
"weight": "Bolder"
},
{
"type": "Input.ChoiceSet",
"type": "Input.ChoiceSet",
"id": "acFollowUp",
"isMultiSelect": true,
"value": "",
"choices": [
{
"title": "Past experience in the topic area",
"value": "Experience"
},
{
"title": "Inclusive behaviors and work ethics",
"value": "Inclusivity"
},
{
"title": "Ability to work without supervision",
"value": "Independent"
}
]
}
],
"actions": [
{
"type": "Action.Submit",
"title": "Submit"
}
]
}
Image share sample
1/15/2022 • 2 minutes to read • Edit Online
The Image Share Form sample is an Adaptive Card designed for sharing photos that have been posted to
SharePoint and which may be a dependency for a process to complete (such as processes related to inspection,
compliance, and audits). This is a display only adaptive card.
DY N A M IC TO K EN N A M E ( IN P UT S) P L A C EH O L DER T EXT N OT ES
The lead collection sample is an Adaptive Card input form designed for collecting leads from anyone that may
come into contact with individuals interested in a set of products. Feel free to change the choices for the
products, remembering that each choice can have display text, as well as an internal value which will be output
after someone submits the card (they can also be the same as we show in the sample code block).
DY N A M IC TO K EN N A M E P L A C EH O L DER T EXT N OT ES
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"width": 2,
"items": [
{
"type": "TextBlock",
"text": "Lead Notification",
"weight": "Bolder",
"id": "Title",
"size": "ExtraLarge"
},
{
"type": "TextBlock",
"text": "Please fill out a single form for each individual expressing interest
in our products. ",
"isSubtle": true,
"wrap": true,
"id": "acInstructions",
"size": "Large"
}
]
}
]
},
{
"type": "Container",
"items": [
{
"type": "TextBlock",
"text": "Potential Customer FIRST NAME",
"wrap": true,
"size": "Medium"
}
]
},
{
"type": "Input.Text",
"id": "acLeadFName",
"placeholder": "{firstName}"
},
{
"type": "TextBlock",
"text": "Potential Customer LAST NAME",
"wrap": true
"wrap": true
},
{
"type": "Input.Text",
"id": "acLeadLName",
"placeholder": "{lastName}"
},
{
"type": "TextBlock",
"text": "Corporate email",
"wrap": true
},
{
"type": "Input.Text",
"id": "acLeadEmail",
"placeholder": "{emailAddress}",
"style": "Email"
},
{
"type": "TextBlock",
"text": "Business Phone Number"
},
{
"type": "Input.Text",
"id": "acLeadPrimaryPhone",
"placeholder": "{primaryPhone10digits}",
"style": "Tel"
},
{
"type": "RichTextBlock",
"inlines": [
{
"type": "TextRun",
"text": "{productInterests}"
}
]
},
{
"type": "Input.ChoiceSet",
"placeholder": "Placeholder text",
"choices": [
{
"title": "Office 365",
"value": "Office 365"
},
{
"title": "Dynamics 365",
"value": "Dynamics 365"
},
{
"title": "Azure Services",
"value": "Azure Services"
},
{
"title": "Power Platform",
"value": "Power Platform"
}
],
"style": "expanded",
"id": "acLeadProductInterest",
"isMultiSelect": true
}
],
"actions": [
{
"type": "Action.Submit",
"title": "Submit"
}
]
}
}
Create a poll sample
1/15/2022 • 2 minutes to read • Edit Online
The create a poll sample is an Adaptive Card input form that's designed for submitting polls to Microsoft
Teams. Replace the display text in this card to customize for the poll. This adaptive card enables you to take
different decision paths based on the responses given in the poll values, or voting counts, of card consumers.
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"text": "Poll Request",
"id": "Title",
"spacing": "Medium",
"horizontalAlignment": "Center",
"size": "ExtraLarge",
"weight": "Bolder",
"color": "Accent"
},
{
"type": "TextBlock",
"text": "Header Tagline Text",
"id": "acHeaderTagLine",
"separator": true
},
{
"type": "TextBlock",
"text": "Poll Header",
"weight": "Bolder",
"size": "ExtraLarge",
"spacing": "None",
"id": "acHeader"
},
{
"type": "TextBlock",
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer vestibulum lorem eget
neque sollicitudin, quis malesuada felis ultrices. ",
"id": "acInstructions",
"wrap": true
},
{
"type": "TextBlock",
"text": "Poll Question",
"id": "acPollQuestion"
},
{
"type": "Input.ChoiceSet",
"placeholder": "Select from these choices",
"choices": [
{
"title": "Choice 1",
"value": "Choice 1"
},
{
"title": "Choice 2",
"value": "Choice 2"
},
{
"title": "Choice 3",
"value": "Choice 3"
}
],
"id": "acPollChoices",
"style": "expanded"
}
],
],
"actions": [
{
"type": "Action.Submit",
"title": "Submit",
"id": "btnSubmit"
}
]
}
Metadata update card sample
1/15/2022 • 2 minutes to read • Edit Online
The Metadata Update sample is an adaptive card designed to enable flow makers to notify or update Teams
members or channels with metadata related to a record, file, or topic. This card is a display only adaptive card.
However, input fields may be added if one of the wait for response actions are used to create it.
This card is comprised of three sections:
1. The topic header area with header, sub-header, and description.
2. The fact list area for relevant row metadata.
3. A column set which supports a table array of data
DY N A M IC TO K EN N A M E ( IN P UT S) P L A C EH O L DER T EXT N OT ES
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"text": "Metadata Update Card",
"weight": "bolder",
"size": "large",
"id": "acTitle"
},
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"width": "auto",
"items": [
{
"type": "TextBlock",
"text": "Sub Header Tag Line",
"weight": "Bolder",
"wrap": true,
"id": "acSubHeader"
}
]
}
]
},
{
"type": "TextBlock",
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. In condimentum leo lorem, at
facilisis augue hendrerit eget. Praesent ut malesuada ipsum. Vivamus semper faucibus felis quis sagittis.
Nunc pellentesque metus at nunc gravida, vitae volutpat sapien vehicula. Nulla lorem nibh, porttitor vel
semper ut, ornare nec erat.",
"wrap": true,
"id": "acDescriptionArea"
},
{
"type": "FactSet",
"facts": [
{
"title": "Fact 1:",
"value": "{acFact1}"
},
{
"title": "Fact 2:",
"value": "{acFact2}"
},
{
"title": "Fact 3:",
"value": "{acFact3}"
}
],
"id": "acFactSet"
},
{
"type": "Container",
"type": "Container",
"spacing": "Large",
"items": [
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"items": [
{
"type": "TextBlock",
"weight": "Bolder",
"text": "HEADER 1"
}
],
"width": "stretch"
},
{
"type": "Column",
"items": [
{
"type": "TextBlock",
"weight": "Bolder",
"text": "HEADER 2"
}
],
"width": "stretch"
},
{
"type": "Column",
"items": [
{
"type": "TextBlock",
"weight": "Bolder",
"text": "HEADER 3"
}
],
"width": "stretch"
}
]
}
],
"bleed": true
},
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"items": [
{
"type": "TextBlock",
"text": "Column 1",
"wrap": true,
"id": "acCol1"
}
],
"width": "stretch"
},
{
"type": "Column",
"items": [
{
"type": "TextBlock",
"text": "Column 2",
"wrap": true,
"id": "acCol2"
}
],
"width": "stretch"
"width": "stretch"
},
{
"type": "Column",
"items": [
{
"type": "TextBlock",
"text": "Column 3",
"wrap": true,
"id": "acCol4"
}
],
"width": "stretch"
}
],
"$data": "acDataContext"
}
],
"bleed": true
}
Daily weather report sample
1/15/2022 • 2 minutes to read • Edit Online
The daily weather repor t sample is an Adaptive Card designed to be used with MSN weather to post a daily
weather update to a Teams channel.
DY N A M IC TO K EN N A M E P L A C EH O L DER T EXT N OT ES
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
{
"type": "TextBlock",
"text": "{acCity}, {acState}",
"size": "Large",
"isSubtle": true
},
{
"type": "TextBlock",
"text": "{acCurrentDateTime}",
"spacing": "None"
},
{
"type": "TextBlock",
"text": "{acDailySummary}",
"spacing": "None"
},
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"width": "auto",
"items": [
{
"type": "Image",
"url": "{acUrlConditionsImage}",
"size": "Large"
}
]
},
{
"type": "Column",
"width": "auto",
"items": [
{
"type": "TextBlock",
"text": "{acCurrentTemperature}",
"size": "ExtraLarge",
"spacing": "None"
}
]
},
{
"type": "Column",
"width": "stretch",
"items": [
{
"type": "TextBlock",
"text": "°F",
"weight": "Bolder",
"spacing": "Small"
}
]
},
{
"type": "Column",
"width": "stretch",
"items": [
{
"type": "TextBlock",
"text": "Hi {actempHi}",
"horizontalAlignment": "Left"
},
{
"type": "TextBlock",
"text": "Lo {actempLow}",
"horizontalAlignment": "Left",
"spacing": "None"
}
]
]
}
]
}
]
}
Acronyms form sample
1/15/2022 • 2 minutes to read • Edit Online
The acronym form sample is an Adaptive Card input form that's designed to collect acronyms and storing
them in Dataverse. These acronyms could be queried from anywhere due to this ongoing data collection.
The lead collection sample is an Adaptive Card input form designed for collecting leads from anyone that may
come into contact with individuals interested in a set of products. Feel free to change the choices for the
products, remembering that each choice can have display text, as well as an internal value which will be output
after someone submits the card (they can also be the same as we show in the sample code block).
DY N A M IC TO K EN N A M E P L A C EH O L DER T EXT N OT ES
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"width": 2,
"items": [
{
"type": "TextBlock",
"text": "Lead Notification",
"weight": "Bolder",
"id": "Title",
"size": "ExtraLarge"
},
{
"type": "TextBlock",
"text": "Please fill out a single form for each individual expressing interest
in our products. ",
"isSubtle": true,
"wrap": true,
"id": "acInstructions",
"size": "Large"
}
]
}
]
},
{
"type": "Container",
"items": [
{
"type": "TextBlock",
"text": "Potential Customer FIRST NAME",
"wrap": true,
"size": "Medium"
}
]
},
{
"type": "Input.Text",
"id": "acLeadFName",
"placeholder": "{firstName}"
},
{
"type": "TextBlock",
"text": "Potential Customer LAST NAME",
"wrap": true
"wrap": true
},
{
"type": "Input.Text",
"id": "acLeadLName",
"placeholder": "{lastName}"
},
{
"type": "TextBlock",
"text": "Corporate email",
"wrap": true
},
{
"type": "Input.Text",
"id": "acLeadEmail",
"placeholder": "{emailAddress}",
"style": "Email"
},
{
"type": "TextBlock",
"text": "Business Phone Number"
},
{
"type": "Input.Text",
"id": "acLeadPrimaryPhone",
"placeholder": "{primaryPhone10digits}",
"style": "Tel"
},
{
"type": "RichTextBlock",
"inlines": [
{
"type": "TextRun",
"text": "{productInterests}"
}
]
},
{
"type": "Input.ChoiceSet",
"placeholder": "Placeholder text",
"choices": [
{
"title": "Office 365",
"value": "Office 365"
},
{
"title": "Dynamics 365",
"value": "Dynamics 365"
},
{
"title": "Azure Services",
"value": "Azure Services"
},
{
"title": "Power Platform",
"value": "Power Platform"
}
],
"style": "expanded",
"id": "acLeadProductInterest",
"isMultiSelect": true
}
],
"actions": [
{
"type": "Action.Submit",
"title": "Submit"
}
]
}
}
Approvals in Microsoft Teams
1/15/2022 • 2 minutes to read • Edit Online
Approvals in Microsoft Teams is a native Teams application that lets you easily create, manage, and share
approvals from your hub for teamwork.
You can quickly start an approval flow from the same place you send a chat, a channel conversation, or from the
approvals app itself. Just select an approval type, add details, attach files, and choose approvers. Once submitted,
approvers are notified and can review and act on the request.
These approvals are triggered directly with the Power Automate infrastructure and don't require a flow with an
approvals action. Though, if you wish to modify your approvals, by creating custom pre-approval or post-
approvals actions, you can create a flow for your approval.
Known issues
Currently, all the approvals are created in your organization's default environment.
Create an approval from a chat or channel
1/15/2022 • 2 minutes to read • Edit Online
With the new approvals experience in Teams, you can create an approval from any chat or channel from the
compose box.
4. When you select the icon, a modal dialog appears for you to enter the details of the approval.
5. Enter the details of the approval you want to send, along with who you need the approval from.
TIP
By default, the approvers' input is restricted to the roster of the team or chat in which you are sending the approval.
6. Optional : You can also include a file with your approval. To do so, select Add attachment in the Approval
form. Any files you upload are automatically stored in your OneDrive/SharePoint folder, just like other
files shared on Teams.
7. Select Send .
A card is created and sent in the chat or channel.
TIP
If you want to add more than two custom responses, you will need to use a cloud flow to send the approval. Learn more
about custom responses in approvals.
Known issues
Currently, all the approvals created using this native Teams experience are created in your organization's default
environment.
Create an approval from the approvals app
1/15/2022 • 2 minutes to read • Edit Online
You can trigger an approval at any time from the approvals app in Teams.
5. Select Send .
The approval shows up in the Sent tab in the app.
Known issues
Currently, all the approvals created using this native Teams experience are created in your organization's default
environment.
Respond to an approval from a chat or channel
1/15/2022 • 2 minutes to read • Edit Online
If a user sends you an approval in a chat or channel message or from the approvals app, you can respond to it
directly from within the Teams chat or channel or from the approvals app.
The approvals app also shows you any approvals that were sent using a flow in the same environment. So, you
can use the approvals app in Teams to manage all your approvals.
Alternately, you can open the approvals app in Teams and go to the Received tab.
3. Select View details on the card or select the approval to open the approval form.
4. From here, you can approve or reject the approval. You can also include comments with your decision.
Once approved, the state is updated in the card or the app.
TIP
If the approver has chosen to send an approval with custom responses, the actions at the bottom can differ. For example:
Known issues
Currently, only approvals sent in your organization's default environment are listed within the approvals app in
Teams.
Manage your approvals from the approvals app in
Teams
1/15/2022 • 2 minutes to read • Edit Online
The approvals app in Teams gives you an overview of all the approvals that you have sent or received in your
organization's default tenant. This includes approvals you might have received through chat or channel
messages, direct approvals, and even approvals that come in through a flow.
From here you can either approve or reject an approval you have received, or cancel an approval you have sent
out.
View approvals
From the main approvals app in Teams, you can get a view of all the approvals you have sent or received.
Cancel an approval request
From the Sent tab, you can choose to cancel an approval that is still in progress. To do so, select the approval
you want to cancel and then select the Cancel approval option.
NOTE
You can only cancel approvals that are in progress.
Customizing approvals in Teams
1/15/2022 • 2 minutes to read • Edit Online
By default, the approvals app only lets you modify custom responses in the app.
If you want to create a custom process with pre and post approval actions that are automatically triggered using
an event, you will need to create an approval flow in the Power Automate.
Visit the approvals documentation section to get started with approval flows
Microsoft Teams approvals with custom connectors
1/15/2022 • 3 minutes to read • Edit Online
You can use the approvals hub in Microsoft Teams to quickly integrate approvals workflows into existing line of
business apps that do not have their own approvals system. You achieve this by using a custom connector to
'connect' to the existing line of business apps.
TIP
When you use the approvals hub, you get to manage all your approvals in a central location.
Prerequisites
One of the following subscriptions:
Power Automate
Power Apps
Basic experience building flows and custom connectors.
Add a trigger
You need a trigger to serve as the first step in the approval flow that you'll create.
Some common approval triggers are:
When a new row is created.
Wen a row is updated.
TIP
Both Webhook and polling triggers work with approval flows.
5. Define the Verb , URL , Headers , and Body for your trigger.
6. Add a Response.
The response configuration depends on your trigger type (Webhook or polling). Webhook triggers
require a callback URL parameter and a location header that contains a value that's used to delete the
Webhook registration.
7. Configure the Webhook Response and Trigger configuration
8. Configure the polling response to meet your needs.
IMPORTANT
The "Approve" or "Reject" approval responses are case sensitive.
13. Add an action in both condition result sections.
10. Confirm in the target system the approval completion update steps were executed successfully.
More info
Create a custom connector from scratch
Webhook triggers: Use a Webhook as a trigger for Azure Logic Apps and Power Automate
Polling triggers: Use a polling trigger for Microsoft Power Automate
Trigger a cloud flow from any Power BI report
1/15/2022 • 3 minutes to read • Edit Online
Empower your end-users to go from insight to action. With the Power Automate visual, end-users can run an
automated flow all within a Power BI report. Furthermore, the executed flow can be data contextual, meaning
that the inputs to the flow can be dynamic, based on the filters that the user sets. This article describes how to
add visual into a Power BI report that lets you manually trigger a flow directly from the Power BI report
If you’re using Power BI Desktop, you can also access the visual from the ribbon by navigating to the Insert tab
and selecting Power Automate (preview) within the Power Platform section
You can follow these steps to create button that triggers automated tasks.
The initial state of the widget shows you the getting started instructions for using flows in Power BI. Once you’ve
reviewed the instructions, you can resize the button and place it where you’d like it on the report.
Using the Power Automate visual in Power BI
Follow these steps to trigger a flow from within a Power BI report.
Add the data fields that need to be passed to the flow
1. In the Visualization pane, add any fields from the report that you want to pass into the flow when it
runs.
These fields can be used at flow design time as well to specify how you want to use the Power BI data.
3. Select the Apply button to attach the flow to your Power BI report button.
Once you have applied a flow to the button, you should test the flow before you share it.
IMPORTANT
You can only run these Power BI flows in the context of a Power BI report. You cannot run these flows in Power Automate
or elsewhere.
If your flow is data contextual, test how the filters selections in the report impact the outcome of the flow. To test
the flow in edit mode of the report, select Back to report, and then press Ctrl + click on the button to run the
Flow in the context of the report.
You can navigate to the edit mode or to Power Automate to view the run history of the flow to ensure its
running successfully.
Share the flow in run only mode
In order for other viewers of your Power BI report to run the flow, you must explicitly share the flow with those
users/Azure Active Directory groups. You can do so from the details page of your flow.
To share, select edit next to the Run only users tile and then specify the users or groups that you want to have
access.
Format the button on the Power BI report
Optionally, if you want to change the button text, font color, font size, or fill color of the button, you can find
these options along with other settings in the Format pane.
Known limitations
The user running the flow within the Power BI report needs to have permissions to run the flow. Grant these
permissions through direct sharing by the user or by sharing to an Azure Active Directory group.
The Power BI visual only functions with flows in a tenant's default environment. Any flow created with the
visual is created in the users default environment.
Additional manual inputs to the button are not supported at this time.
Create flows that you will use with the Power BI button trigger directly within the Power BI report. Do not go
directly to Power Automate to create these flows as the trigger will not have access to the data fields
necessary for creating the flow.
Power BI data is sent to, and processed in, a geography where the flow is deployed.
The Power Automate visual isn't supported for PaaS-embedded scenarios, nor in sovereign cloud scenarios.
Overview of flows with Microsoft Forms
1/15/2022 • 2 minutes to read • Edit Online
Connectors serve as a way to connect to a service from Microsoft Power Platform. There are numerous types of
form connectors available, including the Microsoft Forms connector. Microsoft Forms is a new part of Office 365
Education that allows teachers and students to quickly and easily create custom quizzes, surveys, questionnaires,
registrations, and more. You can follow these instructions to create a Microsoft Form.
Check out this video about Microsoft Forms.
A good way to get started is to use a template that is suited to your business scenario. You can choose from our
collection of templates to find the right one to accomplish your scenario. Search our templates or browse by
category to find your scenario, and then follow steps in the template to create a flow from the template.
Perhaps you found a template that is similar to what you are looking for, but isn't quite right for your scenario.
No problem - just create your own flow from that template and tweak the it to your liking. You can extend a flow
created from template by adding, editing, removing trigger and actions. You can copy paste actions in the same
flow or across flows to speed up the process.
Did you not find a template you like? You can create a flow from scratch and connect the services you want to
use. More information: How to create a flow from scratch.
Next step
Top scenarios
See also
Create a cloud flow from a template in Power Automate
Submit a template to the Power Automate gallery
Top scenarios
1/15/2022 • 3 minutes to read • Edit Online
Here are some of the top scenarios in which you can use Power Automate with forms:
Send an email when there is a new form response.
Send an email to the form responder after they submit a response.
Send an approval with contents of the form.
Upload Microsoft Forms responses to Excel.
Get an attachment from a form and send an email with the attachment.
Then, add the Get response details action. Select Response Id to view the dynamic content. Select the Response
Id option, which means that you’ll get the response details for the responses that caused the trigger. After that,
choose the Send an email (V2) action. Within the action card, click on Add dynamic content so that you can use
the forms responses in your email.
Once you’ve pasted the full sample, you can Get file content using path from OneDrive and find your Microsoft
Form. Then, add a ‘/’ followed by the following expression: first(body('Parse_JSON'))?['id'] . This would
extract the one file that the responder will be uploading.
Finally, you can send that upload to via email using the Send an email (V2) action card from Office 365 Outlook.
Include the expression first(body('Parse_JSON'))?['id']
You can combine the scenario of getting an attachment from a form and creating an approval flow by exploring
a blog post here.
How to
1/15/2022 • 2 minutes to read • Edit Online
Here are the top how to questions about forms in Power Automate with examples on how to achieve them:
Change the date and time format of the forms response.
Configure a flow with a group form.
Send an email based on a conditional form response.
Convert an attachment in Microsoft Forms to PDF.
Upload forms responses to a Power BI dataset to visualize responses.
Create a lead from a Microsoft Forms response.
Limitations
For information about limitations of forms see: Microsoft Forms - known issues and limitations
Known issues
My flow doesn’t work or has stopped working.
Make sure that the form being referenced hasn’t been deleted or the name of the form hasn’t changed.
You may have reached a limit for the connector or for the product. For the Microsoft Forms connector, the limits
on API calls per connection are 300 API calls per connection within 60 seconds and a frequency of 1 trigger poll
every 86400 seconds. Furthermore, view the response limits for Microsoft Forms.
I am experiencing an invalid connection error.
Check throttling limits for all connectors in your flow.
Disable any plug-ins, such as the Chrome plug-in Privacy Badger, as it may be blocking the cookies that Power
Automate uses.
When the email sends form responses, the files are corrupt.
Make sure you are not using a base64() function as this may corrupt the files.
Flow with form only works sometimes.
One reason that this may be happening is that some users may inputting more than 255 characters in the single
line of text field in the form. Enable long answer in the text field .
Form created by another team doesn’t isn’t listed as an option in Form Id.
Double check that the form is listed in the Microsoft Forms “Shared with me” tab. You may also want to transfer
ownership of the form, especially if members of the team will be leaving the company.
The Forms Id field lists duplicate form names.
The list will propagate all forms until the form is deleted from the recycling bin. Therefore, go back into
Microsoft Forms and ensure that the forms you no longer need are deleted.
Unable to find the correct Form Id.
Go to your form. Copy the Form Id from the URL of the form and add it as a custom value.
I don’t get an attachment for some of my approvals.
Approval action will attach file in notification email till the size is 5 MB. Beyond that, approval action in Power
Automate won’t be able to attach the file in notification email. It will redirect user/approver to check the
attachment in Microsoft Flow portal.
Send email action looks stuck in my flow.
If you are using Mail connector as part of your flow, it has a limit of 100 API calls per 24 hours. Try the Office
365 Outlook connector, which has a limit of 300 API calls per 60s, so that you are less likely to hit the limit.
Overview of how to integrate Power Automate
flows with Dataverse
1/15/2022 • 2 minutes to read • Edit Online
With Microsoft Dataverse, you can store and manage data for business applications and integrate natively with
other Microsoft Power Platform services like Power BI, Power Apps, Power Virtual Agents, and AI Builder from
your cloud flows.
The Microsoft Dataverse connector provides several triggers to start your flows and many actions that you can
use to create or update data in Dataverse while your flows run. You can use Dataverse actions even if your flows
don't use a trigger from the Dataverse connector.
Use the Microsoft Dataverse connector to create cloud flows that start when data changes in Dataverse tables
and custom messages. For example, you can send an email whenever a row gets updated in Dataverse.
Overview of triggers
The Microsoft Dataverse connector provides the following triggers to help you define when your flows start:
When a row is created, updated, or deleted
When an action is performed
When a flow step is run from a business process flow
Overview of actions
The Microsoft Dataverse connector provides the following actions to help you manage data in your flows:
Create a new row
Update a row
Search rows with relevance search
Get a row
List rows
Delete a row
Relate rows
Unrelate rows
Execute a changeset request
Get file or image content
Upload file or image content
Perform a bound action
Perform an unbound action
Trigger flows when a row is added, modified, or
deleted
1/15/2022 • 4 minutes to read • Edit Online
The When a row is added, modified or deleted trigger runs a flow whenever a row of a selected table and
scope changes or is created.
Prerequisites
To create a flow that triggers when you create, modify, or delete a row, you must have user-level
permissions for create, read, write, and delete on the Callback Registration table.
Additionally, depending on the scopes defined in the flow, you might need at least that level of read on
the same table. You can get more information about Environment security.
The following information is required to use the When a row is added, modified or deleted trigger.
Trigger condition
Table name
Scope
Trigger condition
The trigger condition, Change type , precisely defines which combination of changes to a row would run the
flow.
When the flow is triggered by the creation, update, or deletion of a row, the value of
triggerOutputs()['body/SdkMessage'] will be Create , Update , or Delete , respectively.
Table name
The Table name list filters the rows to indicate precisely which kind of rows should change before the flow
triggers. See Tables in Dataverse.
Scope
The Scope list indicates those rows should be monitored to determine if the flow should be run.
SC O P E RO W O W N ERSH IP L EVEL
Parent: Child business unit Actions are taken on rows that are owned by anyone in your
business unit or a child business unit.
Advanced options
You can set additional properties to define more granularly when the flow runs and the user profile under which
it runs.
Filter conditions
Use filter conditions to set conditions for when to trigger flows.
Filtering columns
Use the Column filter box to define the specific columns of the row that should cause the flow to run when
changed, as a comma-separated list of unique column names.
NOTE
This property applies to the Update condition only. Create and Delete apply to all columns of a row.
Filter expression
The filter expression provides a way for you to define an OData style filter expression to help you to define the
trigger conditions even more precisely. The flow runs only when the expression evaluates to true after the
change is saved in Dataverse. In the following example, the flow triggers when firstname is updated to "John".
See the following examples, standard filter operators, and query functions to learn how to construct these filter
expressions.
NOTE
Unlike the examples in the reference links, your expression must not contain the string $filter= . This string applies only
when you use the APIs directly.
Wait condition using delay until
Use an OData-style time stamp in the Delay until property to delay the flow trigger until a specific UTC time.
The key benefit of using the Dataverse Delay until property instead of the standard Delay until action is the
Dataverse Delay until property never expires, allowing the flow run to wait for long periods of time.
User impersonation using Run As
IMPORTANT
The flow owner must have the Microsoft Dataverse privilege Act on Behalf of Another
User (prvActOnBehalfOfAnotherUser). The Delegate security role includes this privilege by default. You can enable it on
any security role. For more details, go to Impersonate another user.
When you create flows with the When a row is added, modified or deleted trigger, you can set each
Microsoft Dataverse action in the flow to be performed using the context of a user, other than the flow owner.
Follow these steps to impersonate a user:
1. In the Power Automate flow definition, select Show advanced options in the When a row is added,
modified or deleted trigger.
2. Select a value for Run as to tell Microsoft Dataverse which user’s context you intend to use for
subsequent Dataverse actions.
3. For each Dataverse action that you want to run as a different user, select the menu in the upper-right
corner (...), as shown in the following image, and select the Use invoker ’s connection setting. For the
steps in which it is not selected, the default user is assumed. This would call the underlying APIs as per
the selected user, and not as the flow owner.
If nothing is specified, it defaults to the flow owner who created the flow—essentially, the author. Here are the
other options:
Flow owner : The user who created the flow.
Row owner : The user who owns the Microsoft Dataverse row that underwent a change, causing the flow
to be triggered. If a row is owned by a team, then this option falls back to run as the flow owner.
Modifying user : The user that took the action on the Microsoft Dataverse row, causing the flow to get
triggered or modified.
Additionally, instant flows allow running the steps of any other connector (such as Microsoft Teams, Microsoft
365 Outlook, or SharePoint in the same flow using the invoker’s connection. To do so, follow these steps:
1. Go to the flow overview page.
2. Select Edit on the Run only users settings.
3. In the Manage run-only permissions pane, go to the User and groups tab, and then select
Provided by run-only user under the Connections Used list.
Trigger flows with actions
1/15/2022 • 2 minutes to read • Edit Online
You can create flows that trigger based on a Dataverse action that's included in both a Catalog and a Category.
Additionally, your role needs permissions to read it, which may require read access to the sdkmessage,
customapi, or workflows tables in Dataverse.
As the name suggests, this trigger runs the flow whenever a specific Dataverse action is performed. A Dataverse
action is distinct from a Power Automate action. In Dataverse, custom process actions, or simply actions, are a
way of extending out of the box operations on data. You can use them to define reusable custom business logic.
To learn more, see Work with actions and Use Custom Process Actions with code. To learn how to run Dataverse
actions from Power Automate, see Perform bound or unbound actions.
Here are the input fields for the trigger.
Catalog – used to organize and manage Dataverse actions, similar to the way you use folders to
organize files.
Categor y – used as a sub-classification within a catalog.
Table name – used to filter the available actions by their associated table (bound actions), or to filter
global actions (unbound actions). For unbound actions, select (none).
Action name – used to identify the action that triggers the flow each time it runs successfully. The list of
available actions is filtered by the catalog, category, and table name.
Use the Add a new row action to add a new row in Microsoft Dataverse.
Follow these steps to add a new account in Dataverse when you receive an email to your sign-up address, as
shown in the following image:
1. Create a flow with the When a new email arrives (V3) trigger to your flow.
2. Select New step to add an action to your flow.
3. Enter new row into the Search connectors and actions search box on the Choose an operation
card.
4. Select Microsoft Dataverse .
5. Select Add a new row action.
TIP
You can use outputs from previous triggers and actions in the Dynamic content selector, as shown in the following
image, or modify them by building an expression as outlined in Use expressions in flow actions.
Use a flow to update a row
1/15/2022 • 2 minutes to read • Edit Online
Use the Update a row action to make changes to a row in Microsoft Dataverse.
For example, you can create a flow that updates an Account in Dataverse when you receive an email, as shown
in the following image.
After you select a table, new columns appear. All mandatory columns display an asterisk (*). It's not necessary to
enter a value for optional columns. Columns that are left blank are skipped in the update unless you provide a
null value explicitly.
The Row ID column is the unique ID of the row that you are updating. If you do not see a column, you can select
Show advanced options at the bottom of the card.
Get a row by ID from Dataverse
1/15/2022 • 2 minutes to read • Edit Online
Use the Get a row by ID action to retrieve data from Microsoft Dataverse. This action helps you retrieve the
columns of a specific row when its unique ID is known.
TIP
After you get a row by ID, you can use the columns from that row in all steps that come later in your flow.
Follow these steps to use Row ID to get a row from the Accounts table.
1. Select New step to add an action to your flow.
2. Enter get row into the Search connectors and actions search box on the Choose an operation
card.
3. Select Microsoft Dataverse .
4. Select the Get a row by ID action.
5. Select the Accounts table from the Table name list, and then enter the row ID in the Row ID box for the
row that you want to get from the Accounts table.
NOTE
The Item ID column is the unique ID of the row that you are retrieving, as shown in the following image.
Advanced options
Select Show advanced options to set more properties that further define the information that should be
returned.
Select columns
Sometimes it's necessary to optimize the amount of data retrieved in a flow, especially if you're performing this
step inside a loop. Instead of retrieving all columns, you can specify which ones you want to retrieve by entering
unique names of those columns. Separate columns with a comma.
Expand Query
Use Expand Quer y to specify an OData-style expression that defines which data from related tables is
returned. There are two types of navigation properties:
Single-valued navigation properties correspond to Lookup columns that support many-to-one
relationships and allow you to set a reference to another table.
Collection-valued navigation properties correspond to one-to-many or many-to-many relationships.
If you include only the name of the navigation property, you’ll receive all the properties for the related rows. To
learn more, see Retrieve related table rows with a query.
To use the Expand Quer y box in a flow step, enter an Odata expression as shown in the following image. This
example shows how to get the contactid and fullname columns for the primarycontactid of the account.
Use a flow to delete a row from Dataverse
1/15/2022 • 2 minutes to read • Edit Online
TIP
You can retrieve the Row ID by using the dynamic content that's generated from earlier steps in your flow.
Use lists of rows in flows
1/15/2022 • 4 minutes to read • Edit Online
Use the List rows action to retrieve multiple rows at once from Microsoft Dataverse with a structured query.
6. Save and run your flow to confirm that no more than 5,000 rows are returned.
Turn on pagination to request more than 5,000 rows
To get more than 5,000 rows from a query automatically, turn on the Pagination feature from Settings as the
following steps indicate:
1. In the upper-right corner of the List rows card, select the menu (...).
2. Select Settings .
3. Move the Pagination slider to the On position if it's not already turned on.
4. In Threshold , enter the maximum number of rows requested. Internally, this number is rounded off in
increments of the default page size. For example, if that page size is 5,000, and you enter 7,000, the
number of rows returned is 10,000.
NOTE
Content throughput limits and message size limits apply to ensure general service guarantees. When pagination is not
set, the response includes an @odata.nextLink parameter that can be used to request the next set of rows. See the Skip
token section later in this article to learn how to use it.
Advanced options
The advanced options for the List Rows action allow you to sort, filter, arrange, and extend the results of a
query. Here's an example of how they can be put together:
Select columns
Enter a comma-separated list of columns to return, such as
"name,createdon,preferredcontactmethodcode,emailaddress1,telephone1" for the Account table.
Filter rows
Use to define an OData-style filter expression to narrow down the set of rows that Dataverse returns, such as
"createdon ge 2021-01-01T00:00:00-00:00" for rows with createdon greater than or equal to the year 2021.
TIP
Learn how to use standard filter operators and query functions to construct Filter Quer y expressions.
IMPORTANT
Filter expressions cannot contain this string, $filter= , because it only applies when you use the APIs directly.
Sort By
Use to define an OData-style expression that defines the order in which items are returned, such as "name desc".
Use the asc or desc suffix to indicate ascending or descending order, respectively. The default order is
ascending.
Expand Query
Use to specify an OData-style expression that defines the data that Dataverse returns from the related tables,
such as "primarycontactid($select=contactid,fullname)" to use the account's primar ycontactid to retrieve the
fullname column from the related contact with ID contactid in the response.
There are two types of navigation properties that you can use in Expand Quer y :
1. Single-valued navigation properties correspond to lookup columns that support many-to-one
relationships and allow you to set a reference to another table.
2. Collection-valued navigation properties correspond to one-to-many or many-to-many relationships.
If you include only the name of the navigation property, you’ll receive all the properties for the related rows. To
learn more, see Retrieve related table rows with a query.
To use it in a flow step, enter an Odata expression as shown in the following image. This example shows how to
get the contactid and fullname columns for the primarycontactid of each account.
Row count
Use to indicate the specific number of rows for Dataverse to return. Here's an example that shows how to
request 10 rows.
Fetch Xml Query
Use to specify a Dataverse-style FetchXML snippet which allows additional flexibility in building custom queries.
These can be useful when you work with a table that has multiple related tables, or handling pagination. The
following screenshot shows how to use FetchXML for the same filters and sort conditions as the previous
example:
Skip token
Because Power Automate applies content throughput limits and message size limits to ensure general service
guarantees, it is often useful to use pagination to return a smaller number of rows in a batch, rather than the
default limits on number of table rows returned.
The default page limit of 5,000 rows applies if you do not use pagination.
To use it, implement a loop to parse the @odata.nextLink value in the JSON response, extract the skip token ,
and then send another request until you have listed the number of rows that you need.
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
Content-Length: 402
Preference-Applied: odata.maxpagesize=3
{
"@odata.context":"[Organization URI]/api/data/v9.1/$metadata#accounts(name)",
"value":[
{
"@odata.etag":"W/\"437194\"",
"name":"Fourth Coffee (sample)",
"accountid":"7d51925c-cde2-e411-80db-00155d2a68cb"
},
{
"@odata.etag":"W/\"437195\"",
"name":"Litware, Inc. (sample)",
"accountid":"7f51925c-cde2-e411-80db-00155d2a68cb"
},
{
"@odata.etag":"W/\"468026\"",
"name":"Adventure Works (sample)",
"accountid":"8151925c-cde2-e411-80db-00155d2a68cb"
}
],
"@odata.nextLink":"[Organization URI]/api/data/v9.1/accounts?
$select=name&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%252
2%253e%253caccountid%2520last%253d%2522%257b8151925C-CDE2-E411-80DB-
00155D2A68CB%257d%2522%2520first%253d%2522%257b7D51925C-CDE2-E411-80DB-
00155D2A68CB%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20/%3E"
}
Partition ID
An option to specify the partitionId while retrieving data for NoSQL tables. To learn more, see Improve
performance using storage partitions when accessing table data.
Use wait conditions to delay flows
1/15/2022 • 2 minutes to read • Edit Online
The Microsoft Dataverse connector provides four ways to add wait conditions. Use these wait conditions when
you need to delay processing in your flows until a particular condition is met.
Postpone triggering the flow and the first action until a specific time. To learn more, go to Wait condition
using Postpone Until.
Add a fixed delay before the next step.
Delay an action until a specific timestamp.
Delay an action until a specific event occurs. You can use a trigger from the Microsoft Dataverse
connector or any other connector as a step in the middle of the flow to delay subsequent steps until a
specific event occurs. For example, you can define a flow that’s similar to the one in the following image
to check for updates to Account rows in Dataverse, and then waits for an email confirmation from the
Account manager before updating the change.
Perform bound actions or unbound actions
1/15/2022 • 2 minutes to read • Edit Online
IMPORTANT
In this acticle, the term "action" means a Dataverse action. Dataverse actions are not the same as Power Automate
actions. In Dataverse, you use actions to extend out of the box operations on data. You can use these actions to define
reusable custom business logic.
Flows can call Dataverse actions that are available in the Microsoft Dataverse connector. These actions include
everything from fulfilling a sales order to exporting a solution.
Actions represent operations that might have side effects in the database, such as creating or updating rows.
There are two types of Dataverse actions that you can use in flows.
Bound actions
Unbound actions
Bound actions
Bound actions target a single table or a set of rows from a single table.
To perform a bound action, add Perform a bound action to your flow.
Follow these steps to edit one of your flows to perform a bound action.
1. After any step in your flow, select Add new step .
2. Enter bound in the search box, select Microsoft Dataverse from the list of connectors, and then select
Perform a bound action .
3. In Table name , select the name of a table you want to use.
4. In Action name , select the action you'll perform.
5. In Row ID , enter the row in the table on which you want to perform the bound action.
6. Save, and then run your flow.
7. Confirm that the bound action completes successfully on the table that you selected.
Unbound actions
Unbound actions aren’t bound to a table and are called as static operations. Unbound actions are performed on
the entire environment, not on specific tables or rows.
To perform an unbound action in your flow, add Perform an unbound action to your flow.
Follow these steps to edit one of your flows to perform an unbound action.
1. After any step in your flow, select Add new step .
2. Enter unbound in the search box, select Microsoft Dataverse from the list of connectors, and then
select Perform an unbound action .
3. In Action name , select an action.
4. Enter or select any of the optional details on the Perform an unbound action card.
5. Save, and then run your flow.
6. Confirm that the unbound action completes successfully.
Use relationships to modify rows
1/15/2022 • 2 minutes to read • Edit Online
Relationships are an important concept in the Microsoft Dataverse. Power Automate allows you to work with
these relationships in a few ways.
When you want to create or modify a relationship, use standard OData notation. For example, while creating an
account row, you should set the Primar y contact column to the OData ID of a contact row like this:
contacts(c96be312-4ac1-4358-99b6-1e14e2957b15) .
IMPORTANT
If you try to pass only the GUID from previous step, you’ll get an error like this: Resource not found for the segment
<segmentname>. The Microsoft Dataverse connector expects the full OData ID of the target row, including the type of
the row.
If the lookup column is polymorphic (meaning it can have more than one possible target type), then the target
row OData ID must be provided in the correct column. For example, the Company name column
for Contacts is polymorphic and can take either an account or contact, but not both.
Select Add new item , and then enter the required data to add multiple values for an activity party. As shown
earlier in the article, you must use the OData ID syntax for systemusers(<ID of the user>) .
You can also pass in a list of different activity parties by toggling from item mode to array mode by using the “T”
button in the upper-right corner. When you do that, you can use expressions to pass in data from a previous
action, as shown in the following array:
Use Dataverse search to retrieve rows
1/15/2022 • 4 minutes to read • Edit Online
Use the Search rows action in flows to retrieve data from Microsoft Dataverse by using keywords and
Dataverse search, which delivers fast, intelligent, and comprehensive results across tables in Dataverse.
Prerequisites
Your admin must configure Dataverse search on your environment before you can use the search action on
Microsoft Dataverse.
You can add the Search rows action to your flows, and then provide a keyword in Search term to search for
that keyword across all the indexed rows in Dataverse.
You can use dynamic content from a previous step in the flow to parameterize the Search term box. For
example, you can use a keyword that's entered in a Power Virtual Agent bot and set the following options to
initiate an automated search:
NOTE
It can take a few hours for newly added rows to be included in the search results.
Search type
Use the Search type option to provide the syntax for the search query. Use simple to indicate that you want to
use the simple query syntax. Or, use full if you prefer to use the Lucene query syntax. The default query syntax
is simple .
Take a look at the following examples or review the full list of features at Search across table data using
Dataverse search.
The simple query syntax supports the following functionality:
Precedence operators A search term "hotel+(wifi | luxury)" will search for results
containing the term "hotel" and either "wifi" or "luxury" (or
both).
To use any of the search operators as part of the search text, escape the character by prefixing it with a single
backslash (\). Special characters that be escaped include the following characters: + - & | ! ( ) { } [ ] ^ " ~ * ? : \ /
Search mode
You can specify whether any or all the search terms must be matched to count the document as a match. The
default is any . It controls whether a term with the NOT operator is AND'ed or OR'ed with other terms in the
query (assuming there is no + or | operator on the other terms).
Using any for Search mode increases the recall of queries by including more results. By default, it is
interpreted as "OR NOT". For example, "wifi -luxury" will match documents that either contain the term
"wifi" or those that don't contain the term "luxury".
Using all for Search mode increases the precision of queries by including fewer results. By default, it is
interpreted as "AND NOT". For example, "wifi -luxury" will match documents that contain the term "wifi"
and don't contain the term "luxury".
Go to Search across table data using Dataverse search for more details.
Advanced Options
You can optimize your search by using other advanced options as described is this section. See Search across
table data using Dataverse search for more examples.
Row filter : You can narrow your search by specifying filters as shown in the following image.
Table filter : You can restrict your search to specified tables as shown in the following image.
Sor t by : Use this option to sort by specifying a column name and adding asc or desc as the suffix, as
shown in the following image.
Using dynamic content and Dataverse rows
You can use the outputs of the action directly from Dynamic content . Here's the meaning of each of the
parameters.
PA RA M ET ER N A M E DESC RIP T IO N
List of rows item An individual row in the list of rows, when used inside a loop.
Row search score The Dataverse score of a row. This score indicates how
closely it matched the search keywords and conditions.
Row search highlights Highlights the specific keywords that matched the search
keywords in the row.
PA RA M ET ER N A M E DESC RIP T IO N
Row table name The name of the table for a single row. This action
aggregates rows from all searchable tables in the
environment.
Row object id This is an identifier for each row. Use this identifier in
conjunction with the table name in the Get rows action to
read all the columns in a row.
Row object type code The table name identifier for the row.
When you are building your flow, the dynamic content might appear like this image:
The Search rows action returns many other columns for the matched rows in a variable schema, depending on
your Dataverse search configuration. To use these columns, parse the JSON response, and then use the dynamic
outputs generated from it as shown in the following image.
Use a flow to perform a change set request in
Dataverse
1/15/2022 • 2 minutes to read • Edit Online
Change sets provide a way to bundle several operations that either succeed or fail as a group. When multiple
operations are contained in a change set, all the operations are considered atomic, which means that if any one
of the operations fails, any completed operations are rolled back.
Follow these steps to get started with change sets.
1. In your flow, select New step .
2. Enter changeset into the search box of the Choose an operation card.
Notice that the operations list now only displays operations with the word "changeset" in its name.
3. Select the Perform a changeset request to add its scope to your flow.
You cannot have additional built-in actions inside of a change set scope because all actions are evaluated
together in Dataverse. You will see that there are no arrows between each of the actions, indicating that
there are no dependencies between these actions (they’ll all run at once).
5. Add all of the actions that you want to perform.
Upload or download image and file content
1/15/2022 • 2 minutes to read • Edit Online
You can use flows to upload or download images and files in Microsoft Dataverse. There are two column data
types for handling images and file content in Dataverse.
File : You can have a column that stores arbitrary file data for your table.
Image : In addition to a column that stores the full size of an image as a file, the Image datatype can also
include thumbnail information.
You can use the Microsoft Dataverse connector to work with these data types in Power Automate.
5. Select the table from which you want to download the file or image content or enter your own custom
value for the table name.
6. In Row ID , enter the row ID of the row in the table that you just selected.
TIP
You can normally copy the row identifier from a previous request by using dynamic content.
The list of supported file and image columns for the table you selected earlier will be populated in the
Column name list.
7. From Column name , select the column that holds the file or image content that you want to download.
You now can access the file or image content by using the File or image content variable in the
Dynamic content list.
With the content output of the action, you can pass it to any action later in the flow. In the following
example, the file contents are being passed to the Create file action.
Upload file or image content
Follow these steps to add the Upload a file or an image action to your flow. This way, you can upload content
to a corresponding file or image column in Microsoft Dataverse.
1. In Table name , select the table to which you want to upload the file or image content or enter a custom
value.
2. Enter the identifier in Row ID for the row to which you want to upload the file or image content.
TIP
You can normally copy the row identifier from a previous request by using dynamic content.
The list of available file and image columns in the table that you selected is populated.
3. From Column name , select the column to which you want to upload the image or enter a custom value.
Your Upload a file or an image action card might look like this now.
Here's a list of known issues with Microsoft Dataverse and Microsoft Power Automate.
Localization of metadata – When you change the Power Automate language and regional
locale settings, there's no change to metadata like table and column names. There is no change in the
metadata because they display in the language and regional locale settings of your Microsoft Dataverse
environment. See Languages to view your Dataverse settings.
Working with lookup fields – When working with the Add a new row and Update a row actions, you
must enter lookup fields in the following syntax – entity_unique_name(Item_ID) .
Working with multi-select fields – When working with the [Add a new row and Update a
row actions, the user interface allows you to select only one option. To select multiple options, you
must switch the input method to custom , and then enter a unique name for each option, separating
each name with a comma.
Adding a row with attachments to the Notes table – When you use
an attachment from the dynamic output of a non-Dataverse step, you must use an expression to
convert it to a string. For example, when you add a row inside an Apply to each loop over the output
from the When a new email arrives trigger, use string(triggerOutputs()?['body/attachments']) instead
of items('Apply_to_each')?['contentBytes'], as shown in the following image.
SharePoint and OneDrive document tables don't display inputs when you create a flow -
When you create a flow that triggers on the Dataverse SharePoint documents table or the OneDrive
documents table, no data from these tables is passed to the editor and the flow inputs array is empty. This
behavior occurs because these tables are virtual and their data isn't stored in Dataverse.
Use Dataverse-based flows in Power Apps
1/15/2022 • 2 minutes to read • Edit Online
Power Apps is a suite of apps, services, connectors, and data platform that provides a rapid application
development environment to build custom apps for your business needs. Use Power Apps, to quickly build
custom business apps that connect to your business data that’s storedeitherin the underlying data platform
Microsoft Dataverseorin various cloud and on-premises data sources, such as SharePoint, Microsoft 365,
Dynamics 365, SQL Server, and so on.
Apps built using Power Apps provide rich business logic and workflow capabilities to transform your manual
business processes to digital, automated processes. Further, apps built using Power Apps have a responsive
design, and can run seamlessly in Web browsers or on mobile devices (phone or tablet).
With Power Apps, you can create Canvas apps and Model-driven apps, and both types of apps support using
data stored in Microsoft Dataverse. You can use the Microsoft Dataverse connector in Power Automate to
integrate your apps with an automated flow, setting them off whenever users tap the associated button.
Get started with Power Apps:
WatchPower Apps demos
Watch videos on thePower Apps channelon YouTube.
Canvas apps
You can associate any button in a canvas app with a cloud flow that uses the Microsoft Dataverse. Each time the
canvas app user hits the button, the associated flow runs in the background.
1. Edit an existing canvas app, or create one by following the steps in Create a canvas app from Microsoft
Dataverse in Power Apps. Then go to the Inser t menu and then add a Button as shown here.
2. Select the button you just added.
3. Select the Action menu.
4. Add a Power Automate flow by choosing an existing flow or creating a new one from the panel that
appears on the right. If the flow requires any parameters, this step prompts you to provide them in the
formula bar.
IMPORTANT
There are three connectors available to connect to Dataverse. Use the recommended Microsoft Dataverse connector. The
Microsoft Dataverse (legacy) connector, covered in this article, and the Dynamics 365 connector are available if you
are unable to use the recommended connector.
With the Microsoft Dataverse (legacy) connector, you can create flows that are initiated by create and update
events within Dataverse. Additionally, you can perform create, update, retrieve, and delete actions on rows
within Dataverse.
If the selected trigger requires an environment to be selected, then you can choose (Current) , which will always
use the database within the environment in which Power Automate runs. If you want your flow to always trigger
based on an event in a specific environment, select that environment.
You can use scopes to determine if your flow runs if you add row, if a new row is added by a user within your
business unit, or if a new row is added by any user in your organization.
SC O P E T RIGGER T IM IN G
Parent: Child business unit Action is taken on a row owned by your business unit or a
child business unit
Triggers that run when a row is modified can also use filtering columns. This ensures that the flow only runs
when any of the defined columns are modified.
IMPORTANT
Use filter columns to prevent your flow from unnecessarily running.
This flow triggers any time the first or last name of a contact that the flow user owns is modified.
Trigger privileges
To create a cloud flow that triggers based on create, update, or delete on a row, the user needs to have user level
permissions for create, read, write, and delete on the Callback Registration table. Additionally, depending on the
scopes defined, the user might need at least that level of read on the same table. Learn more about environment
security.
When you host your flows in a solution, they become portable, making it effortless to move them and all their
components from one environment to another. A typical use case is for an independent software vendor (ISV) to
develop flows in a sandbox environment, and then move those flows to a test environment. After testing, the ISV
would then move the flows to a production environment for clients who purchase these flows. This process is
much easier when you create your flows in solutions, and then move the solutions and their contents.
Flows created in a solution are known as solution-aware flows. You can add multiple flows to a single solution.
NOTE
For detailed information about solution concepts and implementing a healthy application lifecycle management (ALM)
practice in your organization, see Application lifecycle management (ALM) with Microsoft Power Platform.
Prerequisites
You must have the following components to create solutions, and solution-aware flows:
Dataverse
An environment with version 9.1.0.267 or later.
To check your version, go to Power Platform admin center, select Environments , and then select the
environment in which you are interested. The Details tab displays all configuration information for the
environment that you selected.
Create a solution
Follow these steps to create a solution:
1. Sign in to Power Automate.
2. Select Solutions from the navigation bar on the left side of the screen.
3. Select New solution .
4. Provide all required information for your new solution, including the Display Name , Name , Publisher ,
and Version . It's also a good idea to provide a description of your solution.
5. Select the Create button.
Your new solution might appear like this image:
Known limitations
There are certain limitations when using flows with solutions. For information about these limitations, see
Known limitations in the Power Apps docs.
Learn more
Create a cloud flow in a solution
Export a solution
Import a solution
Edit a solution-aware flow
Remove a solution-aware flow
Create a cloud flow in a solution
1/15/2022 • 2 minutes to read • Edit Online
Flows you create in a solution are known as solution-aware flows. Follow these steps to create a solution-aware
flow.
Prerequisites
You need to have at least one solution before you can create a solution-aware flow.
Learn more
Create a solution
Export a solution
Import a solution
Edit a solution-aware flow
Remove a solution-aware flow
Create child flows
1/15/2022 • 4 minutes to read • Edit Online
Today, people are building flows that need dozens or hundreds of steps; however, if you try to put all of these
actions into a single flow, it can be difficult to navigate and maintain that flow.
You can use child flows to easily manage flows, avoiding flows with hundreds of steps. This approach is
especially beneficial if you want to reuse tasks in multiple places in a cloud flow, or even across multiple flows.
Let's look at an example where you have a child flow that you want to create or update a contact in Dataverse
based on that contact's name.
You will need a solution with two flows:
A child flow. This is the flow that is nested inside the parent flow and contains the smaller tasks you want to
run.
A parent flow. This flow can have any type of trigger and will call into the child flow.
TIP
You can also use the Power Apps or the When an HTTP request is received triggers for child flows.
3. Select Add an input . The input you define here will be passed in to the child flow from the parent flow.
4. For this walkthrough, the child flow creates a contact, so it needs the Contact name and Contact email .
5. Build the logic that you want the child flow to run. This logic can contain as many steps as you need.
After your steps, you need to return data to the parent flow. In this case you can use one of two actions:
i. Respond to a Power App or flow (under the Power Apps connector).
ii. Response (on the premium HTTP request/response connector).
6. As with the trigger, you can define as many outputs as you want to be returned from the child flow. In the
following image, we can respond with the ID of the contact.
NOTE
You will only see the flows to which you have access and are located in a solution. Child flows must also have one
of the three triggers mentioned earlier.
4. After you select your child flow, you will see the inputs that you defined. After the child flow action, you
will be able to use any of the outputs from that child flow.
When the parent flow runs, it waits for the child flow to complete for the lifetime of the flow (one year for
flows that use built-in connections and Dataverse or 30 days for all other flows).
5. Save and test this flow.
TIP
When you export the solution that contains these two flows and import it into another environment, the new
parent and child flows will be automatically linked, so there's no need to update URLs.
Known issues
We are working to address the following known issues and limitations.
1. If you block the HTTP Request connector via data loss prevention (DLP), child flows are also blocked
because child flows are implemented using the HTTP connector. Work is underway to separate DLP
enforcement for child flows so that they are treated like other cloud flows.
2. You must create the parent flow and all child flows directly in the same solution. If you import a flow
into a solution, you will get unexpected results.
Export a solution
1/15/2022 • 2 minutes to read • Edit Online
Follow these steps to move your solution and its dependencies to a new environment:
1. Select Solutions from the navigation bar.
2. Select the unmanaged solution that you want to export, and then select Expor t . You can't export managed
solutions. More information: Managed and unmanaged solutions
3. The Before you expor t right pane appears. Choose from the following options, and then select Next :
Publish all changes . Notice that, when you export an unmanaged solution, only published
components are exported. We recommend that you select Publish all changes to make sure all
components are included in the exported solution.
Check for issues . Run the solution checker against the solution to detect performance and stability
issues.
4. The Expor t this solution right pane appears. Enter or select from the following options, and then select
Expor t :
Version number : Power Automate automatically increments your solution version while displaying
the current version. You can accept the default version or enter your own.
Expor t as : Select the package type, either Managed or Unmanaged . More information: Managed
and unmanaged solutions
The export can take several minutes to complete. Once finished, the export .zip file is available in the download
folder specified by your web browser.
NOTE
To implement healthy application lifecycle management (ALM) in your organization, consider using a source control
system to store and collaborate on your solutions, and automate the solution export process. More information: ALM
basics in the Power Platform ALM guide.
NOTE
Once a flow is solution-aware and in Dataverse, then it must be exported in a solution as described earlier in this article.
You cannot export a solution-aware flow from the flow details page.
Learn more
Create a solution
Create a cloud flow in a solution
Import a solution
Edit a solution-aware flow
Import a solution
1/15/2022 • 2 minutes to read • Edit Online
TIP
If you want to have your flows start automatically after you import a solution, use the Microsoft Dataverse connector in
your flow when you create it.
After you've exported your solution, you can import it into any environment that meets the prerequisites. Follow
these steps to import a solution:
1. Sign into Power Automate, and then select Solutions from the navigation bar on the left side of the
screen.
2. Select Impor t .
NOTE
You cannot import a solution into an environment in which the solution already exists.
Learn more
Create a solution
Create a cloud flow in a solution
Export a solution
Edit a solution-aware flow
Remove a solution-aware flow
Edit a solution-aware flow
1/15/2022 • 2 minutes to read • Edit Online
IMPORTANT
Stop your flow before you begin editing it, or you might lose your changes.
1. Sign in to Power Automate, and then select Solutions from the navigation bar.
2. Select the solution that contains the flow you want to edit.
3. Select ... (More Commands) for your flow, and then select Turn off .
4. Select ... (More Commands) for your flow, and then select Edit .
5. Make your edits in the Power Automate designer, test your changes, and then save your flow.
6. Turn on your flow if you'd like it to run.
Learn more
Create a solution
Create a cloud flow in a solution
Export a solution
Import a solution
Remove a solution-aware flow
Remove a solution-aware flow
1/15/2022 • 2 minutes to read • Edit Online
You can either remove a cloud flow from a solution, or delete the flow from an environment entirely.
A C T IO N RESULT
Remove from this solution The flow is removed from the selected solution, but it
remains in the environment. You can use the flow in other
solutions in the environment at a later date.
Delete from this environment The flow is deleted; it is not available in the environment.
3. Select ... (More Commands) for your flow, select Remove , and then select either Remove from this
solution .
IMPORTANT
When you remove a cloud flow, it gets moved to the Default Solution , where you can edit or delete the flow, or add it
to another solution.
Learn more
Create a solution
Create a cloud flow in a solution
Export a solution
Import a solution
Edit a solution-aware flow
Use AI Builder in Power Automate
1/15/2022 • 2 minutes to read • Edit Online
AI Builder is a new Microsoft Power Platform capability that enables you to add intelligence to your automated
processes, predict outcomes, and help improve business performance. AI Builder is a turnkey solution that
brings the power of Microsoft AI through a point-and-click experience and is directly integrated into Power Apps
and Power Automate. More information: What is AI Builder?
You can build AI models by using the AI Builder option from the left navigation pane of Power Automate. More
information: AI model types
Use your AI Builder models in your flows to add intelligence to your organization. More information: Use AI
Builder in Power Automate
Troubleshoot common issues with triggers
1/15/2022 • 10 minutes to read • Edit Online
Here are a few tips and tricks for troubleshooting issues with triggers.
This error means that Power Automate tried multiple times to establish a connection to register the
trigger and failed. Your flow won't trigger until this problem is resolved.
One of the common reasons for the failure is that the Power Automate service end points are not part of
the allow list. To fix it, confirm that your IT department has added these endpoint to the allow list.
Here is the list of IP addresses and domains that need to be added to your allow list.
Refer to this support article to know more about how to fix issues with triggers.
Once the problem is resolved, modify the flow, save it, and then change it back and save again. The flow
becomes aware that it's configuration changed, and tries to register its trigger again.
Verify connections
With the default settings, users only need to login to a connection once. They can then use that connection until
it's revoked by an admin. A possible scenario is that the password for the connection can expire or there might
be a policy in your organization which sets the connector’s login token expiration after a specific amount of
time. Token lifetime policies have been configured on Azure Active Directory. For more information, check this
Azure article or this support article.
To verify if your connections are broken:
1. Sign into Power Automate.
2. Go to Data > Connections .
3. Find the connection that's used in your flow.
4. Select Fix connections , and then update the credentials for your connection if there is a Fix connection
message next to the Status column.
A standalone Power Apps or Power Automate license is required to access all premium, on-premises, and
custom connectors. You can purchase new licenses at any time.
Check your license type
To view the type of license that you have:
Go to My flows in navigation tab.
Select any flow.
In the Details section, find Plan . Your current license plan is listed.
Verify if trigger check is skipped
You just completed an event (for example, added a new list item or sent an email, etc.) that should have
triggered the flow, but the flow didn’t run.
Go to My flows in the navigation pane, and then select the flow. In the 28-day run histor y , select All runs .
If you are expecting the flow to run but it didn’t run, see if it shows the trigger check was skipped at that time. If
the trigger check was skipped, the trigger condition wasn’t met for the flow to trigger. Verify the inputs and
trigger conditions of the flow to see you are using the latest configuration to trigger the flow.
Verify inputs and trigger conditions
Sometimes, the inputs and trigger conditions may cause failures. Follow these steps to verfiy your inputs and
conditions.
1. Edit the flow.
2. Expand the first card to see what folders, sites, mailboxes, etc. are used in the trigger.
3. Select the ellipses (…) on the card
4. Select Settings .
Polling, such as the recurrence trigger When the flow is turned on again, all unprocessed/pending
events are processed. Delete, and then recreate your flow if
you don't want to process pending items when you turn
your flow back on.
2. Find the recurrence section with an interval frequency element. If this section is available, the trigger is a
polling trigger.
My recurrence trigger runs ahead of schedule
Confirm you've set the start time to make sure it runs only at that time.
IMPORTANT
You must enable Power Automate before you can find these flows.
Users are unable to run flows that are shared to them, but the owner
can run the flow
You can try one of the following:
1. Fix/update connections.
If your flow uses a Manual trigger, it needs the connection of the user who is triggering the flow. If it uses
the Recurrence trigger, it can run on the flow maker's connections.
2. Confirm the user has the appropriate license for the connections in the flow.
A Power Automate license is required for the user to perform any actions like save, turn off, etc. A Power
Apps, Dynamics 365, or Office 365 license is not sufficient. Users with whom flows that use premium
connectors are shared will each need a Power Automate Per User or Per Flow license to edit or
manually trigger the flow. If the user was previously able to save/modify the flow, it's possible that their
license has expired.
Alternatively, you can start a trial for the Per User plan for 90 days, after which you will need a paid plan
to run/edit flows that use premium connectors. See the licensing page or this support article for more
details.
Watch your flows in action
1/15/2022 • 2 minutes to read • Edit Online
To ensure that your flows run as you expect, perform the trigger, and then review the inputs and outputs that
each step in your flow generates.
1. Create or update a cloud flow, and then leave the designer open after you select Create flow or Update
flow .
For example, create a cloud flow that sends email whenever someone tweets using the #azure hashtag.
2. Perform the starting action for your flow.
For example, send a tweet that contains the #azure hashtag.
The starting action and each subsequent step indicates whether it succeeded and how long it took.
4. Select Edit flow to make more changes or select Done if the flow works as you expect.
Monitor activity in Power Automate from your
phone
1/15/2022 • 2 minutes to read • Edit Online
View a summary of how many times each flow succeeded or failed today, yesterday, and previous days. Explore
details about each run, such as when it ran, how long each step took and, if it failed, why.
Prerequisites
Install the Power Automate mobile app for Android, iOS, or Windows Phone on a supported device. The
graphics in this topic reflect the iPhone version of the app, but the graphics on Android and Windows Phone
are similar.
If you don't already have a cloud flow, create one on the website for Power Automate. For easier testing, use
one that you can trigger yourself instead of waiting for an external event.
The flow in this tutorial runs when you receive mail from a specific address:
You could configure such a cloud flow with your personal email address for testing and a different address (for
example, your manager's) when the flow is ready for real use.
When the flow runs, it sends a custom push notification, with this syntax, to your phone:
Note: You can also manage your flows from the mobile app.
If at least one run of a cloud flow has succeeded in a day, an entry shows the number of successes and
the time when it succeeded most recently. A different entry shows similar information if a cloud flow has
failed.
If a cloud flow sends a push notification, the text of the most recent notification appears at the bottom of
the entry for successful runs.
3. If multiple push notifications were sent in a day, swipe left on the notification to view notifications from
up to three previous runs. If more than four notifications were sent in a day, swipe left until See more
appears, and then tap it to view a list of all notifications.
4. Tap Back to return to the activity summary.
5. To filter the activity summary, tap the icon in the upper-right corner.
You can show all entries, only the failure entries, or only the entries that include push notifications.
2. At the bottom of the screen, tap See previous runs to list all runs of the flow, and then tap a run to
show its details.
Troubleshooting a cloud flow
1/15/2022 • 3 minutes to read • Edit Online
What happened Provides a description of the problem that caused the failure
in the flow.
How do I fix Provides tips for resolving the issue that cause the failure in
the flow.
Troubleshooting Tips Provides details including the number of times the flow
failed, and a link to retry the flow with the same input data.
To fix the reported errors, select Fix my flow and follow the steps in the repair tips email.
Repair tips emails are optional. If you don't want to receive them, just turn them off from the properties menu
for the specific flow.
If your flow fails, you can also troubleshoot it directly in Power Automate. Here are a few common failure
scenarios and tips on how to fix them.
Authentication failures
In many cases, flows fail because of an authentication error. If you have this type of error, the error message
contains Unauthorized or an error code of 401 or 403 appears. You can usually fix an authentication error by
updating the connection:
1. In the right pane, click on View Connections below How to fix .
2. Scroll to the connection for which you saw the Unauthorized error message.
3. Next to the connection, click or tap the Fix connection link in the message about the connection not
being authenticated.
4. Verify your credentials by following the instructions that appear, return to your flow-run failure, and then
click or tap Resubmit .
The flow should now run as expected.
Action configuration
Flows also fail if a setting in an action of the flow doesn't function as expected. In this case, the error message
contains Bad request or Not found , or an error code of 400 or 404 appears.
The error details should specify how to correct the failure. You'll need to click or tap the Edit button and then
correct the problem inside the flow definition. Save the updated flow, and then click or tap Resubmit to try the
run again with the updated configuration.
Other failures
If the error code 500 or 502 appears, the failure is temporary or transient. Click or tap Resubmit to try the flow
again.
If you need help with an issue, help is available from our community and Microsoft.
Find and fix errors with Flow Checker
1/15/2022 • 2 minutes to read • Edit Online
Flow Checker in Power Automate promotes higher quality flows by ensuring you follow best practices when you
design flows. When you run the checker, you get insights into questions like "which areas of my flow's
implementation pose a performance or reliability risk?"
For each issue the checker identifies, the checker points to specific occurrences within the flow where you
should consider making improvements. And, you learn how to implement these improvements by following
detailed guidance.
The checker is always active, appearing in the command bar in the designer. The checker shows a red dot when
it finds one or more errors, potential errors, or warnings in your flow.
Learn more
Get started with Power Automate
Introduction to Power Automate for desktop
1/15/2022 • 2 minutes to read • Edit Online
Power Automate for desktop broadens the existing robotic process automation (RPA) capabilities in Power
Automate and enables you to automate all repetitive desktop processes. It’s quicker and easier than ever to
automate with the new intuitive Power Automate desktop flow designer using the prebuilt drag-and-drop
actions or recording your own desktop flows to run later.
Leverage automation capabilities in Power Automate. Create flows,interact with everyday tools such as email
and excel or work with modern and legacy applications. Examples of simple and complex tasks you can
automate are:
Quickly organize your documents using dedicated files and folders actions
Accurately extract data from websites and store them in excel files using Web and Excel automation
Apply desktop automation capabilities to put your work on autopilot
Power Automate for desktop is addressed to home users, small businesses, enterprises or larger companies. It’s
addressed essentially to everyone who is performing simple or complex rule-based tasks on their workstations.
In case you are a home user who is accessing a weather website to see tomorrow's forecast, or a self-employed
businessperson who extracts information from vendors' invoices or even an employee of a large enterprise who
automates data entry on an ERP system, Power Automate is designed for you.
It allows you to automate both legacy applications, such as terminal emulators, modern web and desktop
applications, Excel files, and folders. Interact with the machine using application UI elements, images, or
coordinates.
Sign in to Power Automate for desktop Windows application using one of the following accounts and automate
your tedious tasks:
Getting started with a Microsoft account
Getting started with a work or school account
Getting started with an Organization premium account
A full comparison of the features included in each account can be found here.
Here's a list of known issues for Power Automate.
You can also create desktop flows using the alternative solutions legacy Windows recorder (V1) and Selenium
IDE.
Getting started with Power Automate in Windows 11
1/15/2022 • 2 minutes to read • Edit Online
Windows 11 allow users to create automations through the preinstalled Power Automate for desktop app.
Power Automate is a low-code platform that enables home and business users to optimize their workflows and
automate repetitive and time-consuming tasks.
Any Windows user can build flows with little-to-no coding experience. A collection of more than 400 pre-made
actions and a recorder that captures mouse and keyboard functions make RPA intuitive for both regular and
power users.
Using the available actions, you can automate virtually any Microsoft and third-party application on Windows
and exchange data between different applications and web pages.
For example, you can extract prices from shopping websites, compare them, and store them to Excel
spreadsheets by deploying some easy-to-configure actions.
Using Power Automate, you can populate any form and reduce the time needed to enter data on regularly used
applications. Performing repetitive online orders, tracking price changes, populating fields on web pages and
desktop applications, creating backups, and converting files are all tasks that can be fully automated with Power
Automate for desktop.
Apart from the pre-made actions, Power Automate for desktop enables you to record your activity and
automatically convert these steps into actions. The recording feature makes RPA friendly to all non-technical
users and allows you to develop simple flows effortlessly.
To start your journey with Power Automate for desktop, follow our getting started guide. More technical starting
guides are available for users with a work or school account and organization premium account. Check the
Sign-in account comparison to view what each version offers.
Power Automate for desktop prerequisites &
limitations
1/15/2022 • 4 minutes to read • Edit Online
Prerequisites
A Microsoft work or school account to sign into Power Automate
An account with administrator privileges to sign in to your Windows device
System requirements:
A device that runs Windows 10 Home, Windows 10 Pro, Windows 10 Enterprise, Windows Server
2016, or Windows Server 2019. ARM devices are not supported.
Minimum hardware
Storage: 1GB
RAM: 2GB
Recommended hardware
Storage: 2GB
RAM: 4GB
.NET Framework 4.7.2 or later
NOTE
The minimum requirements do not include the resources required for the applications involved in the flows.
TIP
If your device runs Windows 10 Home, you can use Power Automate to create your desktop flows and monitor them on
Power Automate. You can't trigger desktop flows to run from the cloud on Windows 10 Home devices. Other types of
desktop flows (Windows recorder V1 and Selenium IDE) are not supported.
W IN DO W S EN T ERP RISE /
A C T IVIT Y DESC RIP T IO N W IN DO W S H O M E P RO / SERVER
Supported languages
Here are the languages that Power Automate for desktop supports, in addition to English:
Centralized No No Yes
management and
repor ting : New flows and
any execution logs are
automatically saved to
Power Automate service to
provide centralized
management and
reporting.
Learn more
Learn to create Power Automate desktop flows.
Learn how to run desktop flows.
Learn to manage desktop flows.
Install Power Automate on your device
1/15/2022 • 7 minutes to read • Edit Online
The installer contains all the components you need to record, edit, and test your automations, as well as connect
to the cloud.
IMPORTANT
The installer installs the Webdriver component. You need it to run desktop flows created with Selenium IDE. It will also
install the Power Automate app and third-party components.
IMPORTANT
In order to register your machine, you need to have an Organization premium account.
NOTE
Power Automate for desktop by default honors the proxy settings specified in Windows. To override this configuration,
refer to Power Automate for desktop using a proxy server.
IMPORTANT
Sharing usage data to Microsoft, will help the support department to solve a Power Automate issue.
IMPORTANT
If you have already installed the Power Automate extension in the past, you don't need to reinstall it
Microsoft Edge:
Install Edge extension: select Get , and then select Add extension when prompted.
If you see the message: This extension has been turned off in Microsoft Edge, at the top of the page, select
Turn on extension .
Google Chrome:
Install Chrome extension: select Add to Chrome , and then select Enable extension when prompted.
If you see the message: This item has been disabled in Chrome on top of the page, select Enable this item .
Mozilla Firefox:
Install Firefox extension: select Add to Firefox , and then select Add when prompted.
TIP
If you are not able to activate the extension(s) in your browser, you must use Microsoft Edge (version 80 or later) or
Google Chrome or Firefox. Other browsers are not supported.
NOTE
The same installer is used for both manual and silent installation of Power Automate for desktop.
Install Power Automate for desktop using the command line
1. Download Power Automate for desktop.
2. Open Star t .
3. Search for command prompt , and then run it as the administrator.
4. Change the directory to Downloads (or to the directory into which you downloaded Power Automate):
For example, enter:
cd C:\Users\Nvarga\Downloads\
5. Enter:
IMPORTANT
You must provide the -ACCEPTEULA argument to indicate that you accept the terms and conditions for Power
Automate.
6. You can now launch Power Automate from the Start menu.
Command line argument details
You can also retrieve the details of all the command line arguments from the help menu in the command
prompt:
Setup.Microsoft.PowerAutomateDesktop.exe -HELP
-INSTALLPATH:Value The full path of the installation folder that will be created.
The default
is %PROGRAMFILES(X86)%\Power Automate .
C OMMAND DESC RIP T IO N
-DISABLETURNONRD Use the argument if you don't want the installer to turn on
Remote Desktop on the device.
You must turn on Remote Desktop if you want support for
unattended runs.
-ACCEPTEULA Use this argument to indicate that you accept the terms of
use for Power Automate.
-HELP This argument displays all details about the arguments for
the installer prompt.
NOTE
All your data and configuration, including telemetry, shortcuts, etc. are retained when you update Power Automate. If you
want to enable parameters previously disabled, you will need to first uninstall Power Automate for desktop, and then
reinstall it.
NOTE
Power Automate for desktop now offers direct connectivity to the cloud without the use of on-premises data gateways.
You can find more information in Manage machines.
You will need the on-premises data gateway to trigger your desktop flows from a cloud flow.
You can use PowerShell Cmdlets to install, configure, and manage your gateway.
IMPORTANT
To use PowerShell cmdlets, you will need to run them from PowerShell 7.0.0 or higher in an elevated access.
Domain and Username : Provide your device account. You can use a local account by using the
name of the user (for example, “MACHINENAME\User” or “local\User”), or an Active Directory
account such as “DOMAIN\User”.
Password : Your account’s password.
7. Select Create .
Install the on-premises data gateway to run your desktop flows from
the cloud
NOTE
Power Automate for desktop now offers direct connectivity to the cloud without the use of on-premises data gateways.
You can find more information in Manage machines.
You will need the gateway to trigger your desktop from an event, schedule, or button flow. on a remote device.
TIP
The gateway isn't required if you only want to create, edit, and test your flows on your device.
IMPORTANT
You must install the on-premises gateway on each device from which you automate desktop flows.
When you install the gateway, it defaults to the region that Power Automate uses.
You might not find the gateway in the list while creating the connection for the following reasons:
The gateway may be installed in a different region than your Power Automate region. To resolve this issue,
uninstall the gateway from the device, and then reinstall it, selecting the correct Power Automate region.
The gateway was deleted by its owner.
Learn more
Learn to create Power Automate desktop flows.
Learn how to run desktop flows.
Learn to manage desktop flows.
Governance in Power Automate
1/15/2022 • 2 minutes to read • Edit Online
Hive HKEY_LOCAL_MACHINE
Name DisableOptionalUpdates
Type DWORD
Value
1 : Users will not be able to manually update Power Automate for Desktop.
Hive HKEY_LOCAL_MACHINE
Name RestrictMSAAccountsSignIns
Type DWORD
Value
1 : Users will not be able to sign-in using their Microsoft account
Prevent users accessing Power Automate for desktop using their work
or school accounts
You can use the following registry entry to prevent users from logging into Power Automate for desktop with
their work or school account without a per user plan with attended RPA license.
Hive HKEY_LOCAL_MACHINE
Key SOFTWARE\Microsoft\Power Automate Desktop
Name RestrictNoLicenseOrgIDAccountsSignIns
Type DWORD
Value
1 : Users will not be able to sign-in using their work or school account without a per user plan with attended
RPA license
Prevent users accessing Power Automate for desktop using their work
or school accounts or organization premium accounts
You can use the following registry entry to prevent users from logging into Power Automate for desktop with
their work or school accounts or organization premium accounts.
Hive HKEY_LOCAL_MACHINE
Name RestrictOrgIDAccountsSignIns
Type DWORD
Value
1 : Users will not be able to sign-in using their work or school account or organization premium account
NOTE
Setting any value other than 1, or not setting a value at all will allow users to access for desktop. When all registry
keys are set to 1, users will not be able to login to Power Automate for desktop with any type of account.
Hive HKEY_LOCAL_MACHINE
Type String
Value
ProxyAddress:Por t (e.g.: myproxy.com:3128) : The proxy server and port configured, will override the
proxy server and port configured in Windows.
Hive HKEY_LOCAL_MACHINE
Name DisableWindowsProxy
Type DWORD
Value
1 : Power Automate for desktop will not honor the Windows Proxy settings and the proxy server will be
bypassed for Power Automate's traffic.
Hive HKEY_LOCAL_MACHINE
Name UseDefaultProxyCredentials
Type DWORD
Value
1 : Power Automate for desktop will authenticate to the corporate proxy server using the current user's
credentials.
Learn more
Learn to create Power Automate desktop flows.
Learn how to run desktop flows.
Learn to manage desktop flows.
Troubleshooting Power Automate
1/15/2022 • 2 minutes to read • Edit Online
NOTE
You need to have admin privileges to open the troubleshoot tool from Power Automate machine runtime.
NOTE
If the AppData folder isn't visible in your user folder, try to display hidden files.
If you have installed Power Automate in another drive, replace C with the letter of the respective drive. Also,
replace Username with the name of your user folder.
After deleting the msalcache.bin3 file, restart the Power Automate service and sing in to your account.
handle net.pipe
Running this command should display a list of processes that use named pipes and the address they
listen to.
Required data
As noted above, data in the Required category is necessary to keep our products up to date, secure, and working
as expected. Required diagnostic data includes things like the type and version of a customer’s device or
software configuration so we can provide connectivity to our cloud services, security patches to help keep our
customers’ experiences safe, secure and functioning with a high degree of performance, detect significant
feature failures, and then diagnose and fix those failures more quickly to reduce impact to customers.
Required diagnostic data is the minimum data necessary to help keep Power Automate client software
performing as expected on the device it's installed on. Examples include summary details about the health and
security of the running service like versioning information about your infrastructure, configuration details,
success or errors you’ve received, and aggregated information about failures and security concerns, flow runs,
service interactions, and more.
Required diagnostic data is managed with your organization’s and your employees’ security and privacy in
mind. You can learn more about our commitments to protect data in theMicrosoft Trust Center / Privacy.
Required diagnostic data in Power Automate client software is organized into various data categories:
Device connectivity and configuration This type ofRequired diagnostic Details on the user’s device,
data includes details about the device, screen resolution, screen
its configuration, and connectivity orientation, and other
capabilities configuration details
DATA C AT EGO RY DESC RIP T IO N EXA M P L ES
Product and service performance This type ofRequired diagnostic Information about memory,
data includes details about device or processor, disk usage
service health and performance Information about form load
times
Information about process
completion times
Product and service usage This type ofRequired diagnostic Details on navigation patterns
data includes details about the usage Details on form usage
of the device, operating system, Details on frequency use of
applications, and services activities and actions
Software setup and inventory This type ofRequired diagnostic An event used to ensure new
data includes software installation and users can successfully launch
update information on the device and run Power Automate client
applications for the first time
An event that ensures critical
regression detection for
installed client applications
Optional data
Data in the Optional category isn’t essential to the product or service experience, however opting into this
feature allows us to identify additional usage trends which further enhances our ability to make product
improvements. Power Automate client products don’t collect Optional data unless the user consents during the
product installation process, or has enabled the feature through the application settings thereafter. If you choose
to send Optional diagnostic data, it is collected in addition to Required diagnostic data.
Enhanced anonymized product usage This type ofOptional diagnostic Process names that the user is
data includes details about the usage trying to automate such as
of advanced flow objects, such as EXCEL.exe
selectors
Power Automate for desktop architecture
1/15/2022 • 5 minutes to read • Edit Online
There are two different methods that Power Automate can use to connect to the cloud services in order to
receive flow execution jobs. The first option is direct connectivity, while the second option requires the on-
premises data gateway to be installed.
The data flow between the desktop and the cloud is the same in both options, only the application and user
account that initiates the web requests are different.
Azure Relay is a service that facilitates communication channels that are established entirely by making
outgoing requests to the service. It achieves this functionality either by establishing a WebSocket connection or
using HTTP long-polling, if necessary.
NOTE
The Azure Relay and Power Automate cloud services are both cloud resources in Azure. You can find more information
about Azure Relays in What is Azure Relay.
The outgoing web requests from the UIFlowSer vice on the desktop machine to the Azure Relay in the cloud
use HTTPS to make requests to FQDN *.ser vicebus.windows.net over port 443.
Destination IP addresses for the Azure Relay can be found here for the Public Cloud under the name
Ser viceBus . Similar documents are available for the other Azure national clouds. No inbound ports are
required to be open on the desktop machine.
The UIFlowSer vice is a Windows service that is installed with Power Automate on the desktop machine. The
on-premises data gateway Windows service is a separately installed component that acts as a communications
gateway between the UIFlowSer vice and the Azure Relay.
By default, the data gateway service is set to start automatically and runs as the new user NT
SERVICE\PBIEgwSer vice . This user is created during installation.
Azure Relay is a service that facilitates communication channels that are established entirely by making
outgoing requests to the service. It achieves this functionality either by establishing a WebSocket connection or
using HTTP long-polling, if necessary.
NOTE
The Azure Relay and Power Automate cloud services are both cloud resources in Azure. You can find more information
about Azure Relays in What is Azure Relay.
The details about this data flow are documented in Adjust communication settings. The firewall requirements for
execution are exactly the same as the direct connectivity option, but a different service and user account will be
making the outgoing requests.
Although the logical data flow is from the cloud to the desktop, the connection is established from the desktop
to the cloud. It uses an Azure Relay to connect to the cloud using an outgoing web request.
If a gateway cluster is created using the on-premises data gateway, the private key used to decrypt credentials is
generated on all machines in the cluster. The private key is generated using the recovery key that is requested
during machine registration. The recovery key is never sent to the cloud.
If a machine group is created using direct connectivity, the group's private key is encrypted using a user-defined
group password. Then, it's sent to the cloud for storage as part of the register machine request.
The encrypted private key is shared with other machines that join the group. However, as the user must first
provide the password to decrypt this private key, the service can't read any stored credentials in the connection.
Create a Microsoft Dataverse database
1/15/2022 • 2 minutes to read • Edit Online
NOTE
For the preview release, you may need to create a Dataverse database before using Power Automate for desktop with
your work or school account. This must be done only once in a tenant.
If you are an administrator or if you would like to provide information to the administrator to create a Dataverse
database, see Add a Microsoft Dataverse database.
Next Steps
Learn how to set up Power Automate for desktop.
Begin your journey in Power Automate by creating a Power Automate desktop flow.
Get familiar with the console and the flow designer, which are part of Power Automate.
You'll find the list of actions available in the Actions reference.
Getting started with a Microsoft account
1/15/2022 • 2 minutes to read • Edit Online
Power Automate enables regular and power users alike to create flows, which save time and eliminate human
error.
Focus on other activities by automating routine and repetitive tasks like organizing or backing up your files and
folders. Create flows to extract product prices from a website and save them in an Excel spreadsheet then email
it as an attachment. Fill in web forms by supplying information dynamically from your files.
Create automated workflows with step-by-step guidance and an intuitive, no-code interface anyone can use,
regardless of their technical expertise. Build flows from a wide variety of pre-made actions, or record your
interactions as steps to be played back anytime.
Using Power Automate with a Microsoft account is available at no additional cost.
NOTE
Flows built with Power Automate using a Microsoft account are stored automatically on the users' OneDrive.
2. Enter a name for the flow and then select Create . In this example, the flow is named Copy Folder to
Desktop .
3. When the Flow Designer opens, go to the Actions pane, open the Folders group, and drag and drop the
Get special folder action to the workspace to add it to the flow.
4. In the resulting action properties dialog, the desktop folder is selected by default. Select OK to add the
action to the flow.
5. Similarly to step 3, go to the Message boxes group, and add the Display select folder dialog action
to the flow. Set Dialog description to Select a folder to back up:.
6. In the Folders group, add Create folder to the flow. Set the Create new folder into field to
%SpecialFolderPath% and New folder name to backup .
7. In the same group, select the Copy folder action. Set Folder to copy to %SelectedFolder% ,
Destination folder to %SpecialFolderPath%\backup and add the action to the flow.
9. Close flow designer and save the flow. Now you can run the flow from the console.
When prompted for a folder, select any folder you wish to copy. The flow will create a new folder on your
desktop called backup with the selected folder inside.
Following this example, it is possible to imagine a wide range of scenarios where these actions could be
combined with other actions. Among the many possibilities, users could:
Select an additional folder on a flash drive to back up to
Back up files based on specific criteria
Create a file structure for the backup
Iterate through a list of folders and only back up selected folders
Next Steps
Learn how to set up Power Automate.
Begin your journey in Power Automate by creating a Power Automate desktop flow.
Get familiar with the console and the flow designer, which are part of Power Automate for desktop.
You'll find the list of actions available in the Actions reference.
Getting started with a work or school account
1/15/2022 • 3 minutes to read • Edit Online
Power Automate enables users to automate repetitive desktop tasks through a collection of prebuilt drag-and-
drop actions.
Using the available actions and built-in recorder, you can automate any business procedure, such as filling
forms, retrieving data from web or desktop applications, and sending standardized emails.
Combining these features allows the creation of powerful flows that disengage humans from repetitive,
unproductive procedures. Tasks like copying data across different systems are common in business
environments, and Power Automate can entirely handle them.
Apart from third-party applications, Power Automate allows the automation of integrated Windows applications
and features. Creating backups of critical files and running diagnostics or custom scripts can be performed
effectively through desktop flows.
Using Power Automate with a work or school account is available at no additional cost. To use Power Automate
for desktop, your default environment must contain a Dataverse database. To unlock additional RPA features,
such as running flows automatically, premium cloud connectors and flow sharing and monitoring, start a trial or
upgrade to an Organization premium account.
To start a trial, select Go Premium on the Power Automate for desktop console.
Flow example
To become familiar with the available features of Power Automate, follow the steps below to create a flow.
The presented flow copies all the files located in the Documents folder and creates a backup to a secondary
drive. The original location of each file is appended to an existing log file.
NOTE
To implement this example, a secondary drive has to be connected to your computer. If a secondary drive isn't available,
select a different destination folder for the files.
3. When the Flow designer is launched, add a Get special folder action in the workspace and retrieve
the Documents folder's path.
4. Add a Get files in folder action to retrieve all the files located in the previously retrieved Documents
folder. Optionally, set the action to retrieve the files located in subfolders of the selected folder.
5. Deploy a For each action to access and handle each file of the retrieved list independently.
6. Inside the For each loop, add a Get file path par t action to retrieve the path of the currently selected
file.
7. Add a Copy file action to copy the currently selected file to the desired location. In this example, the
destination folder is called Backup and it's located in the D drive.
NOTE
If a secondary drive isn't available, select a different destination folder for the copied file.
8. Use a Write text to file action to append a new registry in the log file. In this example, the file is called
Logs.txt , and each registry contains the original path of the copied file.
9. To test if the flow runs as expected, select the Run button on the upper part of the Flow designer .
10. To check how every single action is implemented, run the flow step-by-step using the Run next action
button.
11. If the flow runs as expected, select Save and close the Flow designer window.
12. Now, you can run your flow directly through the Run button in the Console . To stop the flow before its
completion, select the Stop button.
Next Steps
Learn how to set up Power Automate for desktop.
Begin your journey in Power Automate by creating a Power Automate desktop flow.
Get familiar with the console and the flow designer, which are part of Power Automate.
You'll find the list of actions available in the Actions reference.
Getting started with an Organization premium
account
1/15/2022 • 2 minutes to read • Edit Online
Power Automate enables regular and power users alike to create flows that automate routine repetitive tasks.
Build flows from pre-made actions, or record windows and web browser activity in real time.
Unlock the full spectrum of RPA features such as premium cloud connectors, the ability to run your flows
automatically, detailed monitoring and many more.
Power Automate gives you the option to share your flows among your colleagues so that you can improve
automations and build on top of them.
Access your flows from anywhere, harnessing the power of the cloud to establish a robust and flexible RPA
system. Take full advantage of multiple environments to organize and manage users’ flows.
If you currently use Power Automate with a work or school account or your license does not include attended
RPA, you can still use Power Automate for your desktop automation needs. Start a trial to preview all the
features by selecting Go Premium on the Power Automate for desktop console.
Creating a flow
1. Begin by visiting https://flow.microsoft.com/ and entering your credentials; then, navigate to My flows ,
and create a new Desktop flow :
2. After you assign a name to the flow, you will be prompted to launch Power Automate for desktop; select
Open to do so.
3. In the flow designer, start building the flow by double-clicking on actions, or dragging them from the
actions pane on the left, to the central workspace pane.
4. Expand the Datetime category, and select the Get current date and time action. Configure it to only
retrieve the date:
5. Next, expand the Text category, and configure the Conver t datetime to text actions as follows:
This will ensure that the current date is displayed in a filename-friendly format.
6. Use the Get special folder action to retrieve the path of the Documents folder:
7. Add the If file exists action from the Conditionals category, and configure it to check whether the file
"report.xlsx" is present in the Documents folder:
8. Finally, add the current date to the file's name by using the Rename file(s) action from the File category:
9. The resulting flow should look like this:
Following this example, it is possible to imagine a wide range of scenarios where Power Automate can be used
to automate tasks. The abundance of actions, combined with cloud management capabilities, affords endless
possibilities to individual users and organizations.
Next Steps
Learn how to set up Power Automate.
Begin your journey in Power Automate by creating a Power Automate desktop flow.
Get familiar with the console and the flow designer, which are part of Power Automate.
You'll find the list of actions in the Actions reference.
Learn how to apply unattended RPA licenses to your flows.
Create a Power Automate desktop flow
1/15/2022 • 4 minutes to read • Edit Online
Desktop flows are used to automate tasks on the Web or the desktop. Using Power Automate you can automate
tasks on the desktop as well as the Web. Alternatively, you can use the two legacy methods of creating desktop
flows: Windows recorder (V1) and Selenium ID.
Prerequisites
To trigger desktop flows through Power Automate, you have to use machines or machine groups.
Machines are physical or virtual devices that are used to automate desktop processes. Machine groups
allow you to organize multiple machines together to help distribute your automation workload.
As an alternative to the machines, you can use the on-premises data gateway. The gateway is an
enterprise-grade secure connection between Power Automate and your device.
To create a desktop flow in Power Automate, you need a Microsoft work, school or organization premium
account. To create and trigger a desktop flow through Power Automate, you need an organization
premium or trial premium account.
IMPORTANT
You must use the same work or school account to set up the gateway, to sign into Power Automate, and to log
into your Windows device.
5. Search for power automate , and select the Run a flow built with Power Automate for desktop
action.
6. In the action, under Run mode select Attended - Runs when you're signed in and under Desktop
flow select Create a new desktop flow .
7. Enter a desktop flow name or one will be generated and select Launch app .
8. A message from the browser may appear, asking whether to allow flow.microsoft.com to open an
application. Allow this action to continue to Power Automate for desktop.
9. In Power Automate for desktop, open the Variables pane, select + and select Input to add a new input
variable.
11. Add the Get current date and time action and set Retrieve to Current date only . Select Save to add
the action to the workspace. This action retrieves only the current date, and stores it in a variable.
12. Add the Conver t datetime to text action. In Datetime to conver t , select the variables icon and
double-click on %CurrentDateTime% in the pop-out to add the variable to the field.
For Format to use set Custom , and enter MM-dd-yyyy in Custom Format . This action converts the
datetime variable to a text variable, while also converting the date to the specified format.
13. Add the Get special folder action. The Special folder name will default to Desktop . This action stores
the location of the current user's Desktop in a variable.
14. Add the Create Folder action and set Create new folder into to %SpecialFolderPath%\Countries
and New folder name to %Countr yName% . This action creates a new folder with the specified name,
in the specified location.
15. Add the Write text to file action and use the variables pop-out to set File path to
%SpecialFolderPath%\Countries\%Countr yName%\%FormattedDateTime%.txt .
NOTE
To use both hardcoded text and variables in the field, populate the hardcoded text manually, and use the variables
pop-out to insert each variable in the currently selected part of the text.
16. Set Text to write to This text was written by Power Automate . This action writes the specified text
to a text file on the current user's desktop, and sets the filename to the current date.
This action writes the specified text into a text file.
17. Add the Get files in folder action and set Folder to
%SpecialFolderPath%\Countries\%Countr yName% . This action retrieves a list of the files in a
specified folder.
20. Select Save to save the flow and close the flow designer.
21. Back in Power Automate, in the dialog box select Keep Working .
22. Select the new desktop flow in the action, and enter Greece into Countr yName .
23. Select Save to save the flow and then select Test .
24. Select I'll perform the trigger action. and Test .
25. When Power Automate connects to the desktop app, select Continue , then Run Flow and then Done .
26. When the flow finishes running, all actions will have a green checkmark icon and a notification will
confirm that the flow ran successfully.
27. Select the Run a flow built with Power Automate for desktop action to open its inputs and outputs.
The values of the two variables, FileCount and FilePath , were returned from Power Automate. Similarly,
any output variables may be used elsewhere in the flow.
28. Check the Countries folder on the desktop. A folder with the name Greece has been added, and
contains a text file with today's date.
Run attended and unattended desktop flows
1/15/2022 • 8 minutes to read • Edit Online
After you've created and tested a desktop flow, you can run it from an event, schedule, or button. To make this
possible, add your desktop flow to an automated flow, a instant flow, a scheduled flow, or a business process
flow.
Prerequisites
To trigger desktop flows through Power Automate, you have to use machines or machine groups.
Machines are physical or virtual devices that are used to automate desktop processes. Machine groups
allow you to organize multiple machines together to help distribute your automation workload.
As an alternative to the machines, you can use the on-premises data gateway. The gateway is an
enterprise-grade secure connection between Power Automate and your device.
If you use the on-premises data gateway to trigger desktop flows, you also need to setup a desktop flow
connection.
A work or school account.
IMPORTANT
You must use the same work or school account to set up the gateway, to sign into Power Automate, and to log
into your Windows device.
IMPORTANT
Locked Windows user sessions will prevent desktop flows from running.
Flows run in unattended mode can't be launched with elevated privileges
NOTE
These orchestration rules apply to desktop flows runs that are scheduled by any user on the same device.
IMPORTANT
A timeout will occur if desktop flows don’t run within three hours after being requested.
NOTE
Running multiple concurrent desktop flows by the same user is not supported. You will need to have different users
running desktop flows at the same time to benefit from this feature.
NOTE
Offline gateway members within a cluster will negatively impact performance. Disable or remove these members.
To provide load balancing from the Power Automate gateway details page, navigate to Data -> Gateways , and
then select your gateway cluster.
In the gateway details page, toggle Run on all gateways in cluster. This will distribute the desktop flows runs on
all the gateways within that cluster.
NOTE
In rare cases, it can take up to 10 minutes for this setting to be effective and for load balancing runs to begin accross
cluster members.
IMPORTANT
If you are using local Windows accounts, all machines in the cluster must have the same local account with the same
password. Use these credentials when you create the desktop flows connection. If you are using Active Directory or Azure
AD joined machines, confirm that the user account you will be using in the desktop flows connection can access all
machines in the cluster.
NOTE
If you are running desktop flows in unattended mode, you will need to anticipate the number of desktop flows your
organization plans to run in parallel, and then purchase an adequate amount of Unattended Add-ons.
NOTE
If a target device or gateway becomes offline due to either a restart or connectivity issues, desktop flows will wait for up
to three hours before it fails. This wait time allows for transient machine states and allows you to successfully run
automation even even if the devices go through restart or update cycles.
Troubleshoot failures
1. If your unattended desktop flow fails with the cannot create new session message, follow these steps
to resolve the issue:
On Windows 10, confirm that you don’t have an active user session locked or unlocked on your target
device.
On Windows Server 2016 or Windows Server 2019, confirm you haven’t reached the maximum
number of active user sessions that's configured for your device. Desktop flows won’t be able to run if
it cannot create new sessions.
2. If the gateway status is offline , confirm that the device is turned on and connected to the Internet. You
may also troubleshoot the gateway.
3. If the gateway status is online , try the following actions:
Confirm the desktop flows app and services are running on your device.
Restart the service on your device.
Learn more
Install the on-premises data gateway.
Use the on-premises data gateway app documentation.
Troubleshoot the on-premises data gateway.
Runtime notifications
A notification popup appears by default when a desktop flow is downloading or running, when it is cancelled,
when it finishes running successfully, or when it encounters an error.
NOTE
Runtime notifications are displayed when a flow is run directly from the console. When a flow is run from the portal,
Power Automate doesn't display notifications.
Trigger a Power Automate desktop flow from
another flow
1/15/2022 • 2 minutes to read • Edit Online
Prerequisites
To trigger desktop flows through Power Automate, you have to use machines or machine groups.
Machines are physical or virtual devices that are used to automate desktop processes. Machine groups
allow you to organize multiple machines together to help distribute your automation workload.
As an alternative to the machines, you can use the on-premises data gateway. The gateway is an
enterprise-grade secure connection between Power Automate and your device.
A work or school account.
IMPORTANT
You must use the same work or school account to set up the gateway, to sign into Power Automate, and to log
into your Windows device.
1. Go to flow.microsoft.com and sign in with your credentials. In Power Automate, select My flows . Select
+ New flow , and from the drop-down select Instant cloud flow .
Alternatively, you can select Automated cloud flow to create a flow that is triggered by a specific event,
like the creation of a new file in an OneDrive for Business account.
2. Enter a name for the cloud flow, otherwise one will be automatically generated. Select Manually trigger
a flow and then select Create .
4. In the Choose an action prompt search field, enter power automate desktop . Under Actions , select
Run a flow built with Power Automate desktop .
5. In the action parameters, set Run mode to Attended - Runs when you're signed in , and in the
desktop flow drop-down select Create a new desktop flow .
6. Enter a name for the desktop flow and select Launch app .
7. A message from the browser may appear, asking whether to allow flow.microsoft.com to open an
application. Allow this action to continue to Power Automate for desktop.
8. The Power Automate Console creates a desktop flow with the selected name and opens the flow designer
to edit the new flow.
9. Optionally, create Input/output variables to pass data back and forth from the Power Automate web
portal to Power Automate for desktop. In the Variables pane, select + to add an input or output variable.
10. To create an input or output variable, the Edit variable dialog box will require filling in the fields as
follows:
Variable type—input or output
Variable name—the name of the variable in flow designer
Default value—the value which the variable holds if none is assigned
Data type—the type of the variable (integer, string, datetime, and so on.)
External name—the name used outside flow designer. This name appears in Power Automate.
Description—a description of the variable. This mandatory field appears in Power Automate
Mark as sensitive-enable this option to set the variable as sensitive and hide its content in the flow
designer and the Power Automate logs.
11. Create an Input variable to pass data from Power Automate web portal to Power Automate for desktop.
The variable can be used anywhere in the desktop flow.
12. To pass data from Power Automate for desktop to Power Automate web portal, create an Output variable.
13. Back in Power Automate, any input variables appear as fields in the UI action.
14. Output variables from Power Automate for desktop can be used in other Power Automate actions.
Manage machines
1/15/2022 • 6 minutes to read • Edit Online
Machines are the physical or virtual devices that are used to automate your desktop processes. When you
connect your machine to Power Automate, you can instantly start your desktop automation using any of the
wide array of available triggers, such as when you receive an e-mail or on a pre-defined scheduled.
Connecting your machine directly to Power Automate and the cloud allows you to harness the full power of
your robotic process automation (RPA). The easiest way to connect your machine to the cloud is with our direct
connectivity. All you need to do is ensure that you are signed into the latest version of Power Automate for
desktop, and your machine will be registered with Power Automate automatically. Once registered, you can
create a connection right away in your cloud flows.
IMPORTANT
Direct connectivity is only available for versions of Power Automate 2.8.73.21119 or newer. If you are using an older
version, update to the latest.
IMPORTANT
In order to register your machine and use the machine management features, your Power Platform environment must
have a version of the MicrosoftFlowExtensionsCore solution that is greater than or equal to 1.2.4.1.
When the connection is established successfully, the machine settings section will display the following fields
regarding the machine:
Machine name: A unique name to identify the machine.
Machine description: An optional description of the machine.
Machine running environment: The running environment of the machine.
NOTE
Users will need either an Environment Maker or Desktop Flow Machine Owner role to register machines. Before
registering a machine, make sure that you have the required permissions, and there is an available environment to
register the new machine.
In case of a virtual machine, make sure not to clone the virtual machine after installing the Power Automate machine
runtime.
Machines are not affected by a change in the Power Automate for desktop organization.
IMPORTANT
To successfully register a machine, make sure that the services specified in IP address configuration are accessible.
NOTE
Keep in mind that changing the running environment of a machine removes all its current connections.
9. Select the desktop flow you want to run and the desired run mode.
10. Save your cloud flow.
11. You can now trigger your desktop flow to run on your machine from the cloud.
Power Automate enables you to trigger desktop flows from cloud flows using events, schedules, and buttons.
NOTE
To apply this functionality, you have to own a premium per-user plan with attended RPA.
Share a machine
You can share a machine with other users in your organization, giving those users specific permissions to access
your machine.
1. Sign into Power Automate.
2. Select Monitor , then select Machines .
3. Select your machine from the list.
4. Select Manage access .
5. Select the Add people field, then enter the name of the person in your organization with whom you’d
like to share the machine.
6. Select the name of the person to choose with which permissions they can access the machine.
7. Click Save .
There are two levels of permissions that you can use when managing access to your machine:
1. Co-owner . This access level gives full permissions to that machine. Co-owners can run desktop flows on
the machine, share it with others, edit its details, and delete it.
2. User . This access level only gives permission to run desktop flows on the machine. No edit, share, or
delete permissions are possible with this access.
A C T IO N S C O - O W N ER USER
Edit details X
Delete machine X
Register a machine X
Share a machine X X
Delete machine X
You can also create a machine group directly from Power Automate:
1. Sign into Power Automate.
2. Select Monitor , then select Machines .
3. Select New machine , then select Group .
4. Enter a name for your machine group, then optionally enter a description.
5. Click Create .
NOTE
In case of a virtual machine, make sure not to clone the virtual machine after installing the Power Automate machine
runtime.
Machines are not affected by a change in the Power Automate for desktop organization.
IMPORTANT
In order to register your machine, you need to have an Organization premium account.
9. Select the desktop flow you want to run and the desired run mode.
10. Save your cloud flow.
11. You can now trigger your desktop flow to run on your machine group from the cloud.
IMPORTANT
If you are using local Windows accounts, all machines in the group must have the same local account with the same
password. Use these credentials when you create the desktop flows connection. If you are using Active Directory or Azure
AD joined machines, confirm that the user account you will be using in the desktop flows connection can access all
machines in the cluster.
There are two levels of permissions that you can use when managing access to your machine group:
1. Co-owner . This access level gives full permissions to that machine. Co-owners can run desktop flows on
the machine group, share it with others, edit its details, and add or delete machines.
2. User . This access level only gives permission to run desktop flows on the machine group. No edit, share,
or delete permissions are possible with this access.
A C T IO N S C O - O W N ER USER
Edit details X
You can only delete a machine group if you have sufficient permissions and there are no machines in the
machine group. Remove any machines from the group before deleting the machine group.
Access for machine groups is managed at the group level. All machines in the group will use the same
permissions and connections.
If the permissions of a machine and its group fall out of sync, for example if you modify the permissions of the
group directly in Microsoft Dataverse, certain actions for that machine may no longer be available and your
machine and machine group may not behave as expected. Ensure the permissions between the machine and
machine group are consistent to avoid any such issues.
Power Automate allows you to create groups of machines that can be accessed all together by a name reference.
This feature is essential for organizations that want to trigger desktop flows to multiple machines
simultaneously.
Environment admins can also restrict machine registration to a specific set of users by using the three security
roles that come with machine management.
DESK TO P F LO W S M A C H IN E DESK TO P F LO W S M A C H IN E DESK TO P F LO W S M A C H IN E
A C T IO N S O W N ER USER USER C A N SH A RE
Register a machine X
Share a machine X X
Delete machine X
This article describes how to use our mass deployment tool that allows you to easily install Power Automate on
multiple machines. You can both register your machines to Power Automate and add them to machine groups.
Pre-requisites
To silently register your machine(s), Power Automate for desktop needs to be downloaded and installed on the
targeted devices. Visit this page to understand how to install Power Automate silently
To silently register your machine and join a group, we recommend you to use a service principal account. You
can also use your Azure Active Directory account.
NOTE
Regarding their security roles, the user need to grant at least Environment Maker (or Desktop Flows Machine Owner) to
be able to register a machine and join a group.
1. Get the following information that will be used in the Machine Registration app: a. Applicationid b.
Directory (tenant) Id c. Client credentials (certificate or thumbprint)
4. You can use the help menu to have an overview of what you can do with the silent app.
.\PAD.MachineRegistration.Silent.exe -help
NOTE
If you decide to use AAD account, you can specify the username: -username [UPN] instead of service principal account
arguments
To join a group silently with the service principal account, use the join group operation -joinmachinegroup with
the following arguments:
1. Environmentid: The environment where the machine group is registered. You can retrieve it in the URL of
Power Automate.
2. Groupid: the id of the machine group you want to join. You can retrieve it in the URL of Power Automate
when you are in the machine group details page.
3. Grouppassword: the password of your machine. If this is the first machine of the group, you need to define it.
If not, you need to provide the defined password of the group. This input isn’t expected to be specified as an
input of the command line. See “Secure input” section to see options you can choose to provide it
Secure input
In the machine registration tool, you will have to provide secure inputs for registration and joining group. You
have two options to provide a secure input:
1. type when asked: you will be prompted to enter this data when needed. This is an interactive action that is
not adapted if you need to do mass deployment
2. redirect string/file to the silent registration application
a. redirect string (if you need to input multiple strings, you can do it easily in PowerShell):
b. redirect file:
i. create a txt file that contains your password and save it in Power Automate folder (you will need to have
admin privileges
ii. use the following:
a. For cmd prompt:
b. For Powershell:
The Microsoft Power Automate Azure Virtual Desktop (AVD) Integration Starter Kit is a set of templates that are
designed to help orchestrate and scale virtual machines used to run desktop flows. The kit includes a Power App
and multiple flows to automate the scaling up and down of machines. The assets part of the starter kit should be
seen as a template from which you inherit your individual solution or can serve as inspiration for implementing
your own apps and flows.
You can download the latest version of the Power Automate AVD Starter Kit for the GitHub repository.
IMPORTANT
Despite the fact that underlying features and components used to build the kit (such as 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 implement admin and governance capabilities in their organizations.
If you face issues with:
Using the kit: Report your issue at the GitHub repo issues section. Microsoft support won't help you with issues
related to this kit, but they will help with related, underlying platform and feature issues.
The core features in Microsoft Power Platform: Use your standard channel to contact Support.
Getting started
After following the instructions to install and configure the starter kit, start by launching the AVD integration
configuration app and creating a new scaling configuration.
Starter kit modules
1/15/2022 • 5 minutes to read • Edit Online
The Power Automate AVD integration starter kit is shipped as a solution which can be imported into your
environment, plus an Azure Automation runbook that will allow you to automate the installation of Power
Automate for desktop and machine registrations.
The starter kit solution includes:
An application, that will help with configuring your scale strategy and collecting the necessary
information to interact with both your Azure Virtual Desktop deployment and the Power Platform.
A sample orchestration flow that will be used as a template to generate new flows with your own
configurations.
Other helpful flows that either enable the configuration application or help generating the customized
orchestration flows.
Prerequisites
The following are prerequisites for installing the Power Automate AVD integration starter kit as it's included in
the solution:
Download the content package which includes the starter kit solution and runbook script to your device.
Azure Virtual Desktop hostpool
An Azure Virtual Desktop deployment with at least one host pool. If you don’t have one, you can follow
this documentation to set it up.
You have provisioned VMs in the host pool, that the starter kit will turn on/off when applying your scaling
strategy.
Microsoft Dataverse
Admin account:
Microsoft Power Platform service admin, global tenant admin, or Dynamics 365 service admin for
access to all tenant resources through the Power Apps APIs.
This solution will work for environment admins, but the view will be restricted to only the
environments an environment admin has access to.
Environment with a Dataverse instance, where the user installing the solution has the System
Administrator security role.
If you are using this starter kit in Production environment with a Dataverse, premium licenses are
required for all users interacting with the Power Automate AVD integration starter kit. Depending on
what components you will use, your organization size and the existing licenses available in your
organization, you will require either a Power Apps per user or per app or Power Automate per user or per
flow license or a combination of these licenses.
Azure Automation and Key vaults
An Azure Automation Account
An Azure Automation Credential which is needed to run the runbook automation and is used to
authenticate to Azure.
A service principal account to register your VMs
An app registration with Azure Service Management permission
An Azure Key Vault where you can store the secrets for your app registrations and machine group
passwords.
NOTE
The import can take up to 10 minutes to be completed.
NOTE
You can't update the values for environment variables from within the solution.
Once the solution import is competed, click on the VM Orchestration Sample Flow, navigate to its details page
and copy the Flow Id.
NOTE
You can find the flow Id by navigating to the details page of your flow and then copying the value in the address bar of
your browser:
https://flow.microsoft.com/manage/environments/<environmentId>/solutions/<solutionId>/flows/<flow-Id>
IMPORTANT
When environment variable values are changed directly within an environment instead of through an ALM operation like
solution import, flows will continue using the previous value until the flow is either saved or turned off and turned on
again.
NOTE
The application user should at least have maker role in the environment.
IMPORTANT
Make sure you follow these steps to create an application user in the Power Platform Admin Center: Manage application
users in the Power Platform admin center
NOTE
The AAD application needs to have read permission on the subscription.
IMPORTANT
You need to save the App registration secrets in the Key Vault in order to use them within the starter kit.
Limitations
Coauth and connections
If you have multiple identities managing the CoE Toolkit you may see this error when trying to use the flows:
The caller with object id '...GUID...' does not have permission for connection.
This is because the product does not yet support multiple people using connection references.
If you see this you should either log in with the identity that installed the solution to run the flows, or update the
flows to use your identity.
To do the later, browse to the default solution, filter to connection references, and edit each connection to use
your connection instead.
Supported languages
The Power Automate Azure Virtual Desktop integration starter kit is currently available only in English. Add the
English language pack to your environment to make sure all apps and flows work. Read more in the regional
and language options for your environment.
The main entry point to the AVD integration starter kit is the AVD Integration Configuration App. You can use
this application to:
1. List the Orchestration flows that have already been generated by the Starter Kit
2. Create a new scale configuration.
To create a new scale configuration:
1. Go to Power Automate.
2. On the left pane, select Solutions .
3. Select the starter kit solution, navigate to Apps then launch the AVD Integration Configuration App
4. Select New scaling configuration in the home page.
5. Enter the tenant domain name and tenant Id. Read the respective documentation to find more
information
6. Select the Environment you want to create the orchestration Flow in.
7. Provide the secret names for both App registrations (Power Platform and Azure Service Management).
8. Select the machine group you want to automatically scale using AVD VMs.
9. Select the host pool you want to use to scale your machine group.
10. Provide the Azure Automation specific information (Account Name and Automation Credential).
11. Enter the secret name for the selected machine group.
12. Configure your scaling strategy:
13. Select Create Orchestration Flow
A new cloud flow will be created with the configured the information and scaling strategy. You can now navigate
to the target environment and review, test or edit the cloud flow if needed. Once you are happy with your
configuration, you can enable the cloud flow to automatically apply your scaling configuration to the machine
group.
Manage desktop flows
1/15/2022 • 2 minutes to read • Edit Online
After you've created desktop flows, you might need to view, edit, or just check on their status. To do this, go to
the Desktop flows tab.
From this section, you can create a new desktop flow and then edit or delete your existing desktop flows.
NOTE
If you choose to delete or rename a desktop flow, press the refresh button in Power Automate to reflect the changes in
the flows list.
Details page
For each of your desktop flows, you can see its details by selecting its name from the list of desktop flows. You
then see details including:
The run history with details of each run.
The applications or Websites used in the desktop flow.
Follow these steps to see the details for a desktop flow:
1. Sign into Power Automate.
2. Select My flows > Desktop flows .
3. Select any of your desktop flows.
Share desktop flows
You can share a desktop flow with other users in your organization, giving those users specific permissions to
access your flows.
Follow these steps to share a desktop flow.
1. Sign into Power Automate.
2. Select My flows from the left side of the screen.
3. Select Desktop flows .
4. Select any flow that you own.
5. Select Share .
6. Select the Add people field, and then enter the name of the person in your organization with whom
you'd like to share the flow.
7. Select Give access , and then select either User or Co-owner as the permission for the person with
whom you share the flow.
8. Select the Share button.
These are the two permission levels you can use when you share desktop flows:
1. Co-owner : This access level gives the co-owner full permissions to that desktop flow. They can edit,
share, and delete the flow.
2. User : Has permission to only use that desktop flow in a cloud flow. No edit, rename, delete or share
permissions are possible with this access. Alternatively, those users can create a copy of that desktop flow
by using ‘Save as’, and work independently.
Once a desktop flow has been shared, owners and co-owners can change the access of each user by selecting
the Manage access link on the desktop flow details page.
NOTE
If someone shares a desktop flow with you, press the refresh button in Power Automate to see it in the Shared with me
flows list.
NOTE
Administrators of an environment are co-owners of all dekstop flows created in this environment and can't be removed.
More information
Create desktop flows.
Run desktop flows.
Create Windows recorder (V1) flows.
Create Selenium IDE flows.
Monitor desktop flow runs
1/15/2022 • 2 minutes to read • Edit Online
As you scale the automations in your business, you may need an easy way to ensure all your desktop flows are
running as expected. Monitor all your desktop flow runs in just one location to keep your automations running
smoothly.
Prerequisites
In order to see runs in this list, one of the following must be true:
You have run an attended or unattended desktop flow in the current environment
Another user has shared their desktop flow with you, which has run in the current environment
You have permission to view all data in the environment
TIP
To enable a user to view all the desktop flow runs in the current environment, ensure they have been assigned at least a
System Administrator or Environment Admin security role for that environment. Learn more about configuring user
security to resources.
Requested The time in which the desktop flow was requested by the
parent flow. This may not be the same as the time when the
desktop flow started running on the machine.
Desktop flow The name of the desktop flow which was run.
Run mode The mode in which the desktop flow was run.
Duration How long the desktop flow took to run on the machine,
excluding any time spent in the run queue.
Parent flow The cloud flow that triggered the desktop flow to run.
As you scale the automations in your business, you may need an easy way to ensure that competing desktop
flows are running according to their business priority. Monitor, manage and visualize all your queued desktop
flow runs in just one location. Desktop flow queues can be used whether your target device is a machine,
machine group, or a gateway.
NOTE
Everyone accessing the run queues for their gateways from the Desktop flow queues page should now navigate to the
Gateways pivot in the Machines page to access them.
Setting a priority
The desktop flows connector actions contains a new priority parameter under the Advanced options section.
Available priorities are High and Normal (the default value). This value can also be passed dynamically using the
custom value parameter. Every time the desktop flow is triggered, it will be executed with the priority that has
been set.
When multiple runs are queued, the execution ordering is based on the run priority and enqueued time. Runs
with a high priority that have been enqueued first will be executed first.
Prerequisites
In order to see runs in this list, one of the following must be true:
You are running an attended or unattended desktop flow in the current environment
Another user has shared their desktop flow with you, which has run in the current environment
You have permission to see view all data in the environment
TIP
To enable a user to view all the desktop flow runs in the current environment, ensure they have been assigned at least a
System Administrator or Environment Admin security role for that environment. Learn more about configuring user
security to resources in Configure user security to resources in an environment.
Queue Status
A run in a queue can have the following status:
Running
Queued
Next to run
Actions on a run
Four actions are available when clicking on the three dots next to the desktop flow name:
Change priority
Move to top
See parent flow run
Cancel parent flow run
Change priority
You can change the priority of a specific run by clicking on the three dots then Change priority . You can only
change the priority of a run of which you are an owner, or if you are a co-owner on the machine/machine group
or admin on the gateway.
Changing the priority only impacts the current run and not any subsequent ones. If you wish to change the
priority of all the upcoming runs, you need to change the priority in the connector action.
Move to top
The owner of the device or a user with administrator privileges for the machine, machine group, or gateway can
override the queue priority by moving an item to the top of the queue. That item will be put at the top of the
queue regardless of its original priority and queued time. If multiple runs are moved to top, the last one added
will be executed first.
You can cancel moving a run to top. It will revert the run back to its original priority and queued time.
From this page you can view all the gateways to which you have access. Each gateway will have its own run
queue when used to run desktop flows.
Known issues
Machines and machine groups are not available in the Government Community Cloud (GCC), Government
Community Cloud - High (GCC High), Department of Defense (DoD), or China regions. You can still view the
desktop flow queue for your gateways by visiting the Desktop flow queues page under the Monitor section
in the left navigation.
Data loss prevention (DLP) policies (preview)
1/15/2022 • 3 minutes to read • Edit Online
11/1 Canada
12/20 Europe
12/20 US(NAM)
NOTE
In case a flow calls other flows using the Run desktop flow action, the dependent flows are not being evaluated for
data loss prevention (DLP) violations.
If the suspended desktop flow was used in a cloud flow, this cloud flow will be also marked as suspended. Once you
have fixed the violations on your desktop flow, make sure that all your cloud flows appear on again.
IMPORTANT
For cases that a desktop flow is suspended, it won't be able to run it. Similarly, a cloud flow using a suspend desktop flow
won't be able to run either.
IMPORTANT
In case a data loss prevention (DLP) policy rule is set to a desktop flow after it has been used in a cloud flow, there won't
be any notification and the cloud flow will error out at that step. In case a desktop flow violates any rules and you correct
it you will need to go back to the cloud flow and reselect it from the list.
Power Automate for desktop console
1/15/2022 • 2 minutes to read • Edit Online
After signing in, your username will be displayed in the top-right corner, while a list of flows occupies the central
pane. At the top right-hand side, a dropdown list allows you to switch environments in order to access different
flows; alongside the environments are also the Settings and Help buttons, and a search bar for easily locating
flows.
NOTE
When more than one people make changes to a shared desktop flow, the last one that saves the flow overrides all
previous actions.
Console Settings
Press the Settings button to configure Power Automate for desktop to your liking:
Under the Application category, select whether Power Automate should launch automatically, whether closing
the console will close the application as well, and whether Power Automate should be able to display Windows
notifications. You may also set a hotkey combination to instantly stop a running flow.
Decide whether Microsoft may collect diagnostic data to improve user experience under Data collection .
NOTE
Only an admin may change Data collection settings.
Switch organization
For cases that a user is member of more than one tenants, they can switch between them by selecting their alias
at the top right of the console window and clicking on Switch organization .
Power Automate flow designer
1/15/2022 • 2 minutes to read • Edit Online
The flow designer contains all the tools required to design and debug a Power Automate flow. Additionally, any
images, UI elements, or variables of a desktop flow can be accessed and managed here.
The flow designer consists of multiple elements. The actions pane, the variables pane, and the workspace display
information about the status of the flow, and all the data it contains. Subflows are separated into tabs to help
design large, complex flows. Tools for debugging flows, such as breakpoints and the option to run a desktop
flow step by step, are also available in flow designer. Any error information is displayed, and the erroneous
actions are immediately highlighted.
Configure actions and the actions pane
1/15/2022 • 3 minutes to read • Edit Online
Upon opening the flow designer, the actions pane on the left side of the window shows all the action groups.
To quickly find a specific action, enter the name of the action in the search bar. Searching also returns partial
matches.
A dialog box opens with the parameters of the action. Actions have certain parameters such as variable names
and default values. Other actions will require user input to be initialized. After selecting Save , the action appears
in the workspace.
Configuring an action
Power Automate actions consist of two main segments:
The input parameters - They have the form of text fields, drop-down menus, and check boxes
The produced variables - Automatically created variables
The input parameters determine the way an action functions and the data it gets as input. The data can be
hardcoded values or variables.
To use a variable as a parameter, select the icon on the field's right side and pick the respective variable.
Each field can accept specific data types, such as numbers, text, or lists. If a value or variable of a wrong data type
is used as an input, the action will throw an error.
The produced variables hold the outcomes of the action for later use. All the produced variables are displayed
on the bottom part of the action's properties.
Each produced variable has a data type defined by its data. You can see the data type of a variable in the
Variables pane. Find more information about data types in the respective article.
In case a produced variable isn't needed for later use, unselect the checkbox under Variables produced .
NOTE
Produced variable names, may not contain special characters, white spaces and non-latin characters and can't start with
arithmetic characters.
To continue the flow's execution, even if the retry option fails, select the Continue flow run option. Through
the drop-down list, you can:
Go to next action : Executes the following action in order.
Repeat action : Repeats the action until it runs successfully.
Go to label : Continues the execution from a point defined by a Label action.
Power Automate offers two additional error handling options. Select the New rule button to:
Set variable : Sets the desired value to a specified variable.
Run subflow : Executes a specified subflow.
If different errors require different error handling behaviors, select the Advanced option and configure each
possible error separately.
Disabling an action allows you to remove it from the flow without erasing it. This feature is commonly applied to
test different versions of a desktop flow and decide which one is the most efficient.
When an action is disabled, all variables defined in it are hidden from the Variables pane. If the hidden
variables are used in other actions, the flow may throw an error.
In the example below, two actions threw an error because they contain variables defined in a disabled action.
Manage the flow designer workspace
1/15/2022 • 3 minutes to read • Edit Online
The central pane of the flow designer is called the workspace. Here is where the series of actions that make up
the flow is assembled:
During development, users may add, edit, and delete actions in the workspace.
Drag actions to rearrange them and change the order in which they run. Right-click an action and select Enable
action or Disable action to enable or disable an action respectively; while running, the flow skips any disabled
actions.
Copy and paste any selected actions in the workspace. This can be done within the same subflow, among
different subflows, or other open instances of flow designer.
Setting up subflows
Subflows are groups of actions, which may be referenced as a group within a desktop flow.
Every flow contains the Main subflow - this is the subflow that is run when a desktop flow starts. Any other
subflows may be invoked through the Run subflow action:
Subflows are shown in tabs, directly over the main workspace. To add a new subflow, select the subflows tab,
select + , and enter the subflow name.
Saving flows
To save a flow, select File in the flow designer's menu bar and then pick Save . Alternatively, you can press the
keyboard shortcut Ctrl +S .
To save the flow's current state as a new flow, select Save as in the File menu and populate a name for the new
flow in the displayed dialog.
NOTE
The Run from here option isn't available for actions located in loops, conditionals, or the On block error action.
NOTE
You can find more information regarding the built-in recorder in Record flows in Power Automate Desktop.
Debug a desktop flow
1/15/2022 • 2 minutes to read • Edit Online
It is common to have to debug flows in case there are any changes in the system or if a desktop flow cannot run
because it contains errors.
Debug a desktop flow using the following tools:
Errors Pane
Breakpoints
Run flow action by action
Set the Run delay
Adding breakpoints
Click to the left of the running order number in the workspace to place a breakpoint in the flow, which appears
as a red dot. Add a breakpoint to specify at which action to pause the flow. Resume running the flow by selecting
Run or Run next action . Select the breakpoint to remove it.
else if or wait
The variables pane shows the input and output variables passed to and from Power Automate. It also displays all
the variables used in the current flow under Flow variables .
Through the Variables pane, you can search for variables, rename them, find their usages and filter them by
type.
Certain data types may contain nested elements. For example, a custom object type variable may contain
another custom object in its properties. The figure below shows the variable CustomerObject which contains
Company , another custom object. To view the properties of the nested element, select More .
The variable value viewer displays the properties of the child custom object. To go back to the parent custom
object, select the arrow.
NOTE
You can find more information about passing data between Power Automate cloud flows and desktop flows in Trigger a
Power Automate flow from another flow.
NOTE
The Variable type , Variable name , Data type , and External name fields are required to create an input
variable.
If you run a flow containing input variables through the console, the Flow inputs dialog will prompt you to set
their values manually. You can find more information about running flows in Run attended and unattended
desktop flows.
NOTE
The Variable type , Variable name , and External name fields are required to create an output variable.
Through this pane, you can rename, update, delete, and find the usages of each input/output variable.
To update an input/output variable:
1. Right-click on its name in the variables pane and select Edit .
2. In the Edit variable dialog, update the desired fields and select Update to apply the changes.
Sensitive variables
IMPORTANT
Flows developed in older versions of Power Automate for desktop (v.2.13 or older) remain unaffected from the sensitive
variables functionality, as long as they aren't edited. If users run existing flows from the console and the portal without
editing them, they will still have the old behavior and work in the same way as before. To migrate flows to the new
functionality, edit and save them at least once with Power Automate for desktop v.2.14 or above. This will convert past
encrypted type input variables, as well as encrypted type variables produced by the 'Get password from CyberArk' action,
to text type variables marked as sensitive.
There are scenarios where flows handle sensitive information that needs to be hidden while debugging and
running the flow. Power Automate for desktop allows users to create sensitive variables that aren't visible when
a flow runs from within the flow designer.
If you have logged in with an organization premium account, the values of sensitive variables aren't logged in
the desktop flow logs of the Power Automate portal when the flow runs from the console or a cloud flow.
Users can set any variable as sensitive, independently of its type, via the variables pane. Sensitivity is marked at
the variable level, so variable types that are structures of data, like lists, datarows, datatables or custom objects,
will be sensitive as a whole. There is no way to mark only a list item or a datatable column or a variable property
as sensitive in an otherwise non-sensitive variable.
Sensitive variables can be manipulated, referenced, processed, and used in every action without any limitation,
like every other variable. Additionally, they can be combined with other variables and included in expressions. In
this case, for the logs' purposes, such expressions would be considered sensitive as a whole.
In the flow designer, the sensitivity works as a mask that can be set on and off. Thus, users can unmask sensitive
variables to see their values or mask them again to hide their values.
NOTE
The value of a sensitive variable is visible when the variable is sent to an application outside Power Automate for
desktop or displayed through the Display message action.
Sensitivity isn't inheritable in variables. This means that if a sensitive variable or expression is added or assigned to
another variable, the latter won't be sensitive by default, unless explicitly marked otherwise by the user.
Marking a variable as sensitive hides its values from the summary of the Set variable action.
The input details of the Set variable action aren't visible in the desktop flow logs when the contained variables have
been marked as sensitive.
To set a variable as sensitive, right-click on it in the variables pane and select Mark as sensitive . To stop a
variable from being sensitive, right-click on it and select Mark as not sensitive .
Apart from the context menus, you can use the dedicated icon next to each variable to mark it as sensitive or not
sensitive.
Sensitive input and output variables
When creating or editing an input or output variable, select Mark as sensitive in the respective dialog to make
it sensitive.
The default value of an input variable is visible in the creating or editing dialog when sensitivity is enabled. This
functionality is implemented because this value exists only for testing and debugging purposes. Each input has
to be initialized in production runs from the portal or the console.
On the other hand, the default value isn't visible in the variables pane. Additionally, the default value of a
sensitive input variable is hidden in the Flow input dialog, which appears when a flow containing input
variables is run through the console.
The eye icon to reveal the value isn't available unless the user deletes the default value and provides a new one.
When you create variables in your flows, Power Automate converts them to a specific type based on their
content.
Some of these data types are widely used throughout the application, such as numbers , while others, such as
browser instances , require explicit actions or groups of actions.
Numeric value - This is the type applied to numbers. Only this data type can be used in mathematical
operations.
Τ o create a Numeric value variable, use the Set variable action and populate the input parameter with
a number without any notation.
Except for hardcoded numeric values, you can use mathematical expressions with variables within
percentage signs. You can find more information about the mathematical expressions in the Use variables
and the % notation article.
Boolean value - The value can be either True or False .
Τ o create a Boolean value variable, use the Set variable action and populate the input parameter with
the expressions %True% or %False% .
Additionally, you can create complex expressions using logical operators, variables and the percentage
notation. You can find more information about the logical expressions in the Use variables and the %
notation article.
A common practice is to use a For each action to iterate through the items of a list.
List data type properties
Datatable - A datatable contains data in a tabular form. Datatables are the equivalent of two-
dimensional arrays in programming terms.
A datatable contains rows and columns that describe the position of each item uniquely. Datatables can
be considered as lists that contain datarows as items.
Power Automate provides three actions to generate datatables: the Read from Excel worksheet action,
the Execute SQL statement action and the Extract data from web page action.
Alternatively, while Power Automate doesn't provide an action to form your own datatables, you can
create a datatable using the Set variable action and the programming array notation.
This notation consists of multiple single-dimension arrays separated by commas and enclosed in curly
brackets. The final expression must have the following form: %{['Product1', '10 USD'], ['Product2',
'20 USD']}% .
If you want to add column headers while creating a new datatable, use the ^['ColumnName1',
'ColumnName2'] expression for the first row.
To add a new row to an existing table, create an expression containing the variable name of the datatable,
a plus character (+ ), and the values you want to add in brackets.
If you want to access a specific column in a datable that contains column headers, use the
%ExcelData[rowNumber]['ColumnName'] notation.
If you loop through a datatable with a For Each action, the variable that will contain the current
iteration’s data is considered to be a datarow.
Datatable data type properties
Datarow - A datarow contains the values of a single row of a datatable. When you loop through a
datatable with a For Each action, the variable that contains the current iteration’s data is a datarow.
To retrieve a specific item of a datarow, use the following notation: %VariableName[ItemNumber]%
Alternatively, you can use the %VariableName['ColumnName']% notation. The name of each column
is defined by the datatable from which you retrieved the datarow.
Datarow data type properties
Custom object – Contains pairs of properties and values, which can be easily converted to JSON
format.
To create a new empty Custom object , use the Set variable action and populate the following
expression %{{ }}% . To create a new Custom object and initialize it with properties and values, use an
epxression of the following structure: %{ 'Proper ty1': 'Value1', 'Proper ty2': 'Value2', 'Proper ty3':
'Value2' }% .
To update the value of an existing property or add a new one, deploy a Set variable action, populate the
property's name in the Set field, and enter its value in the To field.
Apart from literal values, you can use variables to dynamically set the properties and values of custom
objects. For example, the following flow uses two variables to add a new property to a new empty custom
object.
Known issues and limitations
Issue : The values for datarow and datatable variables are not displayed properly in the variables pane.
Workarounds : None.
Instances
Web browser instance – Contains a browser instance created through the Launch new Internet
Explorer or other browser launching actions.
Web browser instance data type properties
Window instance – Contains a window instance created through the Get window action.
Window instance data type properties
Excel instance – Contains an Excel instance created through the Launch Excel action.
Excel instance data type properties
Outlook instance - Contains an Outlook instance created through the Launch Outlook action.
Connections
SQL connection - Contains a connection to an SQL database established through the Open SQL
connection action.
SQL connection data type properties
Exchange connection - Contains a connection to an Exchange server established through the Connect
to Exchange ser ver action.
Exchange connection data type properties
FTP connection - Contains an FTP connection created through the Open FTP connection and Open
secure FTP connection actions.
FTP connection data type properties
Others
Active Directory
Active Director y entr y - Contains a connection to an Active Directory server established through the
Connect to ser ver action.
Group info - Contains information about a specified Active Directory group.
Group member - Represents a member of a specified Active Directory group.
User info - Contains information about a specified Active Directory user.
Active Directory data type properties
AWS
EC2 client - Contains an EC2 session created through the Create EC2 session action.
EC2 instance - Represents a retrieved EC2 instance.
EC2 instances info - Contains information about an EC2 instance.
Instance state change - Contains information about an EC2 instance that was started or stopped.
EBS snapshot - Represents an EBS snapshot.
EBS volume - Represents an EBS volume.
AWS data type properties
Azure
Azure client - Contains an Azure session created through the Create session action.
Azure resource group - Represents a retrieved Azure resource group.
Azure managed disk - Represents a retrieved Azure disk.
Azure snapshot - Represents an Azure snapshot.
Azure vir tual machine - Represents a retrieved Azure virtual machine.
Azure vir tual machine info - Contains information about an Azure virtual machine.
Azure subscription - Represents a retrieved Azure subscription.
Azure data type properties
CMD
CMD session - Contains a CMD session created through the Open CMD session action.
CMD data type properties
Dates and time
Datetime - Contains date and time information. To create a datetime variable through the Set Variable
action , populate the input parameter with the expressions %d"yyyy-MM-dd HH:mm:ss.ff+zzz"% ,
where:
yyyy Year
MM Month
dd Day
HH Hour
mm Minutes
ss Seconds
N OTAT IO N DESC RIP T IO N
ff Milliseconds
Some of the built-in data types have properties that are associated with the value stored in the variable.
A property may contain a part of the information stored in the variable, like the day of a date, or an extra
attribute describing the variable, like the size of a list.
The value of these properties can be accessed directly through the following notation:
%VariableName.Proper tyName% .
For example, if you have a list of files called Files , you can get the number of the stored files using the
expression: %Files.Count%
The data types that have properties are displayed in the following lists.
Texts
P RO P ERT Y DESC RIP T IO N
Dates
P RO P ERT Y DESC RIP T IO N
DayOfYear The day of the year part of the datetime value (1-365/6).
Lists
P RO P ERT Y DESC RIP T IO N
Files
P RO P ERT Y DESC RIP T IO N
IsHidden This property is true if the file is hidden or false if the file is
visible.
P RO P ERT Y DESC RIP T IO N
IsReadOnly This property is true if the file is read only or false if it isn't.
Exists This property is true if the file exists or false if the file doesn't
exist.
isEmpty This property is true if the file is empty or false if the file isn't
empty.
Folders
P RO P ERT Y DESC RIP T IO N
Exists This property is true if the folder exists or false if the folder
doesn't exist.
Mail messages
P RO P ERT Y DESC RIP T IO N
Date The date and time in which the message was sent.
Body The body of the message. The body can be in plain text or in
HTML form.
Exchange connection
P RO P ERT Y DESC RIP T IO N
Date The date and time in which the message was sent.
Body The body of the message. The body can be in plain text or in
HTML form.
Date The date and time in which the message was sent.
Body The body of the message. The body can be in plain text or in
HTML form.
FTP files
P RO P ERT Y DESC RIP T IO N
Directory The directory where the file is stored on the FTP Server.
FTP folders
P RO P ERT Y DESC RIP T IO N
FTP connection
P RO P ERT Y DESC RIP T IO N
Datatables
P RO P ERT Y DESC RIP T IO N
Columns A list that contains the names of the columns of the data
table.
Datarows
P RO P ERT Y DESC RIP T IO N
Window instance
P RO P ERT Y DESC RIP T IO N
Excel instance
P RO P ERT Y DESC RIP T IO N
SQL connection
P RO P ERT Y DESC RIP T IO N
CMD session
P RO P ERT Y DESC RIP T IO N
Terminal session
P RO P ERT Y DESC RIP T IO N
P RO P ERT Y DESC RIP T IO N
XML node
P RO P ERT Y DESC RIP T IO N
Group info
P RO P ERT Y DESC RIP T IO N
User info
P RO P ERT Y DESC RIP T IO N
EBS snapshot
P RO P ERT Y DESC RIP T IO N
EBS volume
P RO P ERT Y DESC RIP T IO N
Azure snapshot
P RO P ERT Y DESC RIP T IO N
Variables are used within flows to store data for further processing. Every variable name must be enclosed by
percentage signs (% ). The percentage sign is used as a special character to denote variables. Any expression
between percentage signs should be evaluated.
Occasionally, the percentage sign should be used as a simple character, instead of denoting a calculation. In
those cases, it should be escaped using another percentage character (%%).
Power Automate enables you to create complex expressions containing hardcoded values, variable names,
arithmetic and logical operations, comparisons and parentheses.
Hardcoded values
To include a hardcoded text value inside a variable, use quotes. Every value between the quote characters will be
treated as a text value and not as a variable name.
Variable names
Variables can be used by adding their name to the expression without any further notation.
Basic arithmetic
To make mathematical operations, use all the essential, arithmetic operators, such as addition (+ ), subtraction
(- ), multiplication (* ), and division (/ ).
Arithmetic operations are predominantly used with numerical values and variables. However, you can also use
the addition operator to concatenate strings. Adding numbers and text strings in the same expression will
convert the numbers into text, and concatenate them with the other text strings.
EXP RESSIO N RESULT
%5 * 3% 15 (number)
Comparisons
Besides arithmetic operators, make comparisons using the following operators
=, != Equal/not equal
Keep in mind that comparisons, when evaluated, produce either True or False as a value. Naturally,
comparisons can only be done between values of the same type.
Logical operators
Logical operators can also be used to check multiple conditions simultaneously, allowing you to implement
more complex logic in a single expression. The supported operators are: AND and OR.
%Index = 4 AND Text = "Four"% True if the value of the Index variable is 4 AND the value of
the Text variable is Four, otherwise False
Parentheses
To change the operators' priority, use parentheses. Parentheses are handled the same way as in algebra and
programming languages.
Automate using UI elements
1/15/2022 • 2 minutes to read • Edit Online
Power Automate for desktop utilizes UI elements to interact with applications and web pages without resorting
to image recognition and absolute coordinates. UI elements are used as input in most UI automation and
browser automation actions and identify specific elements on windows and web pages.
UI elements
When deploying a UI automation or browser automation action, you may be required to provide a UI element as
input. To add a new UI element, you can do it directly from the action properties or through the UI elements
pane of the flow designer.
Each one of these action groups accepts a different category of UI elements. UI automation actions accept UI
elements captured from desktop applications, while browser automation actions accept UI elements captured
from web pages.
NOTE
UI automation actions can use only UI elements for desktop applications, while the browser automation actions can use
only UI elements for webpages. Therefore, incompatible UI elements aren't available for selection.
To add a new UI element to your flow, select to add a new UI element through an action or the UI elements pane,
highlight the respective element, and press Ctrl + Left click . When the selection is finished, select Done .
Any captured UI elements will be added to the UI elements pane. To access the UI elements pane, select the UI
elements tab on the right-hand side of the flow designer.
Elements can be sorted alphabetically through the Sor t option of the UI elements tab. To remove all the UI
elements that aren't used in any action, select the dots icon next to the Sor t option and then Remove unused
UI elements .
To rename or delete a UI element, right-click on the respective item and select the appropriate function.
To find where a specific UI element is being used in the flow, right-click on it and select Find usages . The results
will display all the actions that use this UI element. Double-click on a result to highlight the action on the
workspace.
UI elements types
UI automation and browser automation actions accept two different kinds of UI elements. UI automation actions
accept only UI elements captured from desktop applications, while browser automation actions accept only UI
elements captured from web pages.
To distinguish a UI element for a desktop application from a UI element for a web page, check its parent selector
element. UI elements for desktop applications usually have the desktop as their parent element, while the UI
elements for web pages have a webpage as their parent element.
UI elements for web pages
To capture a UI element from a webpage, you need to install the appropriate browser extension. You can find
more information about the supported browsers and the required extension in Use browsers and manage
extensions.
When the browser extension isn't able to communicate with Power Automate, the browser window is identified
as a desktop application. As a result, Power Automate tries to grab UI elements for a desktop application and not
a web page.
UI elements properties
To manage a UI element’s selectors, right-click on the element and select Edit selector . This option brings up
the Selector builder, where the selector can be edited with a visual editor.
To manually enter the selector’s value, toggle off Visual editor, and the text value of the selector will become
editable. You can find more information about selectors in Build a custom selector.
Automate using images
1/15/2022 • 2 minutes to read • Edit Online
To capture a new image in Power Automate, navigate to the Images tab on the right pane of the flow designer.
Select Capture image , and click and drag the cursor on the area you want to capture. A magnifying glass will
help you to capture the image with high precision.
Alternatively, select the arrow on the Capture image button to capture images on a timer. Then, choose one of
the suggested time options or Capture image with custom delay to set a custom delay time.
After capturing the image, populate a name for it in the dialog box and select OK to add it to the flow.
To rename or delete images and folders, right-click on the respective item and select the appropriate function.
Select the image thumbnail to open and view it.
To find where an image is being used in the flow, right-click on it and select Find usages . The results will
present the actions that use the specific image. Double-clicking on a result will highlight the action in the
workspace.
In the advanced settings of these actions, you can select which image matching algorithm you want to use. The
Basic algorithm achieves better results with images less than 200x200 pixels, while the Advanced algorithm is
more effective with bigger images and more robust to color changes.
The Tolerance field defines the acceptable ammount of differences between the provided image and the image
is compared with. High tolerance values may affect the precision of image recognition.
Manage errors
1/15/2022 • 2 minutes to read • Edit Online
While developing and executing flows, users may encounter two different kinds of errors, design time and run
time errors.
The design time errors are associated with the configuration of the deployed actions. This kind of error
appears while developing the flow and prevent it from running. An empty mandatory field or the use of an
undefined variable may cause this kind of error.
The run time errors or exceptions come up when the flow is running. These errors cause the flow to fail unless
an exception handling behavior has been set. An invalid file path can cause this kind of error.
When an action throws an error, the platform displays an error icon next to it and a pop-up pane with relevant
error information.
The Errors pane is split into three columns:
Subflow : The name of the subflow containing the action that threw the error.
Action : The line number of the action that threw the error.
Error : The error message.
If the occurred error is a design time error, the platform also displays a short description of the error inside the
action.
To implement an error handling behavior in your flow, you can use the Get last error action to retrieve the
latest occurred error and use it in later actions.
The Get last error action returns an error type variable that provides six different properties: the name, the
location and the index of the action that failed, the subflow that contains this action, and the details and the
message of the action.
To avoid retrieving the same error value later in your flow, enable the Clear error option that clears the last
error after storing it in the variable.
Power Automate for desktop enables you to design flows automatically by replicating the task you wish to
automate.
2. Select Record in the recorder window and start performing the desired actions in the appropriate
application or web page.
The recorder keeps track of mouse and keyboard activity in relation to UI elements, and records each
action separately. During each recording session, the recorder can generate both UI and browser
automation actions.
NOTE
When the browser extension isn't able to communicate with Power Automate, the browser window is identified as
a desktop application. As a result, the recorder tries to grab UI elements for a desktop application and not a web
page.
3. When the recording process is completed, select Finish to convert the recorded steps to Power Automate
for desktop actions. All the UI elements used in the generated UI and web automation actions are added
automatically to the UI elements pane.
NOTE
The UI elements captured from web applications using the recorder are custom and can't be edited through the
Visual editor. You can find more information regarding editing UI elements and creating custom selectors in Build a
custom selector.
To pause the recording process temporarily, select Pause . To add a comment to the recorded actions, select +
Comment .
Launch a web browser
To launch a web browser instance while recording web flows, you can use three different approaches based on
the automation scenario.
The first method is to select the dots icon on the right side of the recorder dialog and then Launch new web
browser . You can choose between Microsoft Edge, Google Chrome, Mozilla Firefox, and Microsoft Internet
Explorer.
After selecting the proper browser, the recorder will detect the loaded webpage automatically and configure the
launching browsing step accordingly.
An alternative way to launch a browser is to start recording in an already open web browser. The recorder will
automatically detect the loaded page and will create a launching browser action.
The last method to launch a browser is to manually launch it through its shortcut on the desktop, the start
menu, the taskbar, or a folder. If you implement this approach, the recorder will generate UI automation actions
that click the browser shortcut and launch it.
Add text using Input Method Editors (IMEs)
Input Method Editors (IMEs) are software components that enable users to input text in languages that can't be
represented easily on a standard QWERTY keyboard. Users can type combinations of keys, and IMEs will
generate a character or a list of candidate characters that match the set of keystrokes.
Power Automate for desktop supports the use of IMEs during the flow recording procedure. To populate a text
field using an IME:
1. Right-click on the text field and select Add text with IME on the displayed menu.
2. Populate the popup dialog with the desired text using an IME.
3. Select Add text to generate the respective step in the Recorder window.
Image-based recording
In some cases, the recorder may not record actions in specific applications that don't meet the appropriate
technical requirements. These applications may not expose their accessibility API, run on virtual desktop
environments, or have other technical limitations that block the recording process.
As an alternative way to record flows, Power Automate for desktop provides image-based recording. The image-
based recording uses image recognition and OCR to locate specific elements on the screen and extract text.
NOTE
The recorder switches automatically to image recording mode when a Citrix or Remote Desktop Protocol (RDP) window is
detected.
Upon clicking on an element, an image is captured automatically and saved with a default editable name.
To preview the captured image, hover or select the preview icon .
Extract text with image -based recording
To extract a text value while using image recording:
1. Perform a right-click on the screen and select Extract text from image .
2. Wait for a popup message that will prompt you to select a text area.
3. Select the text area from which text will be extracted using the Tesseract OCR engine.
4. Wait for a popup message that will prompt you to select an anchor area.
5. Select an anchor area that isn't expected to change, such as the label next to a field.
Recording vs building a desktop flow
You can edit manually any actions created through the recorder once the recording is finished. Use the recorder
in a desktop flow that is already under development to add the recorded steps to it.
NOTE
Use the recorder to create the backbone of your flow. Certain simple tasks may require no further editing, however most
recorded tasks should be modified to achieve optimal results. Certain types of actions, like conditionals and loops, cannot
be recorded. Also, there may be redundant actions in a recording that should be removed.
Loops are a fundamental concept in desktop flow development and prove to be invaluable elements in complex
flows. The main idea behind a loop is to make a desktop flow repeat one or more actions multiple times.
Power Automate provides three different kinds of loops that iterate based on various factors:
Simple loops - Iterate for a set number of times
Loops condition - Iterate as long as a condition is valid
For each loops - Iterate through a list
Simple loops
The idea behind a loop is to make a desktop flow repeat one or more actions multiple times. Power Automate
implements the simplest type of loops with the Loop action.
This loop repeats the actions between the Loop and End actions for a set number of times. A loop index
variable is created automatically to track the current iteration’s number.
Loop condition
Unlike simple loops, the Loop condition makes a desktop flow repeat one or more actions as long as a
condition is true.
If the condition is always true, the loop will never end. This situation is called an endless loop.
The condition consists of two operands and an operator. The platform supports the most significant logical
operations, such as equal , not equal , and greater than .
In case you need to exit the loop before the specified iterations are completed, use the Exit loop action. To skip
the current iteration, use the Next loop action.
You can use this kind of loop to search for specific names, contents, or attributes in all kinds of lists. For example,
you can iterate through a list of retrieved files to find a file with a specific name.
In case you need to exit the loop before the specified iterations are completed, use the Exit loop action. To skip
the current iteration, use the Next loop action.
You'll find the list of loop actions available in the Actions reference.
Use conditionals
1/15/2022 • 2 minutes to read • Edit Online
Conditionals allow you to execute blocks of actions only if a given condition is met. If the condition is false, the
block of actions will be skipped.
Using conditionals, you can ensure certain elements have a wished value or state before performing other
actions. For example, you can check if a file exists before trying to rename it.
If/else
The If statement is one of the most commonly used conditionals in flow development and programming.
Power Automate provides the If action to check whether a given condition is valid. If the condition is true, the
logic between the If and End is executed.
An If action consists of two operands and an operator. The platform supports the most significant logical
operations, such as equal , not equal , and greater than .
An If may optionally contain an Else action. The Else action defines the logic to be executed when the If
condition is invalid. It should be placed between the If and the End actions.
To set multiple conditions for which different logic is executed, deploy the Else if action. This action is executed
when the previous If and Else if conditions are invalid. It should be placed within the If/End block and always
before the Else action.
In all cases, the variables and values used as operands must be of the same data type. Comparing variables of
different data types makes the condition always false.
If variations
Apart from the standard If action, Power Automate provides some additional conditional actions:
If file exists : Checks if a file exists or not before executing a block of actions. This action can be used to
ensure that a file exists before performing other operations on it.
If folder exists : Checks if a folder exists or not before executing a block of actions.
If ser vice : Executes a block of actions if a specific service is running, is paused or is stopped.
If process : Executes a block of actions if a specific Windows process is running, or not.
If window : Executes a block of actions if a specific window is open, or not.
If window contains : Executes a block of actions if a specific text or UI element exists in a window, or not.
If image : Executes a block of actions if a specific image is found on the screen, or not.
If web page contains : Executes a block of actions if a web page contains a specific element or some
text, or not.
If text on screen (OCR) : Checks if a given text is found on the screen or not, using an OCR Engine of
your choice.
Switch-case model
Unlike if-else conditionals, a switch block can address several possible execution paths. A switch statement is a
control mechanism that allows a variable or expression to change the flow's behavior.
A switch block consists of three main parts:
1. The Switch action that marks the beginning of a switch block. Every Switch is accompanied by an End
action that marks the switch block's end.
2. Inside the switch block, each Case marks a block of actions to execute if the respective condition is true.
3. In case all conditions are invalid, the flow will execute the actions in the Default case block, if exists.
You'll find the list of conditional actions available in the Actions reference.
Automate web flows
1/15/2022 • 3 minutes to read • Edit Online
Power Automate offers several actions under the Browser automation group to enable users to interact with
web browsers.
Four web browsers are currently supported:
Microsoft Edge
Microsoft Internet Explorer
Google Chrome
Mozilla Firefox
Browser automation is achieved by launching or attaching to one of the supported browsers and then deploying
browser automation actions. Development may be performed manually or through the use of the recorder.
After the browser instance is stored in a variable, you can deploy other browser automation actions to interact
with the browser's content. The Web form filling actions focus on providing input to web pages, while Web
data extraction actions draw data from web pages.
Most browser automation actions require you to specify a browser instance and a UI element to interact with.
NOTE
You can find a list with all the available browser automation actions in the Browser automation actions reference.
Existing UI elements are displayed in the UI element pane, while new ones can be added directly through the
action's properties or the pane. To find more information about UI elements nad their different types, refer to
Automate using UI elements.
NOTE
Browser automation actions accept exclusively UI elements captured from web pages. Therefore, existing UI elements
captured from desktop applications aren't displayed in the browser automation actions.
To add a new UI element, highlight the appropriate web element and press Ctrl & left-click . After adding all
the required elements, select Done to save them to the UI elements pane.
NOTE
When the browser extension isn't able to communicate with Power Automate, the browser window is identified as a
desktop application. As a result, Power Automate tries to grab UI elements for a desktop application and not a web page.
Data population on the web
To provide input to a web page, select the appropriate Web form filling action depending on the nature of the
element, and specify the browser instance.
NOTE
You can find more information regarding details extraction from web pages in Retrieve details from a web page.
To extract large amounts of structured data, use the Extract data from web page action. After deploying the
action, right-click on the required data on the web page to view the available options.
Any lists or tables of data will be automatically identified after two of their elements are designated for
extraction.
NOTE
You can find a list with all the available HTTP actions in the HTTTP actions reference.
NOTE
Before using the Invoke web ser vice action, refer to the documentation page of the web service you want to use. The
example presented in the following screenshot can't be applied to all scenarios, as each web service requires a different
configuration and syntax.
Apart from the Invoke web ser vice action, Power Automate provides the Invoke SOAP web ser vice action
to interact with SOAP web services.
Use browsers and manage extensions
1/15/2022 • 3 minutes to read • Edit Online
To automate web-related tasks, Microsoft Power Automate provides the Automation browser that is
preconfigured and works out of the box.
Besides the Automation browser , the platform supports the four most popular browsers: Microsoft Edge ,
Internet Explorer , Google Chrome , and Mozilla Firefox . These browsers need additional configuration
or/and browser extensions to work.
IMPORTANT
To work with Microsoft edge, make sure you have a Chromium-based version installed. Older versions are not supported.
2. In the Internet options dialog box, navigate to the Security tab, select Internet zone, and disable the
Enable Protected Mode option. Repeat the same step for the Local intranet and Trusted sites zones.
3. Select Apply and OK to save the change and close the dialog box.
To ensure that Microsoft Edge works as expected with Power Automate, disable running background apps
when Edge is closed.
To disable this option, navigate to Settings -> System and select the slider next to Continue running
background apps when Microsoft Edge is closed .
Configuring Google Chrome
To use Google Chrome in Power Automate flows, you have to install the respective browser extension.
To install the extension:
1. Launch Flow Designer , navigate to Tools -> Browser extensions , and select Google Chrome .
To ensure that Google Chrome works as expected with Power Automate, disable running background apps
when Chrome is closed.
To disable this option, navigate to Settings -> Advanced -> System and select the slider next to Continue
running background apps when Google Chrome is closed .
Configuring Mozilla Firefox
To use Mozilla Firefox in Power Automate flows, you have to install the respective browser extension.
To install the extension:
1. Launch Flow Designer , navigate to Tools -> Browser extensions , and select Firefox .
2. In the launched browser dialog box, select Add to install the extension.
3. In the appeared dialog box, select Okay, Got it to confirm the installation.
Firefox alerts that freeze the browser and prevent users from switching to other tabs or windows may impact
flows' functionality.
To disable this feature:
1. Populate the URL bar with the phrase about:config .
2. Search for the prompts.tab_modal.enabled preference in the resulting list and change it to false .
Power Automate offers the UI automation actions to allow users to interact with Windows applications and
their components by either providing input or extracting data.
The actions of the Windows subcategory directly manipulate entire application windows, while Form filling
actions interact with more specific components, such as text fields and buttons.
Desktop automation can be performed by manually adding the required actions or using the recorder. You can
find a list with all the available UI automation actions in the UI automation actions reference.
Existing UI elements are displayed in the UI element pane, while new ones can be added directly through the
action's properties or the pane. You can find more information regarding UI elements and their different types in
Automate using UI elements.
NOTE
UI automation actions accept exclusively UI elements captured from Windows and desktop applications. Therefore, UI
elements captured from web applications aren't displayed in the UI automation actions.
To add a new UI element, highlight the appropriate element and press Ctrl & left-click . After adding all the
elements, select Done to save them.
To extract a piece of data from an application window, such as its title, location, or size, use the Get details of
window action.
On the other hand, to extract data from specific components within a window, use the Get details of a UI
element in window action.
Build a custom selector
1/15/2022 • 3 minutes to read • Edit Online
Power Automate enables users to interact with web and desktop applications through UI elements. Consider UI
elements as application components, such as buttons and text fields.
To specify a UI element, you have to create selectors that pinpoint the specific component you want to interact
with.
NOTE
Power Automate supports the creation of multiple selectors for a UI element. If a selector fails to access the element, the
following selector is used.
Although Power Automate enables users to create selectors automatically, some particular scenarios need
manually created selectors. A common scenario is the automation of applications that display dynamic content.
When a custom selector is needed, you can modify an existing selector or build one from scratch.
To edit an existing selector, select the appropriate UI element and choose the selector you want to edit.
To add more selectors for a UI element, select the appropriate UI element and then the New button.
In selectors, use the > notation to indicate the hierarchical structure of the selected elements. Each element in
the selector is contained within the element on its left and displayed in the following form:
element[Attribute1=”Attribute1Name”][Attribute2=”Attribute2Name”]...
[Attributen=”AttributenName”]
The attributes of an element describe it uniquely and distinguish it from other elements in the same application.
Enabling or disabling attributes can change the target application component of the selector.
NOTE
Web and desktop selectors have the same structure and functionality. The main differences between them are the
available attributes. Web selectors use HTML attributes, while desktop selectors use different kinds of attributes based on
the application design.
To specify an application component precisely, Power Automate utilizes multiple levels of selectors.
Selectors use a tree structure that describes the exact location of a component in the application or webpage.
Each level is the child of the upper-level and the parent of the lower-level selector. The selector in the lower level
describes the component you want to handle.
This functionality enables Power Automate to distinguish a component from components with similar attributes
in the same application. Disabling or enabling levels of selectors allows you to change the location in which
Power Automate will search for the component.
For example, the following selector pinpoints the File menu option in an untitled Notepad window. The first
level of the selector describes the menu bar of the window, while the second level describes the File option.
NOTE
The Notepad window and the menu option are different UI elements, but they have a parent-child relationship.
Assume that you want to edit the selector to work with a Notepad window named Notes . To achieve this
functionality, change the Name attribute of the selector to Notes - Notepad . The new selector should be:
:desktop > window[Name="Notes - Notepad"][Process="notepad"] .
Apart from the Equal to and Contains operators, Power Automate provides four more operators:
Not equal to : Checks if an attribute contains any value except a specific one.
Star ts with : Checks if an attribute contains a value that starts with a particular character, keyword, or phrase.
Ends with : Checks if an attribute contains a value that ends with a particular character, keyword, or phrase
Regular expression match : Checks if an attribute contains a value that matches a custom regular
expression. Power Automate's regular expression engine is .NET. You can find more information regarding
regular expressions in Regular Expression Language - Quick Reference.
Power Automate enables users to insert data into flows using message boxes. In some scenarios, you may want
to ensure that the entered data are numbers to make your flow robust to unexpected failures.
To check whether a variable contains a number or not:
1. Use the Set variable action to create a new variable that indicates whether the variable you want to
check contains a number or not. Initialize this variable to true . In the following example, the created
variable is named IsNumber .
2. Deploy the Conver t text to number action and configure it to convert the variable you want to check
to number.
3. Select the On error option in the action, and create a new rule that sets the IsNumber variable to false
every time the action fails. Additionally, configure the flow to continue running when an error occurs.
4. Now, you can use conditionals to implement different behavior depending on the value of the IsNumber
variable.
Delete a row/column from a datatable
1/15/2022 • 2 minutes to read • Edit Online
Although Power Automate doesn't provide a direct way to delete rows and columns from datatables, this
functionality is feasible with the following workaround:
1. Use the Launch Excel action to launch a new blank Excel worksheet.
2. Deploy the Write to Excel worksheet action and configure it to write the datatable to the previously
launched worksheet.
3. Use the Delete row from Excel worksheet or the Delete column from Excel worksheet action to
delete the wanted row or column of the datatable, respectively.
4. Deploy the Read from Excel worksheet action and read all the available values from the Excel
worksheet. The updated datatable is now stored in a variable named ExcelData .
5. Close the Excel worksheet without saving using the Close Excel action.
Add images to email messages
1/15/2022 • 2 minutes to read • Edit Online
Sending emails that contain images is common in many business procedures. Power Automate enables users to
include images in their emails by attaching them or embedding them to the email body.
NOTE
After copying the following code, replace the image-url placeholder with the URL of the image you want to embed or a
variable containing it.
<html>
<body>
<h1>Title</h1>
<p>This is a paragraph.</p>
<img src="image-url">
</body>
</html>
Use a shared Outlook mailbox in email automations
1/15/2022 • 2 minutes to read • Edit Online
Shared mailboxes allow groups of people to monitor and send emails from public email aliases. When a group
user replies to messages sent to a shared mailbox, the email appears to be from the shared address, not from
the individual user.
To retrieve emails from a shared mailbox, use the Retrieve email messages from Outlook action and
populate the name of the mailbox in the Account field.
To send emails through a shared mailbox, use the Send email message through Outlook action.
In the action's properties, select Other mailbox in the Send email message from drop-down menu, and
populate the name of the shared mailbox in the Send from field. Additionally, populate the Account field with
the address of your main account.
Automate email accounts with two-step verification
1/15/2022 • 2 minutes to read • Edit Online
To automate an email account protected with two-step verification, you need to create an app password.
App passwords are randomly generated passwords that can be used only once when you sign in to an
application or device that doesn't support two-step verification.
To create app passwords for Microsoft personal or organizational accounts, follow the instructions in Create new
app passwords. To create app passwords for other webmail services, search for information on their help page
or community site.
After creating an app password, populate it in the Password field of the IMAP ser ver or SMTP ser ver section
of the email actions.
Convert a CSV file into an Excel spreadsheet
1/15/2022 • 2 minutes to read • Edit Online
A comma-separated values file (CSV) is a delimited text file that uses a specific character to separate a series of
values.
Power Automate allows you to open comma-delimited and tab-delimited CSV files directly through the Launch
Excel action.
To convert a CSV file of this type to XLSX, open the file and then save it as a new Excel workbook using the Save
document as option in the Close Excel action.
Although the Launch Excel action can handle the previously mentioned cases, semicolon-delimited CSV files
may require a different approach.
NOTE
Excel uses the list separators defined in the Windows regional settings. In some regions, you have to manually set the
semicolon character as a separator or apply the following workaround.
To overcome this limitation, deploy the Read from CSV file action and set the semicolon character (;) as a
custom separator in the advanced options. If the first row of the CSV file contains headers, enable the First line
contains column names option to use the respective headers at the retrieved datatable.
Next, launch a blank Excel document using the Launch Excel action and paste the CSV table into cell A1 using
the Write to Excel worksheet action.
Now, you can deploy the Close Excel action to save the Excel worksheet as a new XLSX file.
Run macros on an Excel workbook
1/15/2022 • 2 minutes to read • Edit Online
The Run Excel macro action enables you to run macros in open Excel instances.
To create an Excel instance, deploy the Launch Excel action and select to open the Excel file containing the
needed macro.
IMPORTANT
To run macros stored in your personal macro workbook (PERSONAL.XLSB), enable the Load add-ins and macros
option located in the advanced options of the Launch Excel action.
To run the macro, deploy the Run Excel macro action and populate its name in the Macro field.
To find the name of a macro, open the respective workbook and navigate to Developer > Macros . The pop-up
dialog displays all the available macros in the workbook.
To find the name of a macro assigned to a button, open the workbook, right-click on the button, and select
Assign Macro . The pop-up dialog is the same as in the previous case.
Run SQL queries on Excel files
1/15/2022 • 4 minutes to read • Edit Online
Although Excel actions can handle most Excel automation scenarios, SQL queries can retrieve and manipulate
significant amounts of Excel data more efficiently.
Suppose a flow has to modify only the Excel registries that contain a particular value. To achieve this
functionality without SQL queries, you need loops, conditionals, and multiple Excel actions.
Oppositely, you can implement this functionality with SQL queries using only two actions, the Open SQL
connection action and the Execute SQL statements action.
Now, deploy the Open SQL connection action and populate the following connection string in its properties.
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%Excel_File_Path%;Extended Proper ties="Excel
12.0 Xml;HDR=YES";
NOTE
To use the presented connection string successfully, you have to download and install Microsoft Access Database Engine
2010 Redistributable.
Open an SQL connection to a password-protected Excel file
A different approach is required in scenarios where you run SQL queries on password-protected Excel files. The
Open SQL connection action can't connect to password-protected Excel files, so you have to remove the
protection.
To achieve that, launch the Excel file using the Launch Excel action. The file is password-protected, so populate
the appropriate password in the Password field.
Next, deploy the appropriate UI automation actions and navigate to File > Info > Protect Workbook >
Encr ypt with Password . You can find more information about UI automation and how to use the respective
actions in Automate desktop flows.
After selecting Encr ypt with Password , populate an empty string in the popup dialog using the Populate text
field in windows action. To populate an empty string, use the following expression: %""% .
To press the OK button in the dialog and apply the changes, deploy the Press button in window action.
Lastly, deploy the Close Excel action to save the non-protected workbook as a new Excel file.
After saving the file, follow the instructions in Open an SQL connection to Excel files to open a connection to it.
When the manipulation of the Excel file is completed, use the Delete file(s) action to delete the non-protected
copy of the Excel file.
NOTE
To apply this SQL query in your flows, replace the SHEET placeholder with the name of the spreadsheet you want to
access.
To retrieve the rows that contain a particular value in a specific column, use the following SQL query:
While developing your flow, you have to replace the SHEET placeholder with the name of the spreadsheet you
want to access.
The COLUMN1 and COLUMN2 placeholders represent the names of all the existed columns. In this example,
the columns are two, but in a real scenario, the number of the columns may be different. The columns in the first
row of the Excel worksheet are identified as the table's column names.
The [COLUMN1]='VALUE' part of the query defines the row you want to update. In your flow, use the column
name and the value based on which combination describes the rows uniquely.
Next, run the following SQL query to retrieve all the rows of the spreadsheet that don't contain null values:
SELECT * FROM [SHEET$] WHERE [COLUMN1] IS NOT NULL OR [COLUMN2] IS NOT NULL
NOTE
The COLUMN1 and COLUMN2 placeholders represent the names of all the existed columns. In this example, the columns
are two, but in a real table, the number of the columns may be different. All the columns in the first row of the Excel
worksheet are identified as the table's column names.
Autofit Excel columns using VBScript
1/15/2022 • 2 minutes to read • Edit Online
The autofit feature in Excel enables users to resize cells in worksheets to accommodate different-sized data
without manually changing the column width and row height.
To autofit Excel columns using Power Automate:
1. Use the Set variable action to create a new variable containing the path of the Excel file you want to
manipulate. In this example, the variable is named ExcelFile .
2. Deploy the Run VBScript action and populate the following code. Before running the flow, replace the
SheetName placeholder with the name of the sheet you want to autofit or a variable containing it.
If an Excel file contains hidden worksheets, replicate the following steps to make them visible:
1. Use the Set variable action to create a new variable containing the file path of the respective Excel file. In
this example, the variable is named ExcelFile .
2. Deploy the Run VBScript action and populate the following code.
2. Use a second Set variable action to create a variable containing the path of the PDF file you want to
create. In this example, the variable is named PdfFile .
3. Deploy the Run VBScript action and populate the following code.
Dim Excel
Dim ExcelDoc
When you capture images in Power Automate, the stored images are affected by the source machine's screen
resolution and DPI scaling.
In cases where flows perform image recognition on different screens or machines, you must ensure that all the
screens have the exact screen resolution.
To achieve this functionality, you can use the Set screen resolution action to change the screen resolution of
the target machines.
The new resolution has to be the same as the source machine from which the image was captured. To find the
resolution of the source machine, use a temporary Get screen resolution action or check the Windows
display settings.
IMPORTANT
To use the Set screen resolution action in flows triggered through the Power Automate portal, you have to be
connected to the console session of your machine, where you can manually change the screen resolution. For example,
you can use your machine's physical screen to connect to the machine. In remote sessions, such as unattended scenarios
that use remote desktop clients, the action has no effect, as users can't manually change the resolution.
NOTE
Before using image recognition, ensure that DPI scaling stays the same among the screens. The use of varying DPI
scalings may cause the flow to fail.
If you want to roll back to the original resolution later in the flow, add a Get screen resolution before the Set
screen resolution action.
When all the image recognition procedures are completed, use the retrieved values and a second Set screen
resolution action to set the screen back to the original resolution.
Perform OCR on multilingual documents
1/15/2022 • 2 minutes to read • Edit Online
Optical character recognition (OCR) enables you to locate and extract text from images or the screen.
Although most scenarios require you to handle text in a specific language, there are cases where the sources are
multilingual.
To perform OCR on these sources, use a Tesseract engine in the respective OCR action and enable the Use
other languages option in the engine settings.
When the Use other languages option is enabled, the action displays two additional settings: the Language
abbreviation and Language data path fields.
The Language abbreviation field indicates to the engine which language to look for during OCR. The
Language data path field contains the language data files (.traineddata ) used to train the OCR engine.
After downloading the data files for the needed languages, move them to a common folder to make them
available under the same path.
Next, select the created folder in the Language data path field, and populate the corresponding language
codes in the Language abbreviation field. To separate the language codes, use the plus character (+ ).
NOTE
You can find all the available language codes in the source of the language data files. In the following example, the used
codes represent Telugu, Hindi, and English.
Print images
1/15/2022 • 2 minutes to read • Edit Online
Although Power Automate enables you to print documents using the Print document action, printing image
files requires a different approach.
To print an image file, create a batch script that launches Microsoft Paint and prints the selected image file
through it. To develop the script, create a new .txt file, copy the following code, and save it as Image-
printing.bat .
NOTE
Before saving the script, replace the Image_Path placeholder with the file path of the image you want to print.
@echo off+
rem The following command launches Microsoft Paint and prints the selected file using the default printer.
mspaint /p "Image_Path"
To run the script, use the Run application action and populate the path of the batch file in the Application
path field.
Alternatively, you can print image files using the Run DOS command action with the following command as
an input:
NOTE
Before running the flow, replace the Image_Path and Printer_Name placeholders with the file path and the printer's
name, respectively.
It's common in flow development to create flows that use several windows with the same title and class.
Power Automate enables users to distinguish identical windows using handles. Handles are numbers that
uniquely identify each window.
To retrieve the handle of a window, launch the application with the Run application action and set the After
application launch drop-down menu to Wait for application to load . The handle is stored by default in a
variable named WindowHandle .
Alternatively, you can use the Get details of a UI element in window action to retrieve the handle from an
already open window.
Select to retrieve the attribute parentwindowhandle from a random element within the window. The retrieved
attribute is stored by default in a variable named AttributeValue .
NOTE
The Get details of a UI element in window action requires a UI element that specifies the selected element in the
window. You can find more information regarding UI elements in Automate using UI elements.
You can use handles to manipulate windows through the following Windows actions of the UI automation
group:
Focus window
Set window state
Set window visibility
Move window
Resize window
Close window
Close any window through its process ID
1/15/2022 • 2 minutes to read • Edit Online
When you handle desktop application, you may meet scenarios in which applications don't have static titles or
have the same title as other windows. Power Automate allows users to close these applications using their
process ID.
To get the process ID of a window, use the Get details of a UI element in window action and retrieve the
attribute processid from a random element within the window. The retrieved attribute is stored by default in a
variable named AttributeValue .
NOTE
The Get details of a UI element in window action requires a UI element that specifies the selected element in the
window. You can find more information regarding UI elements in Automate using UI elements.
To close the window, use the Terminate process action and set it to stop the process with the previously
retrieved ID.
Extract attributes from window elements
1/15/2022 • 2 minutes to read • Edit Online
The Get details of a UI element in window action enables users to retrieve the values of various attributes
that window elements may have.
These values can be used in various operations, such as managing windows by their handles and closing
windows through their process IDs.
Apart from the four predefined attributes that the action provides, you also retrieve the following attributes:
Accesskey The access key that allows you to quickly navigate to the
web server control.
AT T RIB UT E DESC RIP T IO N
Although Power Automate provides the Focus window action, depending on the nature of the selected
application, the action may not bring the window to focus.
To verify that the Focus window action can't bring a specific window to focus, send some keystrokes using the
Send keys action. If the window isn't focused, the keystrokes won't work as expected.
To ensure that the window will become focused, send a click on it after deploying the Focus window action.
Depending on the scenario, you can use either of the following actions to send a click on the window:
Click UI element in window
Move mouse to image - Enable the Send a click after moving mouse option
Send mouse click
Move mouse to text on screen (OCR) - Enable the Send a click after moving mouse option
NOTE
You can find more information regarding sending keystrokes in Automate applications using keyboard shortcuts.
Get the position and size of a window
1/15/2022 • 2 minutes to read • Edit Online
When you automate windows and desktop applications, you may need to know the exact position and size of a
window.
To retrieve this information, use the Get details of window action and set the Window proper ty option to
Get window location and size . The action stores the retrieved values in a text variable named
WindowProper ty .
NOTE
The Get details of window action requires a UI element that specifies the window from which it will retrieve the
selected attrubite. You can find more information regarding UI elements in Automate using UI elements.
After retrieving the WindowProper ty text value, you have to split it into separate values and convert them to
numbers.
To split the text value, deploy the Split text action and separate the values using the comma character (,) as a
delimiter. The separated values are stored in a list variable named TextList .
Before converting the texts to numbers, use the Create new list action to create a list that will store the
converted numbers in the following steps.
To access each item of the TextList independently, deploy a For each loop.
Inside the loop, use a Conver t text to number action to convert the current text item of the loop to number.
Next, use the Add item to list action to store the produced number to the previously created list.
To access the final position and size values later in your flow, use the following notations:
List[0] - The left point of the window
List[1] - The top point of the window
List[2] - The width of the window
List[3] - the height of the window
To calculate the right and bottom points of the window, you can use the following expressions:
%List[0] + List[2]% - The right point of the window
%List[1] + List[3]% - The bottom point of the window
NOTE
You can find more information about lists and the VariableName[ItemNumber] notation in Variable datatypes.
Automate applications using keyboard shortcuts
1/15/2022 • 2 minutes to read • Edit Online
Many desktop applications provide keyboard shortcuts that make multi-step tasks easy and fast to perform.
Power Automate allows you to apply these shortcuts to create shorter and less complicated flows.
IMPORTANT
Before sending keystrokes to an open application, use the Focus window action to activate the respective window. To
select a specific element in the window, use the appropriate UI automation action, such as the Click UI element in
windows action.
When the window is activated or the required element is selected, use the Send keys action to send the
intended keystrokes.
To send a key, enclose its name inside curly brackets ({} ). The curly brackets notation makes the action simulate
the key's physical press. To populate hardcoded text values in a field, enter the respective text without any
notations.
NOTE
To send a specific key multiple times, you can use the following expression instead of entering the key numerous times:
{Key:numberOfTimes} .
Apart from sending keys individually, you can use the Send keys action to send combinations of keys. To
achieve this functionality, enclose the modifier inside curly brackets and the rest of the keys inside a pair of
parentheses. The parentheses indicate that the keys inside them will be pressed simultaneously with the
modifier key.
For example, you can use the Ctrl + B shortcut to apply bold formatting in the currently selected Excel cell. To
use this shortcut, populate the Text to send field of the Send keys action with the following expression:
{Control}({B})
NOTE
You can find all the available Excel keyboard shortcuts in this article.
Automate with mouse, keyboard, and OCR actions
1/15/2022 • 2 minutes to read • Edit Online
In some cases, certain web pages and applications don't allow external software to interact with them. As a
result, you can't automate them using the browser and UI automation actions or the recorder.
Although you can use image-based recording to automate some of these applications, it may not be the best
option in some scenarios. For example, some applications change their interface dynamically, while the texts
remain the same.
To bypass this issue, you can use a combination of keys, images, mouse clicks, and OCR extraction.
Before building your automation, ensure that the appropriate window is focused and maximized using the
Focus window and Set window state actions.
If you need to wait for specific components to load before running an action, use the wait group of actions.
Use the Wait action to wait for a set amount of time, the Wait for image action to wait for an image to
appear/disappear, or the Wait for text on screen (OCR) action to wait for a text to appear/disappear.
To navigate through the web page or application and interact with its components, use the mouse and keyboard
actions.
For example, deploy the Send keys action to use the available keyboard shortcuts, or the Move mouse to
image and Move mouse to text on screen (OCR) actions to move the cursor to a specific image or text,
respectively.
To retrieve text from the screen and store it into a variable, deploy either the clipboard actions or the Extract
text with OCR action. To store a text in the clipboard, highlight the text using either the Send keys or the Send
mouse click action.
You can configure the Send keys action to send the CTRL + A keyboard shortcut that selects all the text on the
web page or application.
NOTE
You can find more information regarding automation using keyboard shortcuts in Automate applications using keyboard
shortcuts.
Alternatively, you can use the Send mouse click action to send a Left button down at the beginning of the
text you want to select and then a Left button up at the end.
After highlighting, deploy the Send keys action to send the CTRL + C keyboard shortcut that stores the
selected text in the clipboard. After storing the text in the clipboard, use the Get clipboard text action to store
the clipboard content into a variable.
Access elements that depend on how the window
appears on the screen
1/15/2022 • 2 minutes to read • Edit Online
There are cases where Power Automate can't detect UI elements if they aren't visible on the computer screen.
These elements may be located in areas not directly visible on the screen or may not appear on the window at
all. An element may be missing because the window's zoom level isn't suitable or the screen resolution is low.
To resolve this issue, you can:
Increase the resolution of the screen manually or using the Set screen resolution action.
IMPORTANT
To use the Set screen resolution action in flows triggered through the Power Automate portal, you have to be
connected to the console session of your machine, where you can manually change the screen resolution. For
example, you can use your machine's physical screen to connect to the machine. In remote sessions, such as
unattended scenarios that use remote desktop clients, the action has no effect, as users can't manually change the
resolution.
Maximize the window of the application using the Set window state action.
Zoom in or out of the window.
In some cases, you can create dynamic selectors that adapt to the state of the window or application. You can
find more information about dynamic selectors in Build a custom selector.
Automate Java applications
1/15/2022 • 2 minutes to read • Edit Online
PAD.Java.Installer.exe -u
Troubleshooting
If you come across any issues while automating Java applications:
1. Make sure that you have Java installed on your machine:
Open the Command Line tool (cmd) and run the following command:
java –version
If Java isn't installed on your machine, you'll receive an error message similar to: 'java' is not
recognized as an internal or external command, operable program or batch file.
2. The Java Access Bridge option from the Control Panel should be disabled:
Navigate to Control Panel -> Ease of Access -> Optimize visual display -> Java Access Bridge
from Oracle, Inc. Providing Assistive Technology access to Java applications and disable
(uncheck) the Enable Java Access Bridge option.
3. Specific files have to exist in the Java folder(s) of the machine after the Power Automate for desktop
installation.
To check the installed Java version and installation path on your machine:
a. Type Configure Java in the Search bar of Windows
b. Launch the Java Control Panel
c. Navigate to the Java tab and select View
d. Check the values in the Path column. The row with Architecture equal to x86 refers to a 32-bit
Java installation, while the row with value x86x64 refers to a 64-bit Java installation.
Additionally, you can check the following files:
For 64-bit Java installation:
File Microsoft.Flow.RPA.Desktop.UIAutomation.Java.Bridge.Native.dll should have been
replaced in the folder C:\Program Files\Java\jre1.8.0_271\bin . (jre1.8.0_271 could be
replaced with your machine’s Java installation)
File accessibility.proper ties should have been replaced in the folder C:\Program
Files\Java\jre1.8.0_271\lib . (jre1.8.0_271 could be replaced with your machine’s Java
installation)
If you edit the file with a notepad, it should have the following value:
assistive_technologies=com.sun.java.accessibility.AccessBridge,
microsoft.flows.rpa.desktop.uiautomation.JavaBridge
File PAD.JavaBridge.jar should have been inserted in the folder C:\Program
Files\Java\jre1.8.0_271\lib\ext . (jre1.8.0_271 could be replaced with your machine’s Java
installation)
For 32-bit Java installation:
Same actions for the same files as above but in the folder path C:\Program Files (x86) \Java\… .
4. Make sure that there isn't an .accessibility.proper ties file present in your user folder. Check if a file
named .accessibility.proper ties is present in the C:\Users\user folder. If yes, then rename it.
5. Ensure that VC_redist.x64.exe and/or VC_redist.x86.exe have been run.
Handle links that open new tabs
1/15/2022 • 2 minutes to read • Edit Online
Power Automate for desktop uses browser instances to pinpoint specific web pages located in specific tabs on
browser windows.
If a flow clicks a link that opens a new tab, you have to apply additional configuration to continue automating
inside this new tab.
The most straightforward approach is the use of the embedded automation browser that doesn't support tabs. It
opens all the links in the same instance.
NOTE
You can find more information about the features and limitations of the automation browser in Use browsers and manage
extensions.
To navigate back to the previous page, you can use the Go to web page action.
If your flow uses Edge, Internet Explorer, Chrome, or Firefox, there are also methods to handle links that open
new tabs.
You can retrieve the URL behind the link using the HRef option in the Attribute name field of the Get details
of element on web page action. Then, you can navigate to the retrieved link in the same tab using the Go to
web page action.
If the link is in JavaScript, you can retrieve the JavaScript function and run it as a URL in the Go to web page
action. In this case, you should enter JavaScript: and the function to run.
Another approach is to click the link and then use the Attach to running instance option of the previously
mentioned browsers to attach your flow to the newly created tab.
Retrieve details from a web page
1/15/2022 • 2 minutes to read • Edit Online
Extracting information regarding web pages is an essential function in most web flows. Power Automate for
desktop enables you to retrieve various details from web pages through the Get details of web page action.
To use the action, you need an already created browser instance that specifies the web page you want to extract
details from. A browser instance can be created with any browser-launching action.
After selecting the appropriate browser instance, choose the information you want to extract from the web page.
The Get details of web page action offers six different options:
The description of the web page
The meta keywords of the web page
The title of the web page
The text of the web page
The source code of the web page
The URL address of the web page
The retrieved information is stored for later use in a text variable named WebPageProper ty .
To determine whether the data extraction is successful, use an If conditional to check if the WebPageProper ty
variable is empty or not.
The conditional allows you to implement different functionality for the cases of successful and unsuccessful data
extraction. You can find more information regarding conditionals in Use conditionals.
The following example subflow retrieves the available meta keywords from a web page and displays them in a
message box. If the extraction is unsuccessful, the flow stops and returns an error message.
Get the coordinates and size of a web element
1/15/2022 • 2 minutes to read • Edit Online
When you automate web applications and web pages, you may need to know the exact location and size of a
specific element.
To retrieve this information, create a browser instance and deploy the Get details of element on web page
action. In the action's properties, set the Attribute name option to waelementrectangle . The action stores the
retrieved values in a text variable named AttributeValue .
NOTE
The Get details of element on web page action requires a UI element that specifies the web element from which it
will retrieve the selected attrubite. You can find more information regarding UI elements in Automate using UI elements.
After retrieving the AttributeValue text value, you have to split it into separate values and convert them to
numbers.
To split the text value, deploy the Split text action and separate the values using the comma character (,) as a
delimiter. The separated values are stored in a list variable named TextList .
Before converting the texts to numbers, use the Create new list action to create a list that will store the
converted numbers in the following steps.
To access each item of the TextList independently, deploy a For each loop.
Inside the loop, use a Conver t text to number action to convert the current text item of the loop to number.
Next, use the Add item to list action to store the produced number to the previously created list.
To access the final coordinates and size values later in your flow, use the following notations:
List[0] - The left point of the web element, relative to the top left corner of the HTML page
List[1] - The top point of the web element, relative to the top left corner of the HTML page
List[2] - The width of the web element
List[3] - the height of the web element
To calculate the right and bottom points of the window, you can use the following expressions:
%List[0] + List[2]% - The right point of the web element
%List[1] + List[3]% - The bottom point of the web element
NOTE
You can find more information about lists and the VariableName[ItemNumber] notation in Variable datatypes.
To find the coordinates of the top left corner of an HTML page, you can use the web browser's instance
properties DisplayRectangleX and DisplayRectangleY .
After storing a browser's instance into a variable named %Browser% , use the
%Browser.DisplayRectangleX% and %Browser.DisplayRectangleY% expressions to retrieve the X and Y
dimensions.
Additionally, you can retrieve the coordinates specifying the center of a web element using the
waelementcentercoords attribute in the Get details of element on web page action.
Send physical clicks on a web element
1/15/2022 • 2 minutes to read • Edit Online
You may meet automation cases that require right-clicks, double-clicks, or other kinds of physical clicks on web
elements.
To send physical clicks on a web element, you need to know its exact coordinates on the screen. The first step to
calculate the screen coordinates of the element is to retrieve its coordinates relative to the web page.
To get this information, follow the instructions in Get the coordinates and size of a web element. The instructions
present the waelementrectangle property, but you can replace it with the waelementcentercoords property
that specifies the center of a web element.
After completing this step, the flow must be similar to the following one:
NOTE
The Windows state of the browser must be set to Maximized . The flow requires additional steps to work with any
browser window size.
Now, you can use the Send mouse click action to send the wanted type of physical click on the web element.
In the action's properties, enable the Move mouse option, and set the X and Y values to %List[0] +
Browser.DisplayRectangleX% and %List[1] + Browser.DisplayRectangleY% , respectively.
The List[0] and List[1] variables contain the previously retrieved coordinates in a number format. The
DisplayRectangleX and DisplayRectangleY properties specify the top-left coordinates of the loaded HTML
page.
The addition of these two values calculates the exact screen position of the element in a maximized browser
window.
To make the flow work with any browser window size, you have to retrieve the top-left coordinates of the
browser window and add them to the X and Y coordinates. You can find more information about retrieving the
position of a window in Get the position and size of a window.
Alternatively, you can use the Focus windows action to focus on the browser window, and then select Active
window in the Relative to option of the Send mouse click action.
Click all the elements in a list of links
1/15/2022 • 2 minutes to read • Edit Online
In browser automation, it's common to meet scenarios that require you to click all the elements in a list of links.
To automate these scenarios, use the Extract data from web page action and extract a random value from
two consecutive links. Power Automate will automatically extract the respective value from all the links in the list.
NOTE
You can find more information regarding web data extraction in Automate web flows .
After the extraction, you can use the DataFromWebPage.RowsCount property to get the number of the
elements in the list.
To make the flow iterate through all the links on the page, use a Loop action. The loop should start from 0 and
end at %DataFromWebPage.Count-1% .
Inside the loop, use the Click link on web page action and select a UI element of the first link as an input.
To make the action click all the links, modify the selector to click a different link in each loop iteration.
To achieve this functionality, edit the selector with the Custom selector builder . In this step, the right part of
the selector should look something like the following example: ul[proper ties] > li[proper ties]:eq(0) >
a[proper ties]
To make it select a different link in each iteration, change the tr :eq(0) part to tr :eq(%LoopIndex%) .
NOTE
You can find more information regarding custom selectors in Build a custom selector.
Lastly, use the Go to web page action to go back to the original page after each click. You can perform
additional operations on each loaded page between the Click link on web page and Go to web page
actions.
Automate browser prompts
1/15/2022 • 2 minutes to read • Edit Online
Many web pages display Save as , Open , and Upload dialogs to prompt users to select destination folders and
files, respectively.
These dialogs aren't part of the web page, but they're handled by the web browser application or Windows File
Explorer. As a result, you can't use the browser automation actions to automate them.
To automate these dialogs, use either the recorder or the UI automation group of actions.
Scroll on a web page
1/15/2022 • 2 minutes to read • Edit Online
In some browser automation flows, you may need to scroll on web pages to make specific elements visible on
the screen.
Power Automate allows scrolling on web pages through two different approaches. The first one requires the
Focus text field on web page action, while the second requires JavaScript scripting.
Scroll on a web page using the Focus text field on web page action
To scroll to a specific element on a web page, you can deploy the Focus text field on web page action.
In the action's properties, you have to create a UI element that selects the target element of the scrolling.
Although the action's primary purpose is to focus on text fields, you can use it for scrolling to any element.
NOTE
You can find more information about UI elements in Automate using UI elements.
Usually, web applications contain loading more elements at the bottom of pages that display many elements.
In these cases, you can target the loading more element to scroll at the bottom of the page.
function ExecuteScript()
{
window.scrollTo(xpos, ypos);
}
You can replace both placeholders with hardcoded values, properties, or variables. In the following example, the
function contains hardcoded values.
If you want to scroll to the bottom of a web page, you can replace the ypos placeholder with the
document.body.scrollHeight property.
function ExecuteScript()
{
window.scrollTo(0, document.body.scrollHeight);
}
If you want to scroll inside an element of a web page, not the page itself, you can use the HTML DOM property
scrollTop . In the following example, the function locates the divElem and scrolls vertically 10 pixels down.
function ExecuteScript()
{
document.getElementById('divElem').scrollTop -= 10;
}
Handle iframes on a web page
1/15/2022 • 2 minutes to read • Edit Online
Iframes are HTML documents embedded inside other HTML documents. These elements are often used to insert
content from external sources into web pages.
When an iframe belongs to the same domain as the original page, you can use the browser automation actions
to automate it. You can find more information about browser automation in Automate web flows.
If the browser automation actions don't work correctly with a particular iframe, you can use the UI automation
actions to handle it. You can find more information about UI automation in Automate desktop flows.
If an iframe is cross-domain, deploy the Get details of element on web page to retrieve the Source Link
attribute of the element.
Next, use the Go to web page action or the Create new tab action to navigate to the retrieved source. Now,
you can use the browser automation actions to interact with the iframe.
Populate text fields and click on links using
JavaScript
1/15/2022 • 2 minutes to read • Edit Online
Some web applications may have design constraints that don't allow browser automation actions to populate
text fields or click on links and buttons.
An alternative approach to automate these web applications is the use of the Run JavaScript function on
web page action, which allows you to run JavaScript code on web pages.
Before deploying the Run JavaScript function on web page action, you need the CSS selector of the
element you want to populate or click. To get the selector, navigate to the UI elements tab and select Add UI
element .
After creating the UI element, navigate again to the UI elements tab, select the created UI element, and open
the selector with the Selector builder .
Now, copy the last element of the selector located on the right side of the last occurred > character.
NOTE
You can find more information about selectors in Build a custom selector.
To populate a text field, deploy the Run JavaScript function on web page action and populate the following
code in the JavaScript function field. After pasting the code, replace the CSS-selector and value-to-
populate placeholders with the previously copied selector and the value to populate, respectively.
function ExecuteScript()
{
document.querySelectorAll('CSS-selector')[0].value="value-to-populate";
}
OR
function ExecuteScript()
{
document.querySelectorAll('CSS-selector')[0].innerText="value-to-populate";
}
function ExecuteScript()
{
document.querySelectorAll('CSS-Selector')[0].click();
}
Convert a file to Base64 string format
1/15/2022 • 2 minutes to read • Edit Online
In some web services, you can upload files via the POST method only if the files are in Base64 string format.
To convert a file to this format, use the Run PowerShell script action and populate the following command.
Before deploying the Run PowerShell script action, use a Set variable action to store the path of the file you
want to convert into a variable. In this example, the script converts a file specified by the FilePath variable.
NOTE
You can find more information regarding PowerShell utility cmdlets in this article.
The action produces the PowershellOutput variable that stores a text value representing the contents of the
specified file in Base64 format.
Convert Base64 text to hexadecimal format
1/15/2022 • 2 minutes to read • Edit Online
Although cryptography actions produce variables encoded in Base64 format, some cryptography engines use
the hexadecimal representation of the encrypted value.
To convert the Base64 text to hexadecimal format, use the Run PowerShell script action and populate the
following command. Before deploying the Run PowerShell script action, use a Set variable action to store
the text you want to convert into a variable. In this example, the script converts the text stored into the
Base64Text variable.
[System.Convert]::FromBase64String("%Base64Text%") | Format-Hex
NOTE
You can find more information regarding PowerShell utility cmdlets in this article.
The action produces the PowershellOutput variable that stores the encrypted or hashed value in hexadecimal
format.
Run SQL queries to Microsoft Access
1/15/2022 • 2 minutes to read • Edit Online
Apart from database servers, Power Automate supports the automation of Microsoft Access databases.
To establish a connection with a Microsoft Access database, use the Open SQL connection action, and open
the connection string builder.
In the Provider tab of the appeared dialog, select Microsoft Office 12.0 Access Database Engine OLE DB
Provider .
NOTE
If the presented provider is missing from the available options, you have to download and install Microsoft Access
Database Engine 2010 Redistributable.
Next, populate the path of the Microsoft Access database in the Data Source field of the Connection tab.
To run queries on the connected database, use the Execute SQL statement action. Power Automate supports
all the essential queries, such as SELECT , INSERT INTO , and UPDATE .
When all the queries have been executed, deploy the Close SQL connection to close the connection with the
database.
Troubleshoot SQL queries
1/15/2022 • 2 minutes to read • Edit Online
While developing desktop flows, you may encounter errors caused by deployed database actions that run
queries on databases. If you can't identify the source of the issue through the displayed error messages, perform
the following troubleshooting steps:
1. Replace any single quote (' ) characters with double quotes (" ) or the other way around.
For example, the following query produces an error because of the single quote at the end of the
variable’s value.
To resolve this issue, replace the single quotes in the SQL statement with double-quotes.
NOTE
You can find more information about the percentage signs in Use variables and the % notation.
3. Ensure that the same versions (32 bit or 64 bit) of database, database server, and Power Automate for
desktop are installed on your desktop.
4. Verify that the firewall or any other network security system isn't blocking the connection between Power
Automate and the database.
5. If you're using database actions to run queries on Excel files, ensure that you've applied the following
practices:
The name of the Excel worksheet is used as a database name. Enclose the worksheet name in brackets
([] ) and add a dollar sign ($ ) at the end, for example [Sheet1$] .
The database columns are the headers of the Excel data table.
NOTE
You can find more information regarding running SQL queries on Excel in Run SQL queries on Excel files.
Use logical operations on conditional statements
1/15/2022 • 2 minutes to read • Edit Online
Data validation is a typical requirement in most business tasks and allows the implementation of different
behavior based on the available data.
Power Automate provides various conditionals that run blocks of actions only if a given condition is met. If the
condition is false, the actions are skipped.
NOTE
You can find more information regarding conditionals in Use conditionals.
While validating data, you may encounter cases where you need to check multiple variables in the same part of
the flow. For example, you may want to run a set of actions only if two variables have specific values.
To implement this functionality, you can use either multiple nested If actions or a single If action containing a
complex logical expression.
To create a nested if statement, deploy an If action within the block of another If action. All the actions inside the
nested block will run only when both if statements are valid.
Although the implementation of nested if statements is convenient in some cases, it can lead to complicated
flows when many checks are needed.
A more efficient way to achieve the same results is the use of logical expressions. In the following example, a
single If action offers the same result as the previously nested If actions.
The expression in the First operand field uses the AND operator to check whether the variables A and B
contain the values 10 and 5 , respectively.
In general, logical operators can check multiple conditions simultaneously, allowing you to implement more
complex logic in a single expression. The AND operator returns TRUE when both parts of the expression are
valid. To check if either of the two parts (or both) are valid, use the OR operator.
The Second operand field is populated with the value TRUE , while the selected Operator is Equals to . This
configuration makes the action check if the expression in the First operand field is valid. If it's valid, the actions
inside the if block will run. To check if an expression is invalid, populate the value FALSE in the Second
operand field.
NOTE
The logical expression must be enclosed by percentage signs (%). The percentage sign is used as a special character to
denote variables and expressions. You can find more information regarding percentage notation in Use variables and the
% notation.
To handle more demanding validation scenarios, use multiple logical operators and parentheses. Parentheses
allow you to change the order of operations and work the same way as in algebra and programming languages.
In the following example, the flow displays a dialog that prompts users to select one or more files from their
desktop. The If action checks whether the user has pressed Cancel in the dialog or selected more than 100 files.
The first part of the expression on the left of the OR operator returns True when the user presses Cancel in the
dialog. In this case, there are no selected files to process, so the flow has to stop.
The second part of the expression returns True when the user selects Open , but the selected files are more than
100. This condition ensures that the user can't select too many files and prevents the flow from running too
long.
If one of these conditions (or both) is valid, the flow will stop and display a dialog informing the user about the
implemented limitations.
Share/export a desktop flow
1/15/2022 • 2 minutes to read • Edit Online
To replicate a desktop flow regardless of your account, edit it through the flow designer, and copy the actions
within a subflow.
The copied text can be sent directly to others users or saved to a text file for easier sharing. The receiver can
paste the text to a flow designer and run it.
NOTE
When copying actions, all their parameters, images, and UI elements are copied as well. Only one subflow can be copied
at a time. If there are more than one subflows, repeat the procedure for each one individually or save the actions into
separate text files.
If you've signed in with an organization premium account, you can also choose one of the following methods:
1. Share the desktop flow directly through the Power Automate portal.
To share a desktop flow with other users in your organization, give them specific permissions to access
the flow. You can find more information regarding sharing flows through Power Automate portal in Share
desktop flows.
2. Export a solution that contains the desktop flow.
To move a desktop flow from one environment to another, host it in a solution. For more information
about importing flows into solutions and building solution-aware flows, see Overview of solution-aware
flows.
Run SQL queries to Microsoft Access
1/15/2022 • 2 minutes to read • Edit Online
Apart from database servers, Power Automate supports the automation of Microsoft Access databases.
To establish a connection with a Microsoft Access database, use the Open SQL connection action, and open
the connection string builder.
In the Provider tab of the appeared dialog, select Microsoft Office 12.0 Access Database Engine OLE DB
Provider .
NOTE
If the presented provider is missing from the available options, you have to download and install Microsoft Access
Database Engine 2010 Redistributable.
Next, populate the path of the Microsoft Access database in the Data Source field of the Connection tab.
To run queries on the connected database, use the Execute SQL statement action. Power Automate supports
all the essential queries, such as SELECT , INSERT INTO , and UPDATE .
When all the queries have been executed, deploy the Close SQL connection to close the connection with the
database.
Run desktop flow from other desktop flows
1/15/2022 • 2 minutes to read • Edit Online
Power Automate provides the Run desktop flow action to enable users to call desktop flows while running
other desktop flows.
Using this feature, you can split complicated flows into smaller ones and call them when needed. For example,
you can create separate flows to handle specific error scenarios in the main flow.
To use the action, add it to the workspace and select the desktop flow you want to call.
Every time the action runs, the parent flow is paused until the called desktop flow completes. If the called flow
contains input variables, you'll be prompt to populate them. Likewise, if the called flow has output variables, the
action will return their values in the parent flow.
NOTE
You can find more information regarding input and output variables in Input and output variables.
Power Automate doesn't allow two flows to directly or indirectly call each other to prevent recursions.
Additionally, a flow can't have more than 30 dependent flows. If a dependent flow is missing or the parent flow
has more than 30 dependencies, the flow won't run.
Set screen resolution on unattended mode
1/15/2022 • 2 minutes to read • Edit Online
In some scenarios, Power Automate may run unattended flows in a lower resolution than the one used to
develop the flows. As a result, some UI elements could be hidden from the screen and cause flows to fail.
To change the resolution in which unattended flows are run:
1. Navigate to C:\Program Files (x86)\Power Automate Desktop and open the
UIFlowSer vice.exe.config file.
2. Set the value of the Microsoft.Flow.RPA.UIFlowSer vice.ScreenDefaultResolutionEnabled key to
true .
3. Change the values of the following keys to the proper screen resolution width, height, and scale,
respectively. The following code sets the default resolution to 1920 x 1080 pixels.
Although you can use optical character recognition (OCR) to extract text from Word documents, this approach
can become complicated for multi-page documents that require scrolling.
A more efficient way to extract text from Word documents is the use of VBScript. Power Automate provides the
Run VBScript action that enables you to run scripts on your desktop.
To extract text from a Word document, deploy the Run VBScript action and paste the following code in the
VBScript to run field.
Dim Word
Dim WordDoc
Dim var
Set Word = CreateObject("Word.Application")
The Run VBScript action stores the extracted text by default in a variable named VBScriptOutput . You can use
this variable as an input in the available Text actions to manipulate the retrieved text.
Pass a datatable from a cloud flow to a desktop
flow
1/15/2022 • 2 minutes to read • Edit Online
Some automation scenarios require users to pass data in tabular form from a cloud flow to a desktop flow. To
implement this functionality, replicate the following flow:
1. Before deploying any actions, create a new input variable. In this example, the input variable is named
DataInput .
This variable will be used in your cloud flow to pass data to Power Automate for desktop. The data must
be in JSON format for this flow to run successfully. In the following example, you can see the structure of
a JSON block.
[
{
"Name": "Tania",
"Last Name": "Agius",
"Email": "[email protected]",
},
{
"Name": "Ditiro",
"Last Name": "Kgosi",
"Email": "[email protected]",
},
{
"Name": "Zoltan",
"Last Name": "Gal",
"Email": "[email protected]",
}
]
To find more information regarding passing data from cloud flows to desktop flows, refer to Trigger a
Power Automate desktop flow from another flow.
2. Convert the imported JSON data to a custom object using the respective action. You can find more
information regarding custom objects in Advanced data types.
3. Deploy a Set variable action and create a new variable named TableContent . In this step, the variable
must contain the headers of the table you want to pass separated by semicolons.
4. Use a For each loop to iterate through each item of the previously created custom object.
5. Use a Set variable action and append the appropriate values of the current item to the TableContent
variable. The values must be separated by semicolons.
6. Outside the loop, deploy the Get special folder action to retrieve the path for your desktop folder.
7. Write the content of the TableContent variable to a file named table.txt located in your desktop folder. If
the file doesn't exist, the action will create it automatically.
8. Use the Rename file(s) action to change the file extension of the previously mentioned file to .csv .
9. Lastly, read the content of the converted CSV file using the Read from CSV file action. The read data
will have the form of a datatable.
10. Optionally, use the Delete file(s) action to delete the table.csv file from your desktop.
Actions reference
1/15/2022 • 2 minutes to read • Edit Online
In this section, you can find a reference to all actions of the Power Automate.
Click on any of the action groups and the list of actions will appear along with their parameters to assist you
configure them.
Truncate number
Clear list
Sort list
Shuffle list
Merge lists
Reverse list
Subtract lists
Increase variable
Decrease variable
Set variable
Most actions output their result into a variable. For example, create a blank list-type variable with the Create
new list action. The Generate random number action outputs the random number to a variable. Select
Generate multiple numbers to create a list-type variable with multiple random numbers.
Add items to the list with Add item to list . Enter the value to add, or use a variable to add its value to the list.
Similarly, remove items items from the list with Remove item from list . Enter the index of the item to remove.
NOTE
The index of the list starts from 0, meaning that the first item in the list will have an index of 0. Use the notation
%ListName[0]% to refer to the first item in the list, %ListName[1]% to the second, and so on.
Variable actions
Truncate number
Get the integral or fractional digits of a numeric value, or round up the value to a specified number of decimal
places
In p u t P ar am et er s
Operation N/A Get integer part, Get Get integer part Specifies the
decimal part, Round operation to perform
number on the given number
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to generate random number Indicates that there is an error generating a random number
Clear list
Remove all items from a list
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Remove all item N/A Boolean value False Removes all the
occurrences occurrences that
match the item
specified
Va r i a b l e s P r o d u c e d
Item index is out of range Indicates that item index is out of range
Item not found Indicates that item doesn't exist in the list
Sort list
Sort the items of a list. Use items of the same type
In p u t P ar am et er s
Sort by list item's N/A Boolean value False If the list items are
properties objects (such are files,
folders, etc), enable
this option to sort
the item by a specific
property. Leave this
option disabled to
sort the elements by
their default property
(e.g., file objects will
be sorted by their full
path)
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
OutputList List of General values The merged list. The initial lists aren't
affected
Ex c e p t i o n s
The lists supplied are of incompatible types Indicates that the lists supplied are of incompatible types
Reverse list
Reverse the order of the items of a list
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ignore text case while N/A Boolean value False Specifies whether to
searching for perform case
duplicate items insensitive
comparison of text
while searching for
duplicate items (only
applies to lists made
of text items)
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
ColumnAsList List of General values The new list that holds the contents of
the specified data table
Ex c e p t i o n s
Column name doesn't exist Indicates that the column name isn't in the data table
Column index is out of range Indicates that the column index is out of range
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Error parsing the JSON Indicates that there is an error parsing the specified JSON
Va r i a b l e s P r o d u c e d
A RGUM EN T TYPE DESC RIP T IO N
Ex c e p t i o n s
Error parsing the custom object Indicates that there is an error parsing the custom object
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Case
Default case
Else
Else if
If
Switch
Conditionals actions
Case
An expression that, if met, a block of actions associated with that particular case runs
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Exit loop
For each
Loop
Loop condition
Next loop
Loops actions
Exit loop
Terminates the loop and the flow resumes at the next action or statement following the loop
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
A RGUM EN T TYPE DESC RIP T IO N
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
Comment
End
Exit subflow
Go to
Label
On block error
Run subflow
Stop flow
Wait
The Run subflow action interrupts the subflow in which it is placed and runs another subflow. When the
second subflow completes, the flow reverts to the original subflow to continue running. In the figure below, the
subflow Calculate Discount has been created to run multiple times throughout the runtime of the flow, to
avoid repeating the same code.
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
NOTE
You can find more information regarding the Run desktop flow action in Run desktop flow from other desktop flows.
Va r i a b l e s P r o d u c e d
Run desktop flow failed Indicates a problem while running the desktop flow
NOTE
A flow's dependencies can't be more than 30 other flows.
Two flows can't directly or indirectly call one-another as this causes a recursion.
In org tenants, the flows must be under the same environment.
System
1/15/2022 • 6 minutes to read • Edit Online
NOTE
The System group of actions has been segregated into some new categories. You can find details on the Workstation
actions and Scripting actions in their respective pages.
Perform a variety of tasks in a Windows environment and retrieve information from the system
If process
Run application
Terminate process
Ping
If you want to handle Windows environment variables, use the Set Windows environment variable , Get
Windows environment variable , and Delete Windows environment variable actions for the respective
tasks.
System actions
If process
Marks the beginning of a conditional block of actions depending on whether a process is running or not
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Can't retrieve list of processes Indicates a problem retrieving the list of processes
Wait for process to N/A Start, Stop Start Whether to wait until
a certain process
starts or stops
Va r i a b l e s P r o d u c e d
Can't retrieve list of processes Indicates a problem retrieving the list of processes
Run application
Executes an application or opens a document by executing the associated application
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
File or application not found Indicates that the specified file or application was not found
Access denied for application or File Indicates that access was denied for the specified application
or file
Can't retrieve application's main window handle Indicates a problem retrieving the application's main window
handle
Can't execute application or open file Indicates a problem executing the specified application or
opening the specified file
IMPORTANT
The Application path field has to point to the executable of the application. Certain default windows applications can be
opened by entering notepad or calc for calculator.
Any command line arguments have to be entered in double quotes and separated by a space. For example, to open
Microsoft Word in quiet mode with the file InvoiceTemplate.docx from the user's desktop, format the field like so: "/q"
"C:\Users\username\Desktop\InvoiceTemplate.docx"
Ex a m p l e
Terminate process
Immediately stops a running process
In p u t P ar am et er s
Specify process by N/A Process ID, Process Process name Specify whether the
name process to terminate
will be specified by its
name, or by its ID
Va r i a b l e s P r o d u c e d
Process with specified ID not running Indicates that a process with the specified ID isn't running
Ping
Sends a message to determine whether a remote computer is accessible over the network
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Can't complete ping action Indicates a problem completing the ping action
Va r i a b l e s P r o d u c e d
Indicates a problem setting the environment variable's value Indicates a problem setting the environment variable's value
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Environment variable doesn't exist Indicates that the specified environment variable doesn't
exist
Va r i a b l e s P r o d u c e d
Print document
Shutdown computer
Show desktop
Lock workstation
Play sound
Take screenshot
To change the default printer of the workstation, use the Set default printer action. To check which is the
current default printer, use the Get default printer action.
If you want to sign out of your Windows account, use the Log off user action. Additionally, you can use the
Shutdown computer and Lock workstation actions to shut down or lock your workstation, respectively.
To change the resolution of any of your screens, use the Set screen resolution . The action requires you to
populate the ID number of the screen, the width and height, the bit count, and the frequency. You can click the
Available screen resolutions button to see all the available resolutions for each screen. Also, you can retrieve
the current values of the mentioned attributes with the Get screen resolution action.
Workstation actions
Print document
Prints a document on the default printer
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Document not found Indicates that the specified document was not found
Access denied for document Indicates that access was denied for the provided document
Ex c e p t i o n s
Can't get default printer Indicates a problem getting the default printer
Va r i a b l e s P r o d u c e d
Can't set default printer Indicates a problem setting the default printer
NOTE
When you run the Log off user action through the flow designer, the action prompts you to verify that you want to log
off the current user. However, the action doesn't require confirmation when the flow is run through the console or the
portal. In all cases, the action will terminate the flow.
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Can't log off user in non interactive mode Indicates a problem logging off the user in non-interactive
mode
Can't log off the current user Indicates a problem logging off the current user
Shutdown computer
Instructs the computer to shut down
IMPORTANT
Although a flow containing the Shutdown computer action is set to shut down the machine, some unrelated factors,
such as other running Windows processes, may prevent it from achieving it.
NOTE
When you run the Shutdown computer action through the flow designer, the action prompts you to verify that you
want to shut down the computer. However, the action doesn't require confirmation when the flow is run through the
console or the portal. In all cases, the action will terminate the flow.
In p u t P ar am et er s
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Can't shut down the computer Indicates a problem shutting down the computer
Show desktop
Shows the desktop
In p u t P ar am et er s
Operation N/A Minimize all windows Minimize all windows Specify whether to
(show desktop), (show desktop) minimize all windows
Restore all windows to reveal the desktop
(undo show desktop) or restore all
windows to their
original respective
states
Va r i a b l e s P r o d u c e d
Can't lock the computer in non interactive mode Indicates a problem locking the computer in non interactive
mode
EXC EP T IO N DESC RIP T IO N
Can't lock the computer Indicates a problem locking the computer in non-interactive
mode
Play sound
Plays a system sound or a wav file
In p u t P ar am et er s
Play sound from N/A System, WAV file System The type of sound to
play
Va r i a b l e s P r o d u c e d
Can't find sound file Indicates that the sound file could not be found
Capture N/A All screens, Primary All screens The area to capture
screen, Select screen,
Foreground window
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Image format N/A BMP, EMF, EXIF, GIF, BMP The format for the
JPG, PNG, TIFF, WMF image file to save
Va r i a b l e s P r o d u c e d
Failed to save screenshot to file Indicates a problem saving the screenshot to a file
Failed to set screenshot to clipboard Indicates a problem setting the screenshot to the clipboard
Failed to get specified screen Indicates a problem getting the specified screen
Screen saver action N/A Enable, Disable, Start, Enable The function of the
Stop screensaver
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to get the screen's resolution Indicates a problem getting the screen's resolution
IMPORTANT
To use the Set screen resolution action in flows triggered through the Power Automate portal, you have to be
connected to the console session of your machine, where you can manually change the screen resolution. For example,
you can use your machine's physical screen to connect to the machine. In remote sessions, such as unattended scenarios
that use remote desktop clients, the action has no effect, as users can't manually change the resolution.
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Failed to set the screen's resolution Indicates a problem setting the screen's resolution
Scripting
1/15/2022 • 6 minutes to read • Edit Online
Run VBScript
Run JavaScript
$variableName = "variableValue"
Write-Output $variableName
Python scripts don't require any special notation to declare new variables. To return values from Run
Python script actions, use the print function.
variableName = "variableValue"
print variableName
VBScript doesn't require any special notation to declare new variables. Use the WScript.Echo function to
return values from Run VBScript actions to Power Automate.
variableName = "variableValue"
WScript.Echo variableName
In JavaScript scripts, use the var notation to declare new variables and the WScript.Echo function to
return values from Run JavaScript actions.
var variableName = "variableValue";
WScript.Echo(variableName);
To use Power Automate variables in scripting actions, use the percentage notation (% ) and handle the variables
the same way as hardcoded values.
Scripting actions
Run DOS command
Executes a DOS command or console application in invisible mode and retrieves its output upon completion
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Can't execute command or console application Indicates a problem executing the specified command or
console application
Run VBScript
Executes some custom VBScript code and retrieves its output into a variable
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
ScriptError Text value The errors that may occur during the
execution of the VBScript code
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
ScriptError Text value The errors that may occur during the
execution of the JavaScript code
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
ScriptError Text value The errors that may occur during the
execution of the PowerShell code
Ex c e p t i o n s
Failed to run PowerShell script Indicates a problem running the provided PowerShell script
Va r i a b l e s P r o d u c e d
ScriptError Text value The errors that may occur during the
execution of the Python script code
Ex c e p t i o n s
Failed to run Python script Indicates a problem running the provided Python script
Directory not found Indicates that the directory was not found
File
1/15/2022 • 12 minutes to read • Edit Online
If file exists
Copy file(s)
Move file(s)
Delete file(s)
Rename file(s)
To copy or move files, use the Copy file(s) and Move file(s) actions, respectively.
Rename a file or multiple files with the Rename file(s) action. Select to either set a new name or add, replace or
remove a string of text to the existing filename. In the figure below, a list of files has been selected and the string
backup_ will be appended to the beginning of each file.
The same action can be used to remove this string of text should the backed up files be restored.
The Read text from file action stores text from a .txt file in a variable. Specify a .txt file, and the file contents are
stored as a single text value or as a list.
The Write text to file action adds text to an existing .txt file or creates a new file with the specified text.
File actions
If file exists
Marks the beginning of a conditional block of actions depending on whether a file exists or not
In p u t P ar am et er s
If file N/A Exists, Doesn't exist Exists The state of the file
to check
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Source folder doesn't exist Indicates that the source folder doesn't exist
Destination folder doesn't exist Indicates that the destination folder doesn't exist
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Source folder doesn't exist Indicates that the source folder doesn't exist
Destination folder doesn't exist Indicates that the destination folder doesn't exist
Va r i a b l e s P r o d u c e d
File path doesn't exist Indicates that the file path doesn't exist
Rename scheme N/A Set new name, Add Set new name Specifies how to
text, Remove text, rename the file(s)
Replace text, Change
extension, Add
datetime, Make
sequential
Add number to N/A After name, Before After name Specifies whether to
name add the number
before or after the
original name(s) or a
new base name
Add text N/A After name, Before After name Specifies whether to
name add the text before
or after the original
name(s)
Add datetime N/A After name, Before After name Specifies whether to
name add the datetime
before or after the
original name(s)
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Store content as N/A Single text value, List Single text value Specifies how to
(each is a list item) store the text.
Choose 'Single text
value' to store the
entire text as a single
text value. Choose
'List' to store each
line of the original
text as a text item in
a list
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to read from file Indicates a problem reading from the file
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
EXC EP T IO N DESC RIP T IO N
Read from CSV failed Indicates a problem reading from the CSV file
If file exists N/A Overwrite existing Overwrite existing Specifies the desired
content, Append content behaviour when the
content targeted CSV file
already exists in the
filesystem
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
File path contains invalid characters Indicates that the file path doesn't exist
Ex c e p t i o n s
If folder exists
Create folder
Delete folder
Empty folder
Copy folder
Move folder
Rename folder
Copying, moving, renaming and deleting or emptying folders each has its respective action.
Folder actions
If folder exists
Mark the beginning of a conditional block of actions depending on whether a folder exists or not
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Folder doesn't exist Indicates that the folder was not found
EXC EP T IO N DESC RIP T IO N
Can't retrieve list of files Indicates a problem retrieving the list of files
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Folder doesn't exist Indicates that the folder was not found
Can't retrieve list of subfolders Indicates a problem retrieving the list of subfolders
Create folder
Create a new folder
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Folder doesn't exist Indicates that the folder was not found
New folder path and name are empty Indicates that both the new folder path and folder name do
not have value
Delete folder
Delete an existing folder and its contents (files and subfolders)
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Folder doesn't exist Indicates that the folder was not found
Empty folder
Delete all the contents of a folder (files and subfolders) without deleting the folder itself
In p u t P ar am et er s
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Folder doesn't exist Indicates that the folder was not found
Can't delete folder's contents Indicates a problem clearing the folder's contents
Copy folder
Copy a folder into a destination folder
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
A RGUM EN T TYPE DESC RIP T IO N
Ex c e p t i o n s
Folder doesn't exist Indicates that the folder was not found
Destination folder doesn't exist Indicates that the destination folder was not found
Move folder
Move an existing folder into a destination folder
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Folder doesn't exist Indicates that the folder was not found
Destination folder doesn't exist Indicates that the destination folder was not found
Rename folder
Change the name of a folder
In p u t P ar am et er s
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Folder doesn't exist Indicates that the folder was not found
Special folder name N/A Programs, Personal, Desktop Choose the name of
Favorites, Startup, the special folder (like
Recent, Send To, Start My Documents or
Menu, Music, Desktop). This will be
Desktop, Templates, independent of path,
Application Data, to find the special
Local Application folder on any
Data, Internet Cache, computer regardless
Cookies, History, of path specifics.
Common Application
Data, System,
Program Files,
Pictures, Common
Program Files
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
ZIP files
Unzip files
Unzip files works similarly, and requires the path to the archive as well as the destination folder. In the figure
below, Include mask has been set to .xlsx;*.txt , to only unzip files with the extensions .txt and .xlsx.
Compression actions
ZIP files
Compress one or more files or folders into a ZIP archive
In p u t P ar am et er s
Compression level N/A None, Best speed, Best balance of speed The level of
Best balance of speed and compression compression to use.
and compression, The higher the
Best compression compression the
smaller the file,
though it takes
longer to create or
access
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
File or folder doesn't exist Indicates that the specified file or folder doesn't exist
File or folder name is invalid Indicates that the file or folder name is invalid
Archive already exists but it isn't a valid ZIP archive Indicates that the archive already exists but it isn't a valid ZIP
archive
Unzip files
Uncompress one or more files or folders contained in a ZIP archive
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Can't create destination folder Indicates that the destination folder couldn't be created
Archive isn't a valid ZIP file Indicates that the archive isn't a valid ZIP file
Get window
Focus window
Move window
Resize window
Close window
If window contains
Use desktop
If window
All UI elements consist of selectors that pinpoint the hierarchical structure of the components. Selectors use the
> notation to indicate that each element is contained within the element on its left.
When you create a UI element of an application window, its selector always has a root element named :desktop .
If you create a UI element that pinpoints a component inside an application window, two UI elements will be
created automatically. The parent UI element pinpoints the application window, while the child shows the
hierarchical structure of the specific component inside the window.
Although selectors are created automatically when adding UI elements, some particular scenarios need
manually created selectors. When a custom selector is needed, you have the option to edit an existing selector or
build one from scratch.
To develop more dynamic web flows, replace the Equals to operators with other operators or regular
expressions. Additionally, if the value of a selector's attribute depends on the results of previous actions, use
variables instead of hard-coded values.
NOTE
You can find more information about developing UI automation flows and creating custom selectors in Automate desktop
flows and Build a custom selector, respectively.
UI automation actions
Data extraction
Extract data from desktop applications, from a single value up to tables or custom multiple pieces of data
Get details of window
Gets a property of a window such as its title or its source text
In p u t P ar am et er s
Window property N/A Get window title, Get Get window title Choose which
window text, Get property of the
window location and window to extract
size, Get process
name
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to retrieve property of window Indicates a problem retrieving the window property
Attribute name Yes Text value Own Text The attribute whose
value will be retrieved
Va r i a b l e s P r o d u c e d
A RGUM EN T TYPE DESC RIP T IO N
Ex c e p t i o n s
Failed to retrieve attribute of UI element Indicates a problem retrieving the UI element's attribute
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to retrieve checkbox state(s) Indicates a problem retrieving the specified checkbox state(s)
Operation N/A Get selected radio Get selected radio Specify whether to
button name in button name in retrieve the name of
group, Get state of group the radio button
radio button that's selected inside
a group of radio
buttons or just the
state of a single radio
button
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to retrieve radio button state Indicates a problem retrieving the specified radio button
state
Store extracted data N/A an Excel spreadsheet, an Excel spreadsheet Specify where to
in A variable store the extracted
data
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
File format N/A BMP, EMF, EXIF, GIF, BMP The file format of the
JPG, PNG, TIFF, WMF image file
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to take screenshot of UI element Indicates a problem taking a screenshot of the UI element
Form filling
Fill-in forms on desktop applications
Focus text field in window
Sets the focus on a text box of a window and scrolls it into view
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Failed to set input focus in window text box Indicates a problem setting the focus on the specified web
page text field
If field isn't empty Yes Replace text, Append Replace text Specify whether to
text replace existing
content, or to
append.
Click before Yes Left click, Double Left click Specify whether a left
populating click, No mouse click is
performed before
populating the text
field or not.
Va r i a b l e s P r o d u c e d
Failed to write in textbox Indicates a problem populating the specified text field
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Failed to select radio button UI element Indicates a problem selecting the specified radio button UI
element
Set checkbox state to N/A Checked, Unchecked Checked Specify whether the
checkbox will become
checked or
unckeched
Va r i a b l e s P r o d u c e d
Failed to set checkbox state Indicates a problem setting the specified checkbox state
Va r i a b l e s P r o d u c e d
Failed to select the specified options in the drop down list Indicates a problem selecting the specified options in the
drop down list
Windows
Windows manipulation regarding size, state visibility, focus
Get window
Gets a running window, for automating desktop applications
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Focus window
Activates and brings to the foreground a specific window
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Window wasn't found Indicates that the specified window wasn't found
Can't perform window-related action in non interactive Indicates a problem performing window-related action in
mode non-interactive mode
Va r i a b l e s P r o d u c e d
Window wasn't found Indicates that the specified window wasn't found
Can't set window state Indicates a problem setting the window state of the specified
window
EXC EP T IO N DESC RIP T IO N
Can't perform window-related action in non interactive Indicates a problem performing window-related action in
mode non-interactive mode
Va r i a b l e s P r o d u c e d
Window wasn't found Indicates that the specified window wasn't found
Can't set window visibility Indicates a problem setting the visibility of the specified
window
Can't perform window-related action in non interactive Indicates a problem performing window-related action in
mode non-interactive mode
Move window
Sets the position of a specific window
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Window wasn't found Indicates that the specified window wasn't found
Can't perform window-related action in non interactive Indicates a problem performing window-related action in
mode non-interactive mode
Resize window
Sets the size of a specific window
In p u t P ar am et er s
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Window wasn't found Indicates that the specified window wasn't found
Can't perform window-related action in non interactive Indicates a problem performing window-related action in
mode non-interactive mode
Close window
Closes a specific window
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Window wasn't found Indicates that the specified window wasn't found
Can't perform window-related action in non interactive Indicates a problem performing window-related action in
mode non-interactive mode
If window contains
Marks the beginning of a conditional block of actions depending on whether a specific piece of text or UI
element exists in a window
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Wait until window N/A Contains UI element, Contains UI element Whether to wait for a
Doesn't contain UI specific text or UI
element, Contains element to appear in
text, Doesn't contain a window
text
Va r i a b l e s P r o d u c e d
Wait for window content failed Indicates that the wait operation failed
If image
This action marks the beginning of a conditional block of actions depending on whether a selected image is
found on the screen or not
In p u t P ar am et er s
Search for image on N/A Entire screen, Entire screen Whether to look for
Foreground window the specified image in
only the foremost window
only or the entire
visible screen. Neither
choice will find the
image if it isn't clearly
visible on the screen
Search Mode N/A Search whole screen Search whole screen Whether to scan the
or foreground or foreground entire screen (or
window, Search on window window) to find the
specified subregion supplied text or only
of screen or a narrowed down
foreground window subregion of it
Find all images in the N/A Boolean value False Check whether all
list images on the list
exist or don't exist
Va r i a b l e s P r o d u c e d
Can't check image in non interactive mode Indicates that an image can't be identified in non-interactive
mode
Invalid subregion coordinates Indicates that the coordinates of the given subregion were
invalid
Use desktop
Performs desktop and taskbar related operations
In p u t P ar am et er s
Click type N/A Left click, Right click, Left click The kind of click to
Double click perform
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Search for image on N/A Entire screen, Entire screen Whether to look for
Foreground window the specified image in
only the foremost window
only or the entire
visible screen. Neither
choice will find the
image if it isn't clearly
visible on the screen
Search Mode N/A Search whole screen Search whole screen Whether to scan the
or foreground or foreground entire screen (or
window, Search on window window) to find the
specified subregion supplied text or only
of screen or a narrowed down
foreground window subregion of it
Wait for all images N/A Boolean value False Whether to wait for
all the images on the
list to
appear(disappear), or
just one of them
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Wait for image failed Indicates that the wait operation failed
Can't check image in non interactive mode Indicates that an image can't be identified in non-interactive
mode
Invalid subregion coordinates Indicates that the coordinates of the given subregion were
invalid
Click type N/A Left click, Right click, Left click The kind of click to
Double click, Middle perform
click, Left button
down, Left button
up, Right button
down, Right button
up
Mouse position N/A Top left, Top center, Middle center Specify which section
relative to UI element Top right, Middle left, of the UI element the
Middle center, Middle mouse will be moved
right, Bottom left, to prior to clicking
Bottom center,
Bottom right
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Failed to select option Indicates a problem selecting the specified menu option
Click type N/A Left click, Right click Left click Specify which mouse
button to use for
clicking and holding
down, while dragging
the UI element over
to its destination
Mouse down N/A Top left, Top center, Middle center Specify which section
position relative to Top right, Middle left, of the UI element to
drag-target UI Middle center, Middle drop the mouse onto
element right, Bottom left, prior to clicking
Bottom center,
Bottom right
Mouse up position N/A Top left, Top center, Middle center Specify which section
relative to drop- Top right, Middle left, of the UI element to
target UI element Middle center, Middle drag the mouse onto
right, Bottom left, after clicking
Bottom center,
Bottom right
Va r i a b l e s P r o d u c e d
This action doesn't produce any variables
Ex c e p t i o n s
UI element to drag wasn't found Indicates that the UI element to drag wasn't found
Drop target UI element wasn't found Indicates that the drop target UI element wasn't found
Drag and drop failed Indicates a problem during drag and drop of the speficied UI
element
NOTE
Power Automate's regular expression engine is .NET. You can find more information in Regular Expression Language -
Quick Reference.
Va r i a b l e s P r o d u c e d
Failed to set tree node to the specified state Indicates a problem setting the tree node to the specified
state
If window
This action marks the beginning of a conditional block of actions depending on whether a window is open or
not or whether a window is the focused (foreground) window
In p u t P ar am et er s
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Check if window N/A Is open, Isn't open, Is Is open The state of the
focused, Isn't focused window to be
checked
Va r i a b l e s P r o d u c e d
Wait for window to N/A Open, Close, Become Open Whether to wait for a
focused, Lose focus specific window to
open, close, become
focused (i.e become
the foreground
window), or lose
focus (i.e stop being
the foreground
window).
Focus window after it N/A Boolean value False Bring the window to
opens the front after it
opens, so later
actions are directed
at this window
Va r i a b l e s P r o d u c e d
Wait for window failed Indicates that the wait operation failed
Can't perform window-related action in non interactive Indicates a problem performing window-related action in
mode non-interactive mode
HTTP
1/15/2022 • 16 minutes to read • Edit Online
The downloaded text is stored in a variable named WebPageText . If you use the action to download files, you
can select to save them locally on your desktop.
NOTE
Apart from the HTTP actions, Power Automate enables users to interact with web application through the browser
automation actions. You can find more information about browser automation actions in Browser automation.
HTTP actions
Download from web
Downloads text or a file from the web and stores it
In p u t P ar am et er s
Save response N/A Get text into variable Get text into variable Specify how the
(for web pages), Save (for web pages) returned data will be
to disk (for files) saved
File name N/A Keep original file Keep original file Specify whether to
name (specify only name (specify only keep the original file
destination folder), destination folder) name of the
Specify full path downloaded file or
(destination folder + specify a new name
custom file name)
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Fail on error status N/A Boolean value False Specify whether the
responses of the
invoked web service
that denote errors
will be processed as if
they were normal
responses
(suppressing all
exceptions) or will
result in the related
exceptions
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
R e q u e st B u i l d e r P a r a m e t e r s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Invoke SOAP service error Indicates a problem invoking the SOAP service
Invalid header in custom headers Indicates that some custom headers were invalid
Save response N/A Get text into variable Get text into variable Specify how the
(for web pages), Save (for web pages) returned data will be
to disk (for files) saved
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
File name N/A Keep original file Keep original file Specify whether to
name (specify only name (specify only keep the original file
destination folder), destination folder) name of the
Specify full path downloaded file or
(destination folder + specify a new name
custom file name)
Fail on error status N/A Boolean value False Specify whether the
responses of the
invoked web service
that denote errors
will be processed as if
they were normal
responses
(suppressing all
exceptions) or will
result in the related
exceptions
Encode request body N/A Boolean value True Specify whether the
body of request
should be URL-
encoded before
invoking
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Invoke web service error Indicates a problem invoking the web service
Invalid header in custom headers Indicates that some custom headers were invalid
Browser automation
1/15/2022 • 25 minutes to read • Edit Online
Go to web page
All web-related UI elements are specified by one or more CSS selectors that pinpoint the hierarchical structure
of the component on the page. Selectors use the > notation to indicate that each element is contained within the
element on its left.
Although selectors are created automatically when adding UI elements, some particular scenarios need
manually created selectors. When a custom selector is needed, you have the option to edit an existing selector or
build one from scratch.
To develop more dynamic web flows, replace the Equals to operators with other operators or regular
expressions. Additionally, if the value of a selector's attribute depends on the results of previous actions, use
variables instead of hard-coded values.
NOTE
You can find more information about developing web flows and creating custom selectors in Automate web flows and
Build a custom selector, respectively.
Get all web pages N/A Boolean value False Specify whether to
get all web pages
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to write values to Excel Indicates a problem writing the values to an Excel
Get details of web page
Get a property of a web page, such as its title or its source text
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to get details of web page Indicates a problem getting the details of the specified web
page
Attribute name Yes Text value Own Text Enter or select the
attribute whose value
to retrieve
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to retrieve attribute of UI element on web page Indicates a problem retrieving attribute of web page element
Capture N/A Entire web page, Entire web page Specify whether to
Specific element capture the entire
web page or only a
specific element of it
File format N/A BMP, EMF, EXIF, GIF, BMP Select the format of
JPG, PNG, TIFF, WMF the image file
Va r i a b l e s P r o d u c e d
Element with specified CSS selector not found Indicates that a web page element with the specified CSS
selector was not found
Failed to save in the clipboard Indicates a problem while saving to the clipboard
EXC EP T IO N DESC RIP T IO N
Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely before
proceeding
Va r i a b l e s P r o d u c e d
Element with specified CSS selector not found Indicates that a web page element with the specified CSS
selector was not found
Failed to set input focus on web page text field Indicates a problem setting input focus on the specified web
page text field
Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely after
populating the text
field
If field isn't empty Yes Replace text, Append Replace text Specify whether to
text replace existing
content, or to
append.
Va r i a b l e s P r o d u c e d
This action doesn't produce any variables
Ex c e p t i o n s
Element with specified CSS selector not found Indicates that a web page element with the specified CSS
selector was not found
Failed to write on text field Indicates a problem writing to the specified text field
Check box state N/A Checked, Unchecked Checked Select the check box
state
Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely after
setting the check box
state
Va r i a b l e s P r o d u c e d
Element with specified CSS selector not found Indicates that a web page element with the specified CSS
selector was not found
Failed to set the state of the checkbox Indicates a problem in setting the state of the specified
check box
Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely after
selecting the radio
button
Va r i a b l e s P r o d u c e d
Element with specified CSS selector not found Indicates that a web page element with the specified CSS
selector was not found
Failed to select radio button Indicates a problem in selecting the specified radio button
Operation N/A Clear all options, Clear all options Select whether to
Select options by select a value or clear
name, Select options the selected value of
by index the drop-down list
Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely after
setting the drop-
down list value
Va r i a b l e s P r o d u c e d
Element with specified CSS selector not found Indicates that a web page element with the specified CSS
selector was not found
Failed to set the selected option Indicates a problem setting the selected drop-down list
option
Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely after
pressing the button
Va r i a b l e s P r o d u c e d
Element with specified CSS selector not found Indicates that a web page element with the specified CSS
selector was not found
Failed to click on web page button Indicates a problem clicking the specified web page button
Check if web page N/A Contains element, Contains element Check whether a
Doesn't contain specific text or web
element, Contains page element exists
text, Doesn't contain in a web page
text
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Failed to communicate with the browser Indicates that an error with the browser occured
Wait for web page to N/A Contain element, Not Contain element Specify whether to
contain element, wait for a specific text
Contain text, Not or web page element
contain text to (dis)appear in a
web page
Va r i a b l e s P r o d u c e d
Wait for web page content failed Indicates that the wait operation failed
Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely before
proceeding
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
NOTE
The Clear cache and Clear cookies options only work as intended if running in Protected Mode is disabled in the
Internet options menu.
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Launch mode N/A Launch new Instance, Launch new Instance Specify whether to
Attach to running launch a new
instance instance of Firefox or
attach to an existing
one
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Attach to Firefox tab N/A By title, By URL, Use By title Specify whether to
foreground window attach to a Firefox
tab by its title, URL,
or attach to the
active tab of Firefox
running as the
foreground window
Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely before
proceeding
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Launch mode N/A Launch new Instance, Launch new Instance Specify whether to
Attach to running launch a new
instance instance of Chrome
or attach to an
existing one
Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely before
proceeding
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Launch mode N/A Launch new Instance, Launch new Instance Specify whether to
Attach to running launch a new
instance instance of Edge or
attach to an existing
one
Attach to Edge tab N/A By title, By URL, Use By title Specify whether to
foreground window attach to an Edge tab
by its title, URL, or
attach to the active
tab of Edge running
as the foreground
window
Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely before
proceeding
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Browser Web browser instance The Edge instance to use with browser
automation actions
Ex c e p t i o n s
Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely before
proceeding
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
NewBrowser Web browser instance The new web browser instance to use
with browser automation actions
Ex c e p t i o n s
Go to web page
Navigate the web browser to a new page
In p u t P ar am et er s
Wait for page to load N/A Boolean value True Specify whether to
wait for the web
page to load
completely before
proceeding
Va r i a b l e s P r o d u c e d
Failed to navigate to web page Indicates a problem navigating to the specified web page
Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely after
clicking on the link
Va r i a b l e s P r o d u c e d
Element with specified CSS selector not found Indicates that a web page element with the specified CSS
selector was not found
EXC EP T IO N DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Element with specified CSS selector not found Indicates that a web page element with the specified CSS
selector was not found
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
Failed to hover over element Indicates a problem hovering over the specified element
Va r i a b l e s P r o d u c e d
Failed to close the web browser Indicates a problem closing the web browser
Excel
1/15/2022 • 21 minutes to read • Edit Online
Launch Excel
Save Excel
Write to Excel worksheet
Close Excel
When the flow runs, the action stores the data in a datatable type variable:
Write data from the flow to Excel by using the Write to Excel worksheet action. This action can write any
static data or variable to a specified cell, or multiple cells in an Excel worksheet.
In the following example, the action writes the above mentioned datatable variable to cell A51.
Each cell in the workbook is populated with its corresponding cell in the datatable. The result is that the A51 to
E55 cell range is filled with the contents of the datatable.
Excel actions
Advanced
Advanced Excel automation actions
Run Excel Macro
Runs a specified macro on the document of an Excel instance
In p u t P ar am et er s
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to retrieve active worksheet Indicates a problem retrieving the active worksheet
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to retrieve all worksheet names Indicates a problem retrieving the names of the Excel
worksheet
Va r i a b l e s P r o d u c e d
Can't find worksheet Indicates that a worksheet with the specified name could not
be found
Va r i a b l e s P r o d u c e d
Can't find worksheet Indicates that a worksheet with the specified name could not
be found
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to retrieve the selected range of cells Indicates a problem retrieving the selected range of cells
Copy mode N/A Single Cell's Values, Single Cell's Values Specify whether to
Values from a Range copy a single cell, a
of Cells, Values from range of cells or the
Selection current selection of
cells
Va r i a b l e s P r o d u c e d
Failed to copy cells Indicates a problem copying the cells from the Excel
document
Va r i a b l e s P r o d u c e d
Retrieve N/A The value of a single The value of a single Whether to delete a
cell, Values from a cell single cell or a table
range of cells from a range of cells
Va r i a b l e s P r o d u c e d
Can't find row Indicates that a row with the specified index could not be
found
Failed to insert row Indicates a problem inserting a row at the specified Excel
instance
Va r i a b l e s P r o d u c e d
Can't find row Indicates that a row with the specified index could not be
found
Va r i a b l e s P r o d u c e d
Can't find column Indicates that a column with the specified name could not be
found
Failed to insert column Indicates a problem inserting a column at the specified Excel
instance
Va r i a b l e s P r o d u c e d
Can't find column Indicates that a column with the specified name could not be
found
Search mode N/A Find, Find and Find The mode to search
replace with
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to find and/or replace text Indicates a problem finding and/or replacing the specified
text
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to retrieve first free row Indicates a problem retrieving the first free row of an Excel
instance
Launch Excel
Launches a new Excel instance or opens an Excel document
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
ExcelInstance Excel instance The specific Excel instance for use with
later Excel actions. This allows the user
to specify which of possibly several
Excel spreadsheets to access
Ex c e p t i o n s
Failed to open Excel document Indicates a problem opening the specified Excel document
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Specified Excel document not found Indicates that the specified Excel document could not be
found
Failed to attach to Excel document Indicates a problem attaching to the Excel document
Retrieve N/A The value of a single The value of a single Whether to retrieve
cell, Values from a cell the value of a single
range of cells, Values cell, a table from a
from selection, All range of cells or the
available values from entire worksheet
worksheet
Va r i a b l e s P r o d u c e d
Failed to read cell value(s) Indicates a problem reading the value(s) of the specified
Excel cell(s)
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to get active cell Indicates a problem getting the active cell
Save Excel
Saves a previously launched Excel instance
In p u t P ar am et er s
Save mode N/A Save document, Save Save document How to save the
document as document of this
instance
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Document format N/A Default (From Default (From The format to save
Extension), Excel Extension) the document as
Workbook (.xlsx),
Excel Workbook
Macro Enabled
(.xlsm), Excel 97-2003
Workbook (.xls), Web
Page (.htm, .html),
Excel Template (.xltx),
Excel Template Macro
Enabled (.xltm), Excel
97-2003 Template
(.xlt), Text (.txt),
Unicode Text (.txt),
Text Macintosh (.txt),
Text DOS (.txt), XML
Spreadsheet (.xml),
Excel 95 (.xls), CSV
(.csv), DIF (.dif), SYLK
(.slk), Excel Add-In
(.xlam), Excel 97-
2003 Add-In (.xla),
Strict Open XML
Workbook (.xlsx),
OpenDocument
Spreadsheet (.ods),
XML Data (.xml),
Excel Binary
Workbook (.xlsb)
Va r i a b l e s P r o d u c e d
Failed to save Excel document Indicates a problem saving the Excel document
Write mode N/A On specified cell, On On specified cell Whether to write into
currently active cell a specified cell or the
currently active cell
Va r i a b l e s P r o d u c e d
Failed to write value to Excel Indicates a problem writing the specified value to the Excel
instance
Close Excel
Closes an Excel instance
In p u t P ar am et er s
Before closing Excel N/A Do not save Do not save Whether and how to
document, Save document save the document
document, Save of this instance
document as before closing that
instance
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Document format N/A Default (From Default (From The format of the
Extension), Excel Extension) document
Workbook (.xlsx),
Excel Workbook
Macro Enabled
(.xlsm), Excel 97-2003
Workbook (.xls), Web
Page (.htm, .html),
Excel Template (.xltx),
Excel Template Macro
Enabled (.xltm), Excel
97-2003 Template
(.xlt), Text (.txt),
Unicode Text (.txt),
Text Macintosh (.txt),
Text DOS (.txt), XML
Spreadsheet (.xml),
Excel 95 (.xls), CSV
(.csv), DIF (.dif), SYLK
(.slk), Excel Add-In
(.xlam), Excel 97-
2003 Add-In (.xla),
Strict Open XML
Workbook (.xlsx),
OpenDocument
Spreadsheet (.ods),
XML Data (.xml),
Excel Binary
Workbook (.xlsb)
Va r i a b l e s P r o d u c e d
Failed to save Excel document Indicates a problem saving the Excel document
Failed to close Excel instance Indicates a problem closing the Excel instance
Va r i a b l e s P r o d u c e d
Can't find worksheet Indicates that a worksheet with the specified name could not
be found
Add worksheet as N/A First worksheet, Last First worksheet Specify whether the
worksheet new Excel worksheet
will be added before
or after the existing
worksheets
Va r i a b l e s P r o d u c e d
A worksheet with the same name already exists Indicates that the worksheet could not be added because a
worksheet with the same name already exists
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to retrieve first free column/row Indicates a problem retrieving the first free column/row of an
Excel instance
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
To manually build a connection string, select Build connections string to open the Data Link Proper ties
window. The data link tool helps the user compose the required connection string step by step.
NOTE
Power Automate for desktop is a 64-bit application, only 64-bit installed drivers will be available for selection in the Open
SQL connection action.
Database actions
Open SQL connection
Open a new connection to a database
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Can't connect to data source Indicates a problem connecting to the data source
Invalid connection string Indicates that the specified connection string is invalid
Va r i a b l e s P r o d u c e d
Can't connect to data source Indicates a problem connecting to the data source
Invalid connection string Indicates that the specified connection string is invalid
Error in SQL statement Indicates there is an error in the given SQL statement
Va r i a b l e s P r o d u c e d
3. Next, under the Connection tab, enter the remaining details such as the server name, the username,
password, and database name. Select the Test Connection button to test that the connection string
connects to a database successfully. Alternatively, copy a ready-made connection string.
4. Specify a connection timeout and additional network settings in the Advanced tab.
Email
1/15/2022 • 6 minutes to read • Edit Online
Send email
Manage your email messages with the Process email messages action. Using the variable created by the
Retrieve e-mail messages action, select whether you would like to move, delete, or mark email messages as
read/unread.
The Send email action in the figure below has been configured to send an e-mail from N. Varga to B. Friday,
with invoicing in the BCC field. The subject and body contain the %Repor tID% variable, and the attachment is a
file which has been processed by the flow.
Email actions
Retrieve email messages
Retrieves email messages from an IMAP server
In p u t P ar am et er s
Retrieve N/A All email messages, All email messages Specify whether to
Unread email retrieve all messages
messages only, Read in the folder or only
email messages only the unread ones
"From" field contains Yes Text value The full email address
of the sender whose
messages will be
retrieved. Leave this
attribute blank to
retrieve all messages
regardless of the
sender
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to connect to IMAP server Indicates that there was a problem connecting to the IMAP
server
Failed to authenticate to the IMAP server Indicates a problem authenticating to the specified IMAP
server
Specified mail-folder doesn't exist Indicates that the specified mail folder wasn't found
Operation N/A Delete emails from Move emails to mail The operation you
server, Mark emails folder want to perform on
as unread, Move the specified email
emails to mail folder, messages
Mark emails as
unread and move to
mail folder
Va r i a b l e s P r o d u c e d
Failed to connect to IMAP server Indicates that there was a problem connecting to the IMAP
server
Specified mail-folder doesn't exist Indicates that the specified mail folder wasn't found
EXC EP T IO N DESC RIP T IO N
Failed to process emails Indicates a problem with processing the specified emails
Send email
Creates and sends a new email message
In p u t P ar am et er s
SMTP Server needs N/A Boolean value False Specify whether the
authentication server requires
authentication
Va r i a b l e s P r o d u c e d
Invalid email address Indicates that the specified email address is invalid
Attachment not found Indicates that the specified attachment(s) were not found
Further details
Common IMAP ports:
143 (non-encrypted and TLS)
993 (secure IMAP)
Common IMAP servers:
imap-mail.outlook.com (Outlook.com)
outlook.office365.com (Office365.com)
imap.mail.yahoo.com (Yahoo mail)
imap.gmail.com (Google mail)
Common SMTP ports:
25 (non-encrypted)
587 (non-encrypted and TLS)
465 (SSL)
Common SMTP servers:
smtp-mail.outlook.com (Outlook.com)
smtp.office365.com (Office365.com)
smtp.mail.yahoo.com (Yahoo mail)
smtp.gmail.com (Google mail)
Exchange
1/15/2022 • 6 minutes to read • Edit Online
To retrieve emails from the exchange server, use the Retrieve Exchange email messages action. In the figure
below, the action has been set to retrieve email messages from a custom folder, Receipts. In the filters, the from,
subject and body fields have been set to contain values of variables which have been previously defined in the
flow. Attachments from resulting email messages will also be saved to the specified folder.
The Process Exchange email messages action processes email messages retrieved by the Retrieve
Exchange email messages action. The required input is the Exchange connection and the retrieved emails
variable. Use this action to move, delete or mark email messages as read.
Exchange actions
Connect to Exchange server
Open a new connection to an Exchange server
In p u t P ar am et er s
Exchange server N/A Exchange 2010, Exchange 2013 SP1 The version of the
version Exchange 2010 SP1, Exchange server
Exchange 2010 SP2,
Exchange 2013,
Exchange 2013 SP1
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to connect to the Exchange server Indicates a problem connecting to the Exchange server
Va r i a b l e s P r o d u c e d
RetrievedEmails List of Exchange mail messages The retrieved email messages for later
processing as a list of Exchange mail
messages objects
Ex c e p t i o n s
Specified mail-folder doesn't exist Indicates that the specified mail folder doesn't exist
Failed to retrieve email messages Indicates a problem retrieving the email messages
Va r i a b l e s P r o d u c e d
Attachment not found Indicates that the specified attachment(s) don't exist
Va r i a b l e s P r o d u c e d
Specified mail-folder doesn't exist Indicates that the specified mail folder doesn't exist
Failed to process email messages Indicates a problem processing the specified email messages
Outlook
1/15/2022 • 8 minutes to read • Edit Online
Launch Outlook
Close Outlook
The Process email messages in Outlook action processes email messages retrieved by the Retrieve email
messages from Outlook action. The Outlook instance, account, and retrieved emails variable are required to
use this action. Select whether to Move, delete or mark as read as the operation to perform.
Store Outlook email messages locally by using the Save Outlook email messages action. Specify the Outlook
instance, account, and messages to save via variables, as well as the format and location to save in.
To close the instance of Outlook opened with Power Automate, use the Close Outlook action.
Outlook actions
Launch Outlook
Launch Outlook and create a new Outlook instance
In p u t P ar am et er s
Ex c e p t i o n s
Retrieve N/A All email messages, All email messages Specifies whether to
Unread email retrieve all messages
messages only, Read in the folder or only
email messages only the unread ones
Va r i a b l e s P r o d u c e d
RetrievedEmails List of Outlook mail messages The retrieved email messages for later
processing. The variable contain a list
of Outlook message objects
Ex c e p t i o n s
Failed to find Outlook account Indicates that the specified Outlook account doesn't exist
Mail-folder specified not valid in Outlook Indicates that the specified mail folder isn't valid
Directory for saving attachments not found Indicates that the directory to save the attachments into
doesn't exist
EXC EP T IO N DESC RIP T IO N
Failed to retrieve email messages from Outlook Indicates a problem retrieving the email messages from
Outlook
Va r i a b l e s P r o d u c e d
Failed to find Outlook account Indicates that the specified Outlook account doesn't exist
Attachment not found Indicates that the specified attachment(s) don't exist
Va r i a b l e s P r o d u c e d
Failed to find Outlook account Indicates that the specified Outlook account doesn't exist
Specified mail-folder doesn't exist Indicates that the specified mail folder doesn't exist
Failed to process email messages in Outlook Indicates a problem processing the specified email messages
in Outlook
Save format N/A Text only (.txt), Outlook message Specifies the format
Outlook template format (*.msg) to save the messages
(.oft), Outlook
message format
(.msg), Outlook
message format -
Unicode (.msg),
HTML (.html), MHT
files (.mht)
Va r i a b l e s P r o d u c e d
StoredMessagesFiles List of Text values The file paths of the saved email
messages for later processing
Ex c e p t i o n s
Failed to find Outlook account Indicates that the specified Outlook account doesn't exist
Directory not found Indicates that the specified email message(s) couldn't be
saved because the directory doesn't exist
Email message is deleted or moved to another folder Indicates that the specified email message(s) couldn't be
saved because they are moved or deleted
Failed to save email message(s) Indicates a problem saving the specified email message(s)
Va r i a b l e s P r o d u c e d
This action doesn't produce any variables
Ex c e p t i o n s
Failed to find Outlook account Indicates that the specified Outlook account doesn't exist
Attachment not found Indicates that the specified attachment(s) don't exist
Close Outlook
Close a previously launched Outlook instance
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Failed to close Outlook instance Indicates a problem closing the Outlook instance
Message boxes
1/15/2022 • 8 minutes to read • Edit Online
Display message
To display a dialog for the user to input data, use the Display input dialog action. The action requires a title for
the input dialog window and a message as a prompt for the user. Optionally set a default value, and an input
type (single line, multiline or password).
Use the Display select file dialog to prompt a user to browse for a file. In the following figure, the action is
set to prompt the user to select an image file. The initial folder has been set to a variable, and the file filter has
been set to only allow specific file extensions.
The select file dialog looks like the following figure. Note the file filter in the bottom right of the figure which can
switch between the formats specified in the action properties:
Message box title Yes Text value The text to use as the
message box title
Message box icon N/A None, Information, None The icon to display
Question, Warning, with the message
Error box
Default button N/A First button, Second First button The button to
button, Third button highlight by default.
If the user presses
Enter , this button
will be pressed
Keep message box N/A Boolean value False Specify whether the
always on top message box should
always remain on top
of all other windows
Close message box N/A Boolean value False Specify whether the
automatically message box closes
automatically after a
preset time, as if the
default button was
pressed. Otherwise,
the flow will wait until
a button is pressed
by the user
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to display message box Indicates a problem displaying the message dialog
EXC EP T IO N DESC RIP T IO N
Can't display message box in non interactive mode Indicates a problem displaying the message dialog in non-
interactive mode
Input type N/A Single line, Password, Single line The format for the
Multiline input text. Choose
Single line -
password to hide the
text or multiline so
that a larger display
box makes visible
more than one line of
text
Keep input dialog N/A Boolean value False Specify whether the
always on top input dialog should
always remain on top
of all other windows
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to display input dialog Indicates a problem displaying the input dialog
Can't display input dialog in non interactive mode Indicates a problem displaying the input dialog in non-
interactive mode
Display select date dialog
Displays a dialog box that prompts the user to enter a date or date range
In p u t P ar am et er s
Dialog type N/A Single date, Date Single date Whether the user will
range (2 Dates) enter a single date or
two dates as the
endpoints of a range
of dates
Prompt for N/A Date only, Date and Date only Specify whether the
time user will enter the
date only or the date
and time
Keep date selection N/A Boolean value False Specify whether the
dialog always on top date selection dialog
should always remain
on top of all other
windows
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to display select date dialog Indicates a problem displaying the select date dialog
Can't display select date dialog in non interactive mode Indicates a problem displaying the input dialog in non-
interactive mode
Keep select dialog N/A Boolean value False Specify whether the
always on top select dialog should
always remain on top
of all other windows
Allow empty N/A Boolean value False Allow the user to not
selection select anything,
creating an empty
selected item output
Va r i a b l e s P r o d u c e d
SelectedItem Text value The item selected from the list as text
SelectedItems List of Text values The items selected from the list as a list
of text
Ex c e p t i o n s
Failed to display select dialog Indicates a problem displaying the select dialog
Can't display select dialog in non interactive mode Indicates a problem displaying the input dialog in non-
interactive mode
Keep file selection N/A Boolean value False Whether the file
dialog always on top selection dialog
should always remain
on top of all other
windows
Allow multiple N/A Boolean value False Whether the user will
selection be able to select
more than one file or
not
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Check if file exists N/A Boolean value False Whether only files
that already exist will
be accepted
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to display select file dialog Indicates a problem displaying the select file dialog
Can't display select file dialog in non interactive mode Indicates a problem displaying the input dialog in non-
interactive mode
Keep folder selection N/A Boolean value False Whether the folder
dialog always on top selection dialog
should always remain
on top of all other
windows
Va r i a b l e s P r o d u c e d
A RGUM EN T TYPE DESC RIP T IO N
Ex c e p t i o n s
Failed to display select folder dialog Indicates a problem displaying the select folder dialog
Can't display select folder dialog in non interactive mode Indicates a problem displaying the input dialog in non-
interactive mode
Mouse and keyboard
1/15/2022 • 17 minutes to read • Edit Online
Block Input
Move mouse
Send keys
Press/release key
To simulate moving the mouse, use the Move mouse action. In the following example, the mouse has been set
to move to specific coordinates by moving the pointer there manually, and pressing Control+Shift to set its
current coordinates for Position X & Y. The movement speed has been set to normal.
Move the mouse to a specific image on the screen with the Move mouse to image action. In the figure below,
the mouse is set to move to the first occurence of the search icon from the captured images, and to left click.
In the Advanced section, the action has been set to wait 30 seconds for the image to appear in the foreground
window, and the mouse position has to be in the center of the image.
Mouse and keyboard actions
Block Input
Blocks user mouse and keyboard input, so that the flow can perform mouse and keyboard actions without
interference from the user
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Can't block/unblock user input in non interactive mode Indicates a problem blocking/unblocking input in non-
interactive mode
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Can't retrieve the mouse position in non interactive mode Indicates a problem retrieving the mouse cursor position in
non-interactive mode
Move mouse
Moves the mouse to a specific position
In p u t P ar am et er s
Move mouse from N/A Instant, With Instant Specify how to move
previous position animation (low the mouse
speed), With
animation (normal
speed), With
animation (high
speed)
Va r i a b l e s P r o d u c e d
Can't move mouse in non interactive mode Indicates a problem moving the mouse in non-interactive
mode
Search for image on N/A Entire screen, Entire screen Specify whether to
Foreground window search for the
only specified Image in
the foremost window
only, or the entire
visible screen. Neither
choice will find the
image if it isn't clearly
visible on the screen
Search mode N/A Search whole screen Search whole screen Specify whether to
or foreground or foreground scan the entire
window, Search on window screen (or window) to
specified subregion find the supplied
of screen or image or only a
foreground window subregion of it
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Mouse position N/A top left corner, top center The section of the
relative to image center, top right image the mouse will
corner, middle left be moved to
part, center, middle
right part, bottom
left corner, bottom
center, bottom right
corner
Click type N/A Left click, Right click, Left click The mouse click to
Double click, Middle send to the image
click, Left button
down, Left button
up, Right button
down, Right button
up
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Image not found on screen Indicates that the speicifed image wasn't found on the
screen
Can't move mouse in non interactive mode Indicates a problem moving the mouse in non-interactive
mode
Invalid subregion coordinates Indicates that the coordinates of the given subregion were
invalid
Not enough Image occurences found on screen Indicates that not enough occurences of the specified Image
were found on the screen
OCR engine type No OCR engine variable, OCR engine variable The OCR engine type
Tesseract engine to use. Select a
peconfigured OCR
engine or set up a
new one.
Search for text on N/A Entire screen, Entire screen Whether to look for
Foreground window the specified text in
only the foremost window
only or the entire
visible screen. Neither
choice will find the
text if it isn't clearly
visible on the screen
Search mode N/A Whole of specified Whole of specified Whether to scan the
source, Specific source entire screen (or
subregion only, window) to find the
Subregion relative to supplied text or only
image a narrows down
subregion of it
Click type N/A Left click, Right click, Left click The mouse click type
Double click, Middle to send to the text
click, Left button
down, Left button
up, Right button
down, Right button
up
Mouse position N/A Top left, Top center, Middle center Specify which section
relative to text Top right, Middle left, of the text the mouse
Middle center, Middle will be moved to
right, Bottom left,
Bottom center,
Bottom right
NOTE
Power Automate's regular expression engine is .NET. You can find more information in Regular Expression Language -
Quick Reference.
Va r i a b l e s P r o d u c e d
WidthOfTextFound Numeric value The width of the area the text was
found on
HeightOfTextFound Numeric value The width of the area the text was
found on
Ex c e p t i o n s
Text not found on screen Indicates that the specified text couldn't be found on the
screen
Can't move mouse in non interactive mode Indicates a problem moving the mouse in non-interactive
mode
Invalid subregion coordinates Indicates that the coordinates of the given subregion were
invalid
Failed to create the OCR engine Indicates an error occurred while trying to create the OCR
engine
Data path folder doesn't exist Indicates that the folder specified for the language data
doesn't exist
The selected Windows language pack isn't installed on the Indicates that the selected Windows language pack hasn't
machine been installed on the machine
OCR engine isn't alive Indicates that the OCR engine isn't alive
Mouse event to send N/A Left click, Right click, Left click Specify what form of
Double click, Middle mouse event to send
click, Left button
down, Left button
up, Right button
down, Right button
up
Va r i a b l e s P r o d u c e d
Can't send mouse click in non interactive mode Indicates a problem sending a mouse click in non-interactive
mode
Mouse click out of screen bounds Indicates that the mouse click was out of the screen bounds
Send keys
Sends keys to the application that is currently active
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Can't send keystrokes in non interactive mode Indicates a problem sending keystrokes in non-interactive
mode
Text to send doesn't represent valid keystrokes Indicates that the text given doesn't represent valid
keystrokes
There isn't an active application to send keystrokes to Indicates that there isn't an active application to send
keystrokes to
NOTE
To simulate a physical key being pressed inside a Send Keys action, use the curly brackets {} notation. (e.g. To press Enter
use {Enter} ). To use a key as a modifier, use the curly brackets {} notation two both keys. (e.g. To press Ctrl + A use
{Control}({A}) ). The Send Keys action accepts the Virtual-Key Codes
Va l i d k e y s
C AT EGO RY K EY S
D keys D0, D1, D2, D3, D4, D5, D6, D7, D8, D9
Letters A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X,
Y, Z
Function keys F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14,
F15, F16, F17, F18, F19, F20, F21, F22, F23, F24
Press/release key
Presses (and holds) or releases one or more modifier keys (Alt, Control, or Shift)
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Can't press or release key in non interactive mode Indicates a problem pressing or releasing the key in non-
interactive mode
Key N/A Caps Lock, Num Caps Lock Specify the key to set
Lock, Scroll Lock
Va r i a b l e s P r o d u c e d
Can't set key state in non interactive mode Indicates a problem setting the key state in non interactive
mode
Wait for mouse N/A Become, Become not Become Choose what action
pointer to of the mouse cursor
to wait for.
Mouse pointer N/A Arrow, App starting, Arrow Specify the mouse
Cross, Hand, Help, pointer state.
IBeam, Wait cursor
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Keyboard identifier wasn’t found Indicates an error while retrieving the keyboard identifier
Continue flow run on N/A Boolean value False Specify whether the
timeout flow run will continue
anyway when the set
period of time
waiting for the
shortcut key expires
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Shortcut key failed to register Indicates that a shortcut key failed to register.
Clipboard
1/15/2022 • 2 minutes to read • Edit Online
Clipboard actions
Get clipboard text
Gets clipboard text
In p u t P ar am et er s
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
Get subtext
Pad text
Trim text
Join text
Split text
Parse text
Replace text
Search a text value for a string of text with the Parse text action. Certain text actions contain the option to use
regular expressions. Enable the option Is regular expression to search for text specifying a regular expression
in Text to find . Additionally, disable First occurence only for the action to return a list of positions of the
matched text. You can find more information in Regular Expression Language - Quick Reference.
In the figure below, the action searches for all occurences of words starting with a capital letter in "Items
detected in Stock", and will return "Items" and "Stock" in the Matches list, and the position they are found at (1
and 18) in the Positions list.
To ensure that numbers are stored as numerical values, use the Conver t text to number action. To perform
the reverse conversion, use Conver t number to text .
Similarly, the actions Conver t text to datetime and Conver t datetime to text are used to ensure that dates
are correctly formatted.
Use the Recognize entities in text action
Power Automate for desktop enables users to extract various entities from texts in natural language, such as
numbers, dates, and measurement units, through the Recognize entities in text action.
The Recognize entities in text action gets a text or a variable containing text as input and returns a datable
containing the results. Each entity returns different results based on its structure, but all the datatables contain
an Original text field that stores the entity part of the input text.
The following table displays various examples of entities that the Recognize entities in text action can
recognize.
Date time I'll go back 04th Jan 2019 Value: 1/4/2019 12:00:00 AM
Original text: 04th Jan 2019
Quoted text Enter the value in the "value" field Value: "value"
Original text: "value"
NOTE
The Recognize entities in text action supports 14 different languages. However, some entities may not be available for
specific languages. You can find more information about language restrictions in Microsoft Recognizers Text - Supported
entities across cultures.
Text actions
Append line to text
Appends a new line of text to a text value
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Start index N/A Start of text, Character position Specify how to find
Character position the starting point for
text retrieval
Length N/A End of text, Number Number of chars Specify whether the
of chars subtext continues to
the end of the text,
or includes only a
certain number of
characters
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Start index or length are out of range Indicates that the start index or length are out of range
Pad text
Creates a fixed length text by adding characters to the left or to the right of an existing text
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Convert to N/A Upper case, Lower Upper case Specify the text case
case, Title case, style to use
Sentence case
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
This action doesn't include any exceptions
Convert text to number
Converts a text representation of a number to a variable that contains a numeric value
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Provided text value can't be converted into a valid number Indicates that the provided text value can't be converted
into a valid number
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Provided text value can't be converted into a valid datetime Indicates that the provided text value can't be converted
into a valid datetime
Standard format N/A Short date, Long Short date The standard
date, Short time, datetime format the
Long time, Full action uses to display
datetime (short the datetime value
time), Full datetime
(long time), General
datetime (short
time), General
datetime (long time),
Sortable datetime
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Use symbols ( , . < > N/A Boolean value True Specify whether
?!+-_#$^) symbols will be
included in the
generated text
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Specify the list to join No List of Text values The list to convert to
text
Standard delimiter N/A Space, Tab, New line Space Specify the delimiter
to use
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Standard delimiter N/A Space, Tab, New line Space The delimiter used
NOTE
Power Automate's regular expression engine is .NET. You can find more information in Regular Expression Language -
Quick Reference.
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Provided regular expression is invalid Indicates that the provided regular expression is invalid
Parse text
Parses a text to find the first or all occurrences of a specified subtext or a regular expression pattern
In p u t P ar am et er s
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
NOTE
Power Automate's regular expression engine is .NET. You can find more information in Regular Expression Language -
Quick Reference.
Va r i a b l e s P r o d u c e d
Positions List of Numeric values The positions of the 'Text to find' into
the 'Text to parse'. If the text isn't
found within the original text, this
variable will hold the value -1
Matches List of Text values The results that match the given
regular expression
Ex c e p t i o n s
Provided regular expression is invalid Indicates that the provided regular expression is invalid
Replace text
Replaces all occurrences of a specified subtext with another text. It can also be used with regular expressions
In p u t P ar am et er s
NOTE
Power Automate's regular expression engine is .NET. You can find more information in Regular Expression Language -
Quick Reference.
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Entity type N/A Date time, Date time The type of entity to
Dimension, recognize (e.g., Date
Temperature, time, Email, URL etc.)
Currency, Number
range, Number,
Ordinal, Percentage,
Phone number, Email,
IP address, Mention,
Hashtag, URL, GUID,
Quoted text
Va r i a b l e s P r o d u c e d
A RGUM EN T TYPE DESC RIP T IO N
Ex c e p t i o n s
Get the date and time and perform time related functions
Add to datetime
Subtract dates
Datetime actions
Add to datetime
Adds (or subtracts) a specific number of seconds, minutes, hours or days to a datetime value
In p u t P ar am et er s
Time unit N/A Seconds, Minutes, Seconds The time unit the
Hours, Days, Months, time to add
Years represents
Va r i a b l e s P r o d u c e d
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Retrieve N/A Current date and Current date and Specify whether to
time, Current date time get the date and
only time, or just the date.
If the latter is chosen,
the time value will be
stored as midnight
(0:00:00)
Time zone N/A System time zone, System time zone Whether to use the
Specific time zone system's time zone or
a custom one
Ex c e p t i o n s
Failed to get current date and time Indicates that there was a problem retrieving the current
date and time
Specified country/region not found Indicates that the specified country or region wasn't found
PDF
1/15/2022 • 4 minutes to read • Edit Online
Similarly, extract images with the Extract images from PDF action. This action contains an additional option to
specify a prefix for the image names.
To create a new PDF document from an existing file, use the Extract PDF file pages to new PDF file . In the
example below, the source document has been selected, and a file name for a new document has been specified.
The pages have been entered as a combination of specific pages and a range.
PDF actions
Extract images from PDF
Extract images from a PDF file
In p u t P ar am et er s
Page(s) to extract N/A All, Single, Range All Specifies how many
pages to extract: All
pages, a single page
or a range of pages
Va r i a b l e s P r o d u c e d
Failed to extract images Indicates that an error occured while extracting images from
the given pages of the PDF
PDF file doesn't exist File doesn't exist on the given path
Page(s) to extract N/A All, Single, Range All Specifies how many
pages to extract: All
pages, a single page
or a range of pages
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
PDF file doesn't exist File doesn't exist on the given path
If file exists N/A Overwrite, Don't Add sequential suffix Specifies what to do
overwrite, Add in case the output
sequential suffix PDF file already exists
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
PDF file doesn't exist File doesn't exist on the given path
Page out of bounds Indicates that one or more pages are out of bounds of the
PDF file
Invalid page selection Indicates that the given pages aren't valid for the PDF file
Failed to extract new PDF Indicates that an error occured while trying to extract new
PDF
If file exists N/A Overwrite, Don't Add sequential suffix Specifies what to do
overwrite, Add in case the
sequential suffix destination file
already exists
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
PDF file doesn't exist File doesn't exist on the given path
Failed to merge PDF files Indicates that an error occured while merging the files
CMD session
1/15/2022 • 6 minutes to read • Edit Online
To ensure that specific output appears on the command prompt before proceeding with subsequent actions, use
a Wait for text on CMD session action. Specify the text to expect, or enter a regular expression and check the
corresponding option to enable regular expressions.
To conclude the CMD session, use the Close CMD session action.
CMD actions
Open CMD session
Open a new CMD session
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
CmdSession CMD session The CMD session for use with later
CMD actions
Ex c e p t i o n s
Working directory doesn't exist Indicates that an error occured trying to locate the working
directory
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
CMD session is closed Indicates that the CMD session specified is closed
Va r i a b l e s P r o d u c e d
CMD session is closed Indicates that the CMD session specified is closed
NOTE
Power Automate's regular expression engine is .NET. You can find more information in Regular Expression Language -
Quick Reference.
Va r i a b l e s P r o d u c e d
CMD session is closed Indicates that the CMD session specified is closed
Timeout occurred while waiting for text Indicates that the specified timeout period has elapsed
before the text appeared in the command session
Va r i a b l e s P r o d u c e d
Take control of terminal emulators for automating mainframes and legacy systems
IMPORTANT
Before trying to connect to a terminal session, make sure that the actual terminal session is already open on your
machine.
If you've installed Micro Focus Reflection on your desktop, choose the respective option in the Provider
property of the action and populate the required configuration.
If you've installed another provider, select HLL API that works with most terminal emulation providers.
Depending on the provider you're using, select the appropriate HLLAPI DLL file located in its installation folder.
In the following list, you can see the HLLAPI DLL file names of some popular terminal emulation providers:
RocketSoftware BlueZone: ehlapi64.dll
IBM Personal Communications: EHL API32.dll
MicroFocus Rumba: System/ehlapi32.Dll
Cybelesoft zScope: zHllap32.dll
After opening a terminal session and completing all the wanted operations, terminate the connection using the
Close terminal session action. If you don't close the connection, some providers won't let you connect again
to the already open session without restarting the software or the connection.
Terminal emulation actions
Open terminal session
Open a new terminal session
In p u t P ar am et er s
Host type N/A IBM 3270, IBM 5250 IBM 3270 The host type of the
connection
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Error communicating with the emulator Indicates a problem connecting to the emulator
Va r i a b l e s P r o d u c e d
Error communicating with the emulator Indicates a problem connecting to the emulator
Va r i a b l e s P r o d u c e d
Screen position out of bounds Indicates that the screen position is out of bounds
Position commands aren't supported by the emulator Indicates that position commands used aren't supported by
the emulator
Operation is unavailable for this session type Indicates that the operation is unavailable for this session
type
Error communicating with the emulator Indicates a problem connecting to the emulator
Get text from N/A Field, Entire screen, Field The location to get
Cursor position, the text from
Specific position
Get field by N/A Label, Index, Position Label Specifies how to look
for the field
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Error communicating with the emulator Indicates a problem connecting to the emulator
Field index out of bounds Indicates that the field index is out of bounds
Field label not found Indicates that the field label doesn't exist
Screen position out of bounds Indicates that the screen position is out of bounds
No field found at the given position Indicates that no field exists at the given position
Position commands aren't supported by the emulator Indicates that position commands used aren't supported by
the emulator
EXC EP T IO N DESC RIP T IO N
Operation is unavailable for this session type Indicates that the operation is unavailable for this session
type
Set text N/A Cursor position, Field Field The location to set
the text to
Get field by N/A Label, Index, Position Label Specifies the way by
which to look for the
field
Va r i a b l e s P r o d u c e d
Error communicating with the emulator Indicates a problem connecting to the emulator
Field index out of bounds Indicates that the field index is out of bounds
EXC EP T IO N DESC RIP T IO N
Field label not found Indicates that the field label doesn't exist
Screen position out of bounds Indicates that the screen position is out of bounds
No field found at the given position Indicates that no field exists at the given position
Position commands aren't supported by the emulator Indicates that position commands used aren't supported by
the emulator
Operation is unavailable for this session type Indicates that the operation is unavailable for this session
type
Input text was rejected Indicates that the input text was rejected
Control key N/A Transmit, Alt cursor, Transmit The key to submit to
Attention, Backspace, the session
Back tab, Block
toggle, Break, Cancel,
Center, Clear, Clear
comm, Clear display,
Clear line, Clear page,
Clear partition,
Comma, Command
line, Command
window, Compose,
Ctrl+F1, Ctrl+F2,
Ctrl+F3, Ctrl+F4,
Ctrl+F5, Ctrl+F6,
Ctrl+F7, Ctrl+F8,
Ctrl+F9, Ctrl+F10,
Ctrl+F11, Ctrl+F12,
Ctrl+Shift+F1,
Ctrl+Shift+F2,
Ctrl+Shift+F3,
Ctrl+Shift+F4,
Ctrl+Shift+F5,
Ctrl+Shift+F6,
Ctrl+Shift+F7,
Ctrl+Shift+F8,
Ctrl+Shift+F9,
Ctrl+Shift+F10,
Ctrl+Shift+F11,
Ctrl+Shift+F12,
Cursor blink, Cursor
select, Decimal,
Delete, Delete char,
Delete line, Delete
Delete line, Delete
A RGUM EN T O P T IO N A L Aword,
C C EPDestructive
TS DEFA ULT VA L UE DESC RIP T IO N
back space,
Disconnect, Do,
Down, Down double,
Dup, Duplicate, Edit
script, Key end, End
of field, Erase EOF,
Erase EOL, Erase EOP,
Erase input, Escape,
ExtGr, F1, F2, F3, F4,
F5, F6, F7, F8, F9,
F10, F11, F12, F13,
F14, F15, F16, F17,
F18, F19, F20, F21,
F22, F23, F24, F25,
F26, F27, F28, F29,
F30, F31, F32, F33,
F34, F35, F36, F37,
F38, F39, F40, F41,
F42, F43, F44, F45,
F46, F47, F48, Field
delimiter, Field exit,
Field mark, Field
minus, Field plus,
Find, Hard reset,
Help, Hex, Hex 00,
Hex 01, Hex 02, Hex
03, Hex 04, Hex 05,
Hex 06, Hex 07, Hex
08, Hex 09, Hex 0A,
Hex 0B, Hex 0C, Hex
0D, Hex 0E, Hex 0F,
Hex 10, Hex 11, Hex
12, Hex 13, Hex 14,
Hex 15, Hex 16, Hex
17, Hex 18, Hex 19,
Hex 1A, Hex 1B, Hex
1C, Hex 1D, Hex 1E,
Hex 1F, Hex 7F, Hold,
Hold clear, Hold set,
Home, Home down,
Home up, Insert,
Insert char, Insert
here, Insert line,
Insert mode, Invalid
key, KeyPad0,
KeyPad1, KeyPad2,
KeyPad3, KeyPad4,
KeyPad5, KeyPad6,
KeyPad7, KeyPad8,
KeyPad9, Left, Left
double, Line feed,
Minus, Monitor
toggle, New line,
Next page, Next
screen, Next word,
Nul, NumLock, PA1,
PA2, PA3, Page, Page
down, Page up, Pan
left, Pan right,
Partition jump, PF1,
PF2, PF3, PF4, Plus
Cr, Previous word,
PrevPage,
PrevScreen, Print,
PrevScreen, Print,
A RGUM EN T O P T IO N A L Print
A C C EPline,
T S Print Msg, DEFA ULT VA L UE DESC RIP T IO N
Prent screen,
Remove, Replace,
Reset, Return,
Reserve field, Right,
Right double, Roll
down, Roll up, Rile
line, Run script, Scroll
down, Scroll left,
Scroll right, Scroll up,
Select, Send, Send
answer back, Send
delete, Send line,
Send Msg,
Shift+Backspace,
Shift+Delete,
Shift+Down,
Shift+F1, Shift+F2,
Shift+F3, Shift+F4,
Shift+F5, Shift+F6,
Shift+F7, Shift+F8,
Shift+F9, Shift+F10,
Shift+F11, Shift+F12,
Shift+F13, Shift+F14,
Shift+F15, Shift F16,
Shift+F17, Shift+F18,
Shift+F19, Shift+F20,
Shift+Home,
Shift+Insert,
Shift+Left,
Shift+Print screen,
Shift+Right,
Shift+Up, Soft reset,
System request, Tab,
Tek zoom, Term next
page, Term prev
page, Test, Text assist
begin bold, Text assist
begin of line, Text
assist begin
underline, Text assist
bottom of page, Text
assist carrier return,
Text assist center, Text
assist end bold, Text
assist end of line, Text
assist half index
down, Text assist half
index up, Text assist
insert symbols, Text
assist next stop, Text
assist next text
column, Text assist
page end, Text assist
required space, Text
assist required tab,
Text assist stop, Text
assist text tab
advance, Text assist
top of page, Text
assist word underline,
Trace Toggle, Udk 10,
Udk 6, Udk 7, Udk 8,
Udk 9, Udk 11, Udk
12, Udk 13, Udk 14,
Udk 15, Udk 16, Udk
Udk 15, Udk 16, Udk
A RGUM EN T O P T IO N A L A17,
C CUdk
EP T S18, Udk 19, DEFA ULT VA L UE DESC RIP T IO N
Udk 20, Up, Up
double
Va r i a b l e s P r o d u c e d
Error communicating with the emulator Indicates a problem connecting to the emulator
Wait for text location N/A Screen, Field Screen The location to wait
for the text to appear
on
Get field by N/A Label, Index, Position Label Specifies the way by
which to look for the
field
NOTE
Power Automate's regular expression engine is .NET. You can find more information in Regular Expression Language -
Quick Reference.
Va r i a b l e s P r o d u c e d
Error communicating with the emulator Indicates a problem connecting to the emulator
Field index out of bounds Indicates that the field index is out of bounds
Field label not found Indicates that the field label doesn't exist
Screen position out of bounds Indicates that the screen position is out of bounds
No field found at the given position Indicates that no field exists at the given position
Position commands aren't supported by the emulator Indicates that position commands used aren't supported by
the emulator
Operation is unavailable for this session type Indicates that the operation is unavailable for this session
type
The action wherein the OCR engine is created contains the engine settings. These include the language and the
image width and height multipliers. The OCR engine variable can be used in any action containing OCR
capabilities.
WARNING
Image multipliers increase the size of the image to make searching and text extraction more effective. Please note that
setting values greater than 3 may lead to erroneous results.
OCR actions
If text on screen (OCR )
Marks the beginning of a conditional block of actions depending on whether a given text appears on the screen
or not, using OCR
In p u t P ar am et er s
OCR engine type No Windows OCR OCR engine variable The OCR engine type
engine, Tesseract to use. Select a
engine, OCR engine peconfigured OCR
variable engine or set up a
new one.
Search for text on N/A Entire screen, Entire screen Specifies whether to
Foreground window search for the
specified text on the
entine visible screen
or just the
foreground window
NOTE
Power Automate's regular expression engine is .NET. You can find more information in Regular Expression Language -
Quick Reference.
The OCR engine variable option is planned for deprecation.
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Can't check if text exists in non interactive mode Indicates that it isn't possible to check for the text on the
screen when in non-interactive mode
Invalid subregion coordinates Indicates that the specified subregion coordinates are invalid
Failed to analyze text with OCR Indicates an error occured while trying to analyze the text
using OCR
Failed to create the OCR engine Indicates an error occurred while trying to create the OCR
engine
Data path folder doesn't exist Indicates that the folder specified for the language data
doesn't exist
The selected Windows language pack isn't installed on the Indicates that the selected Windows language pack hasn't
machine been installed on the machine
OCR engine not alive Indicates that the OCR engine isn't alive
OCR engine type No Windows OCR OCR engine variable The OCR engine type
engine, Tesseract to use. Select a
engine, OCR engine peconfigured OCR
variable engine or set up a
new one.
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Search for text on N/A Entire screen, Entire screen Specifies whether to
Foreground window search for the
specified text on the
entine visible screen
or just the
foreground window
Fail with timeout N/A Boolean value False Specify whether you
error want the action to
wait indefinitely or
fail after a set time
period
NOTE
Power Automate's regular expression engine is .NET. You can find more information in Regular Expression Language -
Quick Reference.
The OCR engine variable option is planned for deprecation.
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Can't check if text exists in non interactive mode Indicates that it isn't possible to check for the text on the
screen when in non-interactive mode
EXC EP T IO N DESC RIP T IO N
Invalid subregion coordinates Indicates that the specified subregion coordinates are invalid
Failed to analyze text with OCR Indicates an error occured while trying to analyze the text
using OCR
Failed to create the OCR engine Indicates an error occurred while trying to create the OCR
engine
Data path folder doesn't exist Indicates that the folder specified for the language data
doesn't exist
The selected Windows language pack isn't installed on the Indicates that the selected Windows language pack hasn't
machine been installed on the machine
OCR engine not alive Indicates that the OCR engine isn't alive
Timeout error Indicates that the action failed after a set time period
OCR engine No Windows OCR OCR engine variable The OCR engine type
engine, Tesseract to use. Select a
engine, OCR engine preconfigured OCR
variable engine or set up a
new one.
Search mode N/A Whole of specified Whole of specified The selected mode
source, Specific source for the OCR
subregion only, operation
Subregion relative to
image
NOTE
The OCR engine variable option is planned for deprecation.
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to extract text with OCR Indicates an error occurred while trying to extract text with
OCR from the given source
Image file not found Indicates that the file doesn't exist on the given path
Landmark image not found Indicates that the landmark image doesn't exist
Can't get text from screen in non-interactive mode Indicates that it isn't possible to get text from screen when in
non-interactive mode
Failed to create the OCR engine Indicates an error occurred while trying to create the OCR
engine
Data path folder doesn't exist Indicates that the folder specified for the language data
doesn't exist
The selected Windows language pack isn't installed on the Indicates that the selected Windows language pack hasn't
machine been installed on the machine
OCR engine not alive Indicates that the OCR engine isn't alive
Cryptography
1/15/2022 • 7 minutes to read • Edit Online
Hash text
Apart from encryption and decryption, the Cr yptography group of actions provides actions to hash values
with and without a key. Like the encryption actions, you can hash values from files using the Hash from file
and Hash from file with key actions.
Cryptography actions
Encrypt text with AES
Encrypt a string with AES, using a key and a specified encoding format
In p u t P ar am et er s
Key size N/A 128 bits, 192 bits, 256 bits The size of the key in
256 bits bits to use for the
encryption
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Key size N/A 128 bits, 192 bits, 256 bits The size of the key in
256 bits bits to use for the
decryption
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Key size N/A 128 bits, 192 bits, 256 bits The size of the key in
256 bits bits to use for the
encryption
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
EncryptedText Text value The text of the encrypted file for later
processing
Ex c e p t i o n s
Failed to encrypt the contents of the file Indicates that an error occurred while encrypting the
contents of the file
If file exists N/A Overwrite, Don't Add sequential suffix Specifies what to do
decrypt to file, Add in case the
sequential suffix destination file
already exists
Key size N/A 128 bits, 192 bits, 256 bits The size of the key in
256 bits bits to use for
decryption
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to decrypt and store the contents to a file Indicates that an error occurred while decrypting or storing
the contents to the specified file
Hash text
Hash a string, using a specified algorithm and an encoding format
In p u t P ar am et er s
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to hash the file Indicates that an error occurred while hashing the contents
of the file
Hash algorithm N/A HMAC SHA256, HMAC SHA256 The algorithm to use
HMAC SHA384, for hashing
HMAC SHA512
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to hash text with key Indicates that an error occurred during hashing with key
Hash algorithm N/A HMAC SHA256, HMAC SHA256 The algorithm to use
HMAC SHA384, for hashing
HMAC SHA512
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
EXC EP T IO N DESC RIP T IO N
Failed to hash the file with key Indicates that an error occurred while hashing the contents
of the file with the specified key
Windows services
1/15/2022 • 3 minutes to read • Edit Online
If service
Start service
Stop service
Pause service
Resume service
NOTE
Please note that Windows services are essential to the smooth operation of the operating system. Managing Windows
services incorrectly could adversely affect your PC.
Va r i a b l e s P r o d u c e d
Can't retrieve status for service Indicates that there is a problem retrieving the status of the
service
Wait for service to N/A Stop, Start, Pause Start Specifies whether the
flow pauses until a
certain service starts,
stops or pauses
Va r i a b l e s P r o d u c e d
Can't retrieve status for service Indicates that there is a problem retrieving the status of the
service
Start service
Start a stopped Windows service
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Can't start service Indicates that there is a problem starting the service
Stop service
Stop a running Windows service
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Can't stop service Indicates that there is a problem stopping the service
Pause service
Pause a running Windows service
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Can't pause service Indicates that there is a problem pausing the service
Resume service
Resume a paused Windows service
In p u t P ar am et er s
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Can't resume service Indicates that there is a problem resuming the service
XML
1/15/2022 • 7 minutes to read • Edit Online
To retrieve an attribute from an XML file, use the Get XML attribute action. Note the example that follows and
the format of the XPath query. In the XML file, status is an attribute of client , which is an element of clientlist .
The value will be obtained as a text value.
Similarly, to retrieve element values, use the Get XML element value action. Elements and attributes can be
managed by using the respective action to get, set or remove XML attributes or elements.
XML actions
Read XML from file
Read the contents of an XML file into a variable
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
XmlDocument XML node The variable that holds the read XML
document
Ex c e p t i o n s
File doesn't contain a valid XML document Indicates that the file doesn't contain a valid XML document
Va r i a b l e s P r o d u c e d
Get first value only: N/A Boolean value False Specifies whether to
retrieve a single value
(the first value only)
or all the values that
match the provided
XPath expression
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Invalid XML document provided Indicates that the XML document provided is invalid
Invalid XPath expression provided Indicates that the XPath expression provided is invalid
Get XML element attribute
Get the value of an attribute of an XML element
In p u t P ar am et er s
Get value as: N/A Text value, Numeric Text value Specifies the data
value, Datetime type for the attribute
value, Boolean value value
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Invalid XPath expression provided Indicates that the XPath expression provided is invalid
XPath expression returns no element Indicates that the XPath expression returns no element
Attribute not found in element Indicates that the attribute doesn't exist in the element
Failed to convert attribute value to the requested data type Indicates a problem converting the attribute value to the
requested data type
Va r i a b l e s P r o d u c e d
Invalid XPath expression provided Indicates that the XPath expression provided is invalid
XPath expression returns no element Indicates that the XPath expression returns no element
Failed to set XML attibute Indicates a problem setting the XML attibute
Va r i a b l e s P r o d u c e d
Invalid XPath expression provided Indicates that the XPath expression provided is invalid
EXC EP T IO N DESC RIP T IO N
XPath expression returns no element Indicates that the XPath expression returns no element
Attribute not found in element Indicates that the attribute doesn't exist in the element
Failed to remove XML attibute Indicates a problem removing the XML attibute
Get value as: N/A Text value, Numeric Text value Specifies the data
value, Datetime type for the XML
value, Boolean value element value
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Invalid XPath expression provided Indicates that the XPath expression provided is invalid
XPath expression returns no element Indicates that the XPath expression returns no element
Failed to convert element value to the requested data type Indicates a problem converting the element value to the
requested data type
XML element value: No Text value The new value for the
XML element
Va r i a b l e s P r o d u c e d
Invalid XPath expression provided Indicates that the XPath expression provided is invalid
XPath expression returns no element Indicates that the XPath expression returns no element
Failed to set element value Indicates a problem setting the element value
Va r i a b l e s P r o d u c e d
Invalid XPath expression provided Indicates that the XPath expression provided is invalid
XPath expression returns no element Indicates that the XPath expression returns no element
EXC EP T IO N DESC RIP T IO N
Failed to insert XML element Indicates a problem inserting the XML element
Va r i a b l e s P r o d u c e d
Invalid XPath expression provided Indicates that the XPath expression provided is invalid
Failed to remove XML element Indicates a problem removing the XML element
FTP
1/15/2022 • 14 minutes to read • Edit Online
Close connection
Synchronize directories
Upload files by using the Upload file(s) to FTP action by specifying the file and the remote location.
FTP actions
Open FTP connection
This action establishes a specific connection to a remote FTP server, and stores that connection as a variable for
later use.
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Va r i a b l e s P r o d u c e d
A RGUM EN T TYPE DESC RIP T IO N
Ex c e p t i o n s
Listing error Indicates that the listing of the folder couldn't be performed
Not connected error Indicates that there is no open connection with the FTP
server
Directory doesn't exist error Indicates that the directory couldn't be found
Secure FTP Protocol N/A SFTP, FTPS explicit, SFTP Choose the FTP
FTPS implicit protocol you wish to
use to encrypt your
connection
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Close connection
This action closes an open FTP connection
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Not connected error Indicates that there is no open connection with the FTP
server
Not connected error Indicates that there is no open connection with the FTP
server
Directory doesn't exist error Indicates that the directory couldn't be found
Can't change working directory error Indicates that it isn't possible to change the working
directory
Transfer type N/A Auto, Binary, ASCII Auto Enter ASCII or binary
to specify the
method for
downloading a single
file. If the file type is
uncertain, or more
than one is
dowloaded, choose
Auto to follow the
transfer rules
specified in options
Va r i a b l e s P r o d u c e d
Not connected error Indicates that there is no open connection with the FTP
server
Remote file doesn't exist error Indicates that the file doesn't exist on the FTP server
Directory doesn't exist error Indicates that the directory couldn't be found
FTP connection aborted error Indicates that the FTP connection was aborted
Can't download file error Indicates that it wasn't possible to download the file
Va r i a b l e s P r o d u c e d
Not connected error Indicates that there is no open connection with the FTP
server
Remote directory doesn't exist error Indicates that the directory doesn't exist on the FTP server
Directory doesn't exist error Indicates that the directory couldn't be found
FTP connection aborted error Indicates that the FTP connection was aborted
Can't download directory error Indicates that it wasn't possible to download the directory
Transfer type N/A Auto, Binary, ASCII Auto Enter ASCII or binary
to specify the
method for
downloading a single
file. If you're not sure
what type the file will
be, or if you are
downloading more
than one, choose
Auto to follow the
transfer rules
specified in Options
Not connected error Indicates that there is no open connection with the FTP
server
File not found error Indicates that the file wasn't found
FTP connection aborted error Indicates that the FTP connection was aborted
Va r i a b l e s P r o d u c e d
Not connected error Indicates that there is no open connection with the FTP
server
Remote directory doesn't exist error Indicates that the directory doesn't exist on the FTP server
FTP connection aborted error Indicates that the FTP connection was aborted
Va r i a b l e s P r o d u c e d
Not connected error Indicates that there is no open connection with the FTP
server
File not found error Indicates that the file wasn't found
Can't delete file error Indicates that the deletion of the file wasn't possible
Va r i a b l e s P r o d u c e d
Not connected error Indicates that there is no open connection with the FTP
server
Can't rename file error Indicates that it wasn't possible to rename the file
File not found error Indicates that the file wasn't found
Va r i a b l e s P r o d u c e d
Access denied error Indicates that this account doesn't have access for an
operation
Create directory error Indicates that it wasn't possible creating the directory
Directory doesn't exist error Indicates that the directory couldn't be found
Not connected error Indicates that there is no open connection with the FTP
server
Va r i a b l e s P r o d u c e d
Delete directory error Indicates that it wasn't possible to delete the directory
Remote directory doesn't exist error Indicates that the directory doesn't exist on the FTP server
Working directory change error Indicates that the working directory couldn't be changed
Not connected error Indicates that there is no open connection with the FTP
server
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Invoke commad error Indicates that an error occured while invoking an FTP
command
Not connected error Indicates that there is no open connection with the FTP
server
Synchronize directories
Synchronize the files and subdirectories of a given Folder with a given remote FTP directory
In p u t P ar am et er s
Synchronization N/A Remote -> local Remote -> local Direction of the
direction (Download), Local -> (Download) Synchronization
remote (Upload) method. Whether the
local folder will be
synchronized to the
remote directory
(DOWNLOAD) or the
remote directory will
be synchronized to
the local folder
(UPLOAD)
Files to sync N/A All files, Only files All files Choose whether you
matching the file want to synchronize
filter, Only files not all files, or you want
matching the file to use a file filter to
filter include or exclude a
specific set of files
Delete if source is N/A Boolean value False This option will delete
absent a file or folder which
exists in the target
directory and not the
source.
Va r i a b l e s P r o d u c e d
FtpFilesAdded List of FTP Files List of FTP files that initially existed in
the source and after the syncronzation
process were added to the target.
FtpFilesModified List of FTP Files List of FTP files that initially existed in
both the source and the target and
after the syncronzation process were
added to the target.
FtpFilesDeleted List of FTP Files List of FTP files that initially existed in
the target directory and after the
synchronzation process were deleted.
Ex c e p t i o n s
Listing error Indicates that the listing of the folder couldn't be performed
Not connected error Indicates that there is no open connection with the FTP
server
File not found error Indicates that the file wasn't found
FTP connection aborted error Indicates that the FTP connection was aborted
Remote file doesn't exist error Indicates that the file doesn't exist on the FTP server
Can't download file error Indicates that it wasn't possible to download the file
Delete directory error Indicates that it wasn't possible to delete the directory
Synchronization failed error Indicates that the synchronization process failed due to an
unexpected error.
CyberArk
1/15/2022 • 2 minutes to read • Edit Online
NOTE
To retrieve credentials from CyberArk, Power Automate issues web requests to CyberArk’s Central Credential Provider web
service (AIMWebService).
To find the required information to populate the action, see the following instructions:
Application ID : To find the application ID, open CyberArk Password Vault on a web browser and
navigate to the Applications tab.
Safe : Populate the name of the safe displayed in PrivateArk Client.
Folder and Object : Select a safe in PrivateArk Client and populate the folder name displayed on the left
pane and the object name displayed in the main list.
CyberArk actions
Get password from CyberArk
Retrieves a password for a specific application from CyberArk
In p u t P ar am et er s
Extra data Yes Text value The extra data (if any)
for the web request's
query
Certificate location N/A Don't use certificate, Don't use certificate Specifies how to load
Load certificate from (if needed) the
Windows Store, Load certificate for the
certificate from file request
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to send web request Indicates a problem sending the web request
Error response from web request Indicates that the web request returned an error response
Active Directory
1/15/2022 • 15 minutes to read • Edit Online
Create group
Modify group
Create object
Delete object
Move object
Rename object
Create user
Modify user
Unlock user
Connect to server
Close connection
LDAP://DC=contoso,DC=demo
When working with groups, objects or users, their location will be required. The Location field should specify the
container as well as the domain controllers and have the following format:
CN=Users,DC=contoso,DC=demo
After getting all the distinguished names using the dsquer y user command, enter the distinguished name in
the following format (nvarga being the username):
CN=nvarga,CN=Users,DC=contoso,DC=demo
Note that if the container name contains a comma, the name should be contained within double quotes. e.g.:
CN=Varga, Norber t should be formatted like so:
CN="Varga, Norbert",DC=contoso,DC=com
Va r i a b l e s P r o d u c e d
The server isn't operational Indicates that the Active Directory server isn't operational
Active Directory entry not found Indicates that the Active Directory entry given isn't found on
the Active Directory server
Object already exists Indicates that an object with the specified name already
exists in the Active Directory
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
The server isn't operational Indicates that the Active Directory server isn't operational
Active Directory entry not found Indicates that the Active Directory entry given isn't found on
the Active Directory server
Object doesn't exist on server Indicates that the object doesn't exist in the Active Directory
server
Va r i a b l e s P r o d u c e d
GroupMembers List of Group members The variable that holds the members
of the group
Ex c e p t i o n s
The server isn't operational Indicates that the Active Directory server isn't operational
Active Directory entry not found Indicates that the Active Directory entry given isn't found on
the Active Directory server
Object doesn't exist on server Indicates that the object doesn't exist in the Active Directory
server
Modify group
Modifies a group in the Active Directory
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
The server isn't operational Indicates that the Active Directory server isn't operational
Active Directory entry not found Indicates that the Active Directory entry given isn't found on
the Active Directory server
Object doesn't exist on server Indicates that the object doesn't exist in the Active Directory
server
Object already exists Indicates that an object with the specified name already
exists in the Active Directory
Ex a m p l e
In the following example, the Modify group action is used to add the user nvarga to the RPATest group.
Object
Create or manipulate an object in an Active Directory server
Create object
Creates an object in the Active Directory
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
The server isn't operational Indicates that the Active Directory server isn't operational
Active Directory entry not found Indicates that the Active Directory entry given isn't found on
the Active Directory server
Object already exists Indicates that an object with the specified name already
exists in the Active Directory
Delete object
Deletes an object in the Active Directory
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
The server isn't operational Indicates that the Active Directory server isn't operational
Active Directory entry not found Indicates that the Active Directory entry given isn't found on
the Active Directory server
Object doesn't exist on server Indicates that the object doesn't exist in the Active Directory
server
Move object
Moves an object in the Active Directory
In p u t P ar am et er s
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
The server isn't operational Indicates that the Active Directory server isn't operational
Active Directory entry not found Indicates that the Active Directory entry given isn't found on
the Active Directory server
Object doesn't exist on server Indicates that the object doesn't exist in the Active Directory
server
Location can't be empty Indicates that an Active Directory object location is empty
Rename object
Renames an object in the Active Directory
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
This action doesn't produce any variables
Ex c e p t i o n s
The server isn't operational Indicates that the Active Directory server isn't operational
Active Directory entry not found Indicates that the Active Directory entry given isn't found on
the Active Directory server
Object doesn't exist on server Indicates that the object doesn't exist in the Active Directory
server
Object already exists Indicates that an object with the specified name already
exists in the Active Directory
User
Create, modify and get information about a user in an Active Directory server
Create user
Creates a user in the Active Directory
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
The server isn't operational Indicates that the Active Directory server isn't operational
Active Directory entry not found Indicates that the Active Directory entry given isn't found on
the Active Directory server
Object already exists Indicates that an object with the specified name already
exists in the Active Directory
Couldn't set or update password Indicates a problem setting or updating the user's password
Ex a m p l e
The following figure is an example of creating a user. The user's name is Norbert Varga and their username is
nvarga. The user is created in the Users container, an the domain controllers contoso and demo are specified in
the location as well.
Get user info
Gets a user's information in the Active Directory
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
The server isn't operational Indicates that the Active Directory server isn't operational
Active Directory entry not found Indicates that the Active Directory entry given isn't found on
the Active Directory server
Object doesn't exist on server Indicates that the object doesn't exist in the Active Directory
server
Modify user
Modify a user in the Active Directory
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
The server isn't operational Indicates that the Active Directory server isn't operational
Active Directory entry not found Indicates that the Active Directory entry given isn't found on
the Active Directory server
Object doesn't exist on server Indicates that the object doesn't exist in the Active Directory
server
Object already exists Indicates that an object with the specified name already
exists in the Active Directory
Couldn't set or update password Indicates a problem setting or updating the user's password
Unlock user
Unlocks an Active Directory user
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
The server isn't operational Indicates that the Active Directory server isn't operational
Active Directory entry not found Indicates that the Active Directory entry given isn't found on
the Active Directory server
Object doesn't exist on server Indicates that the object doesn't exist in the Active Directory
server
The email of the user Yes Text value The email of the user
Va r i a b l e s P r o d u c e d
The server isn't operational Indicates that the Active Directory server isn't operational
Active Directory entry not found Indicates that the Active Directory entry given isn't found on
the Active Directory server
Object doesn't exist on server Indicates that the object doesn't exist in the Active Directory
server
Couldn't set or update password Indicates a problem setting or updating the user's password
Connect to server
Connects to an Active Directory server
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
The server isn't operational Indicates that the Active Directory server isn't operational
Close connection
Closes the connection with the Active Directory server
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Describe instances
Create snapshot
Describe snapshots
Delete snapshot
Create volume
Attach volume
Detach volume
Describe volumes
Delete volume
Power Automate enables users to handle EC2 instances, volumes, and snapshots through the AWS group of
actions.
Before deploying any AWS action, create a new EC2 session using the Create EC2 session action.
To use a credentials file for authentication, disable Access keys and populate Profile name and Profile
location . If you don't want to reference a profile name explicitly, choose default in the Profile name field to
use the default profile.
Alternatively, enable Access keys and populate the access key ID, the secret access key, and the region
constraint specifying the endpoint.
After creating the session and deploying all the needed AWS actions, use the End EC2 session action to
terminate the EC2 session.
AWS actions
EC2
Connect to Amazon EC2 and manage instances, EBS volumes and EBS snapshots
Instances
Start, stop, reboot and get information for an EC2 instance
Start EC2 instance
Start EC2 instance(s)
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
StartingEc2Instances List of Instance state changes The returned information for the
started instances
Ex c e p t i o n s
Insufficient capacity Indicates that there isn't enough capacity to fulfill the
request
EXC EP T IO N DESC RIP T IO N
Amazon service request failed Indicates that the request to AWS failed
Va r i a b l e s P r o d u c e d
StoppingEc2Instances List of Instance state changes The returned information for the
stopped instances
Ex c e p t i o n s
Amazon service request failed Indicates that the request to AWS failed
Reboot EC2 instance
Reboot EC2 instance(s)
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Incorrect state for the request Indicates that the resource is in an incorrect state for the
request. This can occur if there is an attempt to attach a
volume that is still being created (ensure that the volume is
'available') or detach a volume that isn't attached
Amazon service request failed Indicates that the request to AWS failed
Va r i a b l e s P r o d u c e d
A RGUM EN T TYPE DESC RIP T IO N
Ec2InstancesInfo List of EC2 instances info The list of the EC2 instances
Ex c e p t i o n s
Amazon service request failed Indicates that the request to AWS failed
Describe instances
Returns all the information for the specified EC2 instance(s)
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ec2Instances List of EC2 instances The retrieved instance(s) with all the
relevant information
Ex c e p t i o n s
Amazon service request failed Indicates that the request to AWS failed
Snapshots
Create or delete an EBS snapshot and get related information
Create snapshot
Create a snapshot of an EBS volume and stores it in Amazon S3
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Invalid volume Indicates that either the volume ID isn't valid, or the
specified volume doesn't exist
Resource's limit is exceeded Indicates that the limit for the specified resource is reached
Amazon service request failed Indicates that the request to AWS failed
Describe snapshots
Describes the specified EBS snapshots available
In p u t P ar am et er s
Owner IDs Yes List of Text values The owner IDs who
own the snapshots
Restorable by user Yes List of Text values The IDs of the AWS
IDs accounts that can
create volumes from
the snapshot
Va r i a b l e s P r o d u c e d
EBSSnapshots List of EBS snapshots The retrieved snapshot(s) with all the
relevant information
Ex c e p t i o n s
Invalid user ID Indicates that the specified user or owner isn't valid
Amazon service request failed Indicates that the request to AWS failed
Delete snapshot
Delete the specified snapshot
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
The resource is in use Indicates that the operation can't be completed because the
resource is in use
Amazon service request failed Indicates that the request to AWS failed
Volumes
Create, attach, detach or delete an EBS volume and get related information
Create volume
Create an EBS volume
In p u t P ar am et er s
Volume type N/A Gp2, Standard, Io1, Gp2 The type of the
Sc1, St1 volume
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Invalid parameter Indicates that a parameter specified in the request isn't valid,
unsupported, or can't be used
Invalid zone Indicates that the specified availability zone doesn't exist, or
isn't available to use
Resource's limit is exceeded Indicates that the limit for the specified resource is reached
Volume type isn't supported in sthe pecified zone Indicates that the specified availability zone doesn't support
provisioned IOPS SSD volumes
Amazon service request failed Indicates that the request to AWS failed
Attach volume
Attach an EBS volume to an EC2 instance
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Invalid parameter Indicates that a parameter specified in the request isn't valid,
unsupported, or can't be used
Invalid volume Indicates that either the volume ID isn't valid, or the
specified volume doesn't exist
The resource is in use Indicates that the operation can't be completed because the
resource is in use
Amazon service request failed Indicates that the request to AWS failed
Detach volume
Detach an EBS volume from an EC2 instance
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Invalid parameter Indicates that a parameter specified in the request isn't valid,
unsupported, or can't be used
Incorrect state for the request Indicates that the resource is in an incorrect state for the
request. This can occur if there is an attempt to attach a
volume that is still being created (ensure that the volume is
'available') or detach a volume that isn't attached
Amazon service request failed Indicates that the request to AWS failed
Describe volumes
Describe the specified EBS volumes
In p u t P ar am et er s
Describe volumes N/A All volumes, Volumes All volumes Specifies whether to
mode of the specified describe all volumes,
instance, Volumes volumes specified by
with the specified IDs ID or volumes of an
instance
Va r i a b l e s P r o d u c e d
EBSVolumes List of EBS volumes The retrieved EBS volumes with all the
relevant information
Ex c e p t i o n s
Invalid parameter Indicates that a parameter specified in the request isn't valid,
unsupported, or can't be used
Amazon service request failed Indicates that the request to AWS failed
Delete volume
Delete the specified EBS volume
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Invalid parameter Indicates that a parameter specified in the request isn't valid,
unsupported, or can't be used
Invalid volume Indicates that either the volume ID isn't valid, or the
specified volume doesn't exist
Incorrect state for the request Indicates that the resource is in an incorrect state for the
request. This can occur if there is an attempt to attach a
volume that is still being created (ensure that the volume is
'available') or detach a volume that isn't attached
The resource is in use Indicates that the operation can't be completed because the
resource is in use
Amazon service request failed Indicates that the request to AWS failed
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Profile doesn't exist Indicates that the specified profile doesn't exist
Invalid profile Indicates that the specified profile isn't correctly configured
Create session failed Indicates that the creation of EC2 client failed
Va r i a b l e s P r o d u c e d
Connect to Azure Cloud and automate the management of resources like virtual machines, disks, snapshots and
resource groups
Get disks
Attach disk
Detach disk
Delete disk
Get snapshots
Create snapshot
Delete snapshot
Create session
Get subscriptions
End session
Power Automate allows you to manage Azure virtual machines through the Azure group of actions.
To implement Azure functionality in your desktop flows, create a new Azure session using the Create session
action.
This action requires you to populate the Client ID that works as an authentication key for the specific
application and the respective password. Additionally, populate the Tenant ID that is the Azure Active Directory
in which you've created the application.
Lastly, choose the environment you want to use for authentication and populate the Subscription ID . The
subscription ID is a GUID that uniquely identifies your subscription to Azure services.
Apart from manual configuration, you can select With file in Authentication type and use a file containing all
the required information.
After creating the session and deploying all the needed Azure actions, use the End session action to terminate
the Azure session.
Azure actions
Resource groups
Connect to Azure Cloud and manage resource groups
Get resource groups
Gets the resource groups based on the specified criteria
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to get the resource groups with the specified criteria Indicates that getting the resource groups with the specified
criteria failed
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Resource group already exists Indicates that the resource group already exists and can't be
created
Failed to create resource group Indicates that creating the resource group failed
Va r i a b l e s P r o d u c e d
Failed to delete the resource group Indicates that deleting the resource group failed
Virtual machines
Connect to Azure Cloud and manage virtual machines, disks and snapshots
Disks
Connect to Azure Cloud and manage disks
Get disks
Gets the disks based on the specified criteria
In p u t P ar am et er s
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Retrieve disks N/A All, With the specified All Specify which disks to
resource group, With retrieve
the specified name in
all resource groups,
With specific name in
the specified resource
group
Va r i a b l e s P r o d u c e d
Disks List of Azure managed disks The retrieved disks with all the related
information
Ex c e p t i o n s
Disk wasn't found Indicates that the disk with the specified criteria doesn't exist
Resource group wasn't found Indicates that the specified resource group wasn't found
Failed to get the disks with the specified criteria Indicates that getting the disks with the specified criteria
failed
Attach disk
Attaches an existing disk to the virtual machine with the specified name and resource group
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Disk wasn't found Indicates that the disk with the specified criteria doesn't exist
Both unmanaged and managed disk can't exist together in a Indicates that the attachment failed because both
VM unmanaged and managed disk can't exist together in a VM
Failed to attach the disk Indicates that the disk attachment failed
Detach disk
Detaches the disk from the virtual machine with the specified name and resource group
In p u t P ar am et er s
Failed to detach because the disk isn't attached to the Indicates that the detachment failed because the disk isn't
specified VM attached to the specified VM
Resource group N/A Use existing , Create Use existing Specify whether a
option new new resource group
will be created or an
existing one will be
used
Storage account type N/A Standard HDD, Standard HDD The disk type
Premium SSD,
Standard SSD, Ultra
disk SSD
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Resource group already exists Indicates that the resource group already exists and can't be
created
Resource group wasn't found Indicates that the specified resource group wasn't found
The resource with the specified name already exists Indicates that the resource with the specified name already
exists
Snapshot wasn't found Indicates that the specified snapshot wasn't found
Delete disk
Deletes the managed disk with the specified name and resource group
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Disk wasn't found Indicates that the disk with the specified criteria doesn't exist
Failed to delete the disk because it is attached to a VM Indicates a problem deleting the disk because it is attached
to a VM
Snapshots
Connect to Azure Cloud and manage snapshots
Get snapshots
Gets the snapshots based on the specified criteria
In p u t P ar am et er s
Retrieve snapshots N/A All, With the specified All Specify which
resource group, With snapshots to retrieve
the specified name in
all resource groups,
With specific name in
the specified resource
group
Va r i a b l e s P r o d u c e d
Snapshots List of Azure snapshots The retrieved snapshots with all the
related information
Ex c e p t i o n s
Snapshot wasn't found Indicates that the specified snapshot wasn't found
Resource group wasn't found Indicates that the specified resource group wasn't found
Failed to get the snapshots with the specified criteria Indicates that getting the snapshots with the specified
criteria failed
Create snapshot
Creates a snapshot from the specified disk
In p u t P ar am et er s
Resource group N/A Use existing , Create Use existing Specifies whether a
option new new resource group
will be created or an
existing one will be
used
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Resource group already exists Indicates that the resource group already exists and can't be
created
Resource group wasn't found Indicates that the specified resource group wasn't found
The resource with the specified name already exists Indicates that the resource with the specified name already
exists
Disk wasn't found Indicates that the disk with the specified criteria doesn't exist
Delete snapshot
Deletes the snapshot with the specified name and resource group
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Snapshot wasn't found Indicates that the specified snapshot wasn't found
Va r i a b l e s P r o d u c e d
VirtualMachinesInfo List of Azure virtual machine info The retrieved virtual machines with
basic information
Ex c e p t i o n s
Resource group wasn't found Indicates that the specified resource group wasn't found
EXC EP T IO N DESC RIP T IO N
Failed to get the VMs with basic information Indicates that getting the VMs with basic information failed
Describe virtual N/A All, With the specified All Specify which virtual
machines resource group, With machines to describe
the specified name in
all resource groups,
With specific name in
the specified resource
group
Va r i a b l e s P r o d u c e d
VirtualMachines List of Azure virtual machines The retrieved virtual machines with all
the related information
Ex c e p t i o n s
Resource group wasn't found Indicates that the specified resource group wasn't found
Failed to get basic information of the VM(s) Indicates that getting basic information of the VM(s) failed
Va r i a b l e s P r o d u c e d
Failed to start the VM Indicates that an error occurred while trying to start the VM
Va r i a b l e s P r o d u c e d
Failed to stop the VM Indicates that an error occurred while trying to stop the VM
Va r i a b l e s P r o d u c e d
Failed to shut down the VM Indicates an error occured while trying to shut down the VM
Va r i a b l e s P r o d u c e d
Failed to restart the VM Indicates that an error occurred while trying to restart the
VM
Create session
Creates an Azure session
In p u t P ar am et er s
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Authentication type N/A With service With service principal Specify the way to
principal, With file authenticate
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to create Azure client Indicates that creating the Azure client failed
Get subscriptions
Gets subscriptions that the current account can access
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
A RGUM EN T TYPE DESC RIP T IO N
Subscriptions List of Azure subscriptions The retrieved subscriptions with all the
related information
Ex c e p t i o n s
Failed to get the subscriptions with the specified criteria Indicates that getting the subscriptions with the specified
criteria failed
End session
Ends an Azure session
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Analyze sentiment
Analyze entities
Analyze syntax
Label detection
Landmark detection
Text Detection
Logo detection
Document type N/A Plain text, HTML Plain text The type of
document to
transmit
Provide document N/A From file, From GCS From file Specify whether the
document will be
provided by a full
path or a Google
Cloud Storage URI
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Request timeout expired Indicates that the timeout expired while performing the
request
Analyze entities
Invokes the Google Cloud Natural Language service named 'Analyze Entities'
In p u t P ar am et er s
Document type N/A Plain text, HTML Plain text The type of the
document to
transmit
Provide file N/A From file, From GCS From file Specify whether the
document will be
provided by a full
path or a Google
Cloud Storage URI
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Request timeout expired Indicates that the timeout expired while performing the
request
Analyze syntax
Invokes the Google Cloud Natural Language service named 'Analyze Syntax'
In p u t P ar am et er s
Document type N/A Plain text, HTML Plain text The type of
document to
transmit
Provide document N/A From file, From GCS From file Specify whether the
document will be
provided by a full
path or a Google
Cloud Storage URI
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Request timeout expired Indicates that the timeout expired while performing the
request
Vision
Assign labels to images and classify them into predefined categories. Detect objects, faces, and read printed and
handwritten text
Label detection
Invokes the Google Cloud Vision service named 'Label Detection'
In p u t P ar am et er s
Provide image N/A From file, From GCS From file Specify whether the
image will be
provided by a full
path or a Google
Cloud Storage URI
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Request timeout expired Indicates that the timeout expired while performing the
request
Landmark detection
Invokes the Google Cloud Vision service named 'Landmark Detection'
In p u t P ar am et er s
Provide image N/A From file, From GCS From file Specify whether the
image will be
provided by a full
path or a Google
Cloud Storage URI
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Request timeout expired Indicates that the timeout expired while performing the
request
Text Detection
Invokes the Google Cloud Vision service named 'Text Detection'
In p u t P ar am et er s
Provide image N/A From file, From GCS From file Specify whether the
image will be
provided by a full
path or a Google
Cloud Storage URI
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Request timeout expired Indicates that the timeout expired while performing the
request
Logo detection
Invokes the Google Cloud Vision service named 'Logo Detection'
In p u t P ar am et er s
Provide image N/A From file, From GCS From file Specify whether the
image will be
provided by a full
path or a Google
Cloud Storage URI
Va r i a b l e s P r o d u c e d
A RGUM EN T TYPE DESC RIP T IO N
Ex c e p t i o n s
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Request timeout expired Indicates that the timeout expired while performing the
request
Provide image N/A From file, From GCS From file Specify whether the
image will be
provided by a full
path or a Google
Cloud Storage URI
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
EXC EP T IO N DESC RIP T IO N
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Request timeout expired Indicates that the timeout expired while performing the
request
Provide image N/A From file, From GCS From file Specify whether the
image will be
provided by a full
path or a Google
Cloud Storage URI
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Request timeout expired Indicates that the timeout expired while performing the
request
IBM cognitive
1/15/2022 • 6 minutes to read • Edit Online
Convert document
Translate
Identify language
Analyze tone
Classify Image
Conversion target N/A Answer units, Answer units The output format of
Normalized HTML, the conversion
Normalized text
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Request timeout expired Indicates that the timeout expired while performing the
request
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Language translator
Translate documents, apps, and webpages
Translate
Invokes the IBM service named 'Translate'
In p u t P ar am et er s
Translate mode N/A Model ID, Source and Model ID Specify the mode to
target be used for this call
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Request timeout expired Indicates that the timeout expired while performing the
request
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Identify language
Invokes the IBM service named 'Identify Language'
In p u t P ar am et er s
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Request timeout expired Indicates that the timeout expired while performing the
request
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Tone analyzer
Detect emotional and language tones in written text
Analyze tone
Invokes the IBM service named 'Analyze Tone'
In p u t P ar am et er s
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Provide text N/A From text, From file From text Specify how the text
to be analyzed will be
provided
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
EXC EP T IO N DESC RIP T IO N
Request timeout expired Indicates that the timeout expired while performing the
request
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Visual recognition
Find meaning in visual content. Analyze images for scenes, objects, and other content
Classify Image
Invokes the IBM service named 'Classify Image'
In p u t P ar am et er s
Provide image N/A From file, From GCS From file Specify how the
image will be
provided
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Request timeout expired Indicates that the timeout expired while performing the
request
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Microsoft cognitive
1/15/2022 • 8 minutes to read • Edit Online
Spell check
Analyze image
Describe image
OCR
Tag image
Detect language
Key phrases
Sentiment
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Request timeout expired Indicates that the timeout expired while performing the
request
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Computer vision
Analyze images and extract data
Analyze image
Invokes the Microsoft Cognitive service named 'Analyze Image'
In p u t P ar am et er s
Server location N/A West US, West US 2, West US The server location
East US, East US 2, to be use for this API
West Central US, call
South Central US,
West Europe, North
Europe, Southeast
Asia, East Asia,
Australia East, Brazil
South, Canada
Central, Central India,
UK South, Japan East
Provide image N/A From file, From GCS From file Specify whether the
image will be
provided by a full
path or a URL
address
A RGUM EN T O P T IO N A L A C C EP T S DEFA ULT VA L UE DESC RIP T IO N
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Request timeout expired Indicates that the timeout expired while performing the
request
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Describe image
Invokes the Microsoft Cognitive service named 'Describe Image'
In p u t P ar am et er s
Server location N/A West US, West US 2, West US The server location
East US, East US 2, to be use for this API
West Central US, call
South Central US,
West Europe, North
Europe, Southeast
Asia, East Asia,
Australia East, Brazil
South, Canada
Central, Central India,
UK South, Japan East
Provide image N/A From file, From GCS From file Specify whether the
image will be
provided by a full
path or a URL
address
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
EXC EP T IO N DESC RIP T IO N
Request timeout expired Indicates that the timeout expired while performing the
request
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
OCR
Invokes the Microsoft Cognitive service named 'OCR'
In p u t P ar am et er s
Server location N/A West US, West US 2, West US The server location
East US, East US 2, to be use for this API
West Central US, call
South Central US,
West Europe, North
Europe, Southeast
Asia, East Asia,
Australia East, Brazil
South, Canada
Central, Central India,
UK South, Japan East
Provide image N/A From file, From GCS From file Specify whether the
image will be
provided by a full
path or a URL
address
Ex c e p t i o n s
Request timeout expired Indicates that the timeout expired while performing the
request
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Tag image
Invokes the Microsoft Cognitive service named 'Tag Image'
In p u t P ar am et er s
Server location N/A West US, West US 2, West US The server location
East US, East US 2, to be use for this API
West Central US, call
South Central US,
West Europe, North
Europe, Southeast
Asia, East Asia,
Australia East, Brazil
South, Canada
Central, Central India,
UK South, Japan East
Provide image N/A From file, From GCS From file Specify whether the
image will be
provided by a full
path or a URL
address
Ex c e p t i o n s
Request timeout expired Indicates that the timeout expired while performing the
request
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Text Analytics
Detect sentiment, key phrases, named entities and language from text
Detect language
Invokes the Microsoft Cognitive service named 'Text Analytics - Detect Language'
In p u t P ar am et er s
Server location N/A West US, West US 2, West US The server location
East US, East US 2, to be use for this API
West Central US, call
South Central US,
West Europe, North
Europe, Southeast
Asia, East Asia,
Australia East, Brazil
South, Canada
Central, Central India,
UK South, Japan East
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Request timeout expired Indicates that the timeout expired while performing the
request
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Key phrases
Invokes the Microsoft Cognitive service named 'Text Analytics - Key Phrases'
In p u t P ar am et er s
Server location N/A West US, West US 2, West US The server location
East US, East US 2, to be use for this API
West Central US, call
South Central US,
West Europe, North
Europe, Southeast
Asia, East Asia,
Australia East, Brazil
South, Canada
Central, Central India,
UK South, Japan East
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
EXC EP T IO N DESC RIP T IO N
Request timeout expired Indicates that the timeout expired while performing the
request
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Sentiment
Invokes the Microsoft Cognitive service named 'Text Analytics - Sentiment'
In p u t P ar am et er s
Server location N/A West US, West US 2, West US The server location
East US, East US 2, to be use for this API
West Central US, call
South Central US,
West Europe, North
Europe, Southeast
Asia, East Asia,
Australia East, Brazil
South, Canada
Central, Central India,
UK South, Japan East
Va r i a b l e s P r o d u c e d
Ex c e p t i o n s
Request timeout expired Indicates that the timeout expired while performing the
request
EXC EP T IO N DESC RIP T IO N
Failed to Invoke cognitive services Indicates a problem while trying to invoke Cognitive Services
Process migrator for Softomotive products (preview)
1/15/2022 • 10 minutes to read • Edit Online
IMPORTANT
From January 1st 2022, WinAutomation and ProcessRobot will no longer be supported. Learn more about the
Softomotive products deprecation here. You may migrate your flows to Power Automate.
Process migrator for Softomotive products (preview) enables users to convert automations into desktop flows
for use in Power Automate.
This migration utility redefines automations to their equivalent Power Automate desktop flow action definitions
where such parity exists.
Some actions have been deprecated because they don't fit into the Power Platform ecosystem. However,
workarounds should be applicable to overcome what appears to be missing functionality.
NOTE
You can find the full list of migration coverage regarding action groups in the release notes here.
Prerequisites
For Process migrator for Softomotive products (preview) to be able to install and function as expected, the
following Prerequisites are needed:
WinAutomation users:
The latest publicly available version of Power Automate for desktop installed
WinAutomation installed (v6 and later)
Access to a Power Automate environment
ProcessRobot users:
The latest publicly available version of Power Automate for desktop installed
Access to a Power Automate environment. Follow the get started documentation if you haven't already
provisioned an environment
Exported ProcessRobot process files (.prp) into a folder on the same machine as the migration utility and
Power Automate for desktop
In the displayed dialog, select an installation path and accept Microsoft's terms of use.
Now, you can run the Process migrator for Softomotive products (preview).
Running Process migrator for Softomotive products (preview)
1. After launching Process migrator for Softomotive products (preview), you'll be prompted to populate
your Power Automate account.
The application might prompt you to connect to the account you use to access your environments in
order to save the migrated processes as desktop flows.
2. Select the Softomotive product from which you want to migrate processes.
NOTE
Some delay might be expected after this step, but the application is successfully operating in the background.
When the process retrieving is completed, choose the processes to migrate and the Power Automate
environment that will store them. The default environment is pre-selected.
3. If you choose to migrate a password-protected process, you'll be prompted to enter the password you
used to encrypt it. If you choose to skip entering the requisite password, the migration of the respective
process will be omitted.
2. After selecting the folder, you'll be able to select the processes you want to convert.
3. If you've exported the .prp files from the Histor y tab in Process Designer and have chosen Selected
versions only , the migrator will convert one version of the process.
Exporting the .prp files without limiting to a single version will result in all previous versions being
migrated.
4. Now, you can modify the migrated processes (now desktop flows) through Power Automate.
TIP
Running the Process migrator for Softomotive products (preview) will be paused once an encrypted process has
been encountered, waiting for the password to be inserted by the user. It's advised to group processes based on
whether they are encrypted or not. This way, unencrypted processes will be migrated without supervision and the
encrypted ones will have the required user attendance.
NOTE
Migrated WinAutomation or ProcessRobot processes will have the following format when uploaded as desktop
flows (ProcessRobot users can substitute use of WA and WinAutomation to PR and ProcessRobot
respectively):WA_{Name of WinAutomation}, , process (folder path inside WinAutomation). For example, if you
migrate the05 - Copy FileWinAutomation process that resides under the path“MyProcesses/Examples/01 -
Beginner”, the resulting desktop flow will be namedWA_05 Copy File (Examples/01 - Beginner).
If you try to migrate a process and the resulting desktop flow name duplicates the name of an already existing
desktop flow in the environment you chose, the later desktop flow will be saved with a name following the
format WA_{Name of WinAutomation} (X) process (folder path inside WinAutomation), where X is an increasing
number. For example, if you migrate the05 - Copy FileWinAutomation process that resides under the
path“MyProcesses/Examples/01 - Beginner”and there happens to be a desktop flow in your environment of
choice, having the same name, the resulting desktop flow will be namedWA_05 Copy File (1) (Examples/01 -
Beginner).
Reconfiguring ProcessRobot console features in Power Automate
ProcessRobot Control Desk – Redeploying in Power Automate
Power Automate and ProcessRobot behave differently at their core, so there will be a requirement to reconfigure
administrative and orchestration features. Some of your converted desktop flows may also require modification
depending on the actions used within the processes. The Power Automate Learning Resources Blog is a
repository of useful links for a good overview as well as detailed explanations on how to use the Power Platform
for your needs.
The Power Platform Admin Center (PPAC) by default contains information related to your RPA environment that
admins are accustomed to seeing in Control Desk, including cloud flow activity, desktop flow run activity,
desktop flow queue monitoring and more. PPAC also enables users to create cloud flows that can incorporate
schedules, triggers, run desktop flows and reach all other Power Automate components you have access to.
If you are new to the Power Platform, it is recommended that administrators complete the Admin In A Day
workshop to better understand PPAC in addition to the ALM hands on lab since this is the current recommended
approach to manage desktop flow versions and application lifecycle management. Citizen Devs are encouraged
to participate in the RPA In a Day tutorials that help build a solid foundation across the entire stack.
Apart from the extensive set of features preconfigured into PPAC – the CoE Power BI Dashboard far exceeds the
capability of ProcessRobot Dashboards and the core components of the CoE are available for all Power
Automate users. The CoE starter kit provides a solid foundation to build insightful dashboards that can be
modified to your organizations needs throughout their RPA journey.
Workarounds for unsupported ProcessRobot Process Studio features
User Libraries:
User Libraries are not supported in Power Automate desktop flows. If your process contains a call to a user
library, it is recommended the associated user library actions are copied into your desktop flow otherwise they
will not be migrated using the Process Migrator for Softomotive Products. The ‘Start Process’ action from
ProcessRobot is on the roadmap to be reintroduced as ‘Run Flow’ in a future release. This will simplify
management of former User Libraries since the parent flow can call the child, wait for the child to complete its
task, and send back supported variable types to the parent flow.
Process Robot Actions:
Star t Process
Not supported but is currently on the roadmap to be modified and reintroduced. In some instances, for the
meanwhile you may be able to work around this limitation by setting up a Cloud Flow to execute process B once
process A has stopped running and pass input variables to process B from process A.
Get Process Path
Not supported, not on the roadmap.
Log Message
Not supported by the migration tool but is currently on the roadmap to be modified and reintroduced.
Update KPI
Not supported by the migration tool. Administrators can apply a workaround in the CoE to calculate KPIs
Get Global Variable / Set Global Variable
Not supported by the migration tool. Possible workarounds include the ability to create and manage tables in
Dataverse create a cloud flow that calls for a global variable (Get Global Variable), passes it to a desktop flow for
consumption, then have an output variable from the desktop flow passed back to the Dataverse table if needed
(Set Global Variable).
Enter Locked Region
Not supported by the migration tool.
Exit Locked Region
Not supported by the migration tool.
Add Queue Item in Queue
Not supported by migration tool. Review Monitor desktop flow queues for information on queue functionality in
Power Automate. Other possible workarounds include the ability to create and manage tables in Dataverse
where cloud flow monitors, schedules, or triggers can be used to load data.
Get Queue Item in Queue
Not supported in migration. Possible workarounds include creating a Cloud Flow to trigger an event when a row
is added, modified, or deleted in a Dataverse table.
Get Credential
Not supported in migration. Workarounds include using sensitive text in power automate desktop with Azure
Key Vault.
Update Credential
Not supported in migration. Workarounds include updating a secret using an API.
Display Notification
Not supported. Not on roadmap.
Non-migratable actions
The following WinAutomation and ProcessRobot actions won't be migrated from the processes to the respective
UI Flows.
All Ancora actions
All CaptureFast actions
Cognitive > Google > Vision > Face Detection
Cognitive > IBM > Visual Recognition > Detect Faces
Cognitive > Microsoft > Face > Detect Face
Cognitive > Microsoft > Face > Find Similar Face
Message Boxes > Display Notification
Message Boxes > Display Custom Dialog
PDF Actions > Extract Text From PDF With OCR
All Synchronization Actions (group of actions)
All WinAutomation Actions (group of actions)
Partially migratable actions
The following actions will be migrated from the processes to the respective desktop flows. However, one or
more of their parameters won't be transferred at all or with the same value. Some cases might be handled by
applying manual rework in the designer.
Azure: Create Azure Session
Non-migratable Properties: Username, Password (for option Authentication Type: With Service
Principal)
Missing properties: Client Secret (for option Authentication Type: With User)
Azure: Create Azure Managed Disk
Missing properties: Storage Account Name
Compression: Unzip Files
Non-migratable Properties: Include Mask, Exclude Mask, Include Subfolders
Cognitive: Classify Image IBM
Missing properties: Location, Instance ID
Cognitive: Analyze Tone IBM
Non-migratable Properties: Username, Password
Missing properties: API key, Location, Instance ID
Cognitive: Translate IBM
Non-migratable Properties: Username, Password
Missing properties: API key, Location, Instance ID, Version Date
Cognitive: Identify Language IBM
Non-migratable Properties: Username, Password
Missing properties: API key, Location, Instance ID, Version Date
Cognitive: Detect Language Microsoft
Non-migratable Properties: Number Of Languages To Detect
Cryptography: Encrypt Text
Non-migratable if Encryption Algorithm is NOT EQUAL to AES & Cipher Mode is NOT EQUAL to CBC
Cryptography: Decrypt Text
Non-migratable if Encryption Algorithm is NOT EQUAL to AES & Cipher Mode is NOT EQUAL to CBC
Cryptography: Encrypt From File
Non-migratable if Encryption Algorithm is NOT EQUAL to AES & Cipher Mode is NOT EQUAL to CBC
Cryptography: Decrypt To File
Non-migratable if Encryption Algorithm is NOT EQUAL to AES & Cipher Mode is NOT EQUAL to CBC
Cryptography: Hash Text
Non-migratable if Encryption Algorithm is NOT EQUAL to AES & Cipher Mode is NOT EQUAL to CBC
Cryptography: Hash From File
Non-migratable if Encryption Algorithm is NOT EQUAL to AES & Cipher Mode is NOT EQUAL to CBC
Cryptography: Hash Text With Key
Non-migratable if Encryption Algorithm is NOT EQUAL to AES & Cipher Mode is NOT EQUAL to CBC
Cryptography: Hash From File With Key
Non-migratable if Encryption Algorithm is NOT EQUAL to AES & Cipher Mode is NOT EQUAL to CBC
Mouse and Keyboard: Move Mouse
Non-migratable for option 'Move mouse to recorded positions' --->
Overview of RPA templates and Dynamics 365
1/15/2022 • 2 minutes to read • Edit Online
For many businesses, success increasingly depends on having the agility to innovate and adapt to rapid change,
responding to customer needs, competitive pressure, and industry trends. But this is a difficult challenge when
employees are buried in time-consuming busywork like repetitive tasks or complex processes.
That’s why we are dedicated to helping organizations like yours automate manual business processes, across
both legacy and modern applications, so you can focus on what’s most important for your business and
customers. In March, we released robotic process automation (RPA) capabilities in Microsoft Power Automate for
Windows 10 users.
We are introducing enhanced workplace automation capabilities for Microsoft Dynamics 365—a set of prebuilt
RPA solution templates, that seamlessly integrate with select Dynamics 365 applications.
Initially available for Dynamics 365 Customer Service, Dynamics 365 Supply Chain Management, and Dynamics
365 Finance, the prebuilt automation templates enable teams to rapidly automate common business scenarios
—freeing time from day-to-day manual, repetitive, and error-prone tasks.
Developers can further extend any of those solutions by using custom actions, custom connectors, Microsoft
Azure services, and APIs to take full advantage of Microsoft’s one cloud and data ecosystem.
Save time across customer service, finance, and supply chain roles
Explore some of the ways that RPA can help streamline processes and save valuable time across the workforce.
Next steps
Take the first step to enable your customer service, supply chain, and finance teams to automate processes in
Dynamics 365. Get a free Power Automate RPA trial license and install Power Automate for desktop, and then
import the three solutions mentioned above into your environment to set it up. Check out the documentation
for steps to get started.
Create orders on Dynamics 365 Supply Chain
Management
1/15/2022 • 6 minutes to read • Edit Online
Dynamics 365 empowers your organization to deliver operational excellence and delight every customer. In
order to make your use of Dynamics 365 even more productive and save users time and errors, we are
releasing the preview for free automation solutions that will let customers of Dynamics 365 customers
automate common tasks.
In this documentation, we outline the steps needed for administrators to allow users to automate quality order
creation for Dynamics 365 Supply Chain Management and focus on higher-priority activities that require their
unique creativity.
Prerequisites
Before starting, we need to prepare your environment with the adequate licenses and software set-up. This
section provides a step-by-step for how to get the grounds ready.
Software
You will need to:
install the Power Automate for desktop application. Power Automate will carry out the steps in Dynamics 365
as if a human were doing it in front of their computer.
Log out of the Dynamics 365 app you wish to automate
Get the appropriate security role for the automation to run
Log out of the Dynamics 365 app you wish to automate
In order to do the full automation, please sign out of the application before you run the automation for the first
time. You will need to do this if you switch between automation and your account.
Get the appropriate security role set up for the account running the automation
You will need to decide which work account will be running the automation. It can be a dedicated account
created by your admin in Azure Active Directory or the account of an existing employee. For the account you
end up choosing, you need to check that it has the appropriate security roles so that it can access the surfaces
you are automating.
We recommend the following security roles:
Licenses
If you already use Power Automate, PowerApps and Dynamics 365 applications on a day-to-day basis, you can
skip this section and jump to Installing the Dynamics 365 RPA solutions.
Otherwise, you will need at least a trial license for these 3 products. This section shows you how to acquire these
trial licenses.
Get a trial license for Power Automate
Power Automate can automate processes by doing what a human would do on a keyboard and screen.
There are two ways to automate processes:
1. Attended mode: someone is sitting in front of their computer and watching the process run as if they were
doing it themselves manually
2. Unattended mode: the process is running in the background on distant machines that users don’t see.
To run attended, users need to acquire the Power Automate per-user license with RPA .
To run unattended, users need to have acquire two licenses: Power Automate per-user license with RPA
and the Power Automate unattended add-on .
Get a trial license for Power Automate per-user license with RPA to run processes in attended mode
1. From the Power Automate portal, navigate to My Flows then on Desktop Flows
2. Click the fine print Star t free trial now
An alternative consists in logging in to Power Automate for desktop and clicking on the Star t free trial button
Add a trial license for Power Automate unattended add-on to run processes in unattended mode
As an admin, you can get an RPA unattended add-on and assign it to your environment Power Automate sign-
up Q&A in your organization - Power Automate | Microsoft Docs
Get a trial license for Power Apps
Please follow the instructions in this PowerApps guide before moving on to the last step! /en-
us/powerapps/maker/signup-for-powerapps#get-a-license-from-scratch
Get a trial license for the Dynamics 365 applications you wish to automate
To get started with Dynamics 365 Supply Chain Management and automate the quality order creation process,
navigate here.
Setup steps
Now that prerequisites are set, we are on our way to get these free solutions that automate the processes.
Install Power Automate for desktop
1. Click on this link to install the Power Automate for desktop on the machine that will run the automation
then follow the installation wizard. Here is the detailed guide with step-by-step to install Power Automate
: Set up Power Automate for desktop on your device - Power Automate | Microsoft Docs
2. Make sure you switch the machine setting from PAD to the correct environment that you will install the
solution to
3. Log in https://powerautomate.microsoft.com/manage/flows to create a test cloud flow with manual
trigger
4. Add a desktop flow connector.
Select the Directly to machine connection from that dropdown. then select the machine name where you have
installed Power Automate, enter the machine login credential (the username and password that you used to log
into this machine. (View here to learn more about direct machine connectivity). Note this step will not be needed
at a later date.
Install the Dynamics 365 RPA solution
Now that prerequisites are set, we are on our way to get these free solutions that automate the processes.
1. Download the Dynamics 365 automation solution and save it on your machine
https://aka.ms/D365SCMQualityOrderRPASolution
2. Import the Dynamics 365 automation solution in the environment of your choice
a. Go to https://powerautomate.microsoft.com and log in using your work account b. Select the
environment in which you wish to work using the environment picker c. In the vertical menu on the left
of your screen, click on Solutions d. In the horizontal menu, above the Solutions title, click on Impor t
then click on Browse e. Navigate to the solution file you previously downloaded and double click on it in
your file system f. Click Next .
3. Configure the connections needed to be used by the solution in the environment
a. For each connector that the solution uses, either select an existing connection or create a new one
using the Microsoft account or credentials of your choice.
b. Come back to the tab from which you initiate the above step and click Refresh
c. Click on Import. The solution explorer shows you a message letting you know the solution is being
imported. It takes a few minutes.
4. Enter the parameters that the solution should use to run the process
a. From the Solutions explorer, click on the solution to open it b. You will find there are rows with the Type
column that reads Environment Variable. We need to add values for each of these.
c. Click on each of the environment variable below and under Current Value , click on Add New Value
to put in your parameter.
QOrder Parameter - SCM Portal URL URL for the SCM environment including parameters for
company and form for the InventQualityOrderTable
*Example:
https://hxoshmyfoodus9o1mf.sandbox.operations.int.dyn
amics.com/?cmp=USMF&mi=InventQualityOrderTable*|
EN VIRO N M EN T VA RIA B L E N A M E DESC RIP T IO N
SCM SignIn User user account to sign into Dynamics 365 SCM example:
[email protected]
QOrder Parameter – Site Name of the site to use for filling in the quality order
creation form.
QOrder Parameter – Test Group Configure the Testgroup for the quality order creation
QOrder Parameter - Warehouse Configure the Warehouse for the quality order creation
if you acquire the adequate licenses for Power Automate and After you acquire the licenses, go back to the Solution
Power Apps after you install the solution, the flow or app will explorer, click on the … menu for the app or flow then click
be turned off. on “Turn On”.
Use RPA with Dynamics 365 Finance
1/15/2022 • 7 minutes to read • Edit Online
Dynamics 365 empowers your organization to deliver operational excellence and delight every customer. In
order to make your use of Dynamics 365 even more productive and save users time and errors, we are
releasing the preview for free automation solutions that will let customers of Dynamics 365 customers
automate common tasks.
In this documentation, we outline the steps needed for you to automate end of cycle reporting in Dynamics 365
Finance and focus on higher-priority activities that require your unique creativity.
Prerequisites
Before starting, we need to prepare your environment with the adequate licenses and software set-up. This
section provides a step-by-step for how to get the grounds ready.
Software
You will need to:
install the Power Automate for desktop application. Power Automate will carry out the steps in Dynamics 365
as if a human were doing it in front of their computer.
Set the appropriate file download configuration in the Microsoft Edge browser (available for free on
Windows) to have complete automation.
Log out of the Dynamics 365 app you wish to automate
Get the appropriate security role for the automation to run
Set the appropriate file download configuration on Microsoft Edge
Edge has two ways of downloading files from the internet onto your computer
1. Download directly on your machine, and save the file in the destination folder specified in the Edge settings
2. Ask for the user’s permissions before downloading a file, wait for the user to accept the download, then only
download the file and save it in the destination folder specified in the Edge setting.
In order to make this process fully automated and not requiring a human in front of the computer for it to work,
we need Edge to download files using the first mechanism.
1. Open Microsoft Edge browser on your machine (using the Windows Search bar)
2. In the top right corner of your screen, click on “…” menu
3. Click on Settings
4. In the vertical menu in the left of your screen, click on Downloads
Turn off the toggle “Ask me what to do with each download”
Close your browser
Log out of the Dynamics 365 app
In order to do the full automation, please sign out of the application before you run the automation for the first
time. You will need to do this if you switch between automation and your account.
Get the appropriate security role set up for the account running the automation
You will need to decide which work account will be running the automation. It can be a dedicated account
created by your admin in Azure Active Directory or the account of an existing employee. For the account you
end up choosing, you need to check that it has the appropriate security roles so that it can access the surfaces
you are automating. Go to Managing security roles in Dynamics 365.
We recommend the following security roles:
Licenses
If you already use Power Automate, Power Apps and Dynamics 365 applications on a day-to-day basis, you can
skip this section and jump to Installing the Dynamics 365 RPA solutions.
Otherwise, you will need at least a trial license for these 3 products. This section shows you how to acquire these
trial licenses.
Get a trial license for Power Automate
Power Automate can automate processes by doing what a human would do on a keyboard and screen.
There are two ways to automate processes:
1. Attended mode: someone is sitting in front of their computer and watching the process run as if they were
doing it themselves manually
2. Unattended mode: the process is running in the background on distant machines that users don’t see.
To run attended, users need to acquire the Power Automate per-user license with RPA .
To run unattended, users need to have acquire two licenses: Power Automate per-user license with RPA
and the Power Automate unattended add-on .
Get a trial license for Power Automate per-user license with RPA to run processes in attended mode
1. From the Power Automate portal, navigate to My Flows then on Desktop Flows
2. Click the fine print Star t free trial now
An alternative consists in logging in to Power Automate and clicking on the Star t free trial button
Add a trial license for Power Automate unattended add-on to run processes in unattended mode
As an admin, you can get an RPA unattended add-on and assign it to your environment Power Automate sign-
up Q&A in your organization
Get a trial license for the Dynamics 365 applications you wish to automate
To get started with Dynamics 365 Finance and automate the end-of-cycle reporting process, navigate here.
Setup steps
Install Power Automate
1. Click on this link to install the Power Automate for desktop on the machine that will run the automation
then follow the installation wizard. Here is the detailed guide with step-by-step to install Power Automate:
Set up Power Automate for desktop on your device - Power Automate | Microsoft Docs
2. Make sure you switch the machine setting from Power Automate to the correct environment that you will
install the solution to
b. Come back to the tab from which you initiate the above step and click Refresh
c. Click on Impor t . The solution explorer shows you a message letting you know the solution is being
imported. It takes a few minutes.
4. Enter the parameters that the solution should use to run the process
a. From the Solutions explorer, click on the solution to open it b. You will find there are rows with the
Type column that reads Environment Variable . We need to add values for each of these.
c. Click on each of the environment variable listed in the table below and under Current Value , click on
Add New Value to put in your desired parameter.
7. Now you can test the desktop flow from Power Automate.
8. And then you can test the cloud flow from portal. The demo below shows how the end-to-end scenario
works. You will get a Teams message at the end
9. Last if you choose to run the you can
10. You can customize either the desktop flow or cloud flow to create custom reports for your own scenarios
11. Lastly if you choose to run the automation unattended, you can switch the run mode from cloud flow. See
here for more details.
Known issues
K N O W N ISSUE W O RK A RO UN D
I created a gateway connection for my solution but now it’s Nothing to worry about. It takes a while to import solutions.
taking very long to import. Give it at least 10 minutes.
My cloud flow doesn’t run after I press “Play” in the flow Go back to the Solution explorer, click on the … menu for the
designer app or flow then click on “Turn On”.
Use RPA with Dynamics 365 Customer Service
1/15/2022 • 7 minutes to read • Edit Online
Automate common activities on Dynamics 365 Customer Service with Robotic Process Automation using Power
Automate.
Dynamics 365 empowers your organization to deliver operational excellence, bringing delight to every
customer. To make your use of Dynamics 365 even more productive, we are releasing the preview of free
automation solutions that Dynamics 365 customers can use to automate common tasks.
This article outlines the steps needed for you to automate customer validation in Dynamics 365 Customer
Service and focus on higher-priority activities that require your unique creativity.
Prerequisites
Here's what you need to prepare your environment.
Software
Install the following:
Dynamics 365 for Customer Service.
Power Automate for desktop. Power Automate for desktop will carry out the steps in Dynamics 365 as if a
human were doing it in front of their computer.
The Contoso CRM app from Microsoft. This app showcases how RPA works. You can use it as an example
to build your own RPA action.
IMPORTANT
Be sure to get the appropriate security roles for the account that runs your automation. This account can be a dedicated
one that your admin in Azure Active Directory creates or an employee's account.
Dynamics 365 for Customer Service D365 Customer Service administrator Enable users for Customer Service and
assign roles
Licenses
1. Get a trial license for Power Automate if you don't have a paid license.The Power Automate license you
need depends on the mode in which your automations run.
Here are the two modes to automate processes.
Attended mode : someone is sits at computer and watches the process run as if they were doing
it themselves manually. For attended mode, users must have the Power Automate per-user
license with RPA .
Unattended mode : the process is runs in the background without any human interaction and it's
not visible on the device. For attended mode, users must have two licenses.
The Power Automate per-user license with RPA
The Power Automate unattended add-on .
Follow these steps to get a Power Automate per-user license with RPA to run processes in attended mode.
a. From Power Automate, select My Flows > Desktop flows .
b. Select Star t free trial now .
To add a trial license for Power Automate unattended add-on* to run processes in unattended mode, you
must ask a tenant admin to get an RPA unattended add-on and assign it to your environment Power
Automate sign-up Q&A in your organization.
2. Get a trial license for the Dynamics 365 Customer Service app.
3. To get started with Dynamics 365 for Customer Service and automate the customer validation process.
2. Confirm that the Agent Productivity Tools and App profile manager are updated.
3. If you see Update available for Agent Productivity Tools and App profile manager , select Update
available .
Install and configure Power Automate
1. Download Power Automate for desktop onto the machine that will run the automation then follow the
installation wizard.
2. Follow the steps in the detailed guide to install Power Automate for desktop onto your device.
3. Change the machine settings from Power Automate to the environment to which you will install the
solution.
4. Log in and confirm you can create a test cloud flow with a manual trigger.
5. Add a desktop flow connector.
NOTE
Select More info > Run anyway on the Windows protected you PC screen that appears during the
installation.
After the installation completes, you can run the Contoso CRM app from the Start menu.
4. On the tab from which you initiated the previous step, select Refresh .
5. Select Impor t. The solution explorer shows you a message that lets you know the solution is being
imported. It takes a few minutes.
6. Open Case entity session – default template (or your current case entity session template), open
Agent scripts tab, and then add Case agent script with automation .
Learn more about session templates.
7. From the Dynamics 365 Customer Service app, login to Power Automate.
a. From the case you are working on, select the … menu > Flow .
11. From the Agent Script session in the productivity panel, you will see several agent script steps. The first
step is Run Automation to validate Customer . Select the Run button and confirm it runs.
12. The automation starts on the machine where you have installed Power Automate. You can watch how the
automation uses the case data, opens the Contoso CRM app, and then finishes the look up automatically.
After the automation runs, refresh the timeline to view the logs regarding the run result. Here's a demo
on how it runs.
Customize the automation solution
1. Now you can start customizing the automation to meet your unique requirements. To do this, open
Power Automate and then select Edit on the Legacy Contoso App Contact Lookup desktop flow.
2. You can save a copy to work on your customizations or work on the template directly.
3. Notice that there are multiple child flows. Each child flow uses the keyboard or the mouse to interact with
the Contoso CRM app. You need to update the steps to interact with your legacy app.
4. After you test the desktop flow, you can save it. Now open the cloud flow in
https://powerautomate.microsoft.com/manage/solutions from within the solution tab -> Customer
Service RPA solution
5. Open the cloud flow named “Automation to validate customer info”. Expand each action to review. In the
Desktop flow action, you can switch to use any desktop flow you want and use any the input/output
parameter that you want to use. To learn more, read here on how to use desktop flow in cloud flow.
6. Now you can save the cloud flow. Go back to D365 portal and trigger the agent script action to test. You
will see your customization automation start to run.
7. Once you finished testing, you can share the cloud flow with everyone in the organization with run-only
mode (click here to learn more) and switch it to run unattended way (click here to learn more). So that
every agent will be able to reuse the same automation. License wise, the cloud flow should be put under
a per flow plan (click here to learn more)
Did not see the productivity tools panel from D365 Productivity tools don’t show on home session. You need
customer service create a new session (Shift-click on case link) to see it.
Producitivity tools runtime initialization is async. Please wait
1 – 2 seconds on home session before create new sessions.
Agent can’t see the flow Every agent needs to login flow from D365 widget for the
first time
During install, you will be prompted multiple times for the Confirm with “yes I am sure to install” every time prompted
same confirmation to install.
The agent script isn’t added to current session template Manually add the agent script to case session template.
automatically after import the demo solution.
Introduction to other types of desktop flows
1/15/2022 • 2 minutes to read • Edit Online
IMPORTANT
This section covers topics to develop automations using legacy systems:
Selenium IDE: If you are just starting your RPA automation project, we recommend that you use Power Automate for
desktop instead.
Windows recorder (V1): From November 30th, desktop flows will no longer be supported. Migrate your flows to Power
Automate for desktop or delete them.
Read on if you already have automation built using Windows recorder (V1) and Selenium IDE.
A P P L IC AT IO N T Y P E F EAT URE B EN EF IT S
Legacy apps (no APIs) desktop flows Easy to create. Works if no API is
available.
You will find your desktop flows alongside automated, button, scheduled, and business process flows in My
flows .
Next steps
Learn how to set up desktop flows.
Learn more about the different types of flows you can use to automate your workflows.
Create and test Windows recorder (V1) flows
1/15/2022 • 4 minutes to read • Edit Online
IMPORTANT
This section covers topics to develop automations using legacy systems:
Selenium IDE: If you are just starting your RPA automation project, we recommend that you use Power Automate for
desktop instead.
Windows recorder (V1): From November 30th, desktop flows will no longer be supported. Migrate your flows to Power
Automate for desktop or delete them.
In the following steps, we'll demonstrate how to automate the calculator app to sum two numbers and then
store the result for later use.
6. Enter a name for your Windows recoder (V1) flow into the Flow name field, and then select Next .
7. Select Next at the bottom to skip the optional Set up inputs screen since we aren't using inputs in this
walkthrough.
8. Select Download package .
9. Open the Setup.Microsoft.PowerAutomate.UIflow.exe file. This file is likely in your Downloads
folder after you downloaded it in the previous step.
10. Follow the instructions in the Power Automate setup installer to complete the installation.
11. Once the Power Automate installer completes, go to Microsoft Edge store or Google Chrome store
depending on the browser you are using and install Microsoft Windows recorder (V1) and
Selenium IDE browser extensions and Enable extensions .
Continue after you've installed the extension.
12. Select the Record app card to expand it.
TIP
As your mouse hovers over controls in the app, you'll notice that a blue outline highlights each control. Always
wait for the blue highlight before you select a control.
If the blue highlight doesn't display around the element, it might not be recorded properly.
17. Select Done on the recorder control after you complete the actions you want to record.
18. Close the app that you recorded.
19. Select the card that starts with "Run [app name] script" to view screenshots of the recorded steps.
TIP
Select ... > Delete to remove any duplicate steps.
IMPORTANT
For best results, do not interact with your device for the duration of playback.
Next steps
Learn how to trigger the desktop flow you just created.
If you want to do more with desktop flows, you can also create desktop flows with input and output
parameters.
Edit Windows recorder (V1) flows
1/15/2022 • 19 minutes to read • Edit Online
IMPORTANT
This section covers topics to develop automations using legacy systems:
Selenium IDE: If you are just starting your RPA automation project, we recommend that you use Power Automate for
desktop instead.
Windows recorder (V1): From November 30th, desktop flows will no longer be supported. Migrate your flows to Power
Automate for desktop or delete them.
Windows recorder (V1) flows automate Windows desktop applications. Please refer to the Known issues to learn
more about issues you might run into, workarounds for those issues, and scenarios that are not supported in
this release.
Prerequisites
A desktop Windows recorder (V1) flow. Create a Windows recorder (V1) flow now if you don't have one to edit.
Edit actions
Add a recording
You may want to record your Windows recorder (V1) flowin multiple sessions. After you've completed your first
recording you can proceed as follows:
1. Sign into Power Automate.
2. Select My flows > Desktop flows .
3. Select the Windows recorder (V1) flowthat you want to edit.
4. Select Edit .
5. Select New step .
TIP
As your mouse hovers over controls in the app, you'll notice that a blue outline highlights each control. Always
wait for the blue highlight before you select a control.
If the blue highlight doesn't display around the element, it might not be recorded properly.
5. You can provide any valid command line argument for your application.
IMPORTANT
Do not pass sensitive text like passwords through command line arguments.
Add a variable
You can use variables to perform multiple actions within your desktop flows. For example, you can use a variable
to count how many times an operation was performed in a loop. Or, you can use a variable to create an string
array with the screen readings done in a loop.
TIP
You can use integer, float, Boolean, string, array, and object variable data types.
After you create a variable, you can perform other tasks, for example:
Increase or decrease the variable by a constant value, also known as increment and decrement.
Insert or append the variable’s value as the last item in a string or array.
Assign a different value to a variable.
Follow these steps to create and use variables in a UI flow:
1. Go to the beginning of the Windows recorder (V1) flow and select Add an action .
2. Search for the word variable, and then select the Initialize variable action under the built-in category.
3. Initialize the variable to type that meets your needs.
TIP
If your UI automation scenario involves reading values from a screen in a loop, you could achieve this by initializing the
variable as an array type.
Then, within the UI flow, select the Append to Array variable action, and then use the output of Get Text action from
dynamic content list.
Copy and paste steps
You can copy actions and scopes, use Add an action to select the copied actions and scopes from My
clipboard , and then paste them into another location within the same Windows recorder (V1) flow.
Power Automate designer automatically renames the copied actions and scopes with a unique name. If the
copied scope contains another scope, the nested structure is retained when you paste it from My clipboard .
IMPORTANT
This feature supports copying and adding actions within the same scope. You cannot paste actions into other scopes or
Windows recorder (V1) flows.
Follow these steps to copy and then paste actions and scopes:
1. Select … , and then select Copy to my clipboard for the action or scope that you want to copy.
2. Hover over the target location, and then select Add an action .
TIP
You can select Add an action directly if it is at the end of the scope or Windows recorder (V1) flow.
3. Select My clipboard , and then select the action or scope you copied.
4. Notice that Power Automate pastes the action card with a unique name.
5. Also notice that any actions with screenshots will also retain them for easy reference.
Paste a scope immediately after itself
NOTE
If a scope does not have a Close Application action, and the user copies the scope and then pastes the scope
immediately after the existing scope, the pasted actions will only be performed within the first application instance.
In this example, the highlighted actions Left click 11 and Replay keystrokes will be performed in the first
Notepad application, and another notepad instance will be launched.
To address this instance issue, users have two options:
1. If you only want to perform the action(s) in the first application instance, you can copy and paste only the
relevant actions in the first scope. If you want to copy and paste the entire scope at once, you should
remove the Launch action in the pasted scope to prevent launching an extraneous application instance.
2. If you want to perform the action(s) in a separate application instance, you can add a Close application
action in the first scope, so that the second scope will have its own instance.
Add a loop
Windows recorder (V1) supports arrays. Use an array, to add a loop to perform repetitive steps in a Windows
recorder (V1) flow. You can pass in different types of arrays from a cloud flow to your UI flow, including complex
arrays from a SharePoint list, for example.
NOTE
You must edit an existing Windows recorder (V1) flow to add a loop.
2. Navigate to input section of the wizard, and then select Set up inputs .
3. Select Array to indicate that you want to create an array input type.
4. Enter the details for the array including a name, the array in JSON format, and a description for the array.
TIP
If you are using a complex array from a SharePoint list, you don't have to create the array manually. You can copy
the array from a cloud flow and paste it into the middle box.
5. Select Next .
6. Select Add an action .
7. Search for "to each" > Built-in > and then select Apply to each .
8. Select Select an output from previous steps , select the array you defined earlier from the Dynamic
content.
9. Drag the actions you want to repeat and drop them onto the Apply to each card.
For example, I've dropped the LeftClick 4 onto the Apply to each card in the following image.
10. Replace the input tokens created during the recording with the array input values as needed.
TIP
If the array is a simple string or integer array, you can use the Current item directly from the Dynamic content, like the
following image. You can also use expressions.
Known Limitations:
1. Loops require static selectors. This means that the user interface (UX) element on which the repetitive action
happens must not change.
2. Output operations are not currently supported.
3. For complex array objects that need to be passed from a cloud flow, like a SharePoint list, provide an example
payload of that object. To get the payload, you can run the flow without the Windows recorder (V1) flow step,
and then copy the output of the action into the middle (Add sample data) text box when you define the array.
4. You must use expressions for complex array object types. For example, use the expression items(‘Apply to
each’)[‘[value]’] , where value is name of the specific object within the input array.
Add a delay
You can add delays in Windows recorder (V1) flows to help control the flow run.
Follow these steps to add a delay to a Windows recorder (V1) flow that you've recorded.
1. In the desired spot, hover over the arrow and select Inser t a new step . Alternatively, for adding it to the
end of the scope or UI flow, select Add an action directly.
3. Select Built-in , and search for "delay". Alternatively, select Schedule > Delay .
4. Enter the count , for example "2" to represent the number of the Unit .
5. Select the Unit , for example minutes , to represent the length of time for the delay.
The following image shows a delay of two minutes.
The delay action is added to the Windows recorder (V1) flow. Now, when the flow runs, there will be a
delay as you've defined before the next action runs.
The timeout is a value you can specify to set the length of time the Windows recorder (V1) flow should
try to perform an action that it’s unable to complete before canceling it. Once the action is canceled, the
retry policy begins. The default timeout value is five minutes.
There are three types of retries in Windows recorder (V1) flows.
Default
None
Custom
The Default option is selected by default. This default value is set to retry 9 times. Including the initial attempt,
this means a total of 10 attempts. There is a 1 second interval between retries.
If you select the None option, then no retry attempts are done for this step.
If you want to specify a custom retry policy, then select the Custom option, and enter value for Number of
retries and Length of inter vals .
NOTE
The retry policy isn't available for all steps. If you don't see the retry options, it means that the policy isn't available for the
specific step.
Close application
Right click
Left click
Get text Read the text from a user interface element and then use it
as an output.
Enter text
4. Select Edit .
5. Select the recording card that contains the steps to which you want to add a new step. The card expands
and displays the recorded steps.
6. Select Add an action on the recording card, just below the last recorded step. You'll see the list of
manual actions listed earlier in the walkthrough.
7. Select the action you want to add. Here, I've selected Get element enabled , but you can select any
action that makes sense for your scenario.
Once the action is added, you will need to set the Selector in the action’s advanced options.
{
"type":"WinUIA",
"parameters":{
"elementStack":[
],
"elementXPath":""
}
}
You need to provide the data for the the elementStack and elementXPath fields of the selector element.
Here is an example of what the elementStack might look like.
4. Complete the expression that needs to be evaluated. You may use dynamic content and expressions to
evaluate your condition and switch controls. Additionally, you can use any output that's generated from
the previous Windows recorder (V1) flow steps.
2. Follow the steps in Add a recording to launch the recorder control for a new or existing Windows
recorder (V1) flow.
3. Use the Remote Desktop app to connect to the remote computer.
4. Expand the Remote Desktop window to full screen.
5. Select Record from the recorder control and select Got it in the alert that appears.
6. Perform the steps on the remote computer, and then select Done on the recorder control.
7. Locate the Launch Remote Desktop action within your recording, and then enter the sensitive text
inputs for the username and password.
1. Select Save , and then test your Windows recorder (V1) flow.
IMPORTANT
When you call this Windows recorder (V1) flow from an automated flow, it is recommended to use a key management
solution such as Azure Key Vault to retrieve the username and password and then pass them to the sensitive text
inputs in the Windows recorder (V1) flow dynamically, rather than storing them in the flow itself.
TIP
Enable Secure Inputs in the Settings menu for the Run a flow built with Windows recorder (V1) action in the
flow that is calling the Windows recorder (V1) flow. This ensures that the inputs are not stored in the run history.
1. If you are using Citrix remote desktop, expand the window to full screen.
2. Select Record from the recorder control, and then select Got it in the alert that appears.
3. Perform the steps on Citrix, and then select Done on the recorder control.
TIP
With Windows recorder (V1), you can record several Citrix apps during the same session. Open all applications before you
start recording if you have not recorded the launch of your Citrix workspace.
Option 2: record the launch of your Citrix application / desktop from your Citrix workspace
1. Follow the steps in Add a recording to launch the recorder control for a new or existing Windows
recorder (V1) flow.
2. Open the Citrix workspace from the taskbar.
3. Enter your password, and then and select Log on .
TIP
If you don’t want to select Remember my password , use a Sensitive text input.
4. Select the App or the Desktop you want to record.
5. Perform the steps on Citrix, and then select Done on the recorder control.
IMPORTANT
If you recorded the log-on step, the designer displays three Citrix scope applications. This is expected because the log-on
window is a different application from the Citrix workspace.
TIP
In test and attended mode, confirm that your Citrix workspace is closed before you playback your Windows recorder (V1)
flow. From the notification bar, right-click on the Citrix icon and the select Exit to close the workspace.
Troubleshooting
If you have problems using sensitive text in the login window:
1. Open the input menu from the recorder.
2. Select the password field.
3. Select your sensitive text (in this example “password”) in the input menu.
Use OCR to extract text from images
1. While recording your steps, navigate to the location of the text that you wish to capture.
2. Select Outputs > Extract Text from Image from the recorder control.
3. Follow the prompts to select an anchor area (a section of the screen that is not expected to change, such
as the label next to a field).
4. Select the target area (the area from which text will be extracted using OCR).
5. Enter a name for the output.
6. Select Done on the recorder control.
7. Select Save , and then test your Windows recorder (V1) flow.
Known issues for Remote Desktop recordings
1. Ensure that all required inputs (computer name, username, and password) are filled in and saved before
recording further steps in the same Windows recorder (V1) flow.
2. To attach to an existing remote desktop session, the session must have been launched earlier in the same
Windows recorder (V1) flow.
3. The recommended way to launch the Remote Desktop Connection (RDC) when recording is from the
Remote Desktop Connection app (mstc.exe) from the Start menu. If Windows Security actions are
recorded in addition to the Launch Remote Desktop action, they should be removed from the designer
so that playback is not interrupted (this can happen when the Remote Desktop session is launched from a
shortcut).
4. Playback can fail if the Windows recorder (V1) flow was recorded on a screen with screen scaling
(Windows Settings > Display > Screen Scaling) set to a value other than 100%. As a workaround, ensure
that screen scaling is set to 100% prior to recording.
7. Select the action that you want to perform in the parallel branch if there's a failure when the Windows
recorder (V1) flow runs.
You can select Record app to do a new recording for the parallel branch or select Terminate from the
Built-in actions to exit the Windows recorder (V1) flow exit gracefully if there's a failure.
NOTE
By default, the action that you add in the parallel branch runs only if the previous step fails. You can select ... on
the parallel branch > Configure run after to change the default behavior.
8. From this screen, you can select the condition on which you want the parallel branch to execute. You can
select from one of the four options available.
Note: You will not be able to save a Windows recorder (V1) flow that has both the main branch and
parallel branch set to execute on the same condition.
TIP
Use the same scale and resolution and also maximize the target application during recording to improve the accuracy of
coordinate-based playback.
Follow these steps after you've recorded a Windows recorder (V1) flow script:
1. Expand the step that launches or attaches the application.
This is usually the first step of the recording script.
2. Select Show advanced options .
3. Find Use coordinate playback properties.
4. Select Yes from the list to enable coordinate-based playback.
TIP
You can enable or disable Use coordinate playback for each application to apply the setting to all steps performed on
that application.
WARNING
With coordinate-based playback, the automation may select controls that are not part of the target application due to a
variety of reasons, for example, when the UI of the target applications changes dramatically.
Next steps
Learn how to run the UI flow you just edited.
If you want to do more with desktop flows, you can also try out input and output parameters.
Migrate from Windows recorder (V1) to Power
Automate desktop flows
1/15/2022 • 2 minutes to read • Edit Online
IMPORTANT
This section covers topics to develop automations using legacy systems:
Selenium IDE: If you are just starting your RPA automation project, we recommend that you use Power Automate for
desktop instead.
Windows recorder (V1): From November 30th, desktop flows will no longer be supported. Migrate your flows to Power
Automate for desktop or delete them.
You can migrate desktop flows you've created with the legacy Windows recorder (V1) into Power Automate
desktop flows in just a few steps.
Follow these steps to migrate a legacy desktop flow.
1. Sign into Power Automate.
2. Select My flows > Desktop flows .
3. Select the flow you'd like to migrate.
4. Select Migrate (preview) on the desktop flow details page.
NOTE
Migration is available only for desktop flows that were built with Windows recorder (V1). It's not supported for
desktop flows built with Selenium IDE.
Once you test your new desktop flow, you may go to your existing cloud flows and replace the UI automation
action. You need to use the Run a desktop flow built with Power Automate action and use the newly
created desktop flow.
TIP
Update the duration of different Wait actions to change the playback speed of your converted desktop flow. Ensure you
provide adequate wait time for the UI automation run to be successful.
Use inputs and outputs in Windows recorder (V1)
flows
1/15/2022 • 4 minutes to read • Edit Online
IMPORTANT
This section covers topics to develop automations using legacy systems:
Selenium IDE: If you are just starting your RPA automation project, we recommend that you use Power Automate for
desktop instead.
Windows recorder (V1): From November 30th, desktop flows will no longer be supported. Migrate your flows to Power
Automate for desktop or delete them.
Use inputs to pass information from an external source such as a database or any supported connector to the
legacy software that Windows recorder (V1) automates.
For example, you can use customer information from a SharePoint list as a source for input into your legacy
accounting software. You can also pass sensitive input like a username or a password that are required to login
to a legacy application using Sensitive text inputs .
TIP
You can use the CTRL+ALT+L key combination to insert text that you can pass to or from the application being used in
the Windows recorder (V1) flow. This key combination works for sensitive, static, output, and input text.
TIP
You can identify sensitive text inputs easily because they have a different icon from text inputs.
Use a previously defined output (see Outputs section). This is useful to pass information between
different applications within the same Windows recorder (V1) flow.
Create a new text or sensitive text input as you are recording using the New input option. You will
find it back in the Set up input step.
3. Select the location where you want to use the input. The sample value you defined is automatically used.
In the below example “WingTip Toys” is the sample value for the input name “Invoice Account” and is
added to the application.
4. In Power Automate Record and edit steps , expand actions that use inputs to view which one is selected.
In example that follows, you will see that “Invoice Account” is used as the value.
NOTE
If you also used a sensitive text input, you would see an action with a lock icon on the top right to indicate that
you used sensitive text input.
5. When triggering your UI flow, you can change the input value at will.
3. Define a name and a description for your output (as described above ) and select Save.
NOTE
For any sensitive text inputs that are created in the recorder, the sample value will need to be specified again
before testing.
2. Select Test now to see the legacy software being automated. You will see UI flow automation playing
back the steps you recorded. Please do not interact with your device for the duration of
playback .
3. Once playback completes, you see the run status of your UI flow:
For each action, a status indicator that shows that the test worked well, along with the associated
inputs.
For each action that uses a Sensitive text input, the input value will not be displayed.
You will also see the value of the outputs obtained for this test at the bottom of the designer.
If an error occurs, you'll see which step caused the problem along with a screenshot at the
moment the error occurred.
Learn more
Learn how to trigger desktop flows.
Use Input Method Editors (IMEs) in UI flows
1/15/2022 • 2 minutes to read • Edit Online
IMPORTANT
This section covers topics to develop automations using legacy systems:
Selenium IDE: If you are just starting your RPA automation project, we recommend that you use Power Automate for
desktop instead.
Windows recorder (V1): From November 30th, desktop flows will no longer be supported. Migrate your flows to Power
Automate for desktop or delete them.
You can use the Add static text feature to record text input, in any language, using IMEs or regular keyboards
in your UI flows. Use Add static text if you want the automation to insert the same text each time your UI flow
runs.
TIP
Use Text input if you intend to use dynamic text that changes each time your UI flow runs.
Invoke IME
Follow these steps after you've started recording and you're ready to insert static text input:
1. Select the control into which you want to enter the static text.
2. Select Use Input on the recorder, and then select Add static text .
You'll see an input box into which you'll enter the static text. You can use IME, English, or any international
keyboard.
Troubleshooting tips
1. If you record keyboard actions with the Replay keystroke mode, you have to make sure the playback
machine is using the same keyboard as the recording time, because under different keyboards, the same
keystrokes replay sequences may input different values.
2. You can only apply Use input to controls that are text type. Currently Use input cannot enter text into
other types of controls such as combo Box, dropdown, ListView, etc.
Next steps
Learn how to set up UI flows.
Learn more about the different types of flows you can use to automate your workflows.
Use Softomotive's WinAutomation with desktop
flows
1/15/2022 • 7 minutes to read • Edit Online
IMPORTANT
From January 1st 2022, WinAutomation and ProcessRobot will no longer be supported. Learn more about the
Softomotive products deprecation here. You may migrateyour flows to Power Automate. See the Power Automate
Desktop documentation to learn about the evolution of WinAutomation.
You may migrate your flows to Power Automate. See the Power Automate Desktop documentation to learn
about the evolution of WinAutomation.
Here are some tips before you start using WinAutomation with desktop flows.
1. Your Power Automate Attended RPA license (paid or trial) gives you full access to WinAutomation. This
document will guide you through getting WinAutomation Processes running with Power Automate.
2. Automation scripts in WinAutomation are called Processes . In Power Automate, automation scripts are
called cloud or desktop flows*.
3. Before you create a WinAutomation Process, check the list of connectors to see if the application you
want to automate already has a connector. If it does, consider creating a cloud flow instead of a desktop
flow. You might also build your own connector. In general, API-based connectors provide a better
experience than UI automation in terms of scalability, reliability, and lower cost.
Prerequisites
To run WinAutomation as part of Power Automate, you will need to:
1. Ensure your machine meets the requirements for desktop flows.
2. Install the desktop flows app, and then install and configure the on-premises data gateway.
IMPORTANT
You must have the latest version of WinAutomation and Power Automate to record, test, or run UI automation.
Licensing
You need to have a Power Automate Per user plan with attended RPA to use Power Automate and
WinAutomation. If you don't have a paid plan, you can start a trial by going to Power Automate.
Install WinAutomation
1. Download the WinAutomation installer.
2. Run the WinAutomationSetup.exe file. This file is likely in your Downloads folder.
3. Follow the instructions in the WinAutomation installer to complete the installation. During installation,
ensure the License Type is set to Microsoft Power Automate .
Sign in to WinAutomation
1. After the installation completes, start the WinAutomation Console from the Windows start menu.
2. The application will start and prompt you to login. Enter the user credentials you use for Power Automate.
If you don’t have a valid license, you will see this error message. You can also visit the pricing page to
learn more about this license or to get a trial license.
IMPORTANT
You will need your tenant administrator to grant consent to use your Power Automate Work or School account
with WinAutomation. For that, your admin needs to install WinAutomation, sign in with their tenant administrator
account, and then grant consent.
3. When you are asked to create a Master key during sign in, create one.
4. Once signed in, you will see the WinAutomation console with a few example Processes. To get started, go
to Options > Help > Getting Star ted , and then go through a few examples of creating simple
Processes or check out information from WinAutomation docs: Building a Simple Process. You can learn
more from WinAutomation getting started tutorials.
You can now create your own WinAutomation Processes and test them locally.
Run WinAutomation Processes from Power Automate
1. Once you have created your automation Process in WinAutomation, you can run it from a cloud flow in
Power Automate in attended or unattended mode.
TIP
Learn more about creating and running desktop flows.
2. Create a new desktop flow. Delete the default first step of “Record app”.
3. Select New step , select WinAutomation , and then select the Run WinAutomation action.
4. In the Run WinAutomation card, fill in the Process Path and any optional command line arguments for
the WinAutomation Process that you want to run.
NOTE
You must create and store WinAutomation Processes locally. Process Path is a case-sensitive path in the WinAutomation
Console for the Process, from a base directory of My Processes in the Folders Pane on the left side. If you have put the
Process in a subfolder, you will need to include that information in the ProcessPath. Don’t put quotes around the Process
Path.
TIP
You can use desktop flows inputs and Dynamic content in the target WinAutomation Process path and arguments from
Power Automate flow.
1. You can now save and test your Windows recorder (V1) flow to see how it launches the WinAutomation
Process.
2. You can then add the Windows recorder (V1) flow into a cloud flow. You can even connect to other Power
Automate connectors and triggers.
3. You can then select attended or unattended as the run type.
TIP
In your WinAutomation Process, you can use the Get Command Line Arguments action to retrieve the command
line arguments. The arguments are in an array. Use their index to reference each argument.
IMPORTANT
Do not pass sensitive text such as passwords through the command line arguments.
IMPORTANT
If you’re running desktop flows on an unattended cluster, ensure that WinAutomation is installed on all machines
on which the target Process is copied. For more information on attended and unattended desktop flows,
click here.
4. You can save and then run the flow and see it launch the WinAutomation Process. The Windows recorder
(V1) flow will return after the WinAutomation Process run completes. You can view the run results from
Power Automate. If the Process fails, you can see the error messages as well.
TIP
If you get exceptions, you may not have the latest Power Automate installed. Install the latest Power Automate.
5. If you want WinAutomation to capture a screenshot when a Process fails, do the following:
6. From the WinAutomation Console, right click on a Process, select "Edit Process's Properties". Go to the
"Error Handling" tab and choose "Override Default Options". Click "Add screenshot to logs" and save.
Now if a Process fails, you can view the screenshot captured at runtime from the Windows recorder (V1)
flow run details. For more information on Process properties, see WinAutomation docs: Process
Properties.
Currently you have to use certain WinAutomation steps to write results and outputs from the process into a file
in the cloud share or email the results out. Then you can use connectors from Power Automate to access and use
those results.
Finally, once they have purchased a plan or gotten the free trial, they need to assign that plan to a user.
IMPORTANT
When you assign a plan to a user, it may take few minutes before the assignment becomes effective.
Troubleshooting
Troubleshooting WinAutomation licensing issues
If you are receiving licensing errors during the launch of WinAutomation, ensure the user you’re logging in as
has a valid Power Automate RPA license. To confirm this:
1. Go to Power Automate and sign in.
2. Select My flows on the left navigation bar.
3. Select desktop flows on the page on the right. You should see you can create new desktop flows there if
you have the correct license.
4. You may need to start a trial or ask your administrator to do it.
NOTE
The license is cached when users launch WinAutomation while connected to the Internet.
To reset the license information stored by WinAutomation, you can delete the following file:
%localappdata%\Softomotive\WinAutomation\msalcache.bin3.
Troubleshooting other issues
Follow the links in this section to troubleshooting issues you may experience.
WinAutomation
Installation errors
Console
Process errors
Web automation
UI automation
Excel automation
Image Processing
Email automation
Databases
ProcessRobot
Control Desk
Process Studio
ProcessRobot database
Robot errors
Process errors
Web automation
UI automation
Excel automation
Image Processing
Email automation
Databases
Learn more
Read about the WinAutomation acquisition.
Read more at WinAutomation docs.
Learn more at WinAutomation Academy.
Get a head start with WinAutomation tutorials.
Learn to create Windows recorder (V1) flows.
Learn how to run desktop flows.
Learn to manage desktop flows.
Learn more about the on-premises gateway.
Create and test Selenium IDE flows
1/15/2022 • 3 minutes to read • Edit Online
IMPORTANT
This section covers topics to develop automations using legacy systems:
Selenium IDE: If you are just starting your RPA automation project, we recommend that you use Power Automate for
desktop instead.
Windows recorder (V1): From November 30th, desktop flows will no longer be supported. Migrate your flows to Power
Automate for desktop or delete them.
6. Enter a name for your Selenium IDE flow into the Flow name field.
7. Enter the URL for the Website you want to automate into the Base URL field, and then select Launch
recorder .
TIP
Tip: You can record actions across multiple HTTP or HTTPS websites within the same tab.
8. In Selenium IDE, select the red REC button in the top right side of the screen to launch the recorder.
The URL you chose in the previous step opens.
TIP
At the bottom right, you can see the recording status.
10. When you are finished recording, select on the red Stop button in the top right corner of the Selenium
IDE.
11. Select the Run current test button from the top left side of the screen to see the Selenium IDE flow you
just created run.
TIP
You can set the wait time between steps to slow the local playback for testing. This setting is for testing purposes
only and has no impact when your Selenium IDE flow is deployed.
12. Select the Save project button in the top right of the Selenium IDE. This closes, and then uploads the
project.
Now that you've created a Selenium IDE flow, use it in your other flows.
TIP
Note that the Selenium IDE orders the tests by name, not by creation date, so the first test created may not be
the first one in the list.
Playback directly in the Selenium IDE might not behave as intended. However, playback at runtime
behaves correctly.
Next steps
Learn how to run desktop flows.
Learn how to use input and output parameters with Selenium IDE.
Edit Selenium IDE flows
1/15/2022 • 2 minutes to read • Edit Online
IMPORTANT
This section covers topics to develop automations using legacy systems:
Selenium IDE: If you are just starting your RPA automation project, we recommend that you use Power Automate for
desktop instead.
Windows recorder (V1): From November 30th, desktop flows will no longer be supported. Migrate your flows to Power
Automate for desktop or delete them.
Selenium IDE flows automate websites running in the Microsoft Edge (version 80 or later) or Google Chrome.
After you've created a Web UI flow, you might need to edit it. Follow the steps in this document to learn how to
edit your Selenium IDE flows.
NOTE
Editing in the Selenium IDE is aimed at advanced users and developers.
You can refer to the Selenium Commands to learn how to edit the script.
The Selenium IDE suggests different selectors and a default one when targeting a user interface element. You
can also define a new selector if none of the proposed selectors are appropriate. This usually happens when the
website’s HTML structure is highly dynamic.
Here is an example of possible selectors that the Selenium IDE identified:
Next steps
Create Selenium IDE flows
Run Windows recorder (v1) flows
Use inputs and outputs in Selenium IDE flows
1/15/2022 • 2 minutes to read • Edit Online
IMPORTANT
This section covers topics to develop automations using legacy systems:
Selenium IDE: If you are just starting your RPA automation project, we recommend that you use Power Automate for
desktop instead.
Windows recorder (V1): From November 30th, desktop flows will no longer be supported. Migrate your flows to Power
Automate for desktop or delete them.
You can define inputs to pass to your automated applications during playback. You can also pass output from
your automated applications to your flow.
Next steps
Learn how to create Selenium IDE flows.
Learn how to trigger Windows recorder (V1) flows.
Business process flows overview
1/15/2022 • 11 minutes to read • Edit Online
You can help ensure that people enter data consistently and follow the same steps every time they work with a
customer by creating a business process flow. For example, you might want to create a business process flow to
have everyone handle customer service requests the same way, or to require that people get approval for an
invoice before submitting an order. Business process flows use the same underlying technology as other
processes, but the capabilities that they provide are very different from other features that use processes. To
learn how to create or edit a business process flow, see Create a business process flow.
Watch a short video (4:49) about business process flows.
NOTE
If any stage, including the current stage, has required columns (except hidden columns), you must fill in the columns on
those stages before you save the form or move to a new stage. Disabled columns will still block stage navigation if they
are empty and required.
NOTE
If you navigate to the business process flow stage that contains the Social Activity table and choose the Next Stage
button, you’ll see the Create option. When you choose Create , the Social Activity form loads. However, because
Social Activity isn’t valid for Create from the app user interface, you won’t be able to save the form and you’ll see
the error message: “Unexpected error.”
Maximum number of processes, stages, and steps
To ensure acceptable performance and the usability of the user interface, there are some limitations you need to
be aware of when you plan to use business process flows:
There can be no more than 10 activated business process flow processes per table.
Each process can contain no more than 30 stages.
Multi-table processes can contain no more than five tables.
To access a default business process flow view, open solution explorer, expand Tables > expand the process that
you want, such as Lead To Oppor tunity Sales Process , select Views , and then select the view that you want.
Several default views are available that you can view as a chart, such as the Active Oppor tunity Sales
Process view.
Interact with the business process flow table from a workflow
You can also interact with business process flow tables from a workflow. For example, you can create a workflow
for the Business Process Flow table row to change the Active Stage when a column on the Opportunity table
row is updated. For more information about how to do this, see Automate business process flow stages using
workflows.
Run business process flows offline
You can use business process flows offline if the following conditions are met:
The business process flow is used from a Power Apps app.
The Power Apps app is enabled for offline use.
The business process flow has a single table.
Specifically, the three commands that are available for a business process flow when the Power Apps app is
offline are:
Next stage
Previous stage
Set Active stage
Lookup column in a business process flow stage
Recent rows are visible in a lookup column in the unified interface. To prevent the most recently used items from
showing up in the lookup, follow these steps:
1. Open the Power Apps maker portal, and then select the correct environment from the top right of the
screen.
2. Go to Tables under Data . Search for your business process flow table.
This tutorial shows you how to create a business process flow with Power Apps. To learn more about why you
use business process flows, see Business process flows overview. For information on creating a mobile task
flow, see Create a mobile task flow.
When a user starts a business process flow, the stages and steps of the process are displayed in the process bar
at the top of a form:
TIP
After you create a business process flow definition, you can provide control over who can create, read, update, or delete
the business process flow instance. For example, for service-related processes, you could provide full access for customer
service reps to change the business process flow instance, but provide read-only access to the instance for sales reps so
they can monitor post-sales activities for their customers. To set security for a business process flow definition you create,
select Enable Security Roles on the action bar.
Prerequisites
You need a per user plan in order to create business process flows. Some Dynamics 365 license plans include
the per user plan. Business process flows are currently not supported in Dataverse for Teams.
6. Add stages. If your users will progress from one business stage to another in the process:
a. Drag a Stage component from the Components tab and drop it on a + sign in the designer.
b. To set the properties for a stage, select the stage, and then set the properties in the Proper ties tab
on the right side of the screen:
Enter a display name.
If desired, select a category for the stage. The category (such as Qualify or Develop ),
appears as a chevron in the process bar.
NOTE
If you set a two-option boolean column as Required , users can't continue unless the column value is Yes . The
user is required to mark the column as completed before moving to the next stage.
If either Yes or No are acceptable column values, then you should make the column a choice instead of a two-
option boolean column.
b. Select the condition, and then set properties in the Proper ties tab. For more information on
branching properties, see Enhance business process flows with branching. When you're finished
setting properties for the condition, select Apply .
9. Add a workflow. To invoke a workflow:
a. Drag a Workflow component from the Components tab to a stage or to the Global Workflow
item in the designer. Which one you add it to depends on the following:
Drag it to a stage when you want to trigger the workflow on entry or exit of the stage. The
workflow component must be based on the same primary table as the stage.
Drag it to the Global Workflow item when you want to trigger the workflow when the
process is activated or when the process is archived (when the status changes to Completed
or Abandoned ). The workflow component must be based on the same primary table as the
process.
b. Select the workflow, and then set properties in the Proper ties tab:
a. Enter a display name.
b. Select when the workflow should be triggered.
c. Search for an existing on-demand active workflow that matches the stage table or create a new
workflow by selecting New .
d. Select Apply when you're done.
For more information on workflows, see Workflow processes.
10. To validate the business process flow, select Validate on the action bar.
11. To save the process as a draft while you continue to work on it, select Save in the action bar.
IMPORTANT
As long as a process is a draft, people won’t be able to use it.
12. To activate the process and make it available to your team, select Activate on the action bar.
13. To provide control over who can create, read, update, or delete the business process flow instance, select
Edit Security Roles on the command bar of the designer. For example, for service-related processes,
you could provide full access for customer service reps to change the business process flow instance, but
provide read-only access to the instance for sales reps so they can monitor post-sales activities for their
customers.
In the Security Roles screen, select the name of a role to open the security role information page. Select the
Business Process Flows tab, and then assign appropriate privileges on the business process flow for a security
role.
NOTE
The System Administrator and System Customizer security roles have access to new business process flows by default.
Specify privileges by selecting the appropriate radio buttons, and click Save. For more information about
privileges, see Business process flow privileges.
Next, don't forget to assign the security role to appropriate users in your organization.
TIP
Here are a few tips to keep in mind as you work on your task flow in the designer window:
To take a snapshot of everything in the business process flow window, select Snapshot on the action bar. This is
useful, for example, if you want to share and get comments on the process from a team member.
Use the mini-map to navigate quickly to different parts of the process. This is useful when you have a complicated
process that scrolls off the screen.
To add a description for the business process, select Details under the process name in the left corner of the business
process flow window. You can use up to 2000 characters.
Now, members of Contoso’s salesforce can kick-off the action from the Oppor tunity Qualify business process
step, on demand, by selecting Execute .
IMPORTANT
To be able to execute an action or workflow on demand, the business process flow must include an Action Step. If the
Action Step runs a workflow, the workflow must be configured to run on demand.
The table associated with the action or workflow must be the same as the table associated with the business process
flow.
In the unified action center, you will see all business processes in which you're assigned at least one Microsoft
Dataverse table row that the process uses. For example, if a business process uses the Lead and Oppor tunity
tables in Dataverse, you will see all instances of this process where either the Lead or the Opportunity row is
assigned to you.
View all instances that are currently being worked under the Active tab. From this tab, you can view the
following details:
The name of the process.
The current stage for each process.
The owner of the Dataverse row associated with the active stage.
The time since the instance was created.
Select an instance to open it in a new tab, or select it to copy a link, share a link via email, abandon, or delete the
instance.
Next steps
Business process flows overview
Enhance business process flows with branching
Overview of approvals
Detailed steps for adding an instant flow to a business process flow
Create instant flows in business process flows
1/15/2022 • 3 minutes to read • Edit Online
You can run an instant flow to automate repetitive tasks, generate documents, track approvals, and more, from
inside a stage in a business process.
TIP
Only solution-aware flows can be added as a step in a business process.
We'll need information from the business process flow instance to help provide context for the approval
request so follow these steps to do this.
8. Add the Parse JSON action.
9. Set Content to table by selecting it from the list of dynamic values for the When a row is selected
trigger.
10. Paste the following content into the Schema column.
{
"type": "object",
"properties": {
"entity": {
"type": "object",
"properties": {
"FlowsWorkflowLogId": {
"type": "string"
},
"BPFInstanceId": {
"type": "string"
},
"BPFInstanceEntityName": {
"type": "string"
},
"BPFDefinitionId": {
"type": "string"
},
"BPFDefinitionEntityName": {
"type": "string"
},
"StepId": {
"type": "string"
},
"BPFDefinitionName": {
"type": "string"
},
"BPFInstanceName": {
"type": "string"
},
"BPFFlowStageLocalizedName": {
"type": "string"
},
"BPFFlowStageEntityName": {
"type": "string"
},
"BPFFlowStageEntityCollectionName": {
"type": "string"
},
"BPFFlowStageTableRowID": {
"type": "string"
},
"BPFActiveStageId": {
"type": "string"
},
"BPFActiveStageEntityName": {
"type": "string"
},
"BPFActiveStageLocalizedName": {
"type": "string"
}
}
}
}
}
Now that we have the data, define the approval process by adding the Star t and wait for an approval
(V2) action, and then filling in the relevant information. Learn more about approvals if you are not
familiar.
TIP
Use the dynamic content picker to add columns from the Get row by ID action to add relevant information
to the approval request so that approvers can easily know what the request is about.
To provide further context regarding the active stage that the business process is in, add the
BPFActiveStageLocalizedName column from the list of dynamic values.
Your Star t and wait for an approval (V2) card might look similar to this one:
13. Finally, save the flow and then turn it on.
Business process flows guide you through various stages of sales, marketing, or service processes toward
completion. In simple cases, a linear business process flow is a good option. However, in more complex
scenarios, you can enhance a business process flow with branching. If you have the create permissions on
business process flows, you’ll be able create business process flow with multiple branches by using the If-Else
logic. The branching condition can be formed of multiple logical expressions that use a combination of AND or
OR operators. The branch selection is done automatically, in real time, based on rules defined during the
process definition. For example, in selling cars, you can configure a single business process flow, which after a
common qualification stage splits into two separate branches on the basis of a rule (Does the customer prefer a
new car or pre-owned car, is their budget above or below $20,000, and so on. ), one branch, for selling new cars
and another branch, for selling pre-owned cars. For more information about Business process flows, see
Business process flows overview.
The following diagram shows a business process flow with branches.
What you need to know when designing business process flows with
branches
Take notice of the following information when you design the business process flow with the branches:
A process can span across a maximum of 5 unique tables.
You can use a maximum of 30 stages per process and a maximum of 30 steps per stage.
Each branch can be no more that 5 levels deep.
Branching rule must be based on the steps in the stage that immediately precedes it.
You can combine multiple conditions in a rule by using the AND operator or the OR operator, but not
both operators.
When you define a process flow, you can optionally select a table relationship. This relationship must a
1:N (One-to-Many) table relationship.
More than one active process can run concurrently on the same data row.
You can rearrange tiles (Stages, Steps, Conditions etc.) on the process flow using drag and drop.
When merging branches, all peer branches must merge to a single stage. The peer branches must all
either merge to a single stage, or each peer branch must end the process. A peer branch can’t merge with
other branches and at the same time end the process.
Client API changes cannot trigger evaluation of branching condition, as branching relies on Business
rules.
NOTE
A table used in the process can be revisited multiple times (multiple closed table loops).
A process can go back to the previous stage regardless of a table type. For example, if the active stage is Deliver
Quote on a quote row, process users can move the active stage back to the Propose stage on an opportunity
row.
In another example, suppose a process is currently in the Present Proposal stage in your process flow: Qualify
Lead > Identify Needs > Create Proposal > Present Proposal > Close . If the proposal presented to the
customer requires more research to identify customer needs, users can simply select the Identify Needs stage of
your process and choose Set Active .
TIP
You can add another condition on the “no” path of an existing condition tile to create more complex branching.
If the Car preference = New , the process branches out to the New Car Sales stage, otherwise, it jumps to the
Pre-Owned Car Sales stage, in the second branch, as shown below.
After completing all the steps in the New Car Sales stage or Pre-Owned Car Sales stage, the process returns
back to the main flow, with the Deliver Quote stage.
In this scenario, the bank loan officer needs access to the Request row, but the loan officer shouldn’t have any
visibility into the investigation of the request. At first glance, it looks that we can easily do this by assigning the
loan officer a security role that specifies no access to the Investigation table. But, let’s look at the example in
more detail and see if this is really true.
Let’s say that a customer puts in the loan request for over $60,000 to the bank. The loan officer reviews the
request in the first stage. If the branching rule that checks if the amount owed to the bank will exceed $50,000 is
satisfied, the next stage in the process is to investigate if the request is fraudulent. If it’s determined that this is
indeed a case of fraud, the process moves on to taking a legal action against the requestor. The loan officer
shouldn’t have visibility into the two investigative stages as the officer doesn’t have access to the Investigation
table.
However, if the loan officer opens the Request row, all would be able to see the entire end-to-end process. Not
only will the loan officer be able to see the fraud investigation stage, but she’ll also be able to identify the
outcome of the investigation by having been able to see the Legal Action stage in the process. Also, the officer
will be able to preview the steps in the investigative stages by choosing the stage. While the loan officer won’t
be able to see the data or the step completion status, she’ll be able to identify the potential actions that were
taken against the submitter of the request during the investigation and legal action stages.
In this process flow, the loan officer will be able to see the Fraud Investigation and Legal Action stages, which
constitutes an improper information disclosure. We recommend paying special attention to the information that
may become disclosed due to branching. In our example, split the process into two separate processes, one for
the request processing and another one for the fraud investigation, to prevent the information disclosure. The
process for the loan officer will look like this:
The process for the investigation will be self-contained and include the following stages:
You will need to provide a workflow to synchronize the Approve/Deny decision from the Investigation row to
the Request row.
Next steps
Create a business process flow
Create custom business logic with processes
Use custom controls in business process flows
1/15/2022 • 2 minutes to read • Edit Online
Business process flows provide a guided way to get work done in the form of stages and steps. Stages tell you
where you are in the process, while steps are action items that lead to a desired outcome. Steps in a business
process are bound to columns in Microsoft Dataverse. In addition to the default visualizations of the control type
(text boxes, dropdowns, and so on), you can use custom controls to add rich visualizations (such as sliders, radial
knobs, the LinkedIn control, and more) to business process flows steps and deliver engaging experiences to
those who use your business process.
Here are the steps you must follow to add custom controls to a business process flow:
1. Configure custom controls on a related table form.
2. Generate and exporting the business process flow form.
3. Copy custom control configurations to the business process flow form from the related table form.
4. Import the customizations back into Microsoft Dataverse.
Follow these steps for a detailed walkthrough adding custom controls to business process flows steps.
Best practices in using business process flow
columns
1/15/2022 • 3 minutes to read • Edit Online
Legacy process-related columns in tables is deprecated. Here are some best practices for using the Active Stage
(activestageid) column on the business process flow table.
Here, you can define views and charts just as you do on any other table.
An advantage of this approach is that you can use a single view or chart to report on business process flows
that span multiple tables.
Further, as the business process flow table is no different from any other custom table in Dataverse, you can add
custom columns to the table to track any additional information you need.
Option 2: copy active stage to a related table
Alternatively, to continue reporting off the related table, create a cloud flow to copy the Active Stage
(activestageid) column from the business process flow table into a custom column on the related Dataverse
tables.
Here are a few things to keep in mind when you use this approach:
1. It's possible to have more than one business process flow running on a single table. With this approach,
it's best to have one custom column that stores the active stage for each business process flow that runs
on the table. This approach ensures the integrity of the reporting.
2. As reporting is driven from the related table, it's not possible to create a single view that reports on
business process flows that span multiple tables.
TIP
For scenarios like these, use the supported set of client APIs for business process flows.
TIP
Use classic Dataverse workflows or flows you define on the table for the business process flow.
To build a classic Dataverse workflow that creates activities for internal solution reviews and to follow up with
the customer in the Propose stage of the Oppor tunity Sales Process :
1. Create it on the Oppor tunity Sales Process table and set it to run each time the Active Stage column
of the table changes.
2. Define a condition to check if the Active Stage column equals Propose .
3. Create an appointment and phone call row for the internal review of the solution and the customer call to
review the solution respectively.
Manage connections in Power Automate
1/15/2022 • 2 minutes to read • Edit Online
Power Automate uses connections to make it easy for you to access your data while building flows. Power
Automate includes commonly used connections, including SharePoint, SQL Server, Microsoft 365, OneDrive for
Business, Salesforce, Excel, Dropbox, Twitter, and more. Connections are shared with Power Apps, so when you
create a connection in one service, the connection shows up in the other service.
Here's a quick video on managing connections.
TIP
For detailed information about using SharePoint with Power Automate, see the SharePoint documentation.
Add a connection
1. In Power Automate, sign in with your work or organization account.
2. On the left pane, select Data > Connections .
3. At the top of the page, select New connection .
4. In the list of available connections, choose the connection that you want to set up (such as SharePoint) by
selecting the plus sign (+ ).
5. Follow the steps to enter your credentials to configure the connection.
TIP
You can find all the connections that you've created under Data > Connections .
4. Provide the connection's credentials, and then select the gateway that you want to use. More information:
Manage gateways and Understand gateways
NOTE
After the connection is configured, it's listed in Connections .
Delete a connection
1. Go to Data > Connections , and select the connection that you want to delete.
2. Select … to view more commands, and then select Delete .
3. Select Delete to confirm that you would like to delete the connection.
When you delete a connection, it's removed from both Power Apps and Power Automate.
Update a connection
You can update a connection that isn't working because your account details or your password changed.
1. Go to Data > Connections , and then select the Fix connection link for the connection that you want to
update.
Troubleshoot a connection
Depending on your organization's policies, you might need to use the same account for signing in to Power
Automate and creating a connection to SharePoint, Microsoft 365, or OneDrive for Business.
For example, you might sign in to Power Automate with [email protected] but be blocked when you try
to connect to SharePoint with [email protected]. You can instead sign in to Power Automate with
[email protected] and you'll be able to connect to SharePoint.
Manage an on-premises data gateway in Power
Automate
1/15/2022 • 2 minutes to read • Edit Online
Install and manage an on-premises data gateway to securely integrate a variety of cloud-based apps with your
on-premises data and apps through Power Automate.
With a gateway, you can connect to on-premises data over the following connections.
Apache Impala
Custom connectors that you create
DB2
File System
Http with Azure AD
Informix
MySQL
Oracle Database
PostgreSQL
SharePoint
SQL Server
Teradata
IMPORTANT
Microsoft SharePoint data gateways now support both HTTP and HTTPS traffic.
Prerequisites
The user name and password that you used to sign up for Power Automate.
Administrative permissions on a gateway.
You have these permissions by default for each gateway that you install. Also, an administrator of another
gateway can grant you these permissions for that gateway.
A license that supports gateways. For more information, see the “Connectivity” section of the pricing
page.
TIP
You can create a gateway and an on-premises connection for any environment.
Install a gateway
To install a gateway, follow the steps in Install an on-premises data gateway. Install the gateway in standard
mode because the on-premises data gateway (personal mode) is available only for Power BI.
View your gateways
Sign in to Power Automate, and then select Data > Gateways in the navigation pane on the left side.
NOTE
If you created or were given access to a gateway in Power Apps, that gateway appears in the My gateways list in Power
Automate.
The on-premises data gateway acts as a bridge to provide 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 their on-premises networks, yet securely use that on-premises
data in cloud services.
For more information on how the gateway works, see On-premises data gateway architecture.
Types of gateways
There are two different types of gateways, each for a different scenario:
On-premises data gateway allows multiple users to connect to multiple on-premises data sources.
You can use an on-premises data gateway with all supported services, with a single gateway installation.
This gateway is well-suited to complex scenarios with multiple people accessing multiple data sources.
On-premises data gateway (personal mode) allows one user to connect to sources, and can’t be
shared with others. An on-premises data gateway (personal mode) can be used only with Power BI. This
gateway is well-suited to scenarios where you’re the only person who creates reports, and you don't
need to share any data sources with others.
Use a gateway
There are four main steps for using a gateway.
1. Download and install the gateway on a local computer.
2. Configure the gateway based on your firewall and other network requirements.
3. Add gateway admins who can also manage and administer other network requirements.
4. Troubleshoot the gateway in case of errors.
Next steps
Install the on-premises data gateway
Classic Dataverse background workflows
1/15/2022 • 2 minutes to read • Edit Online
Workflows automate business processes without a user interface. People usually use workflow processes to
initiate automation that doesn’t require any user interaction.
There are two types of workflows:
1. Real-time workflows. See the Power Apps documentation for more details about real-time workflows.
2. Background workflows.
To create background workflows, you must select the Run this workflow in the background
(recommended) check box, as displayed in the following image.
See other topics here in the Power Automate documentation to learn more about background workflows.
Learn more
Configure background workflow stages and steps.
Monitor and manage background workflow processes
Best practices for background workflow processes.
Replace background workflows with flows
Configure background workflow stages and steps
1/15/2022 • 6 minutes to read • Edit Online
When you design workflows you have the option to contain the logic you want to perform in stages and steps .
Stages make the workflow logic easier to read, and explain the workflow logic. However, stages do not affect
the logic or behavior of workflows. If a process has stages, all the steps within the process must be contained
with a stage.
Steps are a unit of business logic within a workflow. Steps can include conditions, actions, other steps, or a
combination of these elements.
A C T IO N DESC RIP T IO N
Create row Creates a new row for a table and assigns values you choose
to columns.
Update row You can update the row that the background workflow is
running on, any of the rows linked to that row in an N:1
relationships, or any rows created by earlier steps.
Assign row You can assign the row that the background workflow is
running on, any of the rows linked to that row with an N:1
relationship, or any rows created by earlier steps.
Send Email Sends an email. You can choose to create a new email
message or use an email template configured for the table of
the row that the background workflow is running on or any
tables that have an N:1 relationship with the table, or the
table for any rows created by earlier steps.
Star t Child Workflow Starts a background workflow process that has been
configured as a child workflow.
Change Status Changes the status of the row that the process is running
on, any of the rows linked to that row with an N:1
relationship, or any rows created by earlier steps.
Stop Workflow Stops the current workflow. You can set a status of either
Succeeded or Canceled and specify a status message.
You can check the current values for the row that the
background workflow is running on, any of the rows linked
to that row in an N:1 relationships, or any rows created by
earlier steps. Based on these values you can define additional
steps when the condition is true.
Conditional Branch A logical "else-if-then" statement. The editor uses the text
“Otherwise, if <condition> then:”
Default Action A logical "else" statement. The editor uses the text
“Otherwise:”
The following screenshot contains an example of the background workflow process definition with the Under
and Not Under hierarchical operators. In our example, we apply two different discounts to two groups of
accounts. In Add Step , we selected the Check Condition to specify the if-then condition containing the
Under or Not Under operators. The first if-then condition applies to all accounts that are Under the Alpine
Ski House account. These accounts receive a 10 percent discount on purchased goods and services. The second
if-then condition applies to all accounts that are Not Under the Alpine Ski House account and they receive a 5
percent discount. Then, we selected Update row to define the action to be performed based on the condition.
Next steps
Create custom business logic through processes
Workflow processes overview
Monitor and manage background workflow processes
Best practices for background workflow processes
Monitor and manage background workflow
processes
1/15/2022 • 3 minutes to read • Edit Online
To monitor and manage processes, you must locate the process, evaluate the status, and perform any actions
necessary to address problems.
NOTE
If an asynchronous system job (workflow) fails several times consecutively, the system starts to postpone execution of
that job for longer and longer time intervals so that the administrator or app maker can investigate and resolve the issue.
Once the job starts succeeding again, it will resume executing normally.
Suspended Waiting
STAT E STAT US REA SO N
Locked In Progress
Pausing
Canceling
Completed Succeeded
Failed
Canceled
Next step
Best practices for background workflow processes
Best practices for background workflow processes
1/15/2022 • 2 minutes to read • Edit Online
This topic contains best practices for creating and managing background workflow processes.
Next steps
Configure background workflow processes
Monitor and manage background workflow processes
Replace classic Microsoft Dataverse workflows with
flows
1/15/2022 • 7 minutes to read • Edit Online
C A PA B IL IT Y P O W ER A UTO M AT E C L A SSIC W O RK F LO W
Looping Yes No
Trigger conditionally on No No
column values (For example,
on a certain date in a date
column)
We now have the approval structure created so the approver has all of the information needed to make a
decision on next steps. Here's the full example:
When you run this flow against your quote, it summarizes quote line items for that quote and sends an approval
request that the approver can respond to from Power Automate, or the actionable email they receive. Here's an
example of the display:
Recommended patterns
Workflows with complex else-if conditional logic
Instead of using conditions, we recommend using the switch action.
Workflows that run from plug-in/code
We recommend redesigning the flow to start with triggers:
Use Microsoft Dataverse triggers to run flows based on events in it.
To run flows based on events in an external service, leverage more than 260 out-of-the-box
connectors.
For scenarios where a connector you need isn’t available out-of-the-box, easily create your own
custom connector. More information: Create a custom connector from scratch
Finally, if there are scenarios where you cannot trigger your flow using Microsoft Dataverse
(legacy) connector, one of the out-of-the-box connectors, or by creating a custom connector,
leverage the When an HTTP request is received trigger to invoke the flow.
Workflows that run recursively
Use the do-until or apply to each loop in flows instead.
Workflows that need a list of rows
Use the list rows action. When using this action, define the row filtering criteria using OData syntax to
optimize the action by minimizing the number of rows you want to retrieve.
Workflows that sleep to run on a schedule
Use the recurrence trigger to run business logic at periodic intervals.
Workflows for which runs were managed to ensure activities were executed in a single
transaction
Use the changeset action to ensure that all actions within it are performed as a single, atomic unit in
which either all succeed, or fail as a group. If any one of the actions in a change set fails, changes made by
completed operations are rolled back.
Monitor background workflow runs for failures
In Power Automate, use the run-after setting on an action to configure it to run when the previous
action fails. For example, send a Power Automate mobile notification when the update a row action fails,
or times out.
FAQs
I have a Dynamics 365 license. Can I use Power Automate?
Every Dynamics 365 user is entitled to use Power Automate. Review our licensing information.
How often can my flows be triggered?
Dynamics 365 (or Microsoft Dataverse) flows run near real-time after the trigger because they use
webhooks (no polling required).
As with direct API access, there are throttles/limits in the system. More information: Limits and
configuration in Power Automate
Specifically, there is a limit of 100,000 actions per 5 minutes, per flow. A single loop in a cloud flow
cannot process more than 100,000 items at once.
Maximum of 6 GB of throughput per 5 minutes.
How long can a single flow run?
A single flow run times out after 30 days.
How do I move my flows between environments?
Just like classic workflows, you can create flows in solutions to support the full application lifecycle for
processes.
Are Power Automate dependencies tracked in Microsoft Dataverse?
Similar to other components in a solution, all dependencies for flows in solutions are tracked in Microsoft
Dataverse.
What about synchronous workflows?
We've seen feedback that synchronous workflows are a significant contributor to end-user performance
issues. We recommend that you evaluate whether your objective, or parts of the background workflow,
can be built using a cloud flow. If you can split actions out as asynchronous, the user can continue their
activity while Power Automate completes the action.
Using Power Automate, will my data stay within region (that is, the same region as my
Dynamics 365 or Microsoft Dataverse environment)?
Yes, Power Automate always uses the same region as Microsoft Dataverse.
Do I need to make proxy/firewall changes?
Refer to the IP address configuration reference to determine whether you need to make any
proxy/firewall changes.
Create a mobile task flow
1/15/2022 • 2 minutes to read • Edit Online
Design a cloud flow in Dynamics 365 for phones or Dynamics 365 for tablets based on common tasks your
users perform. For example, if they need to regularly perform a series of follow-up steps after client meetings,
create a task flow. When users tap the new task in their mobile app, it will lead them through from start to finish
so they don't forget an important step.
Task flows can use multi-table forms and logic, and can have form logic that runs across the task flow pages.
7. If your users will progress from one page to another in order, drag the Page component from the
Components tab on the right side of the screen and drop it on the + sign in the appropriate spot. To add
a name for a page, select the page, select the Proper ties tab, type a new name, and then select Apply .
8. To add a branch to the task flow, drag the Condition component from the Components tab and drop it
on the + sign in the appropriate spot. To set properties for the condition, select the condition, set the
properties in the Proper ties tab, and then select Apply .
NOTE
As you add pages and conditions to the task flow, you'll see a minimap in the lower-left corner of the window that
shows all the pages and conditions in the task flow.
9. To add a field, label, or section label to a page, drag Field , Label , or Section Label from the
Components tab to the appropriate page. To change the properties for one of these items, select the
item, set the properties in the Proper ties tab, and then select Apply .
10. To validate the task flow, select Validate on the action bar.
11. To save the process as a draft, select Save at the top of the screen. (As long as a process is a draft, people
won’t be able to use it.)
12. To activate the task flow so that people can use it, select Activate .
TIP
Here are a few tips to keep in mind as you work on your task flow in the designer window:
To take a snapshot of everything in the task flow window, select Snapshot on the action bar.
To connect a valid component to another valid component in the designer, select Connector on the action bar.
You can make the images on the screen larger or smaller by selecting the Increase the zoom level or Decrease
the zoom level buttons in the upper-right corner of the screen. Select the Fit to canvas button to blow the images
up to the largest size that fits on the screen.
Next steps
Create a business process flow
Use Dataverse dialogs for guided processes
(Deprecated)
1/15/2022 • 2 minutes to read • Edit Online
Dialogs are deprecated. You should replace dialogs with business process flows or canvas apps. More
information: Replace dialogs with business process flows or canvas apps
Dialogs are the synchronous or interactive processes in Dataverse that collect and process information by using
step-by-step scripts to direct users through a process. For example, you can create dialogs to act as a guide for
your service representatives for case resolution and case escalation. Similarly, you can create dialogs for
standardizing sales processes such as opportunity qualification and lead scoring.
W O RK F LO W S DIA LO GS
Are asynchronous or real-time processes, and do not require Are real-time processes that require user input to run to
user input to run to completion. Asynchronous processes completion. When you run these processes, a wizard-like
run in the background while real-time processes run interface is presented to you so you can make appropriate
immediately. selections to run the processes.
The table that stores the details about a running The table that stores information generated by a running
asynchronous workflow is AsyncOperation while a dialog is the ProcessSession table.
Process is used for a real-time workflow.
Triggers are supported for workflows. For a list of supported Triggers are not supported for dialogs.
triggers, see Supported Types, Triggers, and Tables for
Processes.
See also
Replace dialogs with business process flows or canvas apps
Replace dialogs with business process flows or
canvas apps
1/15/2022 • 7 minutes to read • Edit Online
Dialogs are deprecated, and should be replaced by business process flows or canvas apps. This topic describes
different capabilities of these options as well as situations where a business process flow or canvas app
embedded in a model-driven form can be used to replace an existing dialog.
Variables No Yes
Reuse No Yes
(launch as a child dialog) (navigate to any screen within app,
launch a different app in a new
window)
See also
Tutorial: Create a business process flow to standardize processes
What are canvas apps in Power Apps?
Power Automate for enterprise developers, ISVs,
and partners
1/15/2022 • 4 minutes to read • Edit Online
NOTE
Microsoft Flow is now Power Automate. For more information, see this blog.
This content will be updated to reflect the branding change in the coming days.
As a developer, you can extend Power Automate, enabling even more powerful solutions for organizations and
customers.
P H A SE ST EP W H EN N EEDED?
Development 1. Build a custom connector to your If you want to expose your own ISV
data data to Power Apps or Power
Automate
Development 2. Add support for your application to If you want to embed the Power
authenticate users with Azure Active Automate UI or list in Microsoft
Directory (Azure AD) AppSource
Development 3. Embed the Power Automate UI into If you want to include flow creation or
your application using our web-based management in your application
iframe
Development 4. Create and publish flow templates If you want to pre-build flows for your
customers
P H A SE ST EP W H EN N EEDED?
Distribution 6. Grant your customers licenses to If your customers don’t have Office
Microsoft Flow through the Microsoft 365 or Dynamics 365 licenses
Cloud Solution Provider program
NOTE
Microsoft Flow is now Power Automate. For more information, see this blog.
This content will be updated to reflect the branding change in the coming days.
Without writing any code, you can build workflows and apps with Azure Logic Apps, Power Automate, and
Power Apps. To help you integrate your data and business processes, these services offer 180+ connectors - for
Microsoft services and products, as well as other services, like GitHub, Salesforce, Twitter, and more.
Sometimes though, you might want to call APIs, services, and systems that aren't available as prebuilt
connectors. To support more tailored scenarios, you can build custom connectors with their own triggers and
actions. We have a complete set of basic and advanced tutorials for custom connectors on the Connectors
documentation site. We recommend that you start with the custom connector overview, but you can also go
straight to the following topics for details on a specific area:
Create a custom connector from an OpenAPI definition
Create a custom connector from a Postman collection
Create a custom connector from scratch
Use a custom connector from a cloud flow
Share custom connectors in your organization
Submit your connectors for Microsoft certification
Custom connector FAQ
Integrate Power Automate with websites and apps
1/15/2022 • 14 minutes to read • Edit Online
NOTE
Microsoft Flow is now Power Automate. For more information, see this blog.
This content will be updated to reflect the branding change in the coming days.
Embed Power Automate into your app or website using flow widgets to give your users a simple way to
automate their personal or professional tasks.
Flow widgets are iframes located in a host document. This document points to a page in the Power Automate
designer. These widgets integrate specific Power Automate functionality into the third-party application.
Widgets can be simple. For example, a widget that renders a list of templates with no communication between
the host and iframe. Widgets can also be complex. For example, a widget that provisions a cloud flow from a
template and then triggers the flow via two-way communication between the host and the widget.
Prerequisites
A Microsoft Account or
A work or school account
PA RA M ET ER DESC RIP T IO N
locale The four-letter language and region code for the template
view. For example, en-us represents US English, and
de-de represents German.
search term The search term for the templates that you want to show in
the view. For example, search SharePoint to show
templates for SharePoint.
number of templates The number of templates that you want to show in the view.
destination The page that opens when users select the template. Enter
details to show the details about the template, or enter
new to open the Power Automate designer.
If the destination parameter is new , the Power Automate designer opens when users select a template. Users
can then create a cloud flow in the designer. See the next section if you want to have the full experience from the
widget.
Passing additional parameters to the flow template
If the user is in a specific context in your website or app, you might want to pass that context to the flow. For
example, a user might open a template for When an item is created while looking at a certain list in SharePoint.
Follow these steps to pass in the list ID as a parameter to the flow:
1. Define the parameter in the flow template before you publish it. A parameter looks like
@{parameters('parameter_name')} .
2. Pass the parameter in the query string of the iframe src. For example, add
¶meters.listName={the name of the list} if you have a parameter called listName .
Full sample
To show the top four SharePoint templates in German and to start the user with myCoolList , use this code:
<iframe src="https://flow.microsoft.com/de-de/widgets/templates/?
q=sharepoint%20&pagesize=4&destination=details¶meters.listName=myCoolList"></iframe>
flows Shows a list of flows in a tab for personal and shared flows.
Edit an existing flow or create a new flow from a template or
blank.
Use the authenticated Flow SDK to allow users to create and manage flows directly from your website or app
(instead of navigating to Power Automate). You'll need to sign the user in with their Microsoft Account or Azure
Active Directory to use the authenticated SDK.
NOTE
There is no way to hide the Power Automate branding when you use widgets.
Widget architecture
Power Automate widgets work by embedding an iframe that references Power Automate into a host application.
The host provides the access token that's required by the Power Automate widget. Power Automate's JS SDK
enables the host application to initialize and manage the widget life cycle.
JS SDK details
The Power Automate team provides the JS SDK to facilitate integrating Flow widgets in third-party applications.
The Flow JS SDK is available as a public link in the Flow service and lets the host application handle events from
the widget and interact with the Flow application by sending actions to the widget. Widget events and actions
are specific to the widget type.
Widget initialization
The Flow JS SDK reference needs to be added to the host application before initializing the widget.
<script src="https://flow.microsoft.com/Content/msflowsdk-1.1.js"></script>
Create a JS SDK instance by passing optional hostName and locale values in a JSON object.
Once the JS SDK instance is created you can initialize and embed a Power Automate widget in a parent element
in the host application. To do so, add an HTML div:
Then, initialize the Power Automate widget with the JS SDK renderWidget() method. Be sure to provide the
widget type and corresponding settings.
Here's a sample style for the container that you can modify to match with the host application's dimensions.
<head>
<style>
.flowContainer iframe {
width: 400px;
height: 1000px;
border: none;
overflow: hidden;
}
</style>
</head>
Access tokens
After the JS SDK renderWidget() runs, the JS SDK initializes an iframe which points to the Power Automate
widget URL. This URL contains all the settings in the query string parameters. The host application needs to get
a Power Automate access token for the user (Azure Active Directory JWT token with audience
https://service.flow.microsoft.com) before it initializes the widget. The widget raises a GET_ACCESS_TOKEN event to
request an access token from the host. The host needs to handle the event and pass the token to the widget:
widget.listen("GET_ACCESS_TOKEN", function(requestParam, widgetDoneCallback) {
widgetDoneCallback(null, {
token: '<accesstokenFromHost>'
});
});
The host application is responsible for maintaining the token and passing it with a valid expiry date to the
widget when requested. If the widget is open for longer periods, the host should check if the token is expired
and refresh the token if it's needed before passing it to the widget.
Detecting if the widget is ready
After successful initialization, the widget raises an event to notify that the widget is ready. The host can listen to
the WIDGET_READY event and execute any additional host code.
widget.listen("WIDGET_READY", function() {
console.log("The flow widget is now ready.");
// other host code on widget ready
});
Widget settings
FlowsSettings
FlowsSettings can be used to customize the functionality of the Power Automate widget.
flowsSettings?: {
createFromBlankTemplateId?: string;
flowsFilter?: string;sc
tab?: string;
};
TemplatesSettings
This applies to all widgets that enable you to create flows from a template, including Flows, FlowCreation, and
Templates widgets.
templatesSettings?: {
defaultParams?: any;
destination?: string;
pageSize?: number;
searchTerm?: string;
templateCategory?: string;
useServerSideProvisioning?: boolean;
enableDietDesigner?: boolean;
};
ApprovalCenterSettings
Applies to ApprovalCenter widgets.
approvalCenterSettings?: {
approvalsFilter?: string;
tab?: string;but
autoNavigateToDetails?: boolean;
showSimpleEmptyPage? boolean;
hideLink?: boolean
};
approvalsFilter:
'properties/itemlinkencoded eq
\'{Your base64 encoded item link
url} \''
Widget events
The Power Automate widget supports events that let the host listen to widget life-cycle events. The Power
Automate widget supports two types of events: one-way notification events (for example, Widget_Ready) and
events raised from the widget to fetch data from the host (Get_Access_Token). The host needs to use the
widget.listen() method to listen to specific events raised from the widget.
Usage
widget.listen("<WIDGET_EVENT>", function() {
console.log("The flow widget raised event");
});
Runtime widget
W IDGET EVEN T DETA IL S DATA
Approval widget
W IDGET EVEN T DETA IL S
GET_STRINGS event lets you customize text for some of the UI elements shown in the widget. The following
strings can be customized:
FLOW_CREATION_CUSTOM_FLOW_NAME The initial value to use for the flow name in the flow creation
widget. Only used when the allowCustomFlowName setting
is enabled.
ST RIN G K EY USE IN T H E W IDGET
FLOW_CREATION_HEADER Header to use when creating a cloud flow in both the flow
creation and runtime widget
Example
Call widgetDoneCallback passing a JSON object with key-value pairs of string key and text to override the
default value.
Widget actions
The host uses widget actions to send a specific action or message to the widget. Widget JS SDK provides the
notify() method to send a message or a JSON payload to the widget. Each widget action supports a specific
payload signature.
Usage
widget.notify('<WIDGET_ACTION>', parameterMatchingParameterInterface)
.then(result => console.log(result))
.catch(error => console.log(error))
Example
Invoke a cloud flow by sending the following command to a runtime widget
Runtime widget
W IDGET A C T IO N DETA IL S PA RA M ET ER IN T ERFA C E
Approval widget
W IDGET A C T IO N DETA IL S PA RA M ET ER IN T ERFA C E
5. Select Settings .
6. Select Required permissions under API access /
7. Select Add .
8. Choose Select an API .
9. Search for Power Automate ser vice and select it. Note: Before you can see Power Automate service, your
tenant needs to have at least one AAD user signed into the Flow portal (https://flow.microsoft.com)
10. Choose the required Flow scopes for your application then select Save .
Your application will now get a Flow Service token that contains delegated permissions in the 'scp' claim in the
JWT token.
Sample application embedding flow widgets
A sample JavaScript Single Page Application (SPA) is provided in the resources section so you can experiment
with embedding flow widgets in a host page. Using the sample application requires registering an AAD
application with implicit grant flow enabled.
Registering an AAD app
1. Sign in to the Azure portal.
2. In the left navigation pane, select Azure Active Director y , then select App registrations (Preview) > New
registration.
3. When the Register an application page appears, enter a name for your application.
4. Under Suppor ted account types , select Accounts in any organizational directory.
5. Under the Redirect URL section, select the web platform and set the value to the application's URL based on
your web server. Configure this value to http://localhost:30662/ to run the sample app.
6. Select Register .
7. On the app Over view page, note the application (client) ID value.
8. The sample requires implicit grant flow to be enabled. In the left navigation pane of the registered
application, select Authentication .
9. In Advanced settings , under Implicit grant , enable both ID tokens and Access tokens checkboxes. ID
tokens and access tokens are required since this app needs to sign in users and call Flow API.
10. Select Save .
Running the sample
1. Download the sample and copy it to a local folder on your device.
2. Open the index.html file under the FlowSDKSample folder and modify the applicationConfig to update the
clientID to the application ID you registered earlier.
3. The sample app is configured to use Flow scopes Flows.Read.All and Flow.Manage.All. You can configure
additional scopes by updating the flowScopes property in applicationConfig object.
4. Run these commands to install the dependency and run the sample app:
8. Select Load Flows widget or Load Templates widget to embed the corresponding widgets.
Sample application download link.
Resources
Widget test pages
Find out more about widget integration and settings:
Templates widget: <https://flow.microsoft.com/test/templateswidget/>
FlowCreation widget: <https://flow.microsoft.com/test/flowcreationwidget/>
Runtime widget: <https://flow.microsoft.com/test/runtimewidget/>
Approvals center widget: <https://flow.microsoft.com/test/approvalcenterwidget/>
Flows widget: <https://flow.microsoft.com/test/managewidget/>
Supported widget locales
If the initialized locale isn't listed, Flow will default to the closest supported locale.
LO C A L E L A N GUA GE
NOTE
Microsoft Flow is now Power Automate. For more information, see this blog.
This content will be updated to reflect the branding change in the coming days.
Do you want to show off how your app integrates with Power Automate? We now Test Drive solutions on
AppSource.com as a way for you to share Power Automate integration with customers, and generate leads for
your business.
A business process flow lets you create more efficient and streamlined sales, service, and other business
processes. It creates a visualization of your business process by placing special controls at the top of the table
forms. Users are guided through various stages of sales, marketing, or service processes towards completion.
Each process supports multiple stages and steps. You can add or remove steps, change the order of stages, or
add new tables to the business process flow.
Different business process flow instances can run concurrently against the same table row. Users can switch
between concurrent business process instances, and resume their work at a current stage in the process.
This topic provides information about how you can programmatically work with business process flows.
NOTE
You don't have to write code to work with business process flows. For information about using the UI to create and
manage business process flows, see Business Process Flows overview
IMPORTANT
Enabling a table for business process flow is a one way process. You can’t reverse it.
IMPORTANT
The sample business process flow rows use system tables to store the corresponding business process flow instance rows.
However, any new business process flow definitions you create will use custom tables to store its instance rows as
explained earlier.
You can retrieve the name of your business process flow table using any of the following ways:
Using the UI : Use the customization UI to browse to your business process flow table:
Response
{
"@odata.context":"[Organization URI]/api/data/v9.0/$metadata#workflows(uniquename)",
"value":[
{
"@odata.etag":"W/\"1084677\"",
"uniquename":"new_mycustombpf",
"workflowid":"2669927e-8ad6-4f95-8a9a-f1008af6956f"
}
]
}
Using the Organization ser vice : Use the following code sample:
NOTE
The IsBPFEntity property is true for business process flow tables. You can retrieve all the business process flow tables in
your instance by running the following Web API request:
IMPORTANT
Switching to another process instance for a table row is only supported through UI (client) or programmatically using
information available in this section. You can no longer use the SetProcess message (SetProcess Action or
SetProcessRequest) to programmatically switch processes (set another business process flow as the active process
instance) for the target table row.
Lets consider the following example where we have a cross-table business process flow, "My Custom BPF," with
3 stages: S1:Account, S2:Account, and S3:Contact.
Retrieve all the rows (instances) for a business process flow table
If the name of your business process flow table is "new_mycustombpf", use the following query to retrieve all
the rows (process instances) for your business process flow table:
GET [Organization URI]/api/data/v9.0/new_mycustombpfs HTTP/1.1
At this point, you might not get any instances in your response as there are none. Run this request after creating
an instance of your business process flow definition later in this topic.
NOTE
To know how to retrieve the name of your business process flow table, see the earlier section, Business process flow table.
Response
{
"@odata.context": "[Organization URI]/api/data/v9.0/$metadata#processstages(stagename)",
"value": [
{
"@odata.etag": "W/\"858240\"",
"stagename": "S1",
"processstageid": "9a9185f5-b75b-4bbb-9c2b-a6626683b99b"
},
{
"@odata.etag": "W/\"858239\"",
"stagename": "S3",
"processstageid": "a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a"
},
{
"@odata.etag": "W/\"858238\"",
"stagename": "S2",
"processstageid": "19a11fc0-3398-4214-8522-cb2a97f66e4b"
}
]
}
Next, use the following request to create an instance of your business process flow definition for an account row
(ID=a176be9e-9a68-e711-80e7-00155d41e206) and the active stage set as the first stage of the process
instance, S1 (ID=9a9185f5-b75b-4bbb-9c2b-a6626683b99b):
Request
{
"[email protected]": "/accounts(a176be9e-9a68-e711-80e7-00155d41e206)",
"[email protected]": "/processstages(9a9185f5-b75b-4bbb-9c2b-a6626683b99b)"
}
Response
Note that if you want to create an instance of your business process flow definition with the active stage set as a
stage other than the first stage, you must also provide traversedpath in your request. Traversed path is the
comma-delimited string of process stage ids that represent visited stages of the business process flow instance.
The following request creates an instance for an account row (ID=679b2464-71b5-e711-80f5-00155d513100)
and active stage set as the second stage, S2 (ID=19a11fc0-3398-4214-8522-cb2a97f66e4b).
{
"[email protected]": "/accounts(679b2464-71b5-e711-80f5-00155d513100)",
"[email protected]": "/processstages(19a11fc0-3398-4214-8522-cb2a97f66e4b)",
"traversedpath":"9a9185f5-b75b-4bbb-9c2b-a6626683b99b,19a11fc0-3398-4214-8522-cb2a97f66e4b"
}
{
"[email protected]": "/processstages(19a11fc0-3398-4214-8522-cb2a97f66e4b)",
"traversedpath": "9a9185f5-b75b-4bbb-9c2b-a6626683b99b,19a11fc0-3398-4214-8522-cb2a97f66e4b"
}
VA L UE L A B EL
0 Active
1 Inactive
VA L UE L A B EL
1 Active
2 Finished
3 Aborted
So, to Abor t a process instance, use the following request set the statecode and statuscode values
appropriately:
{
"statecode" : "1",
"statuscode": "3"
}
NOTE
You can abort a process instance at any stage.
Similarly, to reactivate a process instance, replace the statecode and statuscode values in the above code with
0 and 1 respectively.
Finally, to set a process instance status as Finished , which is only possible at the last stage of a process instance,
replace the statecode and statuscode values in the above code with 0 and 2 respectively.
Cross-table navigation
For cross-table navigation in this example, you must set the active stage of the process instance to the last stage,
S3 (ID=a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a), update the traversed path accordingly, and set a contact
row as the primary table row as per the business process flow definition.
{
"[email protected]": "/processstages(a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a)",
"traversedpath":"9a9185f5-b75b-4bbb-9c2b-a6626683b99b,19a11fc0-3398-4214-8522-cb2a97f66e4b,a107e2fd-
7543-4c1a-b6b4-b8060ecb1a1a",
"[email protected]": "/contacts(0e3f10b0-da33-e811-80fc-00155d513100)"
}
Response
If the row exists, you’ll get a normal response with status 204 to indicate the delete was successful. If the table
isn’t found, you’ll get a response with status 404.
Once you have the active stage and the active path information for a business process flow instance, you can
use the information to move to a previous or next stage in the active path. Forward navigation of stages must be
done in sequence, that is, you should only move forward to the next stage in the active path.
For the complete sample that code demonstrates the usage of these two methods and stage navigation using
the Organization service, see Sample: Work with business process flows.
NOTE
Overriding the default logic of business process flows getting applied automatically to new table rows is only supported
programmatically. You cannot do this using the UI.
NOTE
Microsoft Flow is now Power Automate. For more information, see this blog.
This content will be updated to reflect the branding change in the coming days.
This sample demonstrates how to programmatically work with business process flows such as retrieving the
business process flow instances for a table row, retrieving active path for a business process flow instance and
its process stages, and changing the active stage. For information about these concepts, see Work with business
process flows using code
This sample is available to download from Sample: Work with business process flows.
Prerequisites
Before you can run the sample:
1. Have access to a Dataverse environment.
2. Have appropriate privileges on the Lead, Opportunity, and Workflow tables and business process flow
definition table rows used in this sample.
3. Have Visual Studio 2015 or later to run the sample.
4. Have Internet connection to download the sample project and to restore the NuGet packages used in the
sample project.
P RO M P T DESC RIP T IO N
Enter a Dynamics 365 server name and port Type the name of your Dynamics 365 server. The default
[crm.dynamics.com] is Dynamics 365 (online) (crm.dynamics.com) in North
America.
Example:
crm5.dynamics.com
Is this organization provisioned in Microsoft online Type y if this is a Microsoft online services provisioned
services (y/n) [n] organization. Otherwise, type n .
Enter password Type your password. The characters will show as “*” in
the window. Your password is securely saved in the
Microsoft Credential Manager for later reuse.
Specify an organization number (1-n) [1] From the list of organizations shown that you belong to,
type the corresponding number. The default is 1,
indicating the first organization in the list.
6. The sample will perform the operations described in What this sample does and may prompt you with
additional options.
7. When the sample is complete, press ENTER to close the console window.
Custom Dataverse workflow activities (workflow
assemblies)
1/15/2022 • 2 minutes to read • Edit Online
NOTE
Microsoft Flow is now Power Automate. For more information, see this blog.
This content will be updated to reflect the branding change in the coming days.
Dataverse supports the registration and execution of custom workflow activities in addition to the out-of-box
activities provided by Windows Workflow Foundation.
Windows Workflow Foundation includes an activity library that provides activities for control flow, sending and
receiving messages, doing work in parallel, and more. However, to build applications that satisfy your business
needs, you may need activities that perform tasks specific to that application. To make this possible, Windows
Workflow Foundation supports the creation of custom workflow activities.
More information: Create a workflow extension
Related topics
Dataverse Developer Overview
Create a plug-in
Power Automate sign-up Q&A in your organization
1/15/2022 • 10 minutes to read • Edit Online
This topic describes how users in your organization can use Power Automate, and how you can control the
Power Automate service.
NOTE
This action removes the Power Automate tile by default. A user may still choose to use Power Automate as an individual.
Why did 10,000 licenses for Power Automate show up in my Office 365 tenant?
Any person can try out Power Automate Free for 90 days, and these trial licenses represent the available
capacity for new Power Automate users in your tenant. There is no charge for these licenses.
If at least one user in your tenant has signed-up for a Microsoft Power Automate Free license, you will see
10,000 licenses (minus any assigned) under Billing > Licenses for your organization.
You can choose to assign additional licenses to users yourself through the Office 365 admin portal, but note that
these are trial licenses for Power Automate, and they will expire after 90 days of being assigned to a user.
Is this free? Will I be charged for these licenses?
No user can incur any cost to your organization without your express consent, so neither free nor trial licenses
can cause any charges to your organization. Moreover, they also do not use any quotas, such as run quotas.
I removed the Power Automate Free license and users can still access it.
The Power Automate Free license is included only for tracking purposes. As covered in the first section, it is not
possible to prevent another person from using Power Automate for individual purposes. Thus, the presence of a
Power Automate Free license does not actually grant or remove any capabilities.
Why can't I see all Power Automate licenses in the Office 365 Admin portal?
Users can use Power Automate either as individuals or as a part of their organization. Licenses at the
organization level will always be visible in the Office 365 portal. However, if a user signs up for a trial as an
individual then that is not managed by their Office 365 admin and will not show up in the portal.
How does an individual find out what plan they are on?
1. Sign into Power Automate.
2. Select your profile picture in the top right corner of the screen.
3. Select View account .
4. Select the Subscriptions tile.
5. Search for Power Automate under the Licenses section.
You will see the license that you have for Power Automate.
Will Power Automate sign up impact the identities in my organization?
If your organization already has an existing Office 365 environment and all users in your organization have
Office 365 accounts, then identity management is not impacted.
If your organization already has an existing Office 365 environment but not all users in your organization have
Office 365 accounts, then we create a user in the tenant and assign licenses based on the user’s work or school
email address. This means that the number of users you are managing at any particular time will grow as users
in your organization sign up for the service.
If your organization does not have an Office 365 environment connected to your email domain, there is no
change in how you manage identity. Users will be added to a new, cloud-only user directory, and you will have
the option to take over as the tenant admin and manage them.
A new tenant was created by Power Automate, how do I manage this?
If a new tenant was created by Power Automate, then you can claim and manage that tenant using the following
steps:
1. Join the tenant by signing up for Power Automate using an email address domain that matches the
tenant domain you want to manage. For example, if Microsoft created the contoso.com tenant, then join
the tenant with an email address ending with @contoso.com.
2. Claim admin control by verifying domain ownership: once you are in the tenant, you can promote
yourself to the admin role by verifying domain ownership. To do so, follow these steps:
a. Go to https://admin.microsoft.com.
b. Select the app launcher icon in the upper-left and choose Admin.
c. Read the instructions on the Become the admin page, and then choose Yes, I want to be the
admin .
TIP
If this option doesn’t appear, an Office 365 administrator is already in place.
If I have multiple domains, can I control the Office 365 tenant that users are added to?
If you do nothing, a tenant is created for each user email domain and subdomain.
If you want all users to be in the same tenant regardless of their email address extensions, you can create a
target tenant ahead of time or use an existing tenant. Add all the existing domains and subdomains that you
want consolidated within that tenant. Then all the users with email addresses ending in those domains and
subdomains automatically join the target tenant when they sign up.
IMPORTANT
There is no supported automated way to move users across tenants. To learn about adding domains to a single Office
365 tenant, see Add your users and domain to Office 365.
3. Makers can now run unattended desktop flows within the environment that has the unattended capacity.
NOTE
The unattended add-on is environment-specific. So, if you have multiple environments that need to run unattended RPA,
you need to assign add-on capacity to each of them. Also if you need to run multiple unattended desktop flows in parallel
in a single environment, you need to assign the right number of unattended add-ons to the environment to support the
flow runs.
NOTE
There's no user interface available to check license status.
You'll now see that the unattended trial is now active in your list of add-ons.
Assign unattended RPA add-on capacity to an environment
Before you can assign add-ons, such as trial licenses, you must get the add-ons.
1. Select Action items > Admin center in the Power Platform admin center.
IMPORTANT
You will need to ensure you assign enough capacity if you will run desktop flows in parallel.
NOTE
Only admins can assign unattended trial capacity.
Billing and metering questions
1/15/2022 • 2 minutes to read • Edit Online
This article answers frequently asked questions regarding billing and metering in Power Automate.
NOTE
Power Apps and Power Automate started to use a new licensing model on October 1, 2019.
If you're on a paid plan, runs are pooled across all users in your organization. We're working on features to
expose available quota and usage across an organization.
Why did I run out of runs when my flow only ran a few times?
Certain flows may run more frequently than you expect. For example, you might create a cloud flow that sends
you a push notification whenever your manager sends you an email. That flow must run every time you get an
email (from anyone) because the flow must check whether the email came from your manager. This action
counts as a run.
You can work around this issue by putting all the filtering you need into the trigger. In the push notification
example, expand the Advanced Options menu, and then provide your manager's email address in the From
field.
The admin center is the central location where tenant admins and environment admins manage an
organization’s data policies and environments. Any changes you make in the admin center are immediately
available to users within the organization.
Here's a quick video about the admin center.
NOTE
The Power Automate admin center is retired and Power Automate admins will be automaticaly redirected to the Microsoft
Power Platform admin center to manage data policies and environments for Power Automate deployments.
Environments
Learn more about using environments in the Microsoft Power Platform admin guide to manage users,
permissions and roles.
Data policies
Learn more about using data policies in the Power Platform admin guide to create rules that manage how
business data is shared between services in flows.
Activity logging
Learn more about the logging activities that Power Automate does to keep you informed about your users'
activities.
Using environments within Power Automate
1/15/2022 • 2 minutes to read • Edit Online
An environment is a space to store, manage, and share your organization's business data, apps, and flows. It also
serves as a container to separate apps that might have different roles, security requirements, or target
audiences. How you choose to use environments depends on your organization and the apps you build. For
example:
You can choose to only build your apps in a single environment. You might create separate environments
that group the test and production versions of your apps.
You might create separate environments that correspond to specific teams or departments in your
company, each containing the relevant data and apps for each audience.
You might also create separate environments for different global branches of your company.
You can create and manage environments using the Power Platform admin center.
Learn all about environments in the Microsoft Power Platform admin guide.
IP address configuration
1/15/2022 • 2 minutes to read • Edit Online
The IP addresses from which Power Automate requests are sent depends on the region where the environment
that contains the flow is located. We don't currently publish FQDNs available for flow scenarios.
IMPORTANT
Some calls a cloud flow makes may come from IP addresses that are listed in the Logic apps documentation. Some
examples of these calls include HTTP or HTTP + OpenAPI.
You should also consult the Limits and Configuration article for a supplemental listing for known IP addresses
that Power Automate uses.
Logic Apps
Calls made from a cloud flow go directly through the Azure Logic App service. Some examples of these calls
include HTTP or HTTP + Open API. Please reference the Logic apps documentation for which IP addresses are
used by that service.
Connectors
Calls made from a connector in a cloud flow (for example, the SQL API or the SharePoint API) come from these
IP addresses.
If you must authorize IP addresses for your Azure SQL database, you should use these addresses.
Required services
The following table lists the services to which Power Automate connects. Ensure none of these services are
blocked on your network.
DO M A IN S P ROTO C O L S USES
EN DP O IN T T Y P E DO M A IN S P ROTO C O L S USES
U.S. Government GCC and ocsp.digicert.com http Access to the CRL server for
GCC High endpoints crl3.digicert.com US government cloud.
crl4.digicert.com Needed when connecting
through the on-premises
data gateway.
As an admin, you will need to view the overall status of automation that runs in your organization. There are two
options to monitor the analytics for automation that's built with desktop flows:
1. The Power Platform admin center.
2. The Center of Excellence (CoE) Starter Kit.
Learn more
Analyze the desktop flows risk assessment in your environment.
Create Windows recorder (V1) flows.
Create Selenium IDE flows.
Run desktop flows.
Monitor desktop flows in the Center of Excellence
1/15/2022 • 2 minutes to read • Edit Online
For an overview of the desktop flows in your environment, visit the Microsoft Power Platform Center of
Excellence.
Learn more
Analyze the desktop flows risk assessment in your environment.
Create Windows recorder (V1) flows.
Create Selenium IDE flows.
Run desktop flows.
Data loss prevention (DLP) policies
1/15/2022 • 4 minutes to read • Edit Online
This document introduces you to data loss prevention policies, which help protect your organizational data from
being shared with a list of connectors that you define.
IMPORTANT
Administrators control data loss prevention policies. Contact your administrator if a data loss prevention policy is blocking
your flows from running.
Power Automate provides the ability to create and enforce policies that classify desktop flows modules (or
individual module actions) as business, non-business, or blocked categories. This categorization prevents
makers from combining modules and actions from different categories into a desktop flow, or between a cloud
flow and the desktop flows it uses.
NOTE
This feature becomes available in specific regions based on following schedule.
Canada 2021/11/1
Europe 2022/02/17
REGIO N DAT E AVA IL A B L E
US(NAM) 2022/02/17
IMPORTANT
This capability is available in preview at no cost. When this feature becomes generally available in 2022, it will be available
for environments with premium accounts only.
NOTE
Data loss prevention for desktop flows is available for versions of Power Automate Desktop 2.14.173.21294 or newer. If
you are using an older version, uninstall and update to the latest version.
NOTE
If your users don't have the latest Power Automate Desktop, they will experience limited data loss prevention policy
enforcements. The users will not see the design time error messages when they are trying to run, debug from Power
Automate Desktop, or save desktop flows that violate data loss prevention policies. We will have background jobs that will
periodically scan desktop flows in the environment, and automatically suspend those desktop flows that violate data loss
prevention policies. Users won't be able to run desktop flows from a cloud flow if the desktop flow violates any data loss
prevention policy.
IMPORTANT
When admins edit or create a policy, new Desktop flow connectors will be added to the default group and the policy will
be applied once it is saved. If the default group is set to "Blocked" and have Desktop flows running in the target
environment(s), these will get suspended.
Admins can create data loss prevention policies from https://admin.powerplatform.microsoft.com. They can
manage data loss prevention policy for desktop flows in the same way they manage cloud flow connectors and
actions. Desktop flows modules are groups of similar actions as displayed in the Power Automate Desktop user
interface. A module is similar to connectors that are used in cloud flows. You can define a data loss prevention
policy that manages both desktop flows modules and cloud flows connectors. There are also basic modules such
as “Variables” which aren't manageable in the scope of data loss prevention policy because almost all desktop
flows need to use those modules.
After the policy is enabled
Makers with the latest Power Automate Desktop will not be able to debug, run, or save desktop flows that
have data loss prevention policy violations.
Makers will not be able to select a desktop flow that is in violation of a data loss prevention policy from a
cloud flow step.
Background jobs
Every time a data loss prevention policy changes in your environment, a background job scans all existing
flows in the environment, and then suspends the flows that violate the updated policy.
After a data loss prevention policy changes, the background job automatically turns on all the desktop flows
that no longer violate any policies. However, the background job will not automatically turn on cloud flows.
Makers have to turn them on manually.
Known limitations
1. There's no support for cross checking the categories between a cloud flow and the desktop flows it calls. That
function is planned to be available during the first quarter of 2022.
2. There's no support for cross checking the modules that are used between a desktop flow and all its child
desktop flows. This feature is planned for general availability.
3. There's no support for "Set default group" from admin center for future added new destkop flow modules
that allows admin to specify a different default group for any future added new connectors. This support is
planned for general availability.
Next steps
Learn more about environments
Learn more about Power Automate
Learn more about the admin center
Power Automate mobile app supports Microsoft
Intune
1/15/2022 • 2 minutes to read • Edit Online
The Power Automate mobile app for iOS and Android supports Intune's Mobile Application Management (MAM)
without device enrollment. Using MAM allows IT administrators to create and enforce mobile data policies to
safeguard organizational data.
Learn more
Learn to create an app protection policy.
Learn all about data groups
1/15/2022 • 2 minutes to read • Edit Online
Next steps
Learn more about data loss prevention (DLP) policies
Learn more about environments
Sharing and connectors admin analytics reports
1/15/2022 • 2 minutes to read • Edit Online
Organizations need insights into how apps are used and who's using them. The Admin analytics sharing and
connectors reports provide insights into how Power Automate is being used within your tenant.
Use the shared flows report to learn who your app champions are and then empower them to provide even
more automated solutions for your organization. The connectors report identifies Microsoft, third-party, and
custom connectors that are in use within your organization.
Visit the Microsoft Power Platform documentation to get the details how to:
View the shared flows reports.
View the connectors reports.
Filter views.
Responding to GDPR Data Subject Requests for
Power Automate
1/15/2022 • 4 minutes to read • Edit Online
This article prepares you and your organization for the European Union's General Data Protection Regulation
(GDPR). This article not only describes what Microsoft is doing to prepare for the GDPR but also shares
examples of steps you can take today to support GDPR compliance when using Power Apps, Power Automate,
and Microsoft Dataverse.
Prerequisites
Users and administrators can perform the actions outlined in this article.
Users
A user needs to have an active Azure Active Directory account with a Power Automate license. Users who do not
meet this requirement need to ask an administrator to perform these actions.
Administrators
You can perform the operations that require admin privileges, outlined in this article if you sign into the Power
Platform admin center or Power Apps Admin PowerShell with an account that has both of these permissions:
A paid or trial license for Power Apps Plan 2.
A trial license expires in 30 days.
Office 365 Global Administrator or Azure Active Directory Global Administrator.
Unmanaged Tenants
If you are a member of an unmanaged tenant, meaning that your Azure AD tenant does not have global
administrator, then you will still be able to follow the steps outlined in this article to export and remove your
own personal data.
System-generated logs
Refer to this guide for more information on system-generated logs for Power Automate.
See also
To learn more about Microsoft's commitment to trust, security and compliance, visit the Service Trust Portal.
Responding to GDPR Data Subject Discovery
Requests for Power Automate
1/15/2022 • 2 minutes to read • Edit Online
The first step in responding to a DSR is finding personal data that is the subject of the request. This first step
helps you to determine whether a DSR meets your organization's requirements for honoring or declining a DSR
request. For example, after finding and reviewing the personal data at issue, you may determine the request
doesn’t meet your organization’s requirements because doing so may adversely affect the rights and freedoms
of others.
Below is a summary of the types of Power Automate resources that contain personal data for a specific user.
Run history The history of each flow execution for the past 28 days. This
data includes the start time, end time, status, and all
input/output information for the flow. Learn more
User jobs Not seen to the user, system jobs that run on behalf of a
user in order for flows to execute.
Flows The workflow logic that exists for a cloud flow. Learn more
User details Details, which are not seen by user, that support flow
execution.
Custom connectors Custom connectors that a user has created and published
that allows for connectivity to custom or third-party
systems. Learn more
Custom connector permissions Permission lists for Custom connectors. Learn more
As part of our commitment to partner with you on your journey to the General Data Protection Regulation
(GDPR), we’ve developed documentation to help you prepare. The documentation not only describes what we’re
doing to prepare for the GDPR but also shares examples of steps you can take today with Microsoft to support
GDPR compliance when using Power Automate.
Custom connector permissions Power Automate Maker Portal Power Apps cmdlets
Gateway permissions Power Automate Maker Portal On-premises Data Gateway PowerShell
cmdlets
2. In the Activity screen, copy the results, and then paste them into a document editor such as Microsoft
Word.
Export a user’s connections
Connections allow flows to connect to APIs, SaaS applications, and other third-party systems. Follow these steps
to view your connections:
1. Sign into Power Automate, select the gear icon near the upper-right corner, and then select Connections .
2. Copy the results, and then paste them into a document editor such as Microsoft Word.
Power Apps Admin PowerShell cmdlets
Add-PowerAppsAccount
Add-PowerAppsAccount
Get-ConnectionRoleAssignment | ConvertTo-Json | Out-File -FilePath "ConnectionPermissions.txt"
Add-PowerAppsAccount
In addition to the experience provided in Power Automate, you can use the Get-Connector function from the
Power Apps PowerShell cmdlets to export all custom connectors.
Add-PowerAppsAccount
Get-Connector -FilterNonCustomConnectors | ConvertTo-Json | Out-File -FilePath "CustomConnectors.txt"
Add-PowerAppsAccount
Get-ConnectorRoleAssignment | ConvertTo-Json | Out-File -FilePath "CustomConnectorPermissions.txt"
Add-PowerAppsAccount
2. A list shows approvals that the user received. The users can show approvals that they sent by selecting
the down arrow next to Received and then selecting Sent .
Add-PowerAppsAccount
The “right to erasure” by the removal of personal data from an organization’s Customer Data is a key protection
in the GDPR. Removing personal data includes removing all personal data and system-generated logs, except
audit log information.
Power Automate allows users to build automation workflows that are a critical part of your organization’s day-
to-day operations. When a user leaves your organization, an administrator needs to manually review and
determine whether or not to delete certain data and resources that the user created. There is other personal data
that's automatically deleted whenever the user’s account is deleted from Azure Active Directory.
The following table shows which personal data is automatically deleted and which data requires an
administrator to manually review and delete:
Connections*
Connection permissions
Custom connector*
*Each of these resources contains “Created By” and “Modified By” records that include personal data. For
security reasons, these records are retained until the resource is deleted.
**For environments that include a Microsoft Dataverse database, environment permissions (e.g. which users are
assigned to the Environment Maker and Admin roles) are stored as records in Dataverse. Please see Executing
DSRs against Dataverse Customer Data, for guidance on how to respond to DSRs for users who use Dataverse.
For the data and resources that require manual review, Power Automate offers the following experiences to find
or change personal data for a specific user:
Website access: sign in to the Power Apps admin center or the Power Platform admin center
PowerShell access: Power Apps Admin PowerShell cmdlets
Here is the breakdown of experiences that are available for an administrator to delete each type of personal data
within each type of resource:
RESO URC ES C O N TA IN IN G
P ERSO N A L DATA W EB SIT E A C C ESS P O W ERSH EL L A C C ESS A UTO M AT ED DEL ET IO N
User jobs
*With the introduction of Dataverse, if a database is created within the environment, environment permissions
and model-driven app permissions are stored as records within Dataverse. Please see Responding to Data
Subject Rights (DSR) requests for Microsoft Dataverse customer data, for guidance on how to respond to DSRs
for users who use Dataverse.
** An admin will only be able to access these resources from the Power Automate Maker Portal if the
administrator has been assigned access from the Power Automate admin center.
IMPORTANT
To avoid data corruption, follow these steps in order.
2. Select Resources , > Flows , and then select the title for the flow that you want to reassign.
4. In the Share panel that appears near the right edge, add yourself as an owner, and then select Save .
5. Sign into Power Automate, select My flows , and then select Team flows .
6. Select the ellipsis (… ) for the flow you want to copy, and then select Save As .
9. This new version of the flow appears in My flows , where you can share it with additional users if you
want.
10. Delete the original flow by selecting the ellipsis (…) for it, selecting Delete , and then select Delete again
when prompted. This step will also remove underlying personal identifiers that are included in system
dependencies between the user and Power Automate.
11. Enable the copy of the flow, by opening My flows and then turning the toggle control to On .
12. The copy now performs the same workflow logic as the original version.
#Retrieves all connections for the calling user and deletes them
Get-AdminPowerAppConnection | Remove-Connection
Add-PowerAppsAccount
$deleteDsrUserId = "7822bb68-7c24-49ce-90ce-1ec8deab99a7"
#Retrieves all connections for the DSR user and deletes them
Get-AdminPowerAppConnection -CreatedBy $deleteDsrUserId | Remove-AdminConnection
Add-PowerAppsAccount
#Retrieves all connection role assignments for the calling users and deletes them
Get-ConnectionRoleAssignment | Remove-ConnectionRoleAssignment
Add-PowerAppsAccount
$deleteDsrUserId = "7822bb68-7c24-49ce-90ce-1ec8deab99a7"
#Retrieves all shared connections for the DSR user and deletes their permissions
Get-AdminConnectionRoleAssignment -PrincipalObjectId $deleteDsrUserId | Remove-AdminConnectionRoleAssignment
NOTE
Owner role assignments cannot be deleted without deleting the connection resource.
#Retrieves all custom connectors for the calling user and deletes them
Get-Connector -FilterNonCustomConnectors | Remove-Connector
Add-PowerAppsAccount
$deleteDsrUserId = "7822bb68-7c24-49ce-90ce-1ec8deab99a7"
#Retrieves all custom connectors created by the DSR user and deletes them
Get-AdminConnector -CreatedBy $deleteDsrUserId | Remove-AdminConnector
Add-PowerAppsAccount
#Retrieves all connector role assignments for the calling users and deletes them
Get-ConnectorRoleAssignment | Remove-ConnectorRoleAssignment
Add-PowerAppsAccount
$deleteDsrUserId = "7822bb68-7c24-49ce-90ce-1ec8deab99a7"
#Retrieves all custom connector role assignments for the DSR user and deletes them
Get-AdminConnectorRoleAssignment -PrincipalObjectId $deleteDsrUserId | Remove-AdminConnectorRoleAssignment
NOTE
Owner role assignments cannot be deleted without deleting the connection resource.
IMPORTANT
Deleting an environment will permanently delete all resources within the environment, including all apps, flows,
connections, etc., so please review the contents of an environment before deletion.
Give access to a user’s environments from the Power Automate
admin center
An admin can grant Admin access to an environment created by a specific user from the Power Platform admin
center. For more information on administrating environments, please navigate to Using environments within
Power Automate.>!-- Edit note: Kind of confusing that Power Automate is in the heading but Power Platform is
in the first sentence. -->
Add-PowerAppsAccount
Remove-AdminFlowUserDetails -UserId 1b6759b9-bbea-43b6-9f3e-1af6206e0e80
IMPORTANT
If a user still owns individual or team flows, this command will return an error. To resolve, delete all remaining flows or
team flows for this user and run command again.
This article describes the European Union's General Data Protection Regulation (GDPR) and provides steps you
can take to support GDPR compliance for Power Automate users who authenticate with Microsoft Accounts
(MSA).
Prerequisites
You need an MSA with a free Power Automate license to perform the steps in this article.
TIP
GDPR compliance information is also available for users who authenticate with Azure Active Directory accounts.
The first step in responding to a DSR request is to find the personal data that’s the subject of the request. Here’s
a summary of the Power Automate resources that contain personal data for a user who authenticates with their
Microsoft Account (MSA).
Run history Provides the history of each flow’s execution for the past 28
days. This data includes start time, end time, status, and all
input/output information for each flow run. Learn more
about flow run history.
Activity feed Provides a recap of each flow’s activities, including run status,
failures, and notifications.
As part of our commitment to partner with you on your journey to the General Data Protection Regulation
(GDPR), we’ve developed documentation to help you prepare. The documentation not only describes what we’re
doing to prepare for the GDPR but also shares examples of steps you can take today with Microsoft to support
GDPR compliance when using Power Automate.
P ERSO N A L DATA LO C AT IO N
You can browse your activity history for the different Microsoft applications and services that you use.
3. To export Product and Ser vice Activity data select Download your data , and then select CREATE
NEW ARCHIVE .
4. Select App & ser vice usage , and then select Create archive .
5. A new archive is created. Select Download to obtain your exported product and service activity data.
The run history is downloaded as a .csv file so that you can open it in Microsoft Excel or a text editor to analyze
the results.
The right to erasure by the removal of personal data is a key protection in the GDPR. Removing personal data
includes removing all personal data except audit log information.
Power Automate allows users to build automated workflows. When a user decides to delete their personal data
from Power Automate, the user can review their personal data, and determine whether to delete some or all of
it.
The following table shows which personal data is automatically deleted and which data requires a Microsoft
Account (MSA) user to review and delete it.
Connections
Power Automate offers the following experiences to help users find, review, or change personal data and
resources that aren't automatically deleted:
3. You can search or browse your activity history for the different Microsoft applications and services that
you use, including Power Automate. Select Delete to remove specific product or service activity events.
4. Within a few moments, the item is deleted and removed from privacy dashboard.
List and delete flows
A user can list and delete their flows from Power Automate by following these steps:
1. Sign into the Power Automate, and then select on My flows .
2. Select ... beside the flow that you're deleting, and then select Delete .
Delete Connections
Connectors use connections to communicate with APIs and SaaS systems. Connections include references to the
user who creates them. The user can delete these references at any time by following these steps:
1. Sign into Power Automate, select the gear icon, and then select Connections .
2. Select the connection that you'd like to delete, select ..., and then select Delete .
3. Select the Delete icon on the confirmation prompt.
NOTE
If other flows use the connection you're deleting, you're notified that a new connection is required. Otherwise, select
Delete to continue.
Learn more
Get started with Power Automate
Learn what's new with Power Automate
Responding to GDPR Data Subject Account Close
Requests for Power Automate
1/15/2022 • 2 minutes to read • Edit Online
The right to erasure of personal data is a key protection in the GDPR. This right includes removing all personal
data except audit log information. When users decide to close their Microsoft Account (MSA), the user's
underlying data is also deleted.
These resources contain personal data that are automatically deleted when a user closes an MSA:
Run history
Flows
Activity Feed
User details
Connections
NOTE
You're reminded to cancel existing subscriptions or to export data from existing services to which you may have
subscribed.
2. Acknowledge that you understand the impact of closing your MSA, and then select Mark account for
closure .
A notification appears, indicating that your account will be closed in 30 days. You may reopen this
account at any time during this 30-day period.
At the end of this 30-day window, the process to delete all Power Automate resources for this MSA
begins.
Learn more
Get started with Power Automate
Learn what's new with Power Automate
Power Automate US Government
1/15/2022 • 15 minutes to read • Edit Online
In response to the unique and evolving requirements of the United States public sector, Microsoft has created
Power Automate US Government plans. This section provides an overview of features that are specific to Power
Automate US Government. We recommend that you read this supplementary section as well as the Power
Automate service getting started topic. For brevity, this service is commonly referred to as Power Automate
Government Community Cloud (GCC), Power Automate Government Community Cloud – High (GCC High), or
Power Automate Department of Defense (DoD).
The Power Automate US Government Service Description serves as an overlay to the general Power Automate
Service Description. It defines the unique commitments and differences compared to the general Power
Automate offerings that have been available to our customers since October 2016.
NOTE
Power Automate US Government DoD is only available to DoD entities.
Social Security number (SSN) search Verification that the SSN the employees provides is valid
Criminal history check A seven (7) year criminal record check for felony and
misdemeanor offenses at the state, county, and local level
and at the federal level
Office of Foreign Assets Control list (OFAC) Validation against the Department of Treasury list of groups
with whom U.S. persons are not allowed to engage in trade
or financial transactions
Bureau of Industry and Security list (BIS) Validation against the Department of Commerce list of
individuals and entities barred from engaging in export
activities
Office of Defense Trade Controls Debarred Persons list Validation against the Department of State list of individuals
(DDTC) and entities barred from engaging in export activities related
to the defense industry
CJIS background screening State-adjudicated review of federal and state criminal history
by state CSA appointed authority within each state that has
signed up for the Microsoft CJIS IA program
M IC RO SO F T P ERSO N N EL SC REEN IN G A N D B A C KGRO UN D
C H EC K S DESC RIP T IO N
Department of Defense IT-2 Staff who request elevated permissions to customer data or
privileged administrative access to DoD SRG L5 service
capacities must pass DoD IT-2 adjudication, based on a
successful OPM Tier 3 investigation.
1 Applies only to personnel with temporary or standing access to customer content hosted in Power Automate
US Governments (GCC, GCC High, and DoD).
NOTE
Power Automate is authorized as a service within the Azure Government FedRAMP ATO. For more information, including
how to access the FedRAMP documents, review the FedRAMP Marketplace.
Power Automate US Government has features designed to support customers' CJIS Policy requirements for law
enforcement agencies. Visit the Power Automate US Government products page in the Trust Center for more
detailed information related to certifications and accreditations.
Microsoft designed this platform and its operational procedures to meet the requirements for the DISA SRG IL4
and IL5 compliance frameworks and has received the requisite DISA Provisional Authorities to Operate.
Microsoft anticipates that the US Department of Defense contractor customer base and other Federal agencies
currently leveraging Microsoft Office 365 GCC High to use the Power Automate US Government GCC High
deployment option, which enables and requires customers to leverage Azure AD Government for customer
identities, in contrast to GCC, which leverages the public Azure AD. For the US Department of Defense contractor
customer base, Microsoft operates the service in a manner that enables these customers to meet ITAR
commitment and DFARS acquisition regulations. Further, Microsoft expects its US Department of Defense
customers who currently use Microsoft 365 DoD to use the Power Automate US Government DoD deployment
option.
TIP
Review the privacy and compliance statements provided by the third parties when assessing the appropriate use of these
services for your organization.
Power Apps and Power Automate Governance Considerations can help your organization bring awareness
about the capabilities available across several related themes, such as architecture, security, alert and action, and
monitoring.
For those customers that implement network restrictions, please ensure access to the following domains are
made available to your end-users’ access points:
GCC Customers:
.microsoft.us
.azure-apihub.us
.azure.us
.usgovcloudapi.net
.microsoftonline.com
.microsoft.com
.windows.net
.azureedge.net
.azure.net
.crm9.dynamics.com
Refer to the IP ranges for AzureCloud.usgovtexas and AzureCloud.usgovvirginia to enable access to Dataverse
instances that users and administrators may create within your Tenant.
GCC High Customers:
.microsoft.us
.azure-apihub.us
.azure.us
.usgovcloudapi.net
.microsoftonline.us
.azureedge.net
.azure.net
.crm.microsoftdynamics.us(GCC High)
*.high.dynamics365portals.us (GCC High)
*.crm.appsplatform.us (DoD)
*.appsplatformportals.us (DoD)
Also, refer to the IP ranges to enable you to access other Dataverse environments that users and administrators
may create within your tenant and other Azure services that the platform leverages, including:
GCC and GCC High: Focus on AzureCloud.usgovtexas and AzureCloud.usgovvirginia.
DoD: Focus on USDoD East and USDoD Central.
NOTE
Third-party connectors will not be added to GCC High nor DoD.
Microsoft is investigating the data loss prevention (DLP) feature, considering the possibility for connectors to be
blocked by default. Until this is possible, third-party connectors pose a measurable threat to organizations
relying on the GCC High environment to maintain requisite data exfiltration controls.
Power BI – Power Automate US Government doesn’t support Power BI.
Power Platform admin center – You can use the admin center to open support tickets, but other
functionality is currently not available in US Government tenants.
Desktop flows - To install the on-premises data gateway in DoD, go to Data > Gateways in the left
navigation, and then select New gateay .
See also
Desktop flows.
Dynamics 365 US Government.
Power Apps US Government.
Power Automate regions overview
1/15/2022 • 2 minutes to read • Edit Online
In Power Automate, your flows are created within your Microsoft Power Platform environment. These
environments are specific to a region, which corresponds to the location of the datacenters where your
Microsoft Power Platform environment is stored.
In other words, your flows are deployed in the datacenter region that hosts your Microsoft Power Platform
environment.
United States including Preview Central US, East US 2, East US, North Central US, South
Central US, West US 2, West Central US, West US
This topic contains information about the current limits and configuration details for automated, scheduled, and
instant flows.
TIP
Check out the pricing for details on the different plans that are available.
Performance profiles
Flows have different limits depending on their performance profile. There are five possible values, depending on
the flow owner's plan.
P ERF O RM A N C E P RO F IL E PLANS
Low - Free
- Microsoft 365 plans
- Power Apps Plan 1, Per App plans
- Power Automate Plan 1
- All license trials
Dynamics 365 Team Member
Medium - Power Apps triggered flows, child flows, Power Apps Plan 2,
Power Apps per user plan
- Power Automate Plan 2, Power Automate per user, Power
Automate per user with Attended RPA plans
Dynamics 365 Enterprise plans, Dynamics 365 Professional
plans
- Dynamics 365 non-licensed users, application users, users
with special free licenses
If a user has multiple plans, such as a Microsoft 365 plan and a Dynamics 365 plan, the flow will have the
performance profile of the higher of the two plans. For the exact set of plans that include Power Automate, see
the Microsoft Power Platform Licensing Guide.
If needed, users can see their current plan by opening the session debugging information by pressing
Ctrl+Alt+A in the maker portal. The current plan being used will have isCurrent=true.
The flow uses the plan of the owner of a cloud flow. If a cloud flow has been shared with multiple people then
generally the owner is the original creator. If unsure, you can see and change the owner a cloud flow using the
Web API. At this time, if the original owner leaves an organization, the flow will continue to use the same
performance profile until next updated, although in the future, it may be reverted to the Low performance
profile.
Actions per workflow 500 To extend this limit, you can add child
flows as needed.
Allowed nesting depth for actions 8 To extend this limit, you can add child
flows as needed.
My flows limit
Here is the limit for the My flow and Team flows tab:
NAME L IM IT N OT ES
Number of flows owned by a single 600 To extend this limit, use flows under
user solutions.
NAME L IM IT N OT ES
Expiration limits
Limits on how long flows will remain turned on before they expire and get turned off
NAME L IM IT N OT ES
Not triggered (dormant) flows 90 days for Free, Trial, Community and A cloud flow that has no successful
Microsoft 365 Plans.No expiration limit triggers will expire and be turned off.
for all others After 90 days of inactivity, the flow
creator will receive an email. If no
action is taken in next 30 days, the
flow will be systematically turned off
and the creator will be notified in an
email. For enterprise scenarios, we
recommend you buy a standalone
Power Automate license listed in
Pricing article to ensure your flow isn’t
turned off due to inactivity. You can
turn your cloud flows back on anytime.
NAME L IM IT N OT ES
Trigger concurrency - Unlimited when the concurrency This limit describes the highest number
control is turned off of flow runs that can run at the same
- 25 is the default limit when the time, or in parallel.
concurrency control is turned on, Note : When concurrency is turned on,
which you can't undo after you enable the SplitOn limit is reduced to 100
concurrency. You can change the items for debatching arrays.
default to a value between 1 and 50
inclusively.
Maximum waiting runs - Without concurrency, the minimum This limit describes the highest number
number of waiting runs is 1, while the of flow runs that can wait to run when
maximum number is 50. your flow is already running the
- With concurrency, the minimum maximum concurrent instances.
number of waiting runs is 10 plus the
number of concurrent runs (trigger
concurrency). You can change the
maximum number in the settings for
the trigger under Concurrency
Control.
NAME L IM IT N OT ES
Apply to each array items 5,000 for Low, 100,000 for all others This limit describes the highest number
of array items that a "apply to each"
loop can process.
To filter larger arrays, you can use the
query action.
Apply to each concurrency 1 is the default limit. You can change This limit is highest number of "apply
the default to a value between 1 and to each" loop iterations that can run at
50 inclusively. the same time, or in parallel.
Split on items - 5,000 for Low without trigger For triggers that return an array, you
concurrency can specify an expression that uses a
- 100,000 for all others without trigger 'SplitOn' property that splits or
concurrency debatches array items into multiple
- 100 with trigger concurrency workflow instances for processing,
rather than use a "Foreach" loop. This
expression references the array to use
for creating and running a workflow
instance for each array item.
Note : When concurrency is turned on,
the Split on limit is reduced to 100
items.
Paginated items 5,000 for Low, 100,000 for all others To process more items, trigger multiple
flow runs over your data.
Throughput limits
Here are the time-bound limits for a single version of a cloud flow definition. These limits apply across all runs
of the flow version, and are calculated on sliding windows.
If a cloud flow exceeds one of the limits, activity for the flow will be slowed and will automatically resume when
the sliding window has activity below the limit. However, if a cloud flow consistently remains above the limits for
14 days, it will be turned off (see above duration limits). Be sure to monitor email for notifications about such
flows. If a cloud flow consistently exceeds the limits, you will need to update the flow to remain below the limits
to prevent it from being turned off.
TIP
Because these limits are for a single version, if you update your flow it will reset these limits.
Actions per 24 hours 10,000 for Low, 100,000 for Medium Because of the current transition
and 500,000 for High period (in the year of 2020) these
limits are less strict than the values
called out in the requests limits and
allocations document. These limits
represent approximations of how
many requests will be allowed daily.
They are not guarantees. Actual
amounts may be smaller, but will be
greater than the documented requests
limits and allocations during the
transition period. The documented
limits were substantially increased in
late 2021. Generally available
reporting for Power Platform requests
is expected in the first quarter of
calendar year 2022. Any potential high
usage enforcement wouldn't start until
six months after reports have been
made available. Distribute the
workload across more than one flow as
necessary.
Concurrent outbound calls 500 for Low, 2,500 for all others You can reduce the number of
concurrent requests or reduce the
duration as necessary.
As of October 2019, there are limits on the number of Microsoft Power Platform requests an account can make
across all of their flows, Power Apps, or any applications calling into the Microsoft Dataverse. No performance is
guaranteed above these limits, although enforcement of these limits is not as strict during the transition period
(as mentioned earlier). For more information about these, refer to requests limits and allocations.
TIP
Individual connectors have their own limits as well, which often will be reached before the limits mentioned earlier. Be sure
to check the documentation for your connector.
NAME L IM IT N OT ES
Read calls per 5 minutes 6,000 for Low, 60,000 for all others This limit applies to calls that get the
raw inputs and outputs from a cloud
flow's run history. You can distribute
the workload across more than one
flow as necessary.
NAME L IM IT N OT ES
Invoke calls per 5 minutes 4,500 for Low, 45,000 for all others You can distribute workload across
more than one flow as necessary.
NAME L IM IT N OT ES
Content throughput per 5 minutes 600 MB for Low, 6 GB for all others You can distribute workload across
more than one flow as necessary.
Content throughput per 24 hours 1 GB for Low, 10 GB for Medium, 50 You can distribute workload across
GB for High more than one flow as necessary.
Gateway limits
Power Automate supports write operations, including inserts and updates, through the gateway. However, these
operations have limits on their payload size.
HTTP limits
Here are the limits for a single outgoing or incoming HTTP call:
Timeout
Some connector operations make asynchronous calls or listen for webhook requests, so the timeout for these
operations might be longer than these limits. For more information, see the technical details for the specific
connector.
NAME L IM IT N OT ES
Message size
NAME L IM IT N OT ES
Message size with chunking 1 GB This limit applies to actions that either
natively support chunking or let you
enable chunking in their runtime
configuration.
Character limits
NAME N OT ES
Retry policy
Default retry policy
NAME L IM IT
Retry attempts 90
For more information on other retry policies, see Azure Logic Apps Retry Policies.
Turning off or deleting flows
When you turn off a cloud flow, no new runs are instantiated. All in-progress and pending runs continue until
they finish, which might take time to complete.
When you delete a cloud flow, no new runs are instantiated. All in-progress and pending runs are canceled. If
you have thousands of runs, cancellation might take significant time to complete.
NAME L IM IT N OT ES
Number of custom connectors 50 per user Microsoft 365 users can run one flow
with a custom connector.
Number of requests per minute for a 500 requests per minute per
custom connector connection
NOTE
To run any flow that has a custom connector, a premium license (or trial) is required.
SharePoint limits
There are limitations on how you can use Microsoft SharePoint with Power Automate and Power Apps.
TIP
For detailed information about using SharePoint with Power Automate, see the SharePoint documentation.
Other configuration
See IP address configuration for additional details on how to permit access to automated, scheduled and instant
flows, including required endpoints.
IP addresses
Requests from Power Automate use IP addresses that are associated with the region of the environment in
which your flow exists.
Calls made from connectors in cloud flows come from these IP addresses. Add them to your network's allow list
to facilitate communications from Power Automate.
Power Automate Web API
1/15/2022 • 8 minutes to read • Edit Online
Going forward, all flows will be stored in Dataverse and leverage the rich Web API.
This content covers the management of flows included on the Solutions tab in Power Automate. Currently,
flows under My Flows are not supported by these APIs.
1. Copy the organization id and region subdomain from the environment URL.
You can also programmatically get the list of instances that are available to you via the Get Instances method in
the online management API.
Each request to the Web API must have the Accept and Content-type headers set to application/json .
Finally, populate the Authorization header with an Azure AD Bearer token. You can learn how to acquire an
Azure AD Bearer token for Dataverse. For example, this request:
GET https://org00000000.crm0.dynamics.com/api/data/v9.1/workflows
Accept: application/json
Authorization: Bearer ey...
The response contains the list of flows from within that environment:
{
"@odata.context": "https://org00000000.crm0.dynamics.com/api/data/v9.1/$metadata#workflows",
"value": [{
"@odata.etag": "W/\"12116760\"",
"category": 5,
"statecode": 0,
"workflowidunique": "00000000-0000-0000-0000-000000000001",
"workflowid" : "00000000-0000-0000-0000-000000000002",
"createdon": "2018-11-15T19:45:51Z",
"_ownerid_value": "00000000-0000-0000-0000-000000000003",
"modifiedon": "2018-11-15T19:45:51Z",
"ismanaged": false,
"name": "Sample flow",
"_modifiedby_value": "00000000-0000-0000-0000-000000000003",
"_createdby_value": "00000000-0000-0000-0000-000000000003",
"type": 1,
"description": "This flow updates some data in Dataverse.",
"clientdata": "{\"properties\":{\"connectionReferences\":{\"shared_commondataservice\":
{\"source\":\"NotSpecified\",\"id\":\"/providers/Microsoft.PowerApps/apis/shared_commondataservice\",\"tier\
":\"NotSpecified\"}},\"definition\":{...}},\"schemaVersion\":\"1.0.0.0\"}"
}]
}
List flows
As shown earlier, you can get the list of workflows by calling GET on workflows . Each workflow has many
properties, but the most relevant are:
category The category of the flow. Here are the different categories.
0 - Classic Dataverse workflows.
1 - Classic Dataverse dialogs.
2 - Business rules.
3 - Classic Dataverse actions.
4 - Business process flows.
5 - Automated, instant or scheduled flows.
6 - Desktop flows.
statecode The status of the flow. The status can be 0 - off or 1 - on.
workflowid The unique identifier for a cloud flow across all imports.
_ownerid_value The unique identifier of the user or team who owns the flow.
This is an id from the systemusers table in Dataverse.
P RO P ERT Y N A M E DESC RIP T IO N
name The display name that you have given the flow.
_modifiedby_value The last user who updated the flow. This is an id from the
systemusers table in Dataverse.
_createdby_value The user who created the flow. This is an id from the
systemusers table in Dataverse.
The documentation for the Dataverse workflow has additional information about properties/fields and their
usage.
You can also request specific properties, filter the list of flows, and much more, as described in the Dataverse API
documentation for querying data. For example, this query returns only the automated, instant, or scheduled
flows that are currently on:
The most important section is the clientdata , which contains the connectionReferences that the flow uses, and
the definition of the flow. The connectionReferences are the mappings to each connection that the flow uses.
There are three properties:
Once you execute the POST request, you'll receive the OData-EntityId header, which will contain the
workflowid for your new flow.
NOTE
The syntax for changing the owner uses the odata.bind format. This means instead of patching the _ownerid_value field
directly, you append @odata.bind to the property name and then wrap the ID with systemusers() .
In another example, you can turn a cloud flow on with this call:
PATCH https://org00000000.crm0.dynamics.com/api/data/v9.1/workflows(00000000-0000-0000-0000-000000000002)
Accept: application/json
Authorization: Bearer ey...
Content-type: application/json
{
"statecode" : 1
}
DELETE https://org00000000.crm0.dynamics.com/api/data/v9.1/workflows(00000000-0000-0000-0000-000000000002)
Accept: application/json
Authorization: Bearer ey...
NOTE
You cannot delete a cloud flow that's turned on. You must first turn off the flow (see Updating a cloud flow previously)
or else you will see the error: Cannot delete an active workflow definition.
GET https://org00000000.crm0.dynamics.com/api/data/v9.1/RetrieveSharedPrincipalsAndAccess(Target=@tid)?@tid=
{'@odata.id':'workflows(00000000-0000-0000-0000-000000000002)'}
Accept: application/json
Authorization: Bearer ey...
The Target parameter is a JSON-like string with a single property called @odata.id . Replace the workflow ID in
the previous example. It returns:
{
"@odata.context":
"https://org00000000.crm0.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.RetrieveSharedPrincipa
lsAndAccessResponse",
"PrincipalAccesses": [
{
"AccessMask": "ReadAccess",
"Principal": {
"@odata.type": "#Microsoft.Dynamics.CRM.systemuser",
"ownerid": "00000000-0000-0000-0000-000000000005"
}
}
]
}
POST https://org00000000.crm0.dynamics.com/api/data/v9.1/GrantAccess
Accept: application/json
Authorization: Bearer ey...
Content-type: application/json
{
"Target" : {
"@odata.type": "Microsoft.Dynamics.CRM.workflow",
"workflowid" : "00000000-0000-0000-0000-000000000002"
},
"PrincipalAccess": {
"Principal": {
"@odata.type" : "Microsoft.Dynamics.CRM.systemuser",
"ownerid" : "00000000-0000-0000-0000-000000000005"
},
"AccessMask": "ReadAccess"
}
}
The AccessMask parameter is a field with the following values for different permission levels:
None No access.
You can combine permissions with a comma; for example, provide the ability to both read and update a cloud
flow by passing ReadAccess,WriteAccess .
You can unshare a cloud flow with the RevokeAccess action. Here's an example:
POST https://org00000000.crm0.dynamics.com/api/data/v9.1/RevokeAccess
Accept: application/json
Authorization: Bearer ey...
Content-type: application/json
{
"Target" : {
"@odata.type": "Microsoft.Dynamics.CRM.workflow",
"workflowid" : "00000000-0000-0000-0000-000000000002"
},
"Revokee": {
"@odata.type" : "Microsoft.Dynamics.CRM.systemuser",
"ownerid" : "00000000-0000-0000-0000-000000000005"
}
}
Export flows
Use the ExportSolution action to export flows to a .zip file. First, add the flows that you want to a solution.
Once your flow is in a solution, call the following action:
POST https://org00000000.crm0.dynamics.com/api/data/v9.1/ExportSolution
Accept: application/json
Authorization: Bearer ey...
Content-type: application/json
{
"SolutionName" : "Awesome solution 1",
"Managed": false
}
{
"@odata.context":
"https://org00000000.crm0.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.ExportSolutionResponse
",
"ExportSolutionFile": "UEsDBBQAAgAI..."
}
You can then save this file into source control and/or use whatever version management or distribution system
you want.
Import flows
Call the ImportSolution action to import a solution.
POST https://org00000000.crm0.dynamics.com/api/data/v9.1/ImportSolution
Accept: application/json
Authorization: Bearer ey...
Content-type: application/json
{
"OverwriteUnmanagedCustomizations": false,
"PublishWorkflows" : true,
"ImportJobId" : "00000000-0000-0000-0000-000000000006",
"CustomizationFile" : "UEsDBBQAAgAI..."
}
Since import is a long-running operation, the response to the ImportSolution action will be a 204 No content .
To track the progress, call a GET on the importjobs object, providing the ImportJobId that you included in the
original ImportSolution action.
GET https://org00000000.crm0.dynamics.com/api/data/v9.1/importjobs(00000000-0000-0000-0000-000000000006)
Accept: application/json
Authorization: Bearer ey...
This call returns the status of the import operation, including progress (the percentage of completion),
startedon , and completedon (if import finished).
Once import has completed successfully, you will need to set up the connections for the flow, since the
connectionNames will likely be different in the destination environment (if the connections exist at all). If you are
setting up new connections in the destination environment, then the owner of the flows must create them in the
Power Automate designer. If the connections are already set up in the new environment, then you can PATCH the
clientData of the flow with the names of the connections.
Power Automate Glossary
1/15/2022 • 5 minutes to read • Edit Online
A
Action: An action is the task that's started when a trigger is invoked. Flows can have one or many actions,
depending on what's needed to complete a particular flow. With actions, you can perform operations such as
Create , Update , Delete , or Assign .
Add an action
Action items : The Action items screen shows the status of approvals and business process flows. Action items
is located on the left navigation pane in Power Automate.
Approvals (approval requests): Approvals refer to the actions in approving a cloud flow. It might be a basic
approve or reject action. It could be a custom approval flow where the sender can request any sign off, including
multiple choice. To create an approval workflow, add an approval action. After you add this action, your flow can
manage the approval of documents or processes
Introducing the Unified Action Center
Automated flow: Automated flows are triggered by a predetermined event. Automated flows run when an
event triggers the flow to run. For example: when a row is created, deleted, or updated in Dataverse, the flow will
run if that is the trigger you chose.
Create a cloud flow in Power Automate
B
Business process flow : A business process flow ensures that everyone in your company follows the same
process. You'll define a set of steps for people to follow. For example, you might want to create a business
process flow so everyone handles customer service requests the same way. You might require people get
approval for an invoice before submitting an order.
Business process flows overview
C
Conditions: Conditions tell flow to perform actions based on predetermined logic set in the flow. If certain
conditions are true, then one or more tasks will be completed. For example, users can create conditions that
specify that you'll get an email when a tweet that contains a keyword is retweeted at least 10 times.
Add a condition to a cloud flow
Connectors: Connectors allow users to connect popular services (such as Twitter, Outlook, Gmail, and more) to
Microsoft Power Automate, Microsoft Power Apps, and Azure Logic Apps. They contain a set of pre-built triggers
("when a new email arrives"…) and actions ("upload email attachment to SharePoint and My App") to be used in
apps and workflows.
Connectors documentation
Custom connectors: Custom connecters allow users to connect a web service to Power Automate. Users teach
Power Automate about the characteristics of the web service which include authentication, the triggers and
actions that it supports, and the parameters and outputs for each of those actions. Custom connectors must be
registered before they can be shared with your organization.
Start to build with Power Automate
D
Data loss prevention : Data loss prevention provides you with the ability to create and enforce policies that
define which connectors can access and share business data. This is a key feature to help ensure that your
business data is protected.
Data loss prevention policies
F
Flow checker : Flow checker is a diagnostic tool that points to specific occurrences within the flow where
improvements may be required to run a cloud flow. For each identified issue, the flow checker appears in the
designer's command bar. It will show a red dot when one or more errors are identified in your flow.
Find and fix errors with Flow Checker
Flow types: Automated, instant, scheduled, UI flows and business process flow.
Get started with Power Automate
Flow designer : The flow designer is the studio where makers create flows from blank or start from a template
(that they can customize or add steps to).
I
Instant flow: Instant flow allows users to trigger repetitive tasks from the mobile or desktop app manually. For
example, by clicking a button on a mobile app, it will send a reminder email to your team before a meeting.
Introducing instant flows
Item: As a Power Automate trigger, an item represents a row in a Microsoft SharePoint list. What it actually is
depends on the user's list. For example, it can be a row in Microsoft Excel, or a table in a Microsoft Word
document.
M
Microsoft Dataverse: A cloud-scale database used to store data for business applications such as Power
Automate and Power Apps. It's an abstraction on top of underlying Azure cloud data management services to
make it easier to build business applications.
What is Microsoft Dataverse?
Microsoft Dataverse for Teams : A common cloud data platform for Microsoft Teams. Microsoft Dataverse for
Teams enables everyone to quickly build and deploy apps and intelligent chatbots in Teams with Microsoft
Power Apps and Microsoft Power Virtual Agents.
Multistep flows: A multistep flow uses more than one action to accomplish a task.
R
Robotic Process Automation (RPA): Automation using a software application that replicates the actions of a
human being interacting with the user interface of a computer system.
Use Softomotive's WinAutomation with UI flows
S
Scheduled flows: Scheduled flows run on a schedule defined by the maker. Scheduled flows can repeat on the
following cadences: every second, minute, hour, day, week, and/or month. For example, users can schedule an
automation such as daily data upload to SharePoint or a database.
Run flows on a schedule
Steps: There's a button at the bottom of each step (action) labeled +New step in the flow designer that lets the
user add another action.
T
Templates: Templates are prebuilt set of triggers and actions that are designed to help users easily create flows
that meet their specific business needs. Templates can be customized. There are hundreds of flow templates that
cater to many types of common automation scenarios.
Power Automate Templates
Trigger : A trigger is an event that starts a cloud flow. For example, if you create a cloud flow: “when an email
with an attachment arrives, automatically upload the file to OneDrive” - the arrival of the email with an
attachment is the trigger of such flow.
Flows can have one or more triggers.
U
UI Flows (RPA): UI flows enable users to automate repetitive tasks in Windows and web applications. UI flows
record and playback user interface actions (clicks, keyboard input, etc.) for applications that don't have easy-to-
use or complete APIs available.
Introduction to UI flows
W
Workflow: A sequence of actions that takes a task from initiation to completion.
Learn more
Take a guided learning tour of Power Automate
Learn the basics of Power Automate in the getting started guide
Power Automate webinars
1/15/2022 • 2 minutes to read • Edit Online