83% found this document useful (6 votes)
5K views

PowerAutomate Guide

This document provides an overview of the Power Automate documentation, including information on: 1. Types of flows like cloud flows, desktop flows, and business process flows. 2. Topics covered include getting started, popular scenarios, how to guides, and references. 3. Process advisor capabilities for task mining, process mining, and identifying automation opportunities.

Uploaded by

Gulf Cruise
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
83% found this document useful (6 votes)
5K views

PowerAutomate Guide

This document provides an overview of the Power Automate documentation, including information on: 1. Types of flows like cloud flows, desktop flows, and business process flows. 2. Topics covered include getting started, popular scenarios, how to guides, and references. 3. Process advisor capabilities for task mining, process mining, and identifying automation opportunities.

Uploaded by

Gulf Cruise
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1679

Contents

Power Automate documentation


Overview
Get started
Types of flows
Sign up
What's new
Learning catalog
Overview
App maker
Administrator
Developer
Functional consultant
Partner presales roles
Process advisor
Overview
Task mining
Overview
Get started with task mining
Prepare processes and recordings
Analyze processes
Visualize processes
Identify automation opportunities
Share processes
Process mining (preview)
Overview
Get started with process mining
Prepare processes and data
Transform and map data
Troubleshoot issues
Visualize and gain insights from processes
Edit and refresh processes
Administration and security
Security and privacy
Protect your data
Export and import your process
Known issues
Glossary
Cloud flows
Get started
Get started with triggers
Get help from the Power Virtual Agents bot
Share a flow
Automated flows
Create a cloud flow from a template
Create a cloud flow from scratch
Create a cloud flow with Dynamics 365
Create a cloud flow with OneDrive for Business
Filter and copy data
Run your flows with Flics
Run your flows with bttns
Scheduled flows
Run a cloud flow on a schedule
Process a list of items
Instant flows
Create a button flow
Create a flow on a phone
Create a button flow with trigger tokens
Create a button flow with user input
Share a button
How to
Add an action
Add a condition
Use data operations
Use expressions in conditions
Store and manage values in variables
Use Visio to model flows
Reference: Use functions in expressions
Manage flows on a phone
Publish a template
Turn a cloud flow on or off
Popular cloud flows scenarios
Use flows with approvals
Get started with approvals
Trigger approvals from SharePoint lists
Trigger approvals from SharePoint library
How to - Top scenarios with approval flows
Single approvals
Approvals with attachments
Sequential approvals
Parallel approvals
Everyone must approve
Request approvals from groups
Integrated approvals
Format approval requests
Custom approval response options
Known issues and limitations
Use flows with Office 365 Outlook email
Overview
Create flows to manage email
Create flows for popular email scenarios
Trigger a cloud flow with email
Customize email in flows
Troubleshoot issues with email in flows
Use flows with SharePoint
Overview
Create SharePoint reminder flows
Manage SharePoint page approvals
Use flows with Microsoft Teams
Overview
Install the Power Automate app
Create flows in Teams
Use flows in teams created from templates
Manage flows in Teams
Send a message in Teams
Trigger flows from Teams messages
Create flows using the Power Apps app
Model flows with adaptive cards
Overview of adaptive cards for Teams
Create adaptive cards for Teams
Sample - Candidate feedback
Sample - Image share
Sample - Lead collection
Sample - Poll generator
Sample - Metadata update
Sample - Daily weather
Sample - Acronym form
Sample - Lead generation
Create approvals in Microsoft Teams
Overview of approvals in Microsoft Teams
Create approvals in chats or channels
Create approvals from the approvals app
Respond to approvals in Teams
Manage approvals in Teams
Customize approvals in Teams
Use custom connectors in approval flows
Trigger flows from Power BI report
Use flows with Microsoft Forms
Overview
Get started
Top scenarios
How to
Troubleshoot known issues with forms
Use flows with Microsoft Dataverse
Overview
Trigger flows when a row changes
Trigger flows with actions
Use a flow to add a row
Use a flow to update a row
Get a row by id
Delete a row
Use lists of rows in flows
Use wait conditions to delay flows
Perform bound or unbound actions in flows
Use relationships to update rows
Use Dataverse search to retrieve rows
Use a flow to perform a changeset request in Dataverse
Upload or download image and file content
Troubleshoot known issues with Dataverse
Use Dataverse-based flows in Power Apps
Create a cloud flow with Microsoft Dataverse (legacy) connector
Solutions
Overview
Create a cloud flow in a solution
Create child flows
Export solution
Import solution
Edit a solution-aware flow
Remove a solution-aware flow
AI Builder
Use AI Builder in Power Automate
Troubleshoot
Troubleshoot common issues with triggers
Watch a cloud flow
Monitor flow activity on a phone
Troubleshoot a cloud flow
Find and fix errors with the error checker
Power Automate for desktop
Introduction to Power Automate for desktop
Getting started with Power Automate in Windows 11
Setup Power Automate
Power Automate prerequisites & limitations
Install Power Automate
Governance in Power Automate
Troubleshooting Power Automate
Data Collection in Power Automate
Power Automate architecture
Create a Dataverse database
Getting started with a Microsoft account
Getting started with a work or school account
Getting started with an organization premium account
Create a desktop flow
Run desktop flows
Trigger a desktop flow from another flow
Manage machines and machine groups
Manage machines
Manage machine groups
Silent registration for machines
Scale with AVD starter kit
Overview
Set up the AVD integration starter kit
Use the starter kit
Manage desktop flows
Monitor desktop flows
Desktop flow runs
Desktop flow queues
Data loss prevention (DLP) (preview)
Power Automate console
Desktop flow designer
Configure actions and the actions pane
Manage the flow designer workspace
Debug a desktop flow
Manage variables and the variables pane
Variable datatypes
Variables datatype properties
Use variables and the % notation
Automate using UI elements
Automate using images
Manage errors
Record flows in Power Automate
Use loops
Use conditionals
Automate web flows
Use browsers and manage extensions
Automate desktop flows
Build a custom selector
How to
Handle and manipulate variables
Check if a variable is numeric
Delete a row/column from a datatable
Handle email messages in desktop flows
Add images to email messages
Use a shared Outlook mailbox in email automations
Automate email accounts with two-step verification
Automate tasks in Excel
Convert a CSV file into an Excel spreadsheet
Run macros on an Excel workbook
Run SQL queries on Excel files
Autofit Excel columns using VBScript
Unhide worksheets in Excel using VBScript
Convert Excel to PDF using VBScript
Use images, image recognition and OCR
Use image recognition on machines with different screen resolutions
Perform OCR on multilingual documents
Print images
Automate Windows and desktop applications
Identify a window by its handle
Close any window through its process ID
Extract attributes from window elements
Ensure that application windows become focused
Get the position and size of a window
Automate applications using keyboard shortcuts
Automate with mouse, keyboard, and OCR actions
Access elements that depend on how the window appears on the screen
Automate Java applications
Automate web applications and web pages
Handle links that open new tabs
Retrieve details from a web page
Get the coordinates and size of a web element
Send physical clicks on a web element
Click all the elements in a list of links
Automate browser prompts
Scroll on a web page
Handle iframes on a web page
Populate text fields and click on links using JavaScript
Convert data and files
Convert a file to Base64 string format
Convert Base64 text to hexadecimal format
Run and troubleshoot SQL queries
Run SQL queries to Microsoft Access
Troubleshoot SQL queries
Use logical operations on conditional statements
Share/export a desktop flow
Run SQL queries to Microsoft Access
Run desktop flow from other desktop flows
Set screen resolution on unattended mode
Extract text from a Word document using VBScript
Pass a datatable from a cloud flow to a desktop flow
Desktop actions reference
Variables
Conditionals
Loops
Flow control
Run flow
System
Workstation
Scripting
File
Folder
Compression
UI automation
HTTP
Browser automation
Excel
Database
Email
Exchange
Outlook
Message boxes
Mouse and keyboard
Clipboard
Text
Date time
PDF
CMD session
Terminal emulation
OCR
Cryptography
Windows services
XML
FTP
CyberArk
Active Directory
AWS
Azure
Google cognitive
IBM cognitive
Microsoft cognitive
Process migrator for Softomotive products (preview)
Use RPA with Dynamics 365
Overview of RPA templates and Dynamics 365
Create orders on Dynamics 365 Supply Chain Management
Use RPA with Dynamics 365 Finance
Use RPA with Dynamics 365 Customer Service
Other types of desktop flows (Legacy)
Introduction to other types of desktop flows
Create and test desktop flows with Windows recorder (V1)
Edit desktop flows with Windows recorder (V1)
Migrate from Windows recorder (V1) to Power Automate
Use inputs and outputs in desktop flows with Windows recorder (V1)
Use Input Method Editors (IMEs) in desktop flows with Windows recorder (V1)
Use WinAutomation with desktop flows
Create and test Selenium IDE flows
Edit desktop flows with Selenium IDE
Use inputs and outputs in desktop flows with Selenium IDE
Business process flows
Business process flows overview
Create a business process flow
Create instant flows in business process flows
Enhance business process flows with branching
Add custom controls to business process flows
Best practices for business process flow columns
Connect to data
Available connections
Manage connections
Manage gateways
Understand gateways
Classic Dataverse
Classic Dataverse workflows
Overview
Configure background workflow stages and steps
Monitor and manage background workflow processes
Best practices for background workflow processes
Replace background workflows with flows
Classic Dataverse task flows
Create mobile task flows
Classic Dataverse dialogs
Use classic Dataverse dialogs
Replace classic Dataverse dialogs
For developers
Enterprise developers, partners, and ISVs
Enterprise developers, partners, and ISVs
Build and certify custom connectors
Integrate with websites and other technologies
Let customers test drive your flows
Work with business process flows using code
Sample: Work with business process flows
Custom Dataverse workflow activities
Administration
Flows in your organization Q&A
Pricing
Admin center
Administer environments
IP address configuration
View desktop flows analytics
Monitor desktop flows
Set a policy to help prevent data loss
Support Intune in mobile apps
Introduction to data groups
View sharing and connectors analytics reports
Respond to DSR requests
Summary
Discover requests
Export requests
Delete requests
DSR requests for Microsoft Accounts
Summary
Discover requests
Export requests
Delete requests
Close requests
Power Automate US Government
Reference
Regions overview
Limits and configuration
Power Automate Web API
Frequently asked questions
Power Automate glossary
Learn from others
Webinars
Blog
Forums
Support
Get started with Power Automate
1/15/2022 • 4 minutes to read • Edit Online

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.

Who is Power Automate for?


What skills do you need to have? Anyone from a basic business user to an IT professional can create automated
processes using Power Automate's no-code/low-code platform.
What industries can benefit from Power Automate? Check out how some companies implemented Microsoft
Power Platform solutions using Power Automate in:
Banking
Retail
Manufacturing
Insurance
Healthcare
Find examples from your industry
The first step in creating an automation is to sign up, or, if you already have an account with Power Automate,
sign in.

What are the different types of flows?


Visit the flow types article to learn more about the different types of flows that you can create to automate your
tasks.

Check out the start page


On the start page for Power Automate, you can explore a diverse set of templates and learn about the key
features for Power Automate. You can get a quick sense of what's possible and how Power Automate could help
your business and your life.
Each template is designed for a specific purpose. For example, there are templates for sending you a text
message when your boss emails you, adding Twitter leads to Dynamics 365, or backing up your files. These
templates are just the tip of the iceberg. They're intended to inspire you to create customized flows for the exact
processes you need.

Create your first flow


1. Select a template that's useful for you. A simple template is Notify and Email when a new file is
uploaded to OneDrive .

2. Select Continue .

3. Select the OneDrive folder that you want to monitor.

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.

Peek at the code


You don't need to be a developer to create flows; however, Power Automate does provide a Peek code feature
that allows anyone to take a closer look at the code that's generated for all actions and triggers in a cloud flow.
Peeking at the code could give you a clearer understanding of the data that's being used by triggers and actions.
Follow these steps to peek at the code that's generated for your flows from within the Power Automate
designer:
1. Select the ... menu item at the top right corner of any action or trigger .
2. Select Peek code .

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.

Find your flows easily


When your creative juices start flowing, you might create many flows. Don't worry, finding your flows is easy -
just use the search box on the My flows , Team flows , Connections , or Solutions screen to display only flows
that match the search terms you enter.
NOTE
The search filter only finds flows that have been loaded into the page. If you don't find your flow, try selecting Load
more at the bottom of the page.

Get notifications when something's wrong


Visit the cloud flow activity page to see the list of cloud flows that recently ran, sent notifications, or have failed.
1. Sign into Power Automate.
2. Select Monitor on the left side of the screen.
3. Select Cloud flow activity .
Use the mobile app
Download the Power Automate mobile app for Android, iOS, or Windows Phone. With this app, you can monitor
flow activity, manage your flows and create flows from templates.

Get help planning your Power Automate projects


If you're ready to start your Power Automate project, visit the guidance and planning article to get up and
running quickly.

We're here to help


We're excited to see what you do with Power Automate, and we want to ensure you have a great experience. Be
sure to check out our guided learning tutorials and join our community to ask questions and share your ideas.
Contact support if you run into any issues.
Overview of the different types of flows
1/15/2022 • 2 minutes to read • Edit Online

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.

F LO W T Y P E USE C A SE A UTO M AT IO N TA RGET

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.

Business process flows


Business process flows provide a guide for people to get work done. They provide a streamlined user experience
that leads people through the processes their organization has defined for interactions that need to be advanced
to a conclusion of some kind. This user experience can be tailored so that people with different security roles can
have an experience that best suits the work they do.

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.

Using paid features


Anyone can sign up and get a free plan for Power Automate. If your organization has purchased Microsoft 365
or Dynamics 365, you may already have access to Power Automate. You can also start a 90-day free trial or
purchase a Power Automate license if you want to use any of the paid features. Learn more about billing.
For administration information, see Flows in your organization Q&A.

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.

SY M P TO M / ERRO R M ESSA GE C A USE A N D W O RK A RO UN D

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.

Preview and Experimental features


Get early access to functionalities and updates before they are available worldwide through Preview features
and Experimental features.
Learning catalog for Power Automate
1/15/2022 • 2 minutes to read • Edit Online

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

Introduction to business Do you want to create Free, self-paced online 31 minutes


process flows in Power business process flows? This learning path
Automate module will discuss what
business process flows are
and how to use them to
solve business solutions.
You will discover why
automating the business
process is important to
organizations and how to
build business process flow
solutions by using
Microsoft Power Platform
and Microsoft Dataverse.
Additionally, you will learn
how business process flows
differ from regular Power
Automate workflows and
when to use each.

Power Automate Power Automate is a service Website landing page


documentation that helps you create
automated workflows
between your favorite apps
and services to synchronize
files, get notifications,
collect data and more.

Power Automate Frequently Power Automate Frequently 5 minutes to read


Asked Questions Asked Questions

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

Are you an implementation expert for a business domain?


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.
For functional consultants, our job-task analysis research showed that everyone must understand the core
content set as well as a domain area.

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

Introduction to business Do you want to create Free, self-paced online 31 minutes


process flows in Power business process flows? This learning path
Automate module will discuss what
business process flows are
and how to use them to
solve business solutions.
You will discover why
automating the business
process is important to
organizations and how to
build business process flow
solutions by using
Microsoft Power Platform
and Dataverse. Additionally,
you will learn how business
process flows differ from
regular Power Automate
workflows and when to use
each.

Power Automate Power Automate Website landing page


documentation documentation. Power
Automate is a service that
helps you create automated
workflows between your
favorite apps and services
to synchronize files, get
notifications, collect data
and more.

Power Automate Frequently Power Automate Frequently Documentation 5 minutes to read


Asked Questions Asked Questions

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

Microsoft Power Platform Learn about the Instructor-led in person or 2 days


Fundamentals components of Power online training, cost varies
Platform, ways to connect by region and partner
data, and how
organizations can leverage
this technology
Overview of process advisor
1/15/2022 • 2 minutes to read • Edit Online

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.

When to use task mining or process mining


Here are some reasons to help you decide to use task mining or process mining:
Use task mining to:
Understand what employees actually do while performing each task.
Identify and eliminate unnecessary actions in process tasks.
Identify the most common actions through user interactions.
Automate tasks that would accelerate processes and reduce human errors.
Use process mining to:
See the actual steps to perform a process.
Improve processes.
Detect non-compliant processes.
Reduce process total time.
Discover automation opportunities.
Explore the sections in Task mining and Process mining in this documentation for:
Business scenarios
Tutorials
Guided procedures
Videos

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.

Steps to task mining


Prepare processes and recordings
Analyze processes
Visualize processes
Identify automation recommendations
Share processes
Tutorial: Get started with task mining in process
advisor
1/15/2022 • 6 minutes to read • Edit Online

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).

Get process advisor ready


1. Sign in to Power Automate.
2. Select your environment.
3. On the navigation pane to the left, select Process advisor > Processes .
You might see a Getting things ready message. Allow this process to complete. It will take a few
minutes.

Once this process has completed, you should see the following screen:
Import a solution
1. On the navigation pane to the left, select Solutions .

2. In the toolbar at the top, select Impor t .


3. Select Browse .

4. Download the RPAinaDayProcessAdvisor_1_0_0_7 solution .zip file and open it.

5. Select Next .
6. Select Impor t and wait for the solution to import.

View sample recordings


1. Once you've successfully imported the zip file, on the navigation pane to the left, select Process advisor
> Processes .
2. Select the Invoice submission process .

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.

You can see some of the existing recordings under Recordings .


3. To be sure you see the entire list of existing recordings, select See all .

4. Go back to the Invoice submission process by selecting Invoice submission process .

Explore the features


You'll see the following features:

New recording : Create a new recording.


Analytics : See the process map and insights.
Share : Share your processes with your team members.
Process owners can pick two role options when sharing with other users: contributor and co-owner. The
contributor role gives the user the ability to upload their own recording to the process. The co-owner role
gives the user the ability to upload recordings and edit other recordings.
Analyze : Analyze a process.
Create activity names : Create activity names for your process.
Delete process : Delete your process.

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.

Analytics page layout


This section explains what you can do on the Analytics screen.
Automate activities (preview) : If during the recording process, a user ran an application that has its
Power Automate actions (for example, Microsoft Outlook or Excel), then after selecting Automate
activities (preview) , a draft Power Automate process would be opened containing the actions related to
the used applications that can be automated. The user would then be able to start building the final
process using the proposed draft.
Legend : Displays information about the report to let users better understand what they see.
Process : Provides detailed information about the analyzed process. This is where users can find the
process map and general information about the process (time analytics per variant and per the
recording’s author).
Application (preview) : Provides information about the apps used in recordings. This includes what
apps were used by authors, how often were they used, and what the transitions were between them. This
report explains which connectors should be used when implementing automation for the process, and
where potentially to use Power Automate for desktop as there’s no existing connector.
Business process step relationships
In the previous example, you'll see the various steps in the business process and their related durations. These
steps include:
Download invoice attachment from email (48 seconds)
Open Excel invoice list (11.5 seconds)
Open invoice from OneDrive (21 seconds)
Enter invoice details (53.6 seconds)
Save and submit (9 seconds)
Notify team of submission (26.67 seconds)

Gather insights with a 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 gather insights about where improvement
opportunities exist.
Go to the process map by selecting Analytics > Process map .
View metrics with activity combinations and variants
This section explains the Variants by frequency bars on the right.
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. 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, 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.
You can see that the invoice coming through email is the most frequent process variant.
It might take a while for you to see the changes from the chart.

Identify automation opportunities


You can see that people spend a lot of their time entering the information in the application. This helps identify
an opportunity to automate the process.
View analytics data
1. Deselect Var 1 by selecting any blank space within the Variant by frequency area.
2. Look at the top analytics data. The average process time is 1.78 minutes out of five recordings.
3. Analyze other time-based metrics dashboards:
Activity by average time in sec : Notice that Enter invoice details and Download invoice
are taking the most time.

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.

It might take a while to load the reports.


This report is important, as it allows you to discover insights into the different applications used in
a business process, the frequency with which they're accessed, and how much time is spent on the
application.
For example, the dashboard shows that a legacy invoicing app, Outlook, and Excel have significant
contributions to time spent and actions by applications.
Take time to get familiar with the different reports.

5. Go back to the process map by selecting Process .


6. Look at the automate activities feature. From the process map, you can see that process advisor has
highlighted several activities as potential candidates for automation based on applications involved inside
the small blue circles.

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.

Learn more about process advisor processes in the following video.

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 .

Record your process


Create a recording in one of three ways:
From the Create screen in process advisor
Right after process creation
From the process details page
Here's a short video on how to record a process in process advisor:

Create a recording from the Create screen


1. From the Process advisor > Create screen, select Add a new recording .
2. On the Process screen, select the process you want to record from the dropdown.
3. Select Open recorder .

NOTE
If you aren't able to see the process in the dropdown, ensure that the process has been correctly shared with you.

Create a recording right after process creation


After you create a process, you'll see a screen with a few options as next steps.
Select Add a recording .
Create a recording from the process details screen
1. From the Process advisor > Processes screen, select the process you want to record from the list view.
2. Select the name of the process to go to the process details screen.
3. Select New recording from the menu at the top.
4. Select Open recorder .
Launching the recorder in Power Automate
1. By using any of the methods described above, you should receive a message that says Launching the
recorder in Power Automate .

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 .

Power Automate recorder


1. On the Desktop recorder screen, select Record .
2. Perform the actions that you want to record, and then select Finish at the bottom of the recorder screen.
3. Once the recording has been saved successfully, select Got it to close the message.
4. Return to the web portal in your browser and select View recording .

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.

Prepare a recording for analysis


Once the recording has completed, you can view the recorded actions on the recording details screen. More
importantly, you need to prepare the recording to be ready for analysis. What does this mean?
The actions recorded can be granular. Group them into activities. These will be the building blocks for the
process map that's created through analysis.
Remove any sensitive information from the recording. For more information, go to Protect your data in
process advisor.
Here's a short video on how to prepare a recording for analysis with process advisor:
Grouping actions into activities
1. Select Add activity to add an activity header. All actions under the activity header and before the next
activity header are considered part of the group.
2. Move the activity header up or down the actions list to where you want the activity to start.
3. Name your activity on the right side of the screen. Use the dropdown menu to find activity names that
already exist for the process or create your own.

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

Application analytics KPIs


Apps used : The total number of apps used in a process.
Number (#) of times accessed : The number of app accesses. Times accessed is when an app comes
back into focus.
Time spent : The amount of time spent using apps. This does not count time spent when not focused on
an app—for example, desktop.
Actions : The count of actions within apps.
Application analytics visualizations
Application usage : A scatter plot that shows time spent on one axis and times accessed on the other for
each app used. The size of the circles represents how many recordings use that app. The goal of this plot
is to understand usage patterns. Some apps are used a lot but only in terms of times accessed. This
means the recorder is jumping back and forth between this application and others. For example, this may
occur in cases where copy-and-paste is happening. Other apps are used for a long time and the action is
limited to that application. It does not depend on other recordings for completion of the necessary
activity.
The size of the circles clarifies what applications are used in most or all recordings. It represents an
application that's needed for the process and something to concentrate on from an optimization or
automation perspective.
Application switching : A bar chart that shows which pairs of application are most frequently used. This
extends the number of times accessed in the application usage visual to help identify what two
applications are most often used together. This can denote some information transfer (such as copy-and-
paste) between these applications, which is something to consider when automating.
Time spent by application : A pie chart that shows a distribution of the time spent per app. This helps
you understand which applications are being used the most.
Actions by application : A pie chart that shows a distribution of the actions per app. This helps you
understand which apps have the most actions or manual inputs.
See also
Connector overview
Overview of cloud flows
Identify automation opportunities in process advisor
1/15/2022 • 2 minutes to read • Edit Online

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:

There are two primary ways to share a process in process advisor:


Share a process with a co-owner
Share a process with a contributor
If you're the co-owner or contributor of a process, you'll find it listed on the Processes screen.

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.

Share a process with a contributor


Adding a contributor to a process is the most common way to share. Any contributor of a process can perform
these actions:
View the process details
Add and label recordings
Manage your own recordings that have been added to the process (including labeling and deleting
recordings)

Share a process with a co-owner


Adding a co-owner to a process allows others to help you label and validate the contributors' recordings,
manage the process, and visualize the process analytics and dashboard. Any co-owner of a process can perform
these actions:
View details
Update properties, such as name and description
Invite co-owners and contributors
Add and label recordings
Manage all recordings that have been added to the process (including labeling and deleting others'
recordings)
Analyze the process
View the analytics of an analyzed process
Delete the 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

[This topic is pre-release documentation and is subject to change.]


Process mining in process advisor allows you to take the event data from your system of records and visualize
the processes happening in your organization. Process mining provides novel insights that can help you identify
automation opportunities, and address performance and compliance opportunities.

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.

Steps to process mining


Data requirements
Transform and map data
Troubleshoot issues (if necessary)
Use KPIs and visualizations for analytics
Edit and refresh processes
Tutorial: Get started with process mining in process
advisor (preview)
1/15/2022 • 2 minutes to read • Edit Online

[This topic is pre-release documentation and is subject to change.]


This tutorial allows you to experience process mining with sample data. In this tutorial, you'll create a process,
import data, and then analyze it.
For the process mining tutorial, download the sample event log CSV file: English version or French
version.
For the task mining tutorial, go to Tutorial: Get started with task mining.
The sample data in this tutorial is for illustration only and is fictitious. No real association is intended or inferred.

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 .

Import data and analyze


1. In your process, select Setup in the toolbar.
2. Select Blank table .

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 .

12. On the left pane, select the Event log entity.


13. On the right pane, map the three required columns by selecting Auto map .
14. Return to the Power Query editor by selecting OK .

15. Return to the process details page by selecting Save .


16. On the toolbar, select Analyze , and then select Confirm when the dialog opens.
17. Wait for the analysis to complete. After the process is analyzed, select Analytics in the toolbar to view the
process map.
For a description of how to analyze the process map and a short video, go to Visualize and gain insights from
processes in process advisor (preview).
Prepare processes and data in process advisor
(preview)
1/15/2022 • 4 minutes to read • Edit Online

[This topic is pre-release documentation and is subject to change.]


Before you can use process advisor process mining effectively, you need to understand:
Data requirements.
Where to get log data from your application.
How to connect to a data source.
Here's a short video on how to upload data for process mining:

This topic explains these requirements in detail.

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.

Connect to a data source


The benefit of connecting to a database directly is the ability to keep process advisor up to date with the latest
data from the data source.
Power Query supports a large variety of connectors. A connector provides a way for process advisor to connect
and import data from the corresponding data source. Common connectors include Text/CSV, Microsoft
Dataverse, and SQL Server database. If you're using an application like SAP or Salesforce, you might be able to
connect to those data sources directly. For information on supported connectors and how to use them, go to
Connectors in Power Query.
Try out process advisor with the Text/CSV connector
One easy way to try out process advisor regardless of where your data source is located is with the Text/CSV
connector. You might need to work with your database admin to export a small sample of the event log as a CSV
file. Once you have the CSV file, you can import it into process advisor using the following steps in the data
source selection screen.

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.

1. On the navigation pane on the left, select Data > Tables .


2. On the toolbar at the top, select Data > Get data > Text/CSV on the Power Quer y - Choose data
source screen.

3. Select Browse OneDrive . You might need to authenticate.

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

[This topic is pre-release documentation and is subject to change.]


After you select the data source you want to use, you're taken to the Power Query Editor. The Query Editor is a
powerful tool to transform your data. To learn more, go to The Power Query user interface.

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.

Filter activity names


1. Select the caret next to the activity name column to bring up the sort and filter menu.
2. If there's a message that says List may be incomplete , select Load more .
3. Select only the activity names that you want to analyze. Uncheck any name you want to exclude.
4. Alternatively, you can use the Text filter menu for more advanced filtering. For more information on
filtering by value, go to Filter by values in a column.

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.

Reduce the number of total records


One strategy for reducing the total number of records is to use only the latest records. To do this, you need to
first sort the data by time.
1. Open the sort and filter menu by selecting the caret next to the star tTimestamp column.
2. To have the most recent records show up first, select Sor t descending .
3. Select OK , and then select Keep rows on the toolbar.

4. Enter 150000 under Number of rows .


5. Select OK to filter for the top 150,000 rows.

Combine multiple IDs


You can use Ctrl + click to select multiple columns that you want to combine.
1. On the Transform tab toolbar, select Merge columns .

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.

2. Deselect any column you don't want to include in the analysis.

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

[This topic is pre-release documentation and is subject to change.]


Once you're done with setup, select Analyze . You'll be able to view the Analytics page when the analysis is
complete. Analysis typically takes a few minutes but may be faster or slower depending on how much data
needs to be analyzed.
If you don't visit the Analytics page for 14 days, you'll need to re-analyze the process to access the Analytics
page again.

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.

Issues with dataflow refresh


"There was an issue with a recent dataflow refresh, check your dataflow refresh history."
When you go through setup, process advisor creates a dataflow that's tied to the process. Normally you don’t
need to interact with the dataflow, but if there are issues with the dataflow refresh, you might need to
troubleshoot them. Dataflow refresh is what reads the data source and makes it ready to be analyzed.
To troubleshoot:
1. Make a note of the environment in the environment display on the upper-right corner of the page.

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.

Issues with analyze


"You must have one case with at least two activities to analyze your process. Please change your data."
Process mining will normally not be helpful when there is only one activity name in the data. This is because the
process map visualizes the flow of the process from one activity to the next. In this case, you should do the
following:
Check the column that's been mapped to activity name.
Confirm that there is only one value for that column.
Determine if there's another column that contains something with more than one possible value that can
represent activities of the process.
"Following column(s) do not have the right data types: [x]. Please check your data and try again."
The case ID and activity name columns should be of the Text data type. The timestamp columns should be of the
Date/Time data type. One of the most frequent causes of invalid format is in the timestamp column. To fix this,
return to setup and select the icon next to the timestamp column and ensure it's been mapped to Date/Time .

If the format is incorrect, you'll see something like this:

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

[This topic is pre-release documentation and is subject to change.]


This topic explains metrics and visuals, and what they could tell you about 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.

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.

Use KPIs and visualizations for analytics


Out of the box, you'll get several KPIs and visualizations to help you to understand your process.
Here's a short video on process mining analytics including custom filters:

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

[This topic is pre-release documentation and is subject to change.]


Some of the reasons why you might want to edit the query are:
Your data might have multiple ID columns that can be used as case ID. There often isn't a correct answer.
You might discover more insights by changing what you use as case ID.
You have more than five additional columns with useful data. You want to try analyzing other columns to
see if they're potentially useful in uncovering root causes of bottlenecks.

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 .

Unable to access process advisor


If you can't see process advisor in Power Automate, receive error messages, or if you can’t access the home
page, verify that:
You have a Power Automate license.
If you don’t have a license, you can activate your trial license from Desktop flows in Power Automate.
You have access to the Power Automate environment and the permissions required by process advisor
described in the Security section.
Your browser has the feature to accept third-party cookies enabled. You can enable it in your browser
settings.
Glossary in process advisor
1/15/2022 • 2 minutes to read • Edit Online

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.

F LO W T Y P E USE C A SE A UTO M AT IO N TA RGET

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.

Choose the right trigger


Triggers can be started instantly or manually, on a schedule, or automatically when some other even occurs.
Triggers for instant/manual flows
If you'd like to run a cloud flow with a tap of a button on your mobile device, to remind your team to join the
daily team meeting, create an instant flow (button flow). You can trigger these flows manually from any device.
Learn more about instant flows.
Triggers for scheduled flows
If you'd like to run a cloud flow on a schedule, for example, to send a weekly project report, create a scheduled
flow. In scheduled flows, you can choose when (date and time) and frequency (monthly/daily/hourly, etc.).
Learn more about scheduled flows.

Triggers for automated flows


If you'd like to create a cloud flow that performs tasks automatically after an event, for example, create a cloud
flow that notifies you by email when someone tweets keyword you specify, create an automated flow.
Learn more about automated flows

Add a trigger to an existing flow


1. Add a new step
2. Search for the connector and select the app icon.
3. Once selected, the corresponding triggers and actions will be shown. Choose the trigger that best suits
your need.
IMPORTANT
The trigger must be the first step of the flow.

Licensing for premium connectors


You need a standalone Power Apps license or Power Automate license to access all premium, on-premises, and
custom connectors. Microsoft 365 plan licensees can use standard connectors but cannot use premium
connectors.
To find your license:
1. Go to flow.microsoft.com
2. Select My flows .
3. Select a cloud flow.
4. Go to the Details section, and then select Plan .
Your current license plan is displayed.

Customize a trigger by adding conditions


Sometimes, you may need to customize a trigger so that it fires only when certain conditions are met. For
example, you may be using SharePoint’s When an item is created or modified trigger in Power Automate.
This trigger fires for every change to SharePoint items but you might want the flow to only trigger when an item
is created or the status is marked as Approved. While you can filter other events by adding conditions to the
flow, the flow still runs and the calls are counted as an API request, causing you to reach your API request limits
faster. To avoid it, you can write expressions in trigger conditions, avoiding a run if the condition in trigger isn't
met.
You may also need to secure the trigger inputs/outputs in the run history of a cloud flow. To do this, you can turn
on the secure input and/or secure output setting in the trigger. A great community article of how to do it is here.
Get contextual help with flows from the Power
Virtual Agents bot
1/15/2022 • 2 minutes to read • Edit Online

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.

Use in-product help


NOTE
In-product help is available while you create or edit cloud and desktop flows.

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.

2. Expand the Community section.


The community results about the action are displayed.
3. Select an item to go to specific community thread.
You can also get conversational self-help from the bot.
1. Select Chat with a bot .
The chat box shows the most requested topics and provides a field that you can use to ask the bot
questions.
2. Choose one of the topics.
The bot gives an overview and provides the next level of topics.
3. Find the right topic.
The bot provides the steps and links to the corresponding documentation with a detailed explanation,
showing examples and images.
4. Select Yes to go back to the previous topic list to continue your chat.
5. Select No if the bot helped answer the question and you don't need more help.
6. Select Yes to check the knowledge database and enter another question.
7. Select a category to see the corresponding results
Share a cloud flow
1/15/2022 • 6 minutes to read • Edit Online

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.

Add an owner to a cloud flow


Adding an owner to a cloud flow is the most common way to share a cloud flow. Any owner of a cloud flow can
perform these actions:
View the run history.
Manage the properties of the flow (for example, start or stop the flow, add owners, or update credentials for
a connection).
Edit the definition of the flow (for example, add or remove an action or condition).
Add or remove other owners (but not the flow's creator).
Delete the flow.
If you're the creator or an owner of a cloud flow, you'll find it listed on the Team flows tab in Power Automate.

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.

Congratulations—you've created your team flow!

Add a list as a co-owner


You can add SharePoint lists as co-owners of a cloud flow so that everyone who has edit access to the list
automatically gets edit access to the flow. After the flow is shared, you can simply distribute a link to it. More
information: Training: Create and set up a SharePoint list

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

1. On the flow details page, in the Owners section, select Edit .

2. Select Delete for the owner you want to remove.

3. In the confirmation dialog box, select Remove .


Congratulations—the user or group that you removed is no longer listed as an owner of the flow.

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.

Share a cloud flow with run-only permissions


Instant flows (that is, flows that use a manual trigger such as a button or an item being selected) can be shared
by using run-only permissions. Any user who's added as a run-only user won't have access to edit or modify the
flow in any way; they'll only have permissions to trigger the flow.
To add a run-only user
1. On the flow details page, in the Run only users section, select Edit .

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.

Congratulations—the user or group now has access to run the flow.


To remove a run-only user
1. On the flow details page, in the Run only users section, select Edit .
2. In the Manage run-only permissions panel, select Delete next to the user whose access you want
to remove, and then select Save .
Congratulations—the user or group no longer has access to run this flow.

Share a copy of a cloud flow


You can share a copy of a cloud flow with another user, who can then use the definition of the flow as a template.
It provides a good way for you to share the general structure of a cloud flow without sharing any connections,
while also allowing the recipient to modify their flow independently of yours, so they can make it fit their needs.

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.

To send a copy of a cloud flow


1. On the flow details page command bar, select Send a copy .

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

Specify an event to start the flow


First, you will need to select what event, or trigger, starts your flow.
1. In Power Automate, select My flows from the navigation bar on the left.
2. Select New , and then select Automated-from blank .
3. Give your flow a name in the Add a name or we'll generate one field.
4. Enter Twitter into the Search all triggers field.
5. Select Twitter - When a new tweet is posted .

1. Select the Create button at the bottom of the screen.

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 .

Test your flow


Send a tweet with the keyword that you indicated, or wait for someone else to post such a tweet.
Within a minute after the tweet is posted, an email message notifies you of the new tweet.

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 resume a cloud flow, set its toggle to On .


To edit a cloud flow, select the pencil icon that corresponds to the flow you want to edit.

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

Create a cloud flow from a template


You can create a cloud flow using one of the many templates available, such as these examples:
When an object is created in Dynamics 365, create a list item in SharePoint.
Create Dynamics 365 leads from an Excel table.
Copy Dynamics 365 accounts to customers in Dynamics 365 for Operations.
To create a cloud flow from a template, follow these steps.
1. Sign in to the Power Automate website.
2. Click or tap Ser vices , and then click or tap Dynamics 365 .
3. Several templates are available. To get started, select the template that you want.

Create a task from a lead


If a template isn’t available for what you need, create a cloud flow from scratch. This walkthrough shows you
how to create a task in Dynamics 365 whenever a lead is created in Dynamics 365.
1. Sign in to the Power Automate website.
2. Click or tap My flows , and then click or tap Create from blank .
3. In the list of flow triggers, click or tap Dynamics 365 - When a record is created (deprecated) .
4. If prompted, sign in to Dynamics 365.
5. Under Organization Name , select the Dynamics 365 instance where you want the flow to listen.
6. Under Table Name , select the table that you want to listen to, which will act as a trigger initiating the
flow.
For this walkthrough, select Leads .

[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.

12. Click or tap Create flow .

Trigger based logic


Triggers like When a row is added, modified or deleted , When an action is performed , and When a
flow step is run from a business process flow initiate your flow within a few minutes of the event
occurring. In rare cases, your flow can take up to 2 hours to trigger.
When the trigger occurs, the flow receives a notification, but the flow runs on data that exists at the time the
action runs. For example, if your flow triggers when a new row is created, and you update the row twice before
the flow runs, your flow runs only once with the latest data.

Specify advanced options


When you add a step to a cloud flow, you can click or tap Show advanced options to add a filter or order by
query that controls how the data is filtered in the flow.
For example, you can use a filter query to retrieve only active contacts, and you can order them by last name. To
do this, enter the OData filter query statuscode eq 1 and select Last Name from the dynamic content pane.
For more information about filter and order by queries, see Query data > Filter results and Query data > Order
results.
Best practices when using advanced options
When you add a value to a column, you must match the column type whether you type a value or select one
from the dynamic content pane.

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

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.

Integer columns Some columns Settings > percentcomplete Whole Number


require integer or Customizations >
dynamic content that Customize the
is an integer type System > Tables >
column. Examples Task > Fields
include Percent
Complete and
Duration .

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

Choice Choice columns Settings > Preferred Method of Whole Number


require a known Customization > Contact
integer value to be Customize the
passed into this type System > Tables>
of column. In the Account > Fields
Dynamics 365
customization area,
you can view the
choices backing
integer column along
with its respective
label.

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.

Find the row's ID


1. In the Dynamics 365 web application, open a row, such as an account row.

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.

Create a cloud flow that requests manager approval for a file in


OneDrive for Business
1. Sign into OneDrive for Business.
2. Find, and then select the file for which you want to create the flow.
3. Select the Show actions link (three dots).
4. Select Automate > Power Automate > Create a flow .
5. Select one of the templates.
In this example, select the Request my manager's approval for the selected file template.

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.

Run the flow


1. Sign into OneDrive for Business.
2. Find, and then select the file for which you want to request manager approval.
3. Select the Show actions link (three dots).
4. Select Flow . You'll see the flow that you created earlier.
5. Select the flow you created earlier.
TIP
While this walkthrough shows how to create a cloud flow from a template, you can also create a cloud flow from blank to
use any of the hundreds of connectors available in Power Automate.

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.

Quick overview of the steps


If you're comfortable with Power Automate, use these quick steps to copy data from one data source to another:
1. Identify the source you'll monitor and the destination to which you'll copy changed data. Confirm you've
access to both.
2. Identify at least one column that uniquely identifies items in the source and destination. In the example that
follows, we use the Title column, but you could use any column(s) you want.
3. Set up a trigger that monitors the source for changes.
4. Search the destination to determine if the changed item exists.
5. Use a Condition like this:
If the new or changed item doesn't exist in the destination, create it.
If the new or changed item exists in the destination, update it.
6. Trigger your flow, and then confirm that new or changed items are being copied from the source to the
destination.

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.

Here are the detailed steps to create the flow.

Monitor the source for changes


1. Sign into Power Automate, select My flows > Create from blank .
2. Search for SharePoint > select the SharePoint - When an item is created or modified trigger from
the list of triggers.
3. Enter the Site Address and then select the List Name on the When an item is created or modified
card.
Provide the Site Address and List Name for the SharePoint list your flow monitors for new or updated
items.

Search the destination for the new or changed item


We use the SQL Ser ver - Get rows action to search the destination for the new or changed item.
1. Select New step > Add an action .
2. Search for Get rows , select SQL Ser ver - Get rows , and then select the table you want to monitor
from the Table name list.
3. Select Show advanced options .
4. In the Filter Quer y box, enter Title eq ' , select the Title token from the dynamic content list, and then
enter ' .
The previous step assumes you're matching the Titles of the rows in the source and the destination.
The Get rows card should now look like this image:
Check if the new or changed item was found
Select New step > Add a condition to open the Condition card.
On the condition card:
1. Select the box on the left.
The Add dynamic content from the apps and connectors used in this flow list opens.
2. Select value from the Get rows category.

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.

3. Select is equal to from the list in the center box.


4. Enter 0 (zero) in the box on the right side.
The Condition card now resembles this image:

5. Select Edit in advanced mode .


When advanced mode opens, you see @equals(body('Get_rows')?['value'], 0) expression in the box.
Edit this expression by adding length() around the body('Get_items')?['value'] function. The entire
expression now appears like this: @equals(length(body('Get_rows')?['value']), 0)
The Condition card now resembles this image:
TIP
Adding the length() function allows the flow to check the value list and determine if it contains any items.

When your flow "gets" items from the destination, there're two possible outcomes.

O UTC O M E N EXT ST EP

The item exists Update the item

The item doesn't exist Create a new item

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.

Create the item in the destination


If the item doesn't exist in the destination, create it using the SQL Ser ver - Inser t row action.
On the If yes branch of the Condition :
1. Select Add an action , search for inser t row , and then select SQL Ser ver - Inser t row .
The Inser t row card opens.
2. From the Table name list, select the table into which the new item will be inserted.
The Inser t row card expands and displays all columns in the selected table. Fields with an asterisk (*) are
required and must be populated for the row to be valid.
3. Select each column that you want to populate and enter the data.
You may enter the data manually, select one or more tokens from the Dynamic content , or enter any
combination of text and tokens into the columns.
The Inser t row card now resembles this image:
Update the item in the destination
If the item exists in the destination, update it with the changes.
1. Add the SQL Ser ver - Update row action to the If no branch of the Condition .
2. Follow the steps in the create the item section of this document to populate the columns of the table.

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.

Configure Flic properties


Use Flic's mobile app to program the Flic's events. The events are:
click (one quick press)
double-click (two quick presses)
hold (one long press)
This screenshot shows a sample of what your Flic configuration process might be like:

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.

Create a cloud flow that's triggered by a Flic


In this walkthrough, we use a Flic to run a cloud flow that records the time a consultant spends at each client.
The consultant presses the Flic once upon arrival, and then presses it again, just before departure from the
client. Each press of the Flic starts a run of the flow to which it's connected. The flow saves the current time in
Google Sheets, and then sends an email notification. The email contains details about the flow run.
Note: Be sure you've used the Flic mobile app to pair, and configure at least one click action to trigger Power
Automate. In this screenshot, I've configured the click action to trigger Power Automate. Later in this
walkthrough we configure our flow to trigger when the Flic is pressed once (clicked).

Let's get started creating our flow.


Start with a template
1. Sign into Power Automate.

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.

Create a spreadsheet in Google Sheets


1. Review the template's details and note that this template requires a spreadsheet in Google Sheets.
2. In Google Sheets, create a spreadsheet that contains a sheet with columns named ClickType and
TimeStamp .
Tip: You name columns in Google Sheets by entering the column name at the top of the column. So, your
sheet should appear like this screenshot:

Note: You use this sheet later in this walkthrough.


Add the Flic trigger to your flow
1. Sign in to the template's services, and then select Continue .
Continue is enabled after you sign into all required services for the 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.

Save your flow and test it


1. Give your flow a name, and then save it.

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.

Create a cloud flow that's triggered from a bttn


In this walkthrough, we use a helpdesk template to create a cloud flow that you can trigger with a single press of
a bttn. When the flow runs, it generates a support request and then sends it to the helpdesk. The support
request provides the helpdesk with the location of the room where help is needed. This walkthrough
demonstrates how to create this flow from a template, but you can use the blank template, which gives you full
control over all aspects of your flow.
You can use any of these templates to quickly create flows for your bttn and connect to Zendesk, Google, and
SharePoint, among others:
Tip: For the purposes of this walkthrough, give your bttn a name that represents a conference room in a typical
office building.
The settings for your bttn should resemble this example (from the bttn website):

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.

3. After you sign into both services, select Continue .


Select the bttn that triggers the flow
1. In the When a bttn is pressed card, open the list of bttn IDs, and then select the bttn that you want to
use.

Your flow should now resemble this example.

2. Give your flow a name, and then select Create flow to save it.

Test your flow and confirm results


1. Press the button on your bttn.
2. View your flow's run history to confirm that it ran successfully.
You can check run history on the Power Automate website or on your mobile device.
Note: The run status is set to running until someone selects Acknowledge in the support-request email.
3. You can also confirm that the email was sent to the support team.
If you've followed along, the support email looks similar to this example:
Troubleshooting
If your flow wasn't triggered, sign into The Button Corporation's site and confirm whether the button activity
(presses) are being recorded.
You can also drill into the run activity on the Power Automate site and check for error messages.

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

Create a recurring flow


1. Sign in to Power Automate, and then select My flows on the left navigation pane.
2. Select New and then Scheduled-from blank .

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.

Create a cloud flow


1. Sign into Power Automate.
2. Select My flows > New > Scheduled-from blank
3. Provide a name for your flow in Flow name on the Build a scheduled flow screen.
4. Set the schedule to run every 15 minutes.
5. Select the Create

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.

Add actions and conditions


1. Select New step > Built-in > Apply to each action.
2. Insert the value token into the Select an output from previous steps field on the Apply to each
card. This pulls in the body of the emails to be used in the Apply to each action:

3. Select New step > Control > Condition .


4. Configure the Condition card to search the subject of each email for the words "meet now":
Insert the Subject token into the first field of the Condition card.
Select contains in the list of operators.
Enter meet now into the third field.
5. Select Add an action > Condition from the If yes branch. This opens the Condition 2 card; configure
that card like this:
Insert the Impor tance token into the first field.
Select is equal to in the list of operators.
Enter high into the field on the right side.
6. Select Add an action under the If yes section.
This opens the Choose an action card, where you'll define what happens if the search condition (the
meet now email was sent with high importance) is true.
7. Search for notification , and then select the Send me a mobile notification action:

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.

10. Select Add an action from the If no branch.


11. Select Condition from the Choose an action card. This opens the Condition 3 card; configure the
card to check if the email sender's email address (the From token) is the same as your boss' email
address (the Email token):
Insert the From token into the first box.
Select contains in the list of operators.
Enter mail token into the rightmost box.
12. Select Add an action under the If yes section of the Condition 3 card.
Next, you'll define what should happen if the search condition (the email was sent from your boss) is true:
1. Search for notification , and then select the Send me a mobile notification action:

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.

6. Select Save to save your flow.


Run the flow
1. Send yourself a high-importance email that includes meet now in the subject (or have someone in your
organization send you such an email).
2. Confirm the email is in your inbox and it's unread.
3. Sign into Power Automate, select My flows .
A list of your flows displays.
4. Select the flow you just created, and then select Run .

5. Select Flow Runs Page , and then select the flow run in which you are interested to view the results.

View results of the run


Now that you've run the flow successfully, you should receive the push notification on your mobile device.

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.

Why create buttons?


Create buttons so that you can easily run repetitive tasks from any place, at anytime via your mobile device.
Running buttons saves you time and, since the tasks they perform are automated, there will be less errors than
if you manually did them.

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.

7. If you aren't signed in, you'll be prompted to do so at this point:


8. After you've signed into Flow, you'll be prompted to sign into the connectors used in the template you've
selected. In this example, in step 2 above we selected the Trigger a new build in VSO template, so we
have to sign into VSO (and any other connectors you are working with), if you're not already signed in:

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 :

9. View all your flows on the My flows tab


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 Flow app is currently available on
Android and iOS mobile devices.

Trigger an instant flow


Now that you've created a instant flow, it's time to run it. Since you can only run instant flows from the Flow app,
be sure you've installed Flow on your Android or iOS mobile device.
1. Now, launch the flow app, tap the Buttons tab that's located at the bottom of the page, and tap the button
that represents the instant flow you wish to trigger:

2. See the progress while the flow runs:

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.

Monitor your instant flow runs


You can monitor instant flows from the Activity tab of the flow app:
TIP
Tap any activity to drill into the results of the run to learn about the run.

Manage instant flows


You have full control of your instant flows so you can enable/disable, edit or delete a button anytime, any place.
From the mobile app or from the flow portal, select My flows to get started managing your flows.
On the My flows tab of the Flow app:
1. Select the flow you wish to manage:
2. You can tap any of these options, based on what you'd like to accomplish:

Tap Delete flow to delete a cloud flow.

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.

2. In the upper-right corner, tap Create .


Your flow is created and it checks for email from your boss until you pause or delete the flow.
Next steps
Monitor your flow activity.
Manage your flows.
Get started with button trigger tokens
1/15/2022 • 3 minutes to read • Edit Online

What are button trigger tokens?


Button trigger tokens are data points that are known and available to the device on which a button flow is
running. These tokens change based on factors such as the current time or the geographic location of the device
at a given moment.
For example, if you are running a button flow on a smart phone, it is likely that the phone knows the time at
your current location as well as the date and your current address. In this context, the time, date and address
where the phone is located are all determined at the time the button flow runs. They are automatically available
for use in any button flows that are executed on the device. You can use these trigger tokens to build useful
flows that will minimize repetitive tasks such as providing your location to someone or tracking how much time
you spent on a particular job/service call.
List of button trigger tokens
Here's the list of the button trigger tokens that are available for you to use when creating your button 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.

Country/Region The country/region 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.

Create a button flow that uses trigger tokens


When you create a button, you can use trigger tokens to add rich functionality to your button.
In this walk-through, we will create a button flow on an Android device. The button flow will use trigger tokens
to send the date and your full address in a "Working from home " email to your boss.
In this walk-through, you will see screen-shots from an Android device, however, the experience is similar on iOS
and Windows Phone devices as well.
Prerequisites
A work or school email address or a Microsoft Account with access to Power Automate.
The Power Automate mobile app for Android, iOS, or Windows Phone.
Let's get started:
1. Launch Flow and select Browse

2. Select the Send a 'Working from home today' email to your manager service under the Button
category
3. Select USE THIS TEMPL ATE

4. Select Edit on the Send an email card


5. Tap the Subject text box and enter: " today - " into the text box after the "WFH" text. Notice that when you
tapped on the text box, a list of parameters/tokens also opened up. We'll use one of these tokens in the next
step to add the date to the subject of the email.

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.

8. Tap the Full address parameter, then tap Create


9. Tap Done . Your button flow is now created.

Run the button flow


NOTE : This button flow will send your current location via email.
1. Tap the Buttons category at the bottom of the screen. You will see a list of the buttons that you have
permissions to use. Tap the button that represents the button flow you just created:
2. Tap ALLOW to indicate that it's OK for the button flow to access your device's location information:

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.

Open the template


1. Sign in to the Power Automate website, enter Visual Studio in the search box, and then click or tap the
search icon to find all templates that relate to Visual Studio:

2. Select the Open a Priority 2 Bug in Visual Studio template:

3. Select Use this template button:


This template uses the Visual Studio Team Services (VSTS) and the Push notification services. You'll need
to sign into these services if you don't have a connection to either of them. The Sign in button will
appear only if you need to sign into a service.
4. After you sign into all required services, select the Continue button:

5. (optional) Change the name of the flow by typing a name of your choice into the box at the top of the
portal:

Customize the user input


1. In the trigger card, select Edit :

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:

Customize the push notification


1. Tap the title bar on the Send a push notification card to expand it.
2. In the list of dynamic content tokens, select See more , and then add the URL token in the Link text field.
3. In the Link label text field, add the Id token:
4. Tap Create flow on the menu to create your flow:

Run your flow


In this walk-through, you'll use the mobile app for Power Automate to run the button flow you just created. You'll
provide all the user input that's needed to create a bug with a title, a description, repro steps, and a severity level.
1. In the mobile app for Power Automate, tap the Buttons tab, and then tap the Create bug repor t with
steps button.

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.

2. Tap Invite others from the Button users page.


3. Search for, and then select the group or person with whom you'd like to share the button.

4. Tap SEND on the Invite others page.

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.

Stop sharing a button


You can stop sharing a button by following these steps from the Buttons tab:
1. Tap the small icon next to the button you no longer want to share.
2. On the Button users page, tap the user or group with whom you want to stop sharing the button.
3. Tap Remove user when the user's page is displayed.

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.

Monitor the run history


All run history, including the runs initiated by a person with whom a button is shared, appear only on the
Activity tab of the button creator's Power Automate mobile app.

Use shared buttons


Before you can run a button that someone has shared with you, you must add it to your Buttons tab from the
Add buttons page.
1. Tap GET MORE (or the New buttons are available banner if it appears) on the Buttons tab.

2. Tap the button you want to use.


The tapped button is immediately added to the Buttons tab of the Power Automate app. You can then
use the button from the Buttons tab, just like any other button that's listed there.
Re-share a button
You can share a link to a button that's been shared with you.
1. Select ... next to the button you want to share.
2. Select Share button link .

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.

2. Tap Remove from the menu that appears.


That's it. The button no longer appears on the Buttons tab of the Power Automate app.

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

Add another action


In this procedure, you'll add an action in the middle of the flow. This action will save a file in your Dropbox,
archiving the item in the list.
1. In flow.microsoft.com, select My flows in the top navigation bar.
2. In the list of flows, select the flow that you want to edit.
3. Select New step , and then select Add an action .

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.

Reorder or delete an action


To receive email after the file is created in Dropbox, move the Dropbox action by dragging its title bar
above the email action. Release the Dropbox action over the arrow between the trigger (When a new
tweet is posted ) and the email action. (The cursor indicates whether the action is positioned correctly.)

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.

Copy and paste actions


If you want to duplicate actions while designing a cloud flow, you can copy and paste them. For example, if you
are building a condition and want similar actions in the If yes side and the If no side, instead of creating both
actions from scratch you can build the first action in one side and then copy it to the other side.
To copy an action
1. Select the action menu (the ... at the top-right of the action).
2. Select Copy to my clipboard .
3. Select New step where you want your action to go.
Notice the My clipboard tab that lets you choose from all of the actions that you've copied.
4. Select the item you want to paste.

Add advanced options


Start with a cloud flow that has a Send an email action.
1. Select Show advanced options , which is located at the bottom of the Send an email card.
You'll then see the advanced options for sending an email.
2. Select High from the Impor tance list, and then select Hide advanced options to hide the advanced
options.
3. Select Update flow , which is located on the menu at the top of the screen.
This step saves your changes.

Use co-presence to see all editors


Power Automate displays the list of other makers who are editing a flow simultaneously. The list of editors is
updated periodically.
Add comments to actions and triggers
Makers can have threaded comments with colleagues as they build their flows. They can add or edit comments,
reply to comment threads, and resolve and delete comment threads. It's possible to have multiple comment
threads for both actions and triggers.

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 .

The comments pane opens.


3. Enter a comment to your action with an @mention to others. If you do this, an email notification will be
sent to them when you select the Send icon.

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.

@mention or comment dialog." title="@mention or comment dialog" />


4. Enter your comments in the Star t a conversation box on the Comments pane, and then post it.
The Power Automate designer provides visual cues on the action cards to display the number of comment
threads contained within each.

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.

Address conflicts from multiple edits


If multiple users make changes to the flow simultaneously, Power Automate presents appropriate options to the
maker to minimize conflicts during a save operation. A maker can choose to refresh the flow definition or save a
copy of the flow to keep their changes.

New expression editor for actions (experimental feature)


Do you struggle with writing expressions in your flow actions? Now, you can make use of the improved
expression editor in experimental mode. To use the improved expression editor, enable the Experimental
Features setting and select fx on an action.
The expression editor view is larger to help you manage richer and complex expressions.

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.

Learn about all the available expressions.

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.

Use the compose action


Use the Data Operation - Compose action to save yourself from having to enter the same data multiple
times as you're designing a cloud flow. In this example, you need to enter an array of digits—
[0,1,2,3,4,5,6,7,8,9] —several times while you design your flow. You can use the compose action to save the
array, as described in the following procedure.
1. Search for Compose , and then select the Data Operation - Compose action.

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 .

Use the join action


Use the Data Operation - Join action to delimit an array with the separator of your choice. For example, your
flow receives a web request that includes the following array of email addresses:
["[email protected]", "[email protected]", "[email protected]"] . However, your email program requires addresses to be
formatted in a single string, separated with semicolons. You'll use the Data Operation - Join action to change
the comma delimiter (,) to a semicolon (;) by following these steps:
1. Add a new action, search for Join , and then select Data Operation - Join .

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.

Use the select action


Use the Data Operation – Select action to transform the shape of objects in an array. For example, you can
add, remove, or rename elements in each object in an array.

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:

[ { "first": "Eugenia", "last": "Lopez" }, { "first": "Elizabeth", "last": "Moore" } ]

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).

[ { "FirstName": "Eugenia", "FamilyName": "Lopez", "FullName": "Eugenia Lopez" }, { "FirstName":


"Elizabeth", "FamilyName": "Moore", "FullName": "Elizabeth Moore" } ]

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.

Use the filter array action


Use the Data Operation - Filter array action to reduce the number of objects in an array to a subset that
matches the criteria you provide.
NOTE
You can't use the filter array action to change the shape of objects in the array.
The text on which you filter is case-sensitive.

In this example, you use the filter array action on this array:

[ { "first": "Eugenia", "last": "Lopez" }, { "first": "Elizabeth", "last": "Moore" } ]

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.

3. Save, and then run your flow.


You can use PostMan to generate a web request that sends a JSON array to your flow.
4. When your flow runs, the output looks like the following array. Notice that only objects in which first is
set to Eugenia are included in the output of the action.

[ { "first": "Eugenia", "last": "Lopez" }]

Use the create CSV table action


Use the Data Operation - Create CSV table action to change a JSON array input into a comma-separated
value (CSV) table. You can keep the headers visible in the CSV output. In this example, you convert the following
array into a CSV table:

[ { "first": "Eugenia", "last": "Lopez" }, { "first": "Elizabeth", "last": "Moore" } ]

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.

Use the create HTML table action


Use the Data Operation - Create HTML table action to change a JSON array input into an HTML table. You
can keep the headers visible in the HTML output.
To do this, follow the steps in previous section for creating a CSV table, but use the Data Operation - Create
HTML table action instead of Create CSV table .

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.

EXP RESSIO N DESC RIP T IO N EXA M P L E

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('')

not Returns the opposite of a boolean This expression returns true:


value. not(contains('200 Success','Fail'))

if Returns a specific value if the This expression returns "yes":


expression results in true or false. if(equals(1, 1), 'yes', 'no')

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.)

Use the or expression


Sometimes your workflow needs to take an action if the value of an item is valueA or valueB. For example, you
may be tracking the status of tasks in a spreadsheet table. Assume that the table has a column named Status and
the possible values in the Status column are:
completed
blocked
unnecessar y
not star ted
Here's an example of what the spreadsheet might look like:

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.

Select the spreadsheet and get all rows


1. Select New step .
2. Search for rows , and then select Excel Online (Business) .
Note: Select the "get a row" action that corresponds to the spreadsheet that you're using. For example, if
you're using Google Sheets, select Google Sheets - Get rows .
3. Select the List rows present in a table action.
4. Select the Location , Document Librar y , File , and Table that contains your data.

Check the status column of each row


1. Select New step .
2. Search for apply to each , and then select the Apply to each control.

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.

Use the and expression


Assume you have a spreadsheet table with two columns. The column names are Status and Assigned. Assume
also that you want to delete all rows if the Status column's value is "blocked" and the Assigned column's value is
"John Wonder". To accomplish this task, follow all steps earlier in this walkthrough, however, when you edit the
Condition card in advanced mode, use the and expression shown here:
@and(equals(item()?['Status'], 'blocked'), equals(item()?['Assigned'], 'John Wonder'))

Your Condition card resembles this image:

Run the flow with the and expression


If you followed along, your spreadsheet resembles this image:
After your flow runs, your spreadsheet resembles this image:

Use the empty expression


Notice that there are several empty rows in the spreadsheet now. To remove them, use the empty expression to
identify all rows that don't have any text in the Assigned and Status columns.
To accomplish this task, follow all steps listed in Use the and expression section earlier in this walkthrough,
however, when you edit the Condition card in advanced mode, use the empty expression this way:
@and(empty(item()?['Status']), empty(item()?['Assigned']))

Your Condition card resembles this image:

After your flow runs, the spreadsheet resembles this image:

Notice extra lines are removed from the table.

Use the greater expression


Imagine you've bought baseball tickets for your coworkers and you're using a spreadsheet to ensure you're
reimbursed by each person. You can quickly create a cloud flow that sends a daily email to each person who
hasn't paid the full amount.
Use the greater expression to identify the employees who haven't paid the full amount. You can then
automatically send a friendly reminder email to those who haven't paid in full.
Here's a view of the spreadsheet:
Here's the implementation of the greater expression that identifies all persons who have paid less than the
amount due from them:
@greater(item()?['Due'], item()?['Paid'])

Use the less expression


Imagine you've bought baseball tickets for your coworkers, and you're using a spreadsheet to ensure you're
reimbursed by each person by the date to which everyone agreed. You can create a cloud flow that sends a
reminder email to each person who hasn't paid the full amount if the current date is less than one day before
the due date.
Use the and expression along with the less expression since there are two conditions being validated:

C O N DIT IO N TO VA L IDAT E EXP RESSIO N TO USE EXA M P L E

Has the full amount due been paid? greater @greater(item()?['Due'], item()?['Paid'])

Is the due date less than one day less @less(item()?['DueDate'],


away? addDays(utcNow(),1))

Combine the greater and less expressions in an and expression


Use the greater expression to identify the employees who have paid less than the full amount due and use the
less expression to determine if the payment due date is less than one day away from the current date. You can
then the Send an email action to send friendly reminder email to those who haven't paid in full and the due
date is less than one day away.
Here's a view of the spreadsheet table:

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)))

Use functions in expressions


Some expressions get their values from runtime actions that might not yet exist when a cloud flow starts to run.
To reference or work with these values in expressions, you can use functions that the Workflow Definition
Language provides. More information: Functions reference for Workflow Definition Language in Power
Automate
Store and manage values in variables
1/15/2022 • 7 minutes to read • Edit Online

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:

P RO P ERT Y REQ UIRED VA L UE DESC RIP T IO N

Name Yes <variable-name> The name for the variable


to initialize

Type Yes <variable-type> The data type for the


variable
P RO P ERT Y REQ UIRED VA L UE DESC RIP T IO N

Value No <start-value> The initial value for your


variable
Tip : Although
optional, set this
value as a best
practice so you always
know the start value
for 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.

Here are examples for some other variable types:


String variable

"name": "myStringVariable",
"type": "String",
"value": "lorem ipsum"

Boolean variable
"name": "myBooleanVariable",
"type": "Boolean",
"value": false

Array with integers

"name": "myArrayVariable",
"type": "Array",
"value": [1, 2, 3]

Array with strings

"name": "myArrayVariable",
"type": "Array",
"value": ["red", "orange", "yellow"]

Get the variable's value


To retrieve or reference a variable's contents, you can use the variables() function in the Power Automate
designer.
For example, this expression gets the items from the array variable by using the variables() function. The
string() function returns the variable's contents in string format: "1, 2, 3, red"

@{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 .

3. Provide this information for incrementing your variable:

P RO P ERT Y REQ UIRED VA L UE DESC RIP T IO N

Name Yes <variable-name> The name for the variable


to increment

Value No <increment-value> The value used for


incrementing the variable.
The default value is one.
Tip : Although
optional, set this
value as a best
practice so you always
know the specific
value for
incrementing your
variable.

For example:
4. When you're done, on the designer toolbar, select Save .

Example: Create loop counter


Variables are commonly used for counting the number of times that a loop runs. This example shows how to
create and use variables for this task by creating a loop that counts the attachments in an email.
1. In the Power Automate, create a cloud flow. Add a trigger that checks for new email and any attachments.
This example uses the Office 365 Outlook trigger for When a new email arrives . You can set up this
trigger to fire only when the email has attachments. However, you can use any connector that checks for
new emails with attachments, such as the Outlook.com connector.
2. In the trigger, to check for attachments and pass those attachments into your flow, select Yes for these
properties:
Include Attachments
Only with Attachments
3. Add the Initialize variable action. Create an integer variable named Count that has a zero start value.

4. Add an apply to each loop to cycle through the attachments.


a. Under the Initialize variable action, select New step .
b. Under Choose an action , select Built-in . In the search box, enter apply to each as your search
filter, and select Apply to each .
5. In the loop, select inside the Select an output from previous steps box. When the dynamic content
list appears, select Attachments .
The Attachments property passes an array, which has all email attachments from the email, into your
loop.
6. In the Apply to each loop, select Add an action .

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:

10. On the designer toolbar, select Save .

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

Name Yes <variable-name> The name for the variable


to decrement

Value No <increment-value> The value for decrementing


the variable. The default
value is one.
Tip : Although optional,
set this value as a best
practice so you always
know the specific value
for decrementing your
variable.

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:

P RO P ERT Y REQ UIRED VA L UE DESC RIP T IO N

Name Yes <variable-name> The name for the variable


to change

Value Yes <new-value> The value you want to


assign the variable. Both
must have the same data
type.

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

Name Yes <variable-name> The name for the variable


to change

Value Yes <append-value> The value you want to


append, which can have any
type

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.

Design a workflow in Visio


1. Sign into Power Automate.
2. Select Templates from the left side panel.

3. Select Visio from the list.

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.

5. The Visio designer launches.

6. Use the BPMN basic shapes to design your workflow.


Prepare to export your workflow to Power Automate
Follow these steps to prepare your workflow so that you can export it to Power Automate.
1. Select the Process tab.
2. Select Prepare to Expor t from the Power Automate group of icons.

The Prepare to Expor t group opens.

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.

3. You should see a success report similar to this one.

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.

Manage a cloud flow


1. Open the mobile app, and then tap My flows at the bottom of the screen to list all your flows.
Each entry shows the name of the flow, icons for its events and actions, the time when it ran most
recently, and an icon that indicates whether the most recent run succeeded.
2. Tap a cloud flow to show options for managing it.

3. Tap the Enable flow toggle to enable or disable the flow.


4. Tap See flow to show the events and actions for that flow, tap each event or an action to expand it, and
then tap Back .
5. Tap Run histor y to show the flow's successes, failures, or both.

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.

2. Select Details in the menu that appears.


3. Select More , and then select Submit as template in the menu that appears.

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.

Turn flows off


After you create a cloud flow, it is turned on by default. Follow these steps to turn off a cloud flow.
1. On the My flows page , select the ellipsis (...) for the flow you want to turn off.

2. Select Turn off in the menu that appears.


3. A message appears with the new flow status.

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.

Permissions to create a Dataverse database


When you create approval flows, they're saved in Dataverse. Initially, when you use the approvals connector in a
cloud flow that's located in a non-default environment, the system automatically provisions a database. To be
successful, the user who runs the first approval flow must have an administrator role in the environment.
It can take a few minutes for the database provisioning to be completed, and you'll notice this delay the first
time that you run the flow. Other users who create approval flows don't need any elevated permissions in the
environment.

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.

License to create flows


Because the approvals connector is a standard connector, any license that grants access to Power Automate and
the ability to use standard connectors is sufficient to create approval flows.
Here are the licenses that grant rights to use standard connectors.
Power Automate.
Office 365.
Dynamics 365 license with built-in Power Automate capabilities.
You can find a list of the Office 365 and Dynamics 365 licenses in the Microsoft Power Apps and Power
Automate licensing guide.

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.

Assign approvals to any user in your tenant


You can assign approvals to users—including guest users and Microsoft 365 groups—in your current Dataverse
environment or your Azure Active Directory (Azure AD) tenant.
When you assign an approval to users who aren't in your environment, they're automatically given the
Approvals User Dataverse security role. Users need this role for their responses to be processed and persisted in
their approvals history.
The following tenant configurations don't allow this:
When the AllowAdHocSubscriptions setting in Azure AD is disabled. In this case, you can request your tenant
administrator to enable it. You can find more information about this in the self-service signup.
If a security group has been used to control which users have access to the Dataverse environment.
Power Automate US Government plans.
After you assign an approval request to a user, they can respond directly from an Outlook email, a Microsoft
Teams adaptive card, or the Power Automate action center if they have a Power Automate license or an Office
365 or a Dynamics 365 license with built-in Power Automate capabilities. You can find a list of these Office 365
and Dynamics 365 licenses in the Microsoft Power Apps and Power Automate licensing guide.
Next steps
Create approval flows.
Trigger approvals from SharePoint lists
1/15/2022 • 2 minutes to read • Edit Online

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 .

5. Select, I’ll select the trigger action .


6. Select Save and 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.

3. Once the flow is created, configure these items.


Site address - On the trigger card, select the SharePoint site that contains your list. If the
SharePoint site doesn’t appear on the list, just write in your SharePoint site URL.
Folder id: - Select the folder where you will put the incoming files to be reviewed with an
approval.
On the Create file card enter the same Site address as before, and then select the folder where
you would like the files to be moved once they have been approved.
On the Delete file card, enter the same Site address as before. This action will delete the file
from the first folder once it has been approved and copied to the new folder.

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!

Select Show advanced options , and then select Attachment Name – 1 .


A floating panel opens on the right where you will see all the data you can get from the SharePoint
trigger.
Select File name .

Select Attachments Content – 1 , and then select File Content .


5. Expand the Condition card, and on the left text box, select Outcome .
This way if the approver approves the request, the action to copy the file to the second folder runs.

We’re done configuring the flow. Now let’s test it.


1. Select the Save button on the top right.
You might get a warning message from the Flow checker. It is safe to dismiss it.

2. Once the flow is saved, select the Test button.

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.

5. Now, you can see the flow is running.

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.

Customize approval requests


There are two ways to customize approval requests.
Using custom options
Power Automate approvals provides two default options to approve or reject requests.
Your business might need other options beyond approve/reject. For example, you might be reviewing a discount
request and you may want the approver to be able to respond from a list of possible discount limits, including:
Up to 5%
Up to 10%
Up to 15%
Denied.
You can customize the list of responses to approval requests by using Custom Responses .
Here's an example.
Salespeople in an organization can request an approver to give customers a discount for their purchases. These
Salespeople enter the discount request into a SharePoint list, which is the trigger of the flow. The flow then uses
custom responses with the Star t and wait for an approval action.
Select as approval type Custom Responses – Wait for all responses or Custom Responses – Wait for
one response , depending on if you need multiple approvers or just one.
Add as many response options as needed. In this case we are giving four mentioned earlier.
Give a Title to the approval request, and then list the approvers in Assigned to .

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 .

Get a confirmation email once an approval has been answered


If you would like to be notified when an approver responds to an approval request, just send yourself an email
after the approval step in the flow. Send the email on the If yes and on the If no branches of the approval
outcome condition like this.
Cancel an approval
If you are the maker of a flow that requests approvals, and the approval requests haven't been answered, you
can cancel it by:
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.

Post an approval request in Microsoft Teams


If you would like to notify the assigned approvers through a message in Microsoft Teams instead of by email,
start with the Request approval in Teams for a selected item in SharePoint template to do it.

Send an approval to multiple people


You can assign an approval request to multiple persons. Here are the two options.
1. When adding an approval action, there are two actions options for sending the approval request to
multiple persons. Select the appropriate option based on your needs.
If only a response of one person from the group of people is enough to sign off the approval and
continue with the flow run, use the Approve/Reject – First to respond or Custom Responses
– Wait for one response action.
If Everybody must respond to the approval request to continue with the flow run, select
Approve/Reject – Ever ybody must approve or Custom Responses – Wait for all
responses .

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.

Create an approval flow


Here's an overview of the flow we'll create and test:

The flow performs the following steps:


1. Starts when someone creates a vacation request in a SharePoint Online list.
2. Adds the vacation request to the approval center, and then emails it to the approver.
3. Sends an email with the approver's decision to the person who requested vacation.
4. Updates the SharePoint Online list with the approver's decision comments.

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

Title Single line of text

Start Date Date and Time

End Date Date and Time

Comments Single line of text

Approved Yes/No

Manager Comments Single line of text

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.

Create an automated cloud flow


1. Sign in to Power Automate.
2. Select My flows in the left-side navigation pane.
3. On the top-left menu, select New flow > Automated cloud flow .

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.

Add a profile action


1. Select New step , and then type profile into the Choose an action search box.
2. Select Office 365 Users .
3. Find, and then select the Get my profile (V2) action.

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.

Add an approval action


1. Select New step .
2. Type approval into the Choose an action search box.
3. Select the Star t and wait for an approval action.
4. Configure the Star t and wait for an approval card to suit your needs.

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.

5. Your Condition card should now show:


Add an email action for approvals
Follow these steps to send an email if the vacation 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.
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.

3. Configure the Update item card to suit your needs.

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.

Add update action for rejected requests


1. Select Add an action .
2. Enter update into the search box on the Choose an action card, and then select the Update item -
SharePoint action.

3. Configure the card to suit your needs.

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!

Request an approval to test your flow


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.

Create long-running approvals


If it's likely that your flow will run for more than 30 days, consider storing your approvals in Microsoft
Dataverse. This makes it possible for you to create flows that act on responses to approval requests, even after
the original flow run times out.
To do this, use two flows, one to send an approval request, and the other to run business logic on the responses
to the approval request, based on the Create an approval (v2) action. Learn more about long running
approvals.

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.

Cancel an approval request


Sometimes you might want to cancel an approval request that you've sent. Possibly you made a mistake in the
request, or it’s no longer relevant. In either case, the person who sent the request can cancel it by following these
steps:
1. Select the approval
2. Select Cancel approval in the side pane.

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.

Request approvals from guest users


You can send approvals requests to persons outside your organization. To do this, use Azure Active Directory
(Azure AD) guest users by inviting users from other tenants as guests.
When you assign a role to a guest, this gives the guest the permission required to participate in the approval
process.
Now that you've created and tested your flow, be sure to let others know how to use it.

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.

Create the flow


1. Sign into Power Automate.
2. Select My flows > New > Instant-from blank .

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.

Test your flow


You can test your flow by selecting Test and then uploading an .xlsx file.
1. Select Test .
2. Select I'll perform the trigger action .

3. Select Test > Continue to start the test.


4. Select Impor t .
5. Find the file, select it, and then select Open to upload the file or image you're sending for approval.
6. Select Run flow .
You'll see that the test run starts.

7. Select Flow Runs Page to monitor the status of the test.

Approve the request


The person to whom you send the approval request receives an email, similar to this image, where they can
view the attachment and then Approve or Reject the request:
TIP
Approvers can review requests in the approvals center as well.

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.

Detailed steps in the flow


The flow:
1. Starts when an employee creates vacation request in a SharePoint Online list.
2. Adds the vacation request to the approval center and then emails the request to the pre-approver.
3. Emails the pre-approval decision to the employee.
4. Updates the SharePoint Online list with the pre-approver's decision and comments. Note: If the request is
pre-approved, the flow continues with these steps:
5. Sends the request to the final approver.
6. Emails the final decision to the employee.
7. Updates the SharePoint list with the final decision.
This image summarizes the preceding steps:
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.
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

Vacation start date Date and time

Vacation end date Date and time

Comments Single line Of text

Approved Yes/No

Manager comments Multiple lines Of text

Modified Date and time

Created Date and time

Pre-approved Yes/No
T IT L E SIN GL E L IN E O F T EXT

Created By Person or group

Modified By Person or group

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.

Create your flow


1. Sign in to Power Automate.
2. Select My flows in the left-side navigation pane.
3. On the top-left menu, select New flow > Automated cloud flow .

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.

Add an approval action for pre-approvals


1. Select New step .
2. Type approval into the Choose an action search box.
3. Select the Star t and wait for an approval action.
4. Configure the Star t and wait for an approval card to suit your needs.

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.

5. Your Condition card should now show:


NOTE
This condition checks the response from the Star t and wait for an approval action.

Add an email action for pre-approvals


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.

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 pre-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.
3. Configure the Update item card to suit your needs.
Get the pre-approver's manager
1. Use the Get the manager for the person who created the vacation request steps we did earlier to add, and
then configure another Get manager action. This time we get the pre-approver's manager.
2. The Get manager 2 card should resemble this image when you're finished. Be sure to use the Email
token from the Get manager category on the Add dynamic content from the apps and ser vices
used in this flow card.

Add the final approval action


1. Use the add an approval action for pre-approvals steps we did earlier to add, and then configure another
Star t and wait for an approval action. This action sends an email request for final approval.
2. When you're done, the card should resemble this image:
Add the final approval condition
1. Repeat the steps from add a condition to add, and then configure a Condition that checks the final
approver's decision.

Send email with final approval


1. Use the steps from Add an email action for pre-approvals to add, and then configure an action that sends
an email when vacation requests are approved.
2. When you're finished, your card should resemble this image:

Update SharePoint with approval


1. Use the steps from Add an update action for pre-approved requests to add, and then configure an action
that updates SharePoint when the vacation request is approved.
2. When you're finished, the card should resemble this image:

Send email with pre-approval rejection


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: This action must be added to the IF NO, DO NOTHING branch below the Condition card.

Update SharePoint with pre-approval rejection


1. Select Add an action .
2. Enter update into the search box on the Choose an action card, and then select the Update item -
SharePoint action.

3. Configure the card to suit your needs.


Send email with final rejection
1. Use the steps from Send email with pre-approval rejection to add, and then configure an action that
sends an email when the vacation request is rejected by the final approver.
Note: This action must be added to the IF NO, DO NOTHING branch below the Condition 2 card.
2. When you're finished, the card should resemble this image:

Update SharePoint with final rejection


1. Use the steps from Update SharePoint with pre-approval rejection to add, and then configure an action
that updates SharePoint if the final approver rejects the vacation request.
2. When you're finished, the card should resemble this image:
3. Select Update flow to save the work we've done.
If you've followed along, your flow should resemble this image:

Now that we've created the flow, let's see it in 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:

View pending approval requests


View all pending approval requests by following these steps:
1. Sign in to Power Automate.
2. In the left-side navigation pane, select Action items > Approvals .
3. Your pending approval requests appear on the Received tab.

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.

Approve the request


The steps to approve a request are identical to the steps to pre-approve a request
Note: The final approver gets the vacation request only after the request has been pre-approved.

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

Employee comments Single line Of text

Direct manager comments Multiple lines Of text

Sales team comments Multiple lines of text

HR team comments Multiple lines of text

Direct manager approved Yes/No

Sales team approved Yes/No


T IT L E SIN GL E L IN E O F T EXT

HR team approved Yes/No

Vacation start date Date and time

Vacation end date Date and time

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.

Create your flow from the blank template


1. Sign in to Power Automate.
2. Select My flows in the left-side navigation pane.
3. On the top-left menu, select New flow > Automated cloud flow .

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.

Name and save your flow


Provide a name for your flow, and then select Save to save the work we've done so far.

NOTE
Select the Save icon periodically to save the changes to your flow.

Add an approval action for immediate manager


1. Select New step .
2. Type approval into the Choose an action search box.
3. Select the Star t and wait for an approval action.
4. Configure the Star t and wait for an approval card to suit your needs.

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.

Insert a parallel branch approval action for the sales team


1. Select the down arrow that's located between the Get manager (v2) and the Star t and wait for an
approval cards.
2. Select the plus sign that shows up on the down arrow after you select it.
3. Select Add a parallel branch .

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.

If you've followed along, your flow should resemble this example:


Options after adding parallel branches
After you've added actions to parallel branches, there are two ways to add steps to your flow:
Inser t a step within a branch: Use the Insert a new step (+ ) button above or below the card. This
button that appears when you select a branch or hover over the connector arrow). This button adds a
step to that specific branch . This button is shown here:

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:

In the following sections, we add steps within each branch:


Add a condition that checks if the vacation request was approved or rejected.
Send an email that informs the employee of the decision.
Update the vacation request in SharePoint with the approval decision.
Then, we use the +New step button to send an email that summarizes all decisions made on the vacation
request.
Let's continue:

Add a condition to each branch


1. Select the first Star t and wait for an approval branch.
2. Select the small Insert a new step (+ ) button below the card (the circular plus button that appears when
you hover over the connector arrow).
3. Select Add an action from the menu that appears, and then select Condition in the list of actions.
4. Select the first box on the Condition card, and then select the Response token from the Star t and wait
for an approval category in the dynamic content list.

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.

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.

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.

Update the vacation request with the decision


Perform the following steps to update SharePoint when decisions are made.
Note: Be sure perform these steps on both the IF YES and the IF NO sides of the branch.
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.
3. Configure the Update item card to suit your needs.
Repeat the preceding steps on the Star t an approval 2 and Star t an approval 3 branches.

Complete the flow


1. Select +New step
2. Use the steps provided previously to send an email that summarizes the results of each approval. Send
this email to the employee who requested vacation. Your card may resemble this example:
Learn more about modern approvals
Introduction to modern approvals
Create an approval flow that requires everyone to
approve
1/15/2022 • 5 minutes to read • Edit Online

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.

Here's a quick video tutorial about approvals.

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.

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.

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.

Create the flow


NOTE
If you haven't created a connection to SharePoint or Office 365 previously, follow the instructions when you're prompted
to sign in.

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.

F IEL D DESC RIP T IO N

Approval type See the approval types.

Title The title of the approval request.

Assigned to The email addresses of the approvers.

Details Any additional information that you want sent to the


approvers listed in the Assigned to field.

Item link A URL to the approval item. In this example, this is a link
to the item in SharePoint.

Item link description A text description for the Item link .


TIP
The Star t and wait for an approval action provides several tokens, including Responses and Outcome . Use
these tokens in your flow to provide rich reporting of the results from a run of an approval request flow.

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.

Approval types and their behaviors


A P P RO VA L T Y P E B EH AVIO R

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.

Approve/Reject - First to respond 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 decides.

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.

At the top of the screen, select Save to save your flow.


Congratulations, your flow is complete! If you followed along, your flow resembles this image.
Now, whenever an item is added to your SharePoint list, or if an item changes, your flow triggers and sends
approval requests to all approvers whom are listed in the Assigned to box of the Star t and wait for an
approval card. Your flow sends approval requests via the Power Automate mobile app and via email. The
person who creates the item in SharePoint gets an email that summarizes the results, clearly indicating if the
request was approved or rejected.
Here's an example of the approval request that's sent to each approver.

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.

Send an approval to a Microsoft 365 group


Approvals to groups behave exactly like approvals to users, it's just the entity that the approval is being sent to
that's different. Let's look at a simple example.

NOTE
This example uses the First to respond action, but you can combine this action with other types of approvals as well.

Create the flow


1. Sign in to Power Automate.
2. Select My flows > New > Instant — from blank .
3. Give your flow a name, search for and then select Manually trigger a flow , and then select Create .

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.

10. Select Save to save your flow.


Test your flow
1. Select Test .
2. Select I'll perform the trigger action .

3. Select Test > Continue .


4. Select Run flow .
You'll see that the test run starts.
5. Select Flow Runs Page to monitor the status of the test.
Approve the request
For mail-enabled groups, the group to which the approval is sent receives a notification to respond to the
approval. Members of the group can also view the approval in the Approvals action center on the Power
Automate portal and in the Approvals app in Microsoft Teams.

What to expect when you send approval requests to groups and


users
You can choose to send an approval to multiple groups, or even a combination of groups and users. Here are a
few examples of such scenarios and their expected outcome:
The First to respond approval sent to group 1 and group 2: At least one user from either group 1 or group
2 needs to approve.
The Ever yone must respond approval sent to group 1 and group 2: At least one user from both group 1
and group 2 needs to approve.
The First to respond approval sent to group 1 and user 1: At least user 1 or one member from group 1
needs to approve.
The Ever yone must respond approval sent to user 1 and group 1: Both user 1 and at least one member
from group 1 needs to approve.

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.

Build the table


1. Sign in to powerapps.com.
2. If the left navigation bar doesn't appear by default, click or tap the icon with three horizontal lines in the
upper-left corner.

3. In the left navigation bar, click or tap Manage , and then click or tap Tables .

4. If prompted, click or tap Create my database .


5. Near the upper-right corner, click or tap New table .

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 .

7. Under Display name , specify a friendly name.

8. Click or tap Next .

Add columns to the table


1. Near the upper-right corner, click or tap Add column .

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.

3. In the next row, set the properties of a Status column:


In the Display Name column, type Status .
In the Name column, type Status .
In the Type column, click or tap the Text option.
In the Proper ties column, leave the default value.
In the Required column, select the checkbox.

4. In the next row, set the properties of a FileID column:


In the Display Name column, type File identifier .
In the Name column, type FileID .
In the Type column, click or tap the Text option.
In the Proper ties column, leave the default value.
In the Unique column, select the checkbox.
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 .

6. Near the lower-left corner, click or tap Create .

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.

Sign in and create a cloud flow


1. Open the Power Automate portal.
2. Maximize your browser window if it isn't already maximized, and then click or tap Sign in near the
upper-right corner.

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 .

5. Near the upper-right corner, click or tap Create new flow .

Start when a file is added


1. In the box that contains Search for more triggers , type or paste Dropbox , and then click or tap
Dropbox - when a file is created .

2. Under Folder , click or tap the folder icon, and then browse to the folder where files will be added.

Add data to the table


1. Click or tap New step , and then click or tap Add an action .

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.

6. Under Status , type or paste Pending .

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.

Check whether the file has been reviewed


1. Under the Create object action, click or tap New step , click or tap More , and then click or tap Add a
do until .

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.

Check whether the item has been approved


1. Under the Do-Until action, click or tap New step , and then click or tap Add a condition .

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 .

Send notification mail


1. Under If yes, do nothing , click or tap Add an action .

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.

Delete rejected files


1. Under the fields for the rejection mail, click or tap Add an action .

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.

Save the flow


1. At the top of the screen, type or paste a name for the flow that you're creating, and then click or tap
Create Flow .
2. Click or tap Close and then click or tap Done .
3. In Dropbox, add at least two files to the folder that you specified: one to test approval and one to test
rejection.

Build the app


1. Sign in to powerapps.com, and then click or tap New app near the bottom of the left navigation bar.

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.

5. In the Search box, type or paste Review .

6. Under Choose an table , click or tap Review Dropbox Files .

7. Near the lower-right corner, click or tap Connect .

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.

Customize the app


1. In the right navigation bar, click or tap the layout that includes a header and a description.

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.

Test the overall solution


1. In Power Apps, open Preview mode by clicking or tapping the play button near the upper-left corner.

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.

4. In the Status box, type or paste Approved .

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

Headers Yes Yes Yes Yes No No No

Numbere Yes Yes No Yes Yes Yes No


d Lists

Nested Yes Yes No Yes Yes Yes No


Numbere
d Lists

Tables Yes Yes Yes Yes No No No

Images No No No No No No No

Forced Yes* Yes* No (use a Yes* Yes* Yes* No


Line blank line
Breaks instead)

Blank No No Yes Yes No Yes No


Lines

Emphasis Yes Yes Yes Yes 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:

Paragraphs and line breaks


Make your text easier to read by breaking it up with paragraphs or line breaks. Enter two spaces prior to the line
break to force most clients to start a new line.
Example:

This is line 1.(space)


Now text will appear on the next line.

Result: This is line 1.


Now text will appear on the next line.
Example 2

This is line 1.(space, space)

Line 2 has extra space before it.

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:

[Link Text](Link URL)

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:

| Heading 1 | Heading 2 | Heading 3 |


|-----------|:-----------:|-----------:|
| Cell A1 | Cell A2 | Cell A3 |
| Cell B1 | Cell B2 | Cell B3 |

Result:

H EA DIN G 1 H EA DIN G 2 H EA DIN G 3

Cell A1 Cell A2 Cell A3

Cell B1 Cell B2 Cell B3


second line of text

Emphasis (bold, italics, strikethrough)


You can emphasize text by applying bold, italics, or strikethrough to characters:
To apply italics: surround the text with an asterisk * or underscore _
To apply bold: surround the text with double asterisks ** .
To apply strikethrough: surround the text with double tilde characters ~~ .

Combine these elements to apply multiple emphases to text.


Example:

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.

Create approval flow


1. Sign in to Power Automate.
2. Select My flows from the left navigation bar.
3. Select New > Automated-from blank .

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.

Use approval responses


If the response to the request is Accept , you might want to send an email to the accounting department, asking
them to reimburse the employee for the expense.
If the response is Reject , you might want to send an email to the employee, letting them know that the request
was rejected.
And finally, if the response from the approver is Need more info , you might want to send an email to the
employee, requesting the employee to provide more information.
To do any of these in the flow, add a Condition or a Switch action to your flow, and then select the Outcome
field of the approval request from the dynamic content picker. Be sure to confirm whether the value is Accept,
Need more info, or Reject.

Respond to approval requests with a custom response


Approvers receive approval requests in email. The requests are also displayed in the approval center on Power
Automate.
Limitations
Outlook and Outlook Web Access(OWA) actionable messages have a limit of five custom responses. This means
that only the first five responses that are defined within the flow will be visible in the actionable section of Power
Automate approval emails. You can submit the remaining options via a non-actionable HTML email, the Power
Automate approval center, the Power Automate mobile application, or Teams.

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

Working with guest users


If you assign a guest user to an approval, that user won't be able to view or act on the approval by default. The
guest user must be assigned a valid Power Automate license (Per user license or Microsoft 365-based user
license) to view or respond to the approval.
Adaptive Cards mismatch in Microsoft Teams
There are multiple ways in which you can notify an approver when a flow runs. By default, all flows that handle
approvals send an email notification. You can also send an Adaptive Card with the approval to users in Microsoft
Teams. If the approver responds through the email notification or through the approval action center, the card in
Microsoft Teams will not auto update. This can lead to situations where there's a mismatch between the status
shown on the Adaptive Card and that of the flow.
To avoid this, you can choose to disable the default notification email that is sent to the user as part of approval
creation.
Abandoned approvals in the approval action center
As part of the flow you can send an approval request to a user and wait for a response. Today, an approval flow
can wait for 28 days. If the wait time exceeds 28 days, that flow will fail. This only impacts the flow itself,
meaning that the approval continues to exist in the action center. This can lead to cases where there are
abandoned approvals in the approval action center, which have no flow waiting on them. The requestor or
environment admin will need to manually delete these approvals from the action center.
Anchors
Anchor links are not supported. Unexpected results will occur if you use anchors.
Data Templating
Data templating isn't fully supported for adaptive cards in Power Automate. As a workaround, use actions like
compose, filter, select, and apply to each to manually construct the card within your flows.
Overview of Office 365 Outlook email use with
Power Automate
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.

Outlook.com or Office 365 Outlook: which connector should I use?


If you're using a work or school email account, use Office 365 Outlook connector. If you're using a personal
account (Microsoft account), use the Outlook.com connector. In this article, we refer only to the Office 365
Outlook triggers and actions, but you can use the same techniques for the Outlook.com connector as well.

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

There are four ways to create flows to manage your email:


1. Use a template—Most likely, there's already a template accomplishes your scenario. Search for your
scenario among the templates and then follow the steps to create a cloud flow from the template.
2. Tweak a template—If you find a template that is similar to your scenario, but it doesn’t do exactly what
you are want, you can create a cloud flow from that template and then tweak the flow to your liking. You
can extend a cloud flow that's created from template 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 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.

Send email from your account


To send email from your account, use the Send an email (V2) action.
You can send the email to one or more recipients. You can use the rich text editor to make text bold, add color,
and format the email similar to the way you do in Outlook. You can add static text or values from previous
actions by using dynamic content. You can use the send as option to send email as someone else, or on behalf
of someone else. (To use this option, you'll need the permissions in Outlook to send on another person's behalf).
You can find all email you send in your Sent items folder in Outlook.
For example, if you have a cloud flow that sends you an email as soon as your item is approved, you can add the
link of the approved item as an attachment.
Send email with voting options
Use the Send email with options action to send an email with voting options using actionable email. Provide
voting options in the User Options field.

The recipients receive an email similar to the following image.


In your flow, you must capture that response and save it somewhere. You might email it to yourself, save it to
Excel, or post it to Teams. Don't forget to save it, otherwise you won't know how people voted.

Send an email from a distribution list or shared mailbox


Use the Send an email from a shared mailbox (V2) action and specify the shared mailbox address to send email
from a shared mailbox.
The distribution list admin must first give you permissions to the shared mailbox. When you use this action,
email appears in the Sent folder of your shared mailbox because you're sending it from that account directly.
Build an approval process and send notifications via email
You can use Power Automate to build an approval process that notifies users via email.

Send reminder email to approvers


You can also send reminder emails for approval requests.

Send a daily digest email with a table


Here are three ways you can send a daily digest email with a table:
Use the Data Operation – Select action to create a table with the column names and data you'd like to see
in the email. You can further format the data by using expressions. In following example, the flow gets
calendar events within a certain timeframe, converts the time zones, and then creates a table with the
events.
Add the Create HTML Table action, and then add the output from the select action to the HTML action.
Add the Send an email (V2) action, add the output from an HTML table into the body of the email.

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

Folder Trigger a cloud flow whenever emails arrive in a specific


folder. This property can be useful if you have rules that
route emails to different folders.

To Trigger a cloud flow based on the address to which an email


was sent. This property can be useful if you receive email
that was sent to different email addresses in the same inbox.

CC Trigger a cloud flow based on the CC address to which an


email was sent. This property can be useful if you receive
email that was sent to different email addresses in the same
inbox.

From Trigger a cloud flow based on the sender's email address.

Importance Trigger a cloud flow based on the importance with which


emails were sent. Email can be sent with high, normal, or low
importance.

Has Attachment Trigger a cloud flow based on the presence of attachments in


incoming emails.

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

Trigger a cloud flow based on an email's subject


In this walkthrough, we create a cloud flow that sends a push notification to your mobile phone if the subject of
any new email has the word "lottery" in it. Your flow then marks any such email as read.

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.

Ok, let's get started.


1. Sign in to Power Automate, and then select the My flows tab.
2. Select New > Automated-from blank .

3. Give your flow a name.


4. Search for "new email", and then select When a new email arrives (V3) from the list of triggers. This
trigger runs each time an email arrives.
5. Select Create .
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.

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.

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. Select Save at the top of the page.

Congratulations! You now receive a push notification each time you receive an email that contains the word
"lottery" in the subject.

Trigger a cloud flow based on an email's sender


In this walkthrough, we create a cloud flow that sends a push notification to your mobile phone if any new email
arrives from a specific sender (email address). The flow also marks any such email as read.
1. Sign in to Power Automate, and then select the My flows tab.
2. Select New > Automated-from blank .
3. Give your flow a name.
4. Search for "new email", and then select When a new email arrives (V3) from the list of triggers. This
trigger runs each time an email arrives.
5. Select Create .

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.

1. In the From box, enter the email address of the sender.


Your flow takes action on any emails that are sent from this address.

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 whenever a message arrives from the
email address that you entered earlier.

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.

Trigger a cloud flow when emails arrive in a specific folder


If you have rules that route emails to different folders based on certain properties, such as the address, you
might want this type of flow.
Let's get started.

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.

1. Sign in to Power Automate, and then select the My flows tab.


2. Select Create from blank .

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.

Send a beautifully formatted email


You can use HTML to beautify your email. Following are two options that you can use to beautify your messages
with HTML:
Option 1: Write HTML directly into the flow
1. Select the </> button inside the rich text editor in the Power Automate designer.

2. Enter any HTML content into the body of the email.


Option 2: Copy HTML from an Outlook email
Alternatively, if you don't know HTML or don't feel like playing with HTML, follow these steps:
1. Create an email in Outlook, styling it with colors, content placeholders, images, and tables.
2. Send the email to yourself.
3. Open the email you sent to yourself in Outlook. Be sure to use a new window; don't use the preview
window in Outlook.
4. Go to the Message tab > More Actions > Other Actions > View Source .
The HTML representation of the email opens in your text editor.
5. Find <html> in the file.
6. Copy the content between <html> and </html> .
7. Back in Power Automate, select the </> button in the rich text editor of the Send an email action, and
then paste the contents that you copied from Outlook.

Add an image to your email


Outlook takes the image you included in your email and converts it to plain text. Instead of copying/pasting the
plain text into Power Automate, follow these steps:
1. Upload the image to cloud-based storage, such as Google Drive or OneDrive for Business.
2. Get the anonymous visitor URL to the image.
3. In the Power Automate Send an email action, go to the HTML section of the rich text editor, look
for <image src= in the HTML, and then change the value of the src property to the URL of the image
from the cloud-based storage provider where you uploaded the image.
Your src should be similar to: <image src="https://url/to/your/images.png"/> .

IMPORTANT
Inline images are limited to a size of 100 KB. This might affect the quality of the image.

Send email to a distribution list


The Send an email action can send messages to an email-enabled security group or distribution list. Each
member of the email-enabled security group or distribution list receives the email in their group mailbox rather
than their own mailbox.
Alternatively, follow these steps if you want users to receive the email in their mailbox:
1. Add the Get group members action from the Azure AD connector, and then select the distribution list.
2. Add an Apply to each action under the action Azure AD-Get group members .
3. Inside the Apply to each , add the Send an email action, and then add the group members from the
Get group members action as dynamic content in the To field.

Send automatic replies from a shared mailbox


You can do this in the Outlook Web App.
1. Sign in to the Outlook Web App at https://outlook.office365.com with your Office 365 credentials.
2. Select your profile image (or placeholder image) in the upper-right corner.
3. Select Open another mailbox .
4. Enter the name or email address of the shared mailbox, and then select it.
5. Select the settings icon in the upper-right corner, and then select Automatic replies .
6. Configure your automatic reply.
Change the date and time format of an email
By default, the email you receive shows Coordinated Universal Time (UTC) time zone. However, your users might
want to change it to their local time zone. Follow the steps in this article to convert the time zone.
More information
Overview of email with flows
Create flows to manage email
Top email scenarios
Troubleshoot common issues with email in flows
1/15/2022 • 2 minutes to read • Edit Online

Known limitations
For known limitations of the Send an email action, go to Office 365 Outlook: Known issues and limitations.

Frequently asked questions


I didn't get an email. Why?
1. Confirm that your IT department has approved all Power Automate endpoints to allow it to send email to
your email servers. These endpoints include IP addresses and domains.
2. Double-check whether you have any Outlook rules that are moving the email to a different folder.
3. Check whether you're using the Focused inbox feature. Check whether the email landed in another
folder.
I didn't get an email and the send an email action looks stuck in my flow.
If you're using the Mail connector, note that 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 60 seconds instead, so you're less likely to hit the limit.
I have a cloud flow that triggers when an email arrives in a folder. Will my flow trigger if I move
email from one folder to another folder?
No. Your flow will be triggered only when a new email arrives.
I'm tr ying to send an email to all the approvers. I see an apply to each action around the send an
email action, causing separate emails. I want to send an email to all of them.
Apply to each is added because there are multiple approvers. You can create a string variable (as opposed to an
array) and store email addresses in it, separated by semicolons.
I don't get an attachment for some of my approvals.
The Approval action attaches files to a notification email until the size of the email reaches 5 MB. If the
attachments exceed 5 MB, the approval email directs the approver to check the attachments in the Power
Automate approval center.
How to increase email attachment size limit for Power Automate?
A Microsoft Dataverse administrator can change the limit by going into Microsoft Dataverse > Email
Configuration settings, and then setting the file size limit for attachments.
Power Automate stopped working - "Item ID doesn't belong to current mailbox" error Power
Automate when using actions with shared mailbox.
As of May 6, 2020, shared mailbox support was added for certain operations with an optional Mailbox
address parameter, allowing you to specify a shared mailbox address for your operations to access. If you were
using this operation prior to May 6, 2020, you'll need to explicitly update your operations to specify the shared
mailbox address.
I see this error : "REST API is not yet suppor ted for this mailbox"
This error can occur for accounts that are on a dedicated (on-premises) mail server when:
1. The mailbox is on a dedicated Microsoft Exchange Server, or it isn't a valid Microsoft 365 mailbox.
2. The mailbox is an Outlook.com account that isn't enabled.
3. The mailbox isn't part of a Microsoft 365 plan that includes Power Automate.
To resolve the issue, go to "REST API is not yet supported for this mailbox" error for request to a mailbox.
Unable to send email with attachment error : "Parameter 'Attachment Content' cannot be null or
empty."
Use expressions to encode the attachment with base64. The attachment will be recognized after you're done.

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.

Top SharePoint workflow scenarios


Here are some of the top scenarios in which you can use Power Automate with SharePoint:
Manage approval flows
Work with files and lists
Migrate from workflows to Power Automate
Manage approval flows
Customize SharePoint page approvals to meet your needs.
Require approval of documents in SharePoint by using Power Automate.
Route finished documents to a team for approval.
Work with files and lists
Manage list item and file permissions.
Move files to different folders after they're approved in SharePoint.
Create an item in SharePoint when a new order is added in Salesforce.
Get items from lists, or get files from libraries.
Create a flow for a list or library in SharePoint or OneDrive.
Edit a cloud flow.
Other top scenarios
Use HTTP requests to manage lists and libraries.
Create SharePoint reminder flows.

SharePoint triggers and actions


You can use SharePoint triggers to start flows that monitor changes made to a SharePoint list or library. For a
full list, go to SharePoint triggers.
As soon as your flow starts, you can use any of the more than 40 actions to manipulate your SharePoint lists.
Migrate from workflows to Power Automate
Migrate from classic workflows to Power Automate flows in SharePoint.

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.

Create a reminder flow


1. Create a SharePoint list with at least one DateTime column in the current view.
2. Select Automate > Set a reminder > Date deactivated (this is the column with the DateTime for the
reminder).

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:

Confirm reminders received


You'll receive a reminder via email, based on the Remind me this many day(s) in advance entry you made
on the Set a reminder flow you created earlier.

Edit your flow


The reminder flow is like any other flow, so you can access and edit it through Power Automate.

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.

Configure SharePoint for page approvals


Prerequisites
You must be a SharePoint site admin to perform the activities in this article.

TIP
For detailed information about using SharePoint with Power Automate, see the SharePoint documentation.

1. Sign in to SharePoint as a site admin.


2. Select Pages from the navigation bar.

3. Select Automate > Power Automate > Configure page approval flow .

4. Select Create flow .


5. Optionally, you might need to sign into the the services that this Power Automate template uses.
6. Select Continue .
7. Provide a Flow name , at least one name in the Approvers box, and then select Create .

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.

Submit a page for approval


Now that you've created a page approval flow, anyone who adds or changes a page will need to do the
following:
Make a change to the site (add a new page, for example) and then save the change.
Wait for someone to approve the change.

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.

Customize page approval flows


Because page approvals use Power Automate behind the scenes, the page approval flow is available for site
owners to modify and add any custom business logic in the flow. To modify the flow, the site owner can select
Flows and then select See your flows in the pages library to find the page approval flow.

Learn more
Page approval flow
Configure page approval
Use flows in Microsoft Teams
1/15/2022 • 2 minutes to read • Edit Online

Power Automate flows can be used in three scenarios with Teams.

SC EN A RIO DESC RIP T IO N

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.

3. Select Add for me .


4. Select your Countr y/region , and then select Get star ted .

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.

Pin the Power Automate app


TIP
You can pin the Power Automate app in Microsoft Teams, allowing you to access it more easily at a later time.

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.

Create a cloud flow from a template


NOTE
By default, the Power Automate app shows you templates that have been created for Microsoft Teams. You can switch
filters on the top right to view all Power Automate templates, if desired.

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.

2. Select Apps on the right side on the screen.


3. Search for, and then select the Power Automate 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.

6. Set up the connections as needed.


7. Select Continue to get a list of parameters that are necessary for the flow to run successfully. Provide the
parameters that are needed.
If you wish to see the full flow, select Edit in advanced mode .

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.

Create a cloud flow from scratch


If you want full control over the flow that you create, select Create from blank from the top right side of the
screen, instead of using a template.

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.

5. Select the Manage a Project template.


6. Select Next on the Manage a Project screen after you've reviewed the summary and details of the
template.
7. Select the Sensitivity and Privacy levels for your team.
8. Give your team a Name , a Description , and then select Create .
9. Wait while the team is created.

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.

Owners Provides a list of the users who own the flow.

Type Shows the type of flow. Flows can be Automated , Instant ,


or Scheduled .

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

Message sender options


The Post a message in a chat or channel action can send a message in the following two ways:
1. As the Flow bot: In this method, the message gets sent as the Flow bot instead of any individual users.
Use this sender option if you didn't want to tie the message to any specific user and just want to use a
generic sender instead.
2. As a User: In this method, the message gets sent as the user who's signed in to the Teams connector in
the Flow (generally the Flow owner). This method can be used when the message needs to get sent as a
regular user.
The Post as and Post in options within the action control all the different combinations of how messages can
be posted in Teams.
Posting a message as the Flow bot in a Teams channel
To send a message as the Flow bot in a Teams Channel select the Post as option as Flow bot and the Post in
option as Channel. Once you do two more dynamic inputs show up, which allows you to specify the Team and
Channel in which to send the message and add your message in the message field.

Posting a message as the Flow bot in an existing named group chat


To send a message as the Flow bot in a 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. Choose a group chat to post the message in and add your message in the message field.
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.

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.

Posting a message as the user in a Teams Channel


To send a message as the user in a Teams Channel select the Post as option as User and the Post in option as
Channel . Once you do two additional dynamic inputs show up, which allows you to specify the Team and
Channel in which to send the message and add your message in the message field.
Posting a message as the user in an existing named group chat
To send a message as the user in a group chat select the Post as option as User 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.
Choose a group chat to post the message in and add your message in the message field.

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.

Create a new group chat and post a message


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.
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 User 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.

Mention a user in any message


Mentions are a great way to get the attention of a user in Teams. You can combine any of the above actions and
add a mention in the message of to a user or channel.
To mention a user, use the Get @mention token for a user action and specify the email of the user you want
to mention in the User field. The User field only accepts a single user input, if you want to mention multiple
users you will need to add multiple instances of this action within the flow.

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.

Known issues and limitations


By default Teams only lists the 50 most recent named group chats in the drop-down list. If you want to send
a message to a new group chat use the option below.
The Get @mention token for a user can only be used for mentioning users, mentioning channels/teams
is currently not supported.
Trigger a cloud flow from any message in Microsoft
Teams
1/15/2022 • 2 minutes to read • Edit Online

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.

Create the flow


1. Sign in to Power Automate, and then select My flows > New > Instant-from blank .
2. Enter a name for your flow.
3. Select the For a selected message trigger.

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.

Collect information from the user


To collect information from the user by using a form, users can select Create Adaptive Card in the trigger.
This displays an inline adaptive card editor, where you can drag card elements to construct your own form.

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.

Trigger the flow


IMPORTANT
You must create these flows within the default environment for them to appear in Teams.

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.

Create a cloud flow in Teams


1. Go to the Build tab in your Power Apps app, and then select See all .
2. Select New , select Flow , and then select the type of flow you want to create. You can create only the
following types of flows: instant, scheduled, and automated.

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.

Work with your flows


To find your saved flows:
1. Sign in to Teams.
2. On the left pane, select Power Apps .
3. On the Build tab, select the team in which you created your flow, and then select See all in the tree view.

Customize a cloud flow


In Teams, you might have acquired flows from an installed app or you might have created them yourself. You
can update or customize either of these types of flows.
1. To update a cloud flow, select the Build tab, and then select See all to see all the apps and flows in this
team.
2. Select the flow that you want to edit, and then select Edit .
View details and run history
1. To view the details and run history for a cloud flow, select the Build tab, and then select See all .
2. Select the flow for which you want to view the details, and then select Details .

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"
}
]
}

11. Make the following replacements in the JSON.

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

Header Tagline Text Power Automate Poll

Poll Header Preferred Car Model

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.

Choice 1 (replace in both places) Tesla

Choice 2 (replace in both places) Lexus

Choice 3 (replace in both places) Honda

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)

Test your adaptive card


To test your work, run the flow you created earlier and confirm the following:
The flow run has no errors, and waits for the response, showing the wait indicator for the Adaptive Card
action on the run screen.
The Teams channel has the new adaptive card posted.
When you respond to the card by selecting a car model, and then selecting the Submit button on the
bottom section of the adaptive card:
No errors should occur on the adaptive card.
The flow run completes successfully.
Card replacement is relevant after submission if you have configured the Update message area at the
bottom of the wait for a response actions (shown next with the corresponding replacement card).
Otherwise, all submissions will simply reset the form.
The email notification contains the body that shows who submitted the response and which car was
selected.
Congratulations! you’ve just made your first interactive adaptive card!

Troubleshooting tips for adaptive cards


The most common problems that you will encounter when creating adaptive cards are:
Flow run errors are often caused by one of the following factors:
The Flow App is not installed in Microsoft Teams – Please install the Flow App into Teams.
In this case the error may resemble this screenshot:

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.

Currently available actions for flows


The following actions enable makers to create Adaptive Cards for Microsoft Teams. As integration scenarios
evolve, other hosts will also be supported by Power Automate, which will extend your opportunities to leverage
Adaptive Cards throughout Microsoft cloud subscriptions.

NOTE
Adaptive Cards aren't available within the DoD environment.

Directing content to Teams members or AAD users


Post your own adaptive card as the Flow bot to a user
This action posts an adaptive card as a Flow bot to a specific user. In this case, you will need to provide a
recipient email address, and the card will show up in the recipient's chat and/or activity feeds during the
flow run. There is no requirement for the user to be part of a Teams instance to receive these types of
Adaptive Cards. In this case, only the URL buttons function by redirecting to the URL that's configured
within the flow.

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.

Directing content to Teams channels


Post your own adaptive card as the Flow bot to a channel
This action posts an adaptive card as a Flow bot to a specific Teams channel. In this case, you will be
prompted for Teams instance, and a channel where the card will be posted. The flow-maker will have to
have access to the Teams instance in order to post an adaptive card there. In this case, only URL buttons
function by redirecting to the URL configured within the flow.
Post an adaptive card as the Flow bot to a Teams channel, and wait for a response
This action posts an adaptive card as a Flow bot to a specific Teams channel as in the case above.
However, in this case the flow will not continue until someone on the channel has responded to any
inputs required within the card. The flow will continue once the anyone in the Teams channel responds
but will only return dynamic content for one (1) response per responder and per card.
TIP
When you use this card, the flow waits for a response from any Teams member.

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"
}
]
}

11. Make the following replacements in the JSON.

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

Header Tagline Text Power Automate Poll

Poll Header Preferred Car Model

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.

Choice 1 (replace in both places) Tesla

Choice 2 (replace in both places) Lexus

Choice 3 (replace in both places) Honda

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)

Test your adaptive card


To test your work, run the flow you created earlier and confirm the following:
The flow run has no errors, and waits for the response, showing the wait indicator for the Adaptive Card
action on the run screen.
The Teams channel has the new adaptive card posted.
When you respond to the card by selecting a car model, and then selecting the Submit button on the
bottom section of the adaptive card:
No errors should occur on the adaptive card.
The flow run completes successfully.
Card replacement is relevant after submission if you have configured the Update message area at the
bottom of the wait for a response actions (shown next with the corresponding replacement card).
Otherwise, all submissions will simply reset the form.
The email notification contains the body that shows who submitted the response and which car was
selected.
Congratulations! you’ve just made your first interactive adaptive card!

Troubleshooting tips for adaptive cards


The most common problems that you will encounter when creating adaptive cards are:
Flow run errors are often caused by one of the following factors:
The Flow App is not installed in Microsoft Teams – Please install the Flow App into Teams.
In this case the error may resemble this screenshot:

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

Inputs/Outputs and notes

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:

{acFullName} {acFullName} Display text

{acComments} {acComments} Display text


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:

{acDecision} Response output

{acFollowUp} Response output

{
"$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.

Inputs/Outputs and notes

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

acphotoTitle {acphotoTitle} Display text

acTimestamp {acTimestamp} Display date/time

acImageThumbnail {acImageThumbnail} Display image


This must be replaced with a valid URL

acAltText {acAltText} Accessibility alternative text


{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"text": "{acphotoTitle}",
"id": "Title",
"size": "Large"
},
{
"type": "TextBlock",
"text": "{acTimestamp}",
"size": "Medium",
"weight": "Lighter"
},
{
"type": "Image",
"altText": "{acAltText}",
"url": "{acImageThumbnail}"
}
],
"spacing": "None"
}
Lead collection sample
1/15/2022 • 2 minutes to read • Edit Online

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).

Inputs/Outputs and notes:

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

Title Display text

acInstructions Display text

acLeadFName {firstName} Response output


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

acLeadLName {lastName} Response output

acLeadEmail {emailAddress} Response output

acLeadPrimaryPhone {primaryPhone10digits} Response output

acLeadProductInterest {productInterests} Response output


As multi-select values, where each
selection will be separated by a
comma.

{
"$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.

Inputs/Outputs and notes

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:

Title Display text

acHeaderTagLine Display text

acHeader Display text

acPollQuestion Display text


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:

acPollChoices Response output


Single select as radio buttons

{
"$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

Inputs/Outputs and notes

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

acHeader {Header} Display text

acSubHeader {SubHeader} Display text

acDescription Latin Text Display text

acFact1 {acFact1} Display text

acFact2 {acFact2} Display text

acFact3 {acFact3} Display text


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

acColumnSetHeader Headers 1 through 3 Display text


Column set header display tex

acColumnSet Columns 1 through 3 Replace with array or column values.

{
"$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.

Inputs/Outputs and notes

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

{acCityState} See template Display text


A variable can be used to hold the City,
State, or Zip Code values

{acDailySummary} See template Display text

{acCurrentDateTime} See template Display text

{acUrlConditionsImage} See template Display text


See template comments This must be
replaced with a valid URL

{acCurrentTemperature} See template Display text

{actempHi} See template Display text

{actempLow} See template Display text

{
"$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.

Inputs/Outputs and notes

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:

{acAcronym} Enter the abbreviation for the acronym Response output

{acDefinition} Enter a definition of the acronym Response output


above
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"text": "Acronym Logger",
"id": "Title",
"spacing": "Medium",
"horizontalAlignment": "Center",
"size": "ExtraLarge",
"weight": "Bolder",
"color": "Accent"
},
{
"type": "Container",
"items": [
{
"type": "TextBlock",
"text": "Acronym",
"wrap": true,
"spacing": "Medium"
},
{
"type": "Input.Text",
"id": "acAcronym",
"placeholder": "Enter the abbreviation for the acronym"
},
{
"type": "TextBlock",
"text": "Definition",
"wrap": true
},
{
"type": "Input.Text",
"placeholder": "Enter a definition of the acronym above",
"id": "acDefinition",
"isMultiline": true
}
]
}
],
"actions": [
{
"type": "Action.Submit",
"title": "Submit", "id": "btnSubmit"
}
]
}
Lead collection sample
1/15/2022 • 2 minutes to read • Edit Online

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).

Inputs/Outputs and notes:

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

Title Display text

acInstructions Display text

acLeadFName {firstName} Response output


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

acLeadLName {lastName} Response output

acLeadEmail {emailAddress} Response output

acLeadPrimaryPhone {primaryPhone10digits} Response output

acLeadProductInterest {productInterests} Response output


As multi-select values, where each
selection will be separated by a
comma.

{
"$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.

Use the approvals app in Teams


1. Sign into Microsoft Teams
2. Select More added apps (...) , search for Approvals , and then select the approvals app
TIP
If you do not see the approvals app in the more apps menu, it is likely that your Teams Administrator has disabled the
app in your tenant. Contact your Teams administrator to enable the approvals app from the Teams admin center.

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.

Start an approval in a chat or channel


Follow these steps to create an approval in a chat or channel in Teams.
1. Sign into Microsoft Teams.
2. Navigate to the chat or channel in which you want to send the approval.
3. Select the approvals icon under 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.

Custom responses for approvals


If you want to customize the actions for an approval, use the Custom responses option to change the action to
anything you want. To do so, follow the same steps mentioned earlier and then toggle the custom responses
option in the approvals form.

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.

Start an approval from the approvals app


Follow these steps to create an approval from the approvals app in Teams.
1. Sign into Microsoft Teams.
2. Select More added apps (...) , search for approvals , and then select the approvals app.

3. Select New Approval request on the top right of the app.


4. Enter the details of the approval.
TIP
If you are sending an approval to multiple users and you need everyone to respond, ensure that select the
Require a response from all approvers option. If you only need one of the approvers to approve turn the
option off.

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.

Approve or reject an request in Teams


Follow these steps to respond to an approval in a chat or channel in Microsoft Teams.
1. Sign into Microsoft Teams.
2. Go to the chat or channel in which you were sent the approval.
You should see a card with the approval.

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.

This article shows you how to:


Create a custom connector.
Add a trigger and actions to a custom connector.
Create an approval flow.
Use the approvals hub in Teams to manage approvals that you created with the flow.

Prerequisites
One of the following subscriptions:
Power Automate
Power Apps
Basic experience building flows and custom connectors.

Create a custom connector


1. Sign into Power Automate.
2. Expand Data , and then select Custom connectors .
3. Select New custom connector .

4. Select Create from blank from the dropdown list.


5. In the Connector name field, enter a name for the custom connector.

6. In General Information , enter a Description and a Host .


7. Select the Security tab, and then select the authentication type that your API uses.

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.

1. Continuing from the earlier steps, select the Definition tab.


2. Select New Trigger in the Triggers list.

3. Enter a Summar y , Description , Operation ID , and select a Trigger type .


NOTE
Select either impor tant or advanced for the visibility the trigger to make the trigger available when you create
the approval flow.

4. Select Impor t from sample.

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.

9. Configure the trigger to meet your needs.


Create an approval flow
Now that you've created your custom connector, it's time to create your approval flow that uses the custom
connector.
1. Sign into Power Automate.
2. Select My flows .
3. Select New flow , and then select Automated cloud flow .
4. Select Skip on the Build an automated cloud flow screen.
5. Select the Custom tab, and then select your new custom connector.

6. Select a trigger from your custom connector.


7. Select New step .
8. Search for "approvals", and then select Star t and wait for an approval .
9. Select the Approval type , and then populate the required fields on the Star t and wait for an
approval card.

10. Select New step > Control > Condition .


11. Select the Choose a value text box, and then search the dynamic content for "Responses Approver
response".

12. Update the condition with the desired result.

IMPORTANT
The "Approve" or "Reject" approval responses are case sensitive.
13. Add an action in both condition result sections.

Manage approvals generated by the approval flow


1. Sign into Microsoft Teams.
2. Search for the approvals app, and then select it.
3. View your received and sent approvals.

4. Take an action that activates your custom connector’s trigger.


5. View the new approval request in flow run history.

6. View the new approval request in the approvals app.


7. Select the approval request, review the details, and then select Reject or Approve .

8. View the completed approval request in flow run history.

9. View the completed approval request in approvals app.

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

Add Power Automate visual to a Power BI report


To get started, launch either Power BI Desktop or Power BI Service and select the Power Automate icon from the
Visualizations pane.

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.

Add an existing cloud flow to the Power BI report


1. Select Edit from the More options menu of the visual.
2. Select an existing flow to apply to the button.
Your existing cloud flow is now added to the Power BI report.
Create a new flow
To create a flow, use Instant from blank or start with one of the built-in templates. The following steps detail
how to create a flow from scratch for use within a Power BI report.
When you select the Instant from blank option, Power Automate automatically adds the Power BI button
clicked trigger.

Apply the flow to the Power BI report


1. Add the relevant actions into your flow.
2. Save , and then select the back arrow to take you back to the details page.

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.

Microsoft Forms trigger


A trigger is the event that starts the flow. For example, Here is the full list of the Microsoft Forms triggers.

Microsoft Forms action


Actions are the events you want the workflow to do once the trigger takes place. Here is the full list of the Forms
actions. The trigger doesn’t contain dynamic content that includes all of the responses, so you always need to
use When a new response is identified with Get response details.
Related topics
Power Apps and Microsoft Teams
Power Virtual Agents and Microsoft Teams
Get started
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 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.

Send an email when there is a new form response


Although you can enable a notification to “Get email notification of each response” within the Microsoft Form
settings, you can create a customized email notification with Power Automate.
First, add the When a response is submitted trigger.
If your form is only for people in your organization, that means that the form is automatically recording the
responder’s email and you need to use the 'Apply to Each' control. This demo will demonstrate this scenario and
require you to choose “List of response notifications Response Id.” However, if your form is public and anyone
with the link can respond, you will need to ask for their email as a response in the form and you will not need to
add the 'Apply to Each' control.

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.

Send an email to the form responder after they submit a response


Although you can enable a notification to Send email receipt to respondents within the Microsoft Form settings,
you can create a customized email notification with Power Automate. This is similar to top scenario #1, except
the Send an email (V2) action is now being sent to the responder.

Send an approval with contents of the form


Create an approval with dynamic content from the form. In this example, the content will be the feedback, which
is denoted by the question “What can we improve about our product?”
After adding the Microsoft Forms trigger and action, the third step is to add the Start and wait for an approval
action.
You can view more examples with approvals in the documentation.

Upload Microsoft Forms responses to Excel


Create a new Excel Online sheet and add a table to the sheet. Learn more about tables in the Excel
documentation.
You can also add an approval to approve a response before it enters the Excel sheet. The Approve a Microsoft
Forms response to add a row to an Excel spreadsheet template can help you do this!

Get an attachment from a form and send it in an email message


Ensure that you’ve added a section in your form for the responder to upload their file.
After adding the Forms trigger and action, add the Parse JSON action. We recommend running the flow before
adding this action to generate the JSON schema from a sample.

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.

Change the date and time format of the forms response


By default, the form submission time will show the UTC time zone but users might want to change it to their
local time zone.
For information about how to convert the time zone, see: Converting time zone in Microsoft Power Automate
For information about how to customize date formats in the flow, see: How to customize/format Date and
Time values in a flow

Configure a flow with a group form


Go to your form. Copy the Form Id from the URL of the form and add it as a custom value.

Send an email based on a conditional form response


Once you choose the Microsoft Forms trigger and action, you can add a condition based on a particular
response in the form. The condition can be equal to a text value or numerical value. After you create the
condition, you will see an “If yes” and an “If no” statement for which you can add actions. For example, if
someone responds that they would attend an event, you can send them the event details. Use the step by step
instructions to Create an automated workflow for Microsoft Forms to learn more.

Convert an attachment in Microsoft Forms to PDF


After creating the Forms trigger and action, add a Select data operation, Create HTML table, Create file in
OneDrive for Business, and then Convert file in OneDrive for Business to a PDF or other type of file.

Upload forms responses to a Power BI data set to visualize responses


In Power BI, you can create a dashboard that aligns with questions in your form. See step-by-step instructions:
Turning Forms surveys into insights with Flow and Power BI

Create a lead from a Microsoft Forms Response


You can push a responder’s data as a lead to Dynamics 365. More information: Converting Web Forms to
Dynamics 365 Leads with Microsoft Flow & Forms
See also
Troubleshoot common issues
Microsoft Forms - known issues and limitations
Troubleshoot known issues with Forms in flows
1/15/2022 • 2 minutes to read • Edit Online

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.

Here’s what each scope means:

SC O P E RO W O W N ERSH IP L EVEL

Business Unit Actions are taken on rows owned by anyone in your


business unit.

Organization Actions are taken by anyone within the environment.

Parent: Child business unit Actions are taken on rows that are owned by anyone in your
business unit or a child business unit.

User Actions are taken on rows owned by you.

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.

Using dynamic content and action inputs / outputs


A Dataverse custom action is meant for custom business logic, it accepts input parameters and returns output
parameters. When this trigger runs, these parameters are available as dynamic content in the flow and can be
used in subsequent steps.
Here's the naming scheme for the parameters.
The prefixes ActionInputs and ActionOutputs specify whether it is an input or output parameter.
The next literal is the name of the parameter.
For complex data types such as an entity object, the last literal is the column name, for example, donotfax.
Use a flow to add a row in Dataverse
1/15/2022 • 2 minutes to read • Edit Online

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.

6. Select the Accounts table in the Add a new row card.


After you select a table, the card expands, displaying both optional and required items. All mandatory
items display an asterisk (*).
7. Optional: If you don't see a column that you need, select Show advanced options at the bottom of the
card to view all columns.

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.

The advanced options are:


Select columns
Expand Query
Partition Id

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

Follow these steps to delete a row from Dataverse.


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 delete row into the Search connectors and actions search box on the Choose an operation
card.
4. Select Microsoft Dataverse .

5. Select Delete a new row action.

6. Select the table name, and then enter an ID in Row ID .


The Row ID column is the unique ID of the row that you are deleting.

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.

Get a list of rows


Follow these steps to add the List rows action to your flow to return up to 5000 accounts from the Accounts
table in Dataverse.
1. Select New step to add an action to your flow.
2. Enter list row into the Search connectors and actions search box on the Choose an operation
card.
3. Select Microsoft Dataverse to filter the search results to display only actions and triggers for Microsoft
Dataverse.
4. Select List rows .
5. Select the Accounts table from the Table name list.

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:

Example FetchXML query for the Account table:


<fetch count="10">
<entity name="account">
<attribute name="name" />
<attribute name="preferredcontactmethodcode" />
<attribute name="emailaddress1" />
<attribute name="telephone1" />
<link-entity name="contact" to="primarycontactid" from="contactid">
<attribute name="fullname" />
</link-entity>
<filter>
<condition attribute="createdon" operator="ge" value="2021-01-01T00:00:00-00:00" />
</filter>
<order attribute="name" descending="true" />
</entity>
</fetch>

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.

Modify or add rows directly with relationships


When you create or modify rows, there are columns that hold relationships. For example, when you create an
account, there is a Primar y Contact column.

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.

Activity party relationships


Activity parties are a special type of relationship in Dataverse. For example, when you create
an appointment, the values for Required Attendees and Optional Attendees are related to the System users
table.

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:

O P ERATO R DESC RIP T IO N

Boolean operators AND operator; denoted by +


OR operator; denoted by |
NOT operator; denoted by -

Precedence operators A search term "hotel+(wifi | luxury)" will search for results
containing the term "hotel" and either "wifi" or "luxury" (or
both).

Wildcards Trailing wildcards are supported; for example, "Alp*" searches


for "alpine".

Exact matches A query enclosed in quotation marks " ".

The Lucene query syntax supports the following functionality:

O P ERATO R DESC RIP T IO N

Boolean operators Provides an expanded set compared to


simple query syntax.
AND operator; denoted by AND, &&,
+
OR operator; denoted by OR, ||
NOT operator; denoted by NOT, !, –

Precedence operators The same functionality as simple query


syntax.

Wildcards In addition to a trailing wildcard, also


supports a leading wildcard.
Trailing wildcard – "alp*"
Leading wildcard - “/.*pine/”

Fuzzy search Supports queries misspelled by up to


two characters.
"Uniersty~" will return "University"
"Blue~1" will return "glue", "blues"

Term boosting Weighs specific terms in a query


differently.
"Rock^2 electronic" will return results
where the matches to "rock" are more
important than matches to
"electronic".
O P ERATO R DESC RIP T IO N

Proximity search Returns results where terms are within


x words of each other, for more
contextual results.
For example, "airport hotel"~5 returns
results where "airport" and "hotel" are
within five words of each other, thus
boosting the chances of finding a hotel
located close to an airport.

Regular expression (regex) search For example, /[mh]otel/ matches


"motel" or "hotel".

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

Body The object that represents the entire response. It contains


the list of rows, total row count, and facet results.

List of rows An object that represents all the rows returned.

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.

4. Select Add an action .


You’ll notice that this approach is different from any other action you’ve added in the following ways:
Instead of inputs and outputs, this is a container to which you can add actions.
When you select Add an action , you’ll see just the following three actions:
Add a new row
Delete a row
Update a row

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.

Download file or image content


Follow these steps to add the Download a file or an image action to your flow. You can use the downloaded
file contents in suitable actions later in the flow.
1. Select New step to add an action to your flow.
2. Enter download a file into the Search connectors and actions search box on the Choose an
operation card.
3. Select Microsoft Dataverse .
4. Select the Download a file or an image action.

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.

4. Enter the content you want to upload.


In this example, the files to upload are the attachments content from an email captured earlier in the flow.
You can select Attachments Content in the list of dynamic content that's displayed when you select
Add dynamic content on the Upload a file or an image card.
Troubleshoot known issues with Dataverse
1/15/2022 • 2 minutes to read • Edit Online

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.

5. Be sure to use the Power Apps trigger as shown here.


6. Create the flow as shown here.
Create an automated flow with Microsoft Dataverse
1/15/2022 • 3 minutes to read • Edit Online

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.

Initiate a cloud flow from Dataverse


You can use any of the following triggers to initiate your flow.
When a flow step is run from a business process flow
When a row is added
When a row is modified
When a row is deleted
When a action is performed (preview)

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

Business Unit Action is taken on a row owned by your business unit

Organization Action is taken by anyone within the organization or


database

Parent: Child business unit Action is taken on a row owned by your business unit or a
child business unit

User Action is taken on a row owned by you

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.

Write data into Dataverse


Use any of the following actions to write data into Dataverse:
Create a new row
Update a row
Here's an example of creating a follow-up task when the given user creates a new account row.
Advanced concepts
Write data into customer, owner, and regarding columns
To write data into customer, owner, and regarding columns, two columns must be populated.

C O L UM N C AT EGO RY EXA M P L E SET T IN GS

Regarding Regarding = ID of the row (for example, account ID) and


Regarding Type as selected from the list.

Customer Represents the ID of the row and the customer type as


selected from the list.

Owner Represents the ID of the system user or team, and owner


type as selected from the list.

Enable upsert behavior


You can leverage the update a row command to provide upsert actions, which updates the row if it already
exists, or creates a new row. To invoke upsert, provide the table and a GUID key. If the row with the specified type
and key exists, an update occurs. Otherwise, a row with the specified key is created.
Trigger behavior
If you have a trigger registered on the update of a row, the flow runs for every committed update to the given
row. The service invokes your flow asynchronously, and with the payload that it captures at the time the
invocation occurs.
Flow runs may be delayed if there is a backlog of system jobs in your environment. If this delay occurs, your
flow is triggered when the system job to invoke the flow runs.
Overview of solution-aware flows
1/15/2022 • 2 minutes to read • Edit Online

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.

Create the flow


1. Sign in to Power Automate.
2. Select Solutions from the navigation bar.

3. Select the solution in which you'll create your flow.


4. Select New , and then select Flow .

Power Automate opens.


5. Use the available connectors and triggers to build your flow.
In this example, we'll build a simple flow that sends a notification when an email arrives in your inbox.
6. Search for and then select Office 365 Outlook .
7. Select the When a new email arrives (V3) trigger.
8. Select New step .
9. Search for the word "Notification", and then select the Send me a mobile notification action.
10. Add the Subject dynamic token to the Text field of the Send me a mobile notification box.
11. Give your flow a name and then save the flow.
Your flow should appear like this:
12. Select Solutions to see your flow in the solution:

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.

Create the child flow in a solution


1. Sign into Power Automate, select Solutions , and then pick an existing solution.
Alternatively, you can create a solution.
2. Select New > Flow > Button flow > Manually trigger a 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.

7. Give your flow a descriptive name and then save it.


You need to then test your child flow. Because you can manually trigger this flow, it's very easy to test
right inside of the designer. Try it out with a couple different inputs, and verify that the outputs are what
you expect.
8. Lastly, if your flow uses anything other than built-in actions or the Microsoft Dataverse connector, you will
need to update the flow to use the connections embedded in the flow. To do this, select the back button
to get to the child flow's properties page, and then select Edit in the Run only users tile.
9. In the pane that appears, for each connection used in the flow, you will need to select Use this
connection (< connection name> ) instead of Provided by run-only user .
10. Select Save . At this time, you cannot pass connections from the parent flow to the child flow. If you do
not do this, you will receive an error stating that the name cannot be used as a child workflow because
child workflows only support embedded connections.

Create the parent flow in a solution


1. Build the parent flow in the same solution in which you created the child flow.
Alternatively, you can bring an existing flow into that solution. The parent flow can have any type of
trigger.
2. Find the place in your parent flow from which you want to call the child flow and then add the Run a
Child Flow action that's located under the Flows connector on the Built-in tab.
3. Pick the child flow that you created earlier.

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 .

3. Select Browse from the Impor t a solution page that opens.


4. Find, and then select the solution that you want to import.
5. Select Open .
You should now see the Select Solution Package page similar to this image:
6. Select Next .
If there are no errors, the importation completes within a few moments.

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

Follow these steps to edit a solution-aware flow.

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.

Remove a cloud flow from a solution


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 remove from the solution.

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.

Delete a cloud flow from an environment


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 delete from the environment.
3. Select ... (More Commands) for your flow, select Remove , and then select Delete from this
environment .

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.

My trigger doesn’t fire


1. A data loss prevention policy could be to blame.
Admins can create data loss prevention (DLP) policies that can act as guardrails to help prevent users
from unintentionally exposing organizational data. DLP policies enforce rules for which connectors can be
used together by classifying connectors as either Business or Non-Business . If you put a connector in
the Business group, it can only be used with other connectors from that group in any given app or flow.
If your flow violates a DLP policy, it will be suspended, causing the trigger to not fire. To know if your flow
is suspended, try to edit the flow and save it. The Flow checker will report it if the flow is violating a DLP
policy. Your admin can change the DLP policy.
2. The trigger may be failing.
To confirm:
a. Go to My flows and then select your flow.
b. Do you see the following error in the Details ?

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.

Verify if the flow uses a premium connector trigger


1. Edit your flow to find the connector name for the trigger.
2. Go to the list of connectors and search for that connector. If the connector is a premium connector, it
shows below the name of the connector.

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 .

5. Find Trigger conditions .


If the field is empty, it means that there are no additional customizations and that the title of the card (in
this case, when an item is created or modified ) indicates when the trigger fires.
If there are additional customizations in Trigger conditions , confirm that you are using the
expected/correct inputs to trigger the flow.
Check permissions
Verify that you have access to the folders, sites, or mailboxes that are used in the trigger. For example, to be able
to send email from a shared inbox via Power Automate, you need permissions to send an email via the shared
inbox. Test sending an email from that shared mailbox in Outlook.
Verify if admin mode is turned on
If an environment’s admin mode is turned on, all background processes, including flows will be turned off,
causing the flow to not trigger.
Follow these steps to disable the admin mode.
1. Go to the Power Platform admin center and sign in using Environment Admin or System Administrator role
credentials.
2. From the left-side menu, select Environments , and then select a sandbox or production environment.
3. On the Details page, select Edit .
4. Under Administration mode, toggle Disabled to Enabled .
5. Optionally, you can set Background operations and Custom message, and then select Save.
If everything looks good but your flow is still not triggering, verify if your flow triggers after every step.
Try these steps
1. Test the flow manually.
2. Remove, and then re-add the trigger.
3. Switch connection.
4. Turn off, and then turn on the flow.
5. Export, and then import the flow.
6. Create a copy of the flow.
7. If the trigger uses special conditions, like when an email arrives in specific folder, remove the folder, and then
add it again.

My trigger is firing for old events


There are two types of triggers—polling triggers or Webhook triggers.
If you turned off your flow and then turned it back on, depending on your trigger type, your old triggers may be
processed.
A polling trigger periodically makes a call to your service to look for new data, whereas a Webhook trigger
responds to a push of new data from the service.
See the following table to understand how your flow responds when it's turned back on.

Trigger type Description

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.

Webhook When the flow is turned on again, it processes new events


that are generated after the flow is turned on.

To determine the type of trigger that's used in your flow:


1. Select the …(ellipses) for your flow, and then select Peek code .

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.

There's a delay before my trigger fires


If the trigger is a polling trigger, it wakes up periodically to check if any new events have occurred. The wake-up
time depends on the license plan on which the flow runs.
For example, your flows may run every 15 minutes if you’re on the Free license plan. On the Free plan, if a
cloud flow is triggered less than 15 minutes after its last run, it’s queued until 15 minutes have elapsed.
And, if your license is the Flow for Office 365 plan (from your Enterprise license E3, E5, etc.) or the Flow for
Dynamics 365 plan, your flow won't run again until five minutes have elapsed. So, it may be a few minutes
between the time the triggering event occurs and the time the flow begins.
To check the trigger wake up frequency:
1. Go to your flow trigger, and then select the …(ellipses).
2. Select Peek code .

3. Find the interval frequency.


If it is taking much longer than expected for your flow to trigger, the two likeliest reasons are:
1. There has been too many calls to the connector or flow, causing it to be throttled. To verify if your flow is
being throttled, manually test the flow to see if it triggers immediately. If it triggers immediately, it is not
throttled.
Further, you can check the Power Automate action analytics. Check out this blog to know more about
action analytics.
If your flow is frequently throttled, redesign your flow to use fewer actions. Learn more about plan limits
and tips to optimize flows to use fewer actions.
Additional tips:
a. Acquire a Per User or Per Flow license. After this is acquired, open and resave the flow, in order to
refresh the entitlement associated with it, and to change the throttling Mode.
b. Split the flow into several instances. If the flow processes data, you can divide this data into
subsets (per country, per business area, etc.).
c. After this, you can use Save As on the flow to create several instances that will process each one
their own data. Since the quota is per flow, this can be used as a workaround.
2. There was a communication issue preventing Power Automate from reacting to trigger events. Potentially
because of a service outage, policy change, password expiry, and so on, that caused the delay. You can
check to find out if there are any active outages. You can also clear the cache of the browser and then
retry.

Dynamics 365 connector trigger issues


There's a delay - Dynamics 365 connector triggers can take up to 2 hours to run. This connector is deprecated
and our recommendation is to migrate your flows to use Microsoft Dataverse.
My flow is not listed - The Power Automate menu only lists flows that begin with the When a row is added,
modified or deleted trigger and contain at least one trigger or action that references that table. Flows that
contain other types of triggers (automatic, scheduled, etc.) will not be listed in Dynamics 365.
You can also access these flows in the Power Platform admin center:
1. Sign into Power Platform admin center.
2. Select Environments .
3. Select that environment that contains the flow.
4. Select Flows under the Resources section.

IMPORTANT
You must enable Power Automate before you can find these flows.

Power Apps apps trigger issues


Unable to rename actions in a cloud flow – This is a known issue for flows that use Power Apps triggers. As a
work around to rename actions, remove the trigger. Rename the actions and add your Power Apps trigger and
configure variables wherever needed.
Once a Power Apps app is published, make copies of the flows used by the Power Apps app to make any
updates. Any update to a cloud flow that's referenced by a published Power Apps app can break existing users.
Do not delete or turn off existing flows until all users have been upgraded to the new published version of the
Power Apps app.

SharePoint trigger issues


SharePoint triggers, for example When a file is created or modified will not fire if a file is added/updated in
a subfolder. If you need the flow to trigger on subfolders, create multiple flows.

My flow triggers multiple times


Verify that you don’t have copies of the flow active in different environments that are triggering based on same
condition. Use trigger conditions to customize triggers to reduce the number of times it triggers.

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.

3. Select the trigger or action to see its inputs and outputs.

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.

Display a summary of activity


1. If your flow hasn't run before, trigger a run to generate data.
It might take some time for the data to appear in the app.
2. Open the mobile app, which shows the Activity tab by default.
This tab organizes data by day, with today's data at the top.
Each entry shows the name of a cloud flow with icons that correspond to its trigger events and actions.

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.

Show details of a run


1. In the activity summary, tap an entry to show details for the most recent run.
Each event and action appears with an icon that indicates whether the event or action succeeded or failed.
If it succeeded, the amount of time it took (in seconds) also appears.

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

Repair tips in email


Repair tips are sent to flow owners via email whenever a cloud flow fails. These repair tips emails contain
specific, actionable feedback about certain errors. For example, one common error is setting up a cloud flow that
attempts to get a person’s manager in Office 365—but there is no manager configured in Azure Active Directory
(Azure AD). If this or several other conditions cause your flow to fail, you get a repair tips email like this:

The repair tips email contains the following sections:

NAME DESC RIP T IO N

Time Displays the time the flow first failed.

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.

Identify the error


1. Select My flows .
2. Select the flow that failed.
3. In the 28-day run histor y section, select the date of the failed run.
Details about the flow appear, and at least one step shows a red exclamation icon.
4. Open that failed step, and then review the error message.
On the right pane, you can see the details of the error and How to fix the error

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.

Getting help from support or the community


When you need help, you can use our Self Help options, or you can Ask for help from others.
Self help
1. Go to the support site.
2. Go to the Self Help category and select one of the self-help options.

Ask for help from others


1. Go to the support site.
2. Select Contact Suppor t in the Ask for help section.
3. Complete the Problem type , Categor y , and the Tell us what you need help with fields, and then
select See solutions .
4. Notice that the Solutions section displays after you select See solutions . It contains a list of results that
you can use to help address the issue you're facing.

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.

View errors or warnings in the checker


While designing your flow, you can select the Flow Checker button to open the checker to view errors and
warnings.
The checker also opens automatically when you save the flow if there are errors or warnings. Once the checker
opens, it shows all errors and warnings in your flow. In each section, the checker calls out the actions where the
error or warning occurs.

Learn to fix errors and warnings


Expand each section to learn more about how to fix the errors or warnings.

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

Authoring Create with Power Yes Yes


Automate for desktop

Authoring Create with Selenium IDE No Yes

Runtime Local runtime (Attended) Yes Yes

Runtime Cloud runtime (Attended / No Yes


Unattended)

Monitoring Manage desktop flows Yes Yes


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

Monitoring View run logs Yes Yes

Access as described in the IP Address configuration


TLS 1.2 is required for accessing the required services
The Microsoft Edge (version 80 or later) or Google Chrome browser.
An environment with a Microsoft Dataverse database. (Applicable only for work or school accounts)
A supported keyboard attached.
An active connection to the Internet.

Set the display language for Power Automate for desktop


The language used in Power Automate for desktop is the display language selected on your Windows OS. Get
more details on how to manage display language settings in Windows 10.

Supported languages
Here are the languages that Power Automate for desktop supports, in addition to English:

Basque French Latvian Slovak

Bulgarian Galician Lithuanian Slovenian

Catalan German Malay Spanish

Chinese (Simplified) Greek Norwegian Swedish

Chinese (Traditional) Hindi Polish Thai

Croatian Hungarian Portuguese (Brazil) Turkish

Czech Indonesian Portuguese (Portugal) Ukrainian

Danish Italian Romanian Vietnamese

Dutch Japanese Russian

Estonian Kazakh Serbian (Cyrillic, Serbia)

Finnish Korean Serbian (Latin, Serbia)

Sign-in account comparison


Below you can find detailed comparison on what each user will have access to. You can find more information
on the versions in the Power Platform license guide.
W O RK O R SC H O O L O RGA N IZ AT IO N P REM IUM
M IC RO SO F T A C C O UN T A C C O UN T A C C O UN T

Storage OneDrive Personal account Dataverse of Default Dataverse across


Environment environments

Accessible recorder : Add Yes Yes Yes


different actions and record
desktop apps and web apps
in a single desktop flow.

Easy to use designer : Yes Yes Yes


Use the drag-and-drop
visual designer to organize
your flow logically, while
utilizing desktop and web
recorders to capture core
logic of your automation
within a single desktop flow.

Robust browser Yes Yes Yes


suppor t : Use intelligent
data extraction across all
major web browsers (Edge,
Firefox, Internet Explorer,
Chrome)

Pre-built actions : Yes Yes Yes


Leverage a diverse set of
400+ pre-built actions that
connect to many different
systems.

Access to new actions : Yes Yes Yes


Automate more non-API
systems with new support
for SAP, legacy terminals
such as mainframes and
AS/400, Java apps, Citrix,
etc.

Exception handling : take Yes Yes Yes


advantage of exception
handling to enable
automation of complex
cases that require validation
(via action and scripts) and
proactively manage flow
settings to ensure a flow is
completed without the
need for human interaction.

Connectivity with cloud No No Yes


flows (triggering/scheduling
flows)
W O RK O R SC H O O L O RGA N IZ AT IO N P REM IUM
M IC RO SO F T A C C O UN T A C C O UN T A C C O UN T

Dataverse storage : Save No No Yes


new desktop flows built
with Power Automate
centrally in Dataverse,
benefiting from
Environment isolation and
role-based access.

Sharing and No No Yes


Collaboration : Share flows
between team members
and select access level such
as co-development or run-
only.

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.

Additional capabilities No No Yes


such as AI Builder,
integration with cloud flows,
use of over 400+ premium
and custom connectors,
unattended RPA (with
unattended addon) and
much more.

Known issues and limitations


1. Only work or school account users with Dataverse database provisioned in their default environment can
create Power Automate desktop flows. Power Automate desktop flows will be stored in the default
environment with the Dataverse database.
If the Dataverse database doesn't exist in the default environment, the user will not be able to create
desktop flows and be prompted to create a database. There will be no connectivity of Power Automate
desktop flows with cloud flows.
After creating the Dataverse in the Power platform admin center, intermittently user might get
prompted to create the database again. In this scenario, restart Power Automate for desktop (exit from
the system tray icon).
2. If users have signed in with trial or paid accounts and want to connect their free Microsoft accounts, they
have to use Power Automate for desktop version 2.6.48.21069 or above. Otherwise, they'll encounter the
following error.
3. Microsoft Account and Work account without a paid license are not supported in Sovereign clouds. GCC,
GCCH, China sovereign clouds need paid license to sign-in to Power Automate and paid attended RPA
license to use Power Automate for desktop.
4. Power Automate applies the proxy configuration specified in Windows proxy settings. If the proxy server
requires authentication, the administrator has to exclude Power Automate from using it or use another
server that doesn't require authentication. You can find more information regarding bypassing proxy
servers in Configure Power Automate to bypass a corporate proxy server.

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.

Install Power Automate


Follow these steps to install the Power Automate for desktop:
1. Download the Power Automate installer.
2. Open the Setup.Microsoft.PowerAutomateDesktop.exe file.
This file is likely in your Downloads folder after you downloaded it in the previous step.
3. Follow the instructions in the Power Automate for desktop setup installer to complete the
installation.
4. Make your selections for each feature for the installation to complete.
The installer allows you to install two different apps on your device:
Power Automate for desktop is the app to build your desktop flows. With it you can create, edit and run
your automations. Learn more about the desktop flows designer.
Power Automate machine runtime app allows you to connect your machine to the Power Automate cloud.
It allows you to harness the full power of your robotic process automation (RPA). Learn more about
machine management.
By default, both are installed on your device.

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.

Set data collection options


During installation, you can change the default settings if you don't want to send usage data to Microsoft. To do
so, uncheck Allow Microsoft to collect usage data to improve Power Automate .

IMPORTANT
Sharing usage data to Microsoft, will help the support department to solve a Power Automate issue.

Install the Power Automate browser extension


After the installation completes, you will need to install and enable the extension for Power Automate for
desktop. This extension will allow you to record and run web actions in your desktop flows.
Select one of the links displayed in the installer. For example, if you want to record your browser automations on
Microsoft Edge, select the Microsoft Edge link.
The store for your browser opens directly to the public page for the extension.

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.

Install Power Automate for desktop silently


Follow these steps if you want to silently install Power Automate.

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:

Setup.Microsoft.PowerAutomateDesktop.exe -Silent -Install -ACCEPTEULA

The installer runs and completes the setup of Power Automate.

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

C OMMAND DESC RIP T IO N

-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

-DISABLEPADSHORTCUT By default, a shortcut of Power Automate app is created on


the desktop. Use this
argument to indicate that you don't want it to be created.

-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.

Here's an example of a command line argument that installs Power Automate:

Setup.Microsoft.PowerAutomateDesktop.exe -SILENT -Install -ACCEPTEULA -INSTALLPATH: D:\My Programs\foo

Uninstall Power Automate for desktop using the command line


Use the following command to silently uninstall Power Automate:

Setup.Microsoft.PowerAutomateDesktop.exe -Silent -Uninstall

Update your version of Power Automate


To update Power Automate for desktop, use the same command line arguments that you use to install it.

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.

Install the gateway with PowerShell Cmdlets

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.

Setup desktop flows connections and machine credentials


1. Sign into Power Automate.
2. Expand Data on the left side of the screen.
3. Select Connections .

4. Select New connection.

5. Search for Desktop flow , and then select Desktop flows .


6. Provide the machine or gateway information and device credentials:
To connect to a machine or a machine group, select Directly to machine in the Connect field,
and choose the respective machine or machine group in the Machine or machine group field.
To connect to a gateway, select Using an on-premises data gateway in the Connect field, and
choose the respective gateway in the Choose a gateway field.

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 Windows recorder (v1) extension (optional)


The Windows recorder (v1) is another option to record and playback your desktop automations. We
recommend you to use Power Automate for desktop since this is the latest RPA solution.
Follow these steps to install Windows recorder (v1) extension:
1. Install the extension on Microsoft Edge and/or Google Chrome from the store (Firefox is not supported for
Windows recorder (v1))
Microsoft Edge:
Install Edge extension: select Get , and then select Add extension when prompted.
Google Chrome:
Install Chrome extension: select Add to Chrome , and then select Enable extension when prompted.

Install Selenium IDE to automate Web applications with desktop flows


(optional)
The Selenium IDE is an open source tool that lets you record and playback human interactions on websites.
With desktop flows, you can run Selenium IDE scripts from Power Automate and keep them stored securely
(with appropriate IT governance) in Dataverse.
Follow these steps to install Selenium IDE:
1. Make sure you already installed and enabled Windows recorder (v1) extension (see previous section)
2. Download and install the Selenium IDE for Microsoft Edge (version 80 or later) or Google Chrome.
3. On Microsoft Edge (version 80 or later), select Allow extensions from other stores , and then select
Add to Chrome .

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.

Install the on-premises data gateway, if you need it.

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.

Troubleshoot missing gateway


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 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.

Uninstall Power Automate


1. Open the star t menu > Settings > Apps .
2. Search for Power Automate , and then select it.
3. Select Uninstall .

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

Prevent users manually updating Power Automate for desktop


Using the following registry entry you can prevent users to manually update Power Automate for desktop on
their machines and receive update notifications.

Hive HKEY_LOCAL_MACHINE

Key SOFTWARE\Microsoft\Power Automate Desktop

Name DisableOptionalUpdates

Type DWORD

Value
1 : Users will not be able to manually update Power Automate for Desktop.

Prevent users accessing Power Automate for desktop using their


Microsoft accounts
Using the following registry entry you can prevent users to login on Power Automate for desktop on their
machines using a Microsoft account.

Hive HKEY_LOCAL_MACHINE

Key SOFTWARE\Microsoft\Power Automate Desktop

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

Key SOFTWARE\Microsoft\Power Automate Desktop

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.

Restricting access to Power Automate for desktop


In order to restrict access to Power Automate for desktop on a workstation with Windows 10, use Applocker.

Configure Power Automate for desktop to interact with a corporate


proxy server
IT administrators, may set the following registry keys, to configure the Power Automate’s interaction with a
corporate proxy server.

Hive HKEY_LOCAL_MACHINE

Key SOFTWARE\Microsoft\Power Automate Desktop


Name ProxyServer

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.

Configure Power Automate for desktop to bypass a corporate proxy


server

Hive HKEY_LOCAL_MACHINE

Key SOFTWARE\Microsoft\Power Automate Desktop

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.

Configure Power Automate for desktop to authenticate to a


corporate proxy server using the current user's credentials

Hive HKEY_LOCAL_MACHINE

Key SOFTWARE\Microsoft\Power Automate Desktop

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

To open the troubleshoot tool:


1. Open Power Automate machine runtime
2. Select Troubleshoot
3. Select Launch Troubleshoot tool

NOTE
You need to have admin privileges to open the troubleshoot tool from Power Automate machine runtime.

Resolve sign in and sign out issues


Power Automate uses a file named msalcache.bin3 to acquire tokens and authenticate users.
If you encounter errors while signing in or signing out, try to delete this file to erase all the stored tokens. To
delete the file, navigate to C:\Users\Username\AppData\Local\Microsoft\Power Automate .

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.

Resolve failed connection between Power Automate components


In some cases, Power Automate may display an error indicating that the connection between its components
couldn't be established.
The cause of this error can be another process running a named pipes server in the same machine. This process
probably runs with elevated rights using the localhost endpoint. As a result, it blocks other applications from
using the endpoint.
To identify whether another process is indeed the issue:
Close Power Automate and use the Windows Task Manager to ensure that its process isn't still running.
Download the Sysinternals Suite.
Extract the zip file to a folder on your desktop.
Run a command prompt session as administrator.
Navigate to the folder in which you've extracted Sysinternals.
Run the following command:

handle net.pipe

Running this command should display a list of processes that use named pipes and the address they
listen to.

Identify whether a process displaying the string EbmV0LnBpcGU6Ly8rLw== exists.


If such a process exists, stop the process identified in the previous step and try again to launch Power
Automate.
As a permanent fix, you can stop the process causing the issue from running. Alternatively, if it's an internal
process, you can change it to use a more specific endpoint, such as net.pipe://localhost/something .
If none of the above is possible, specify Power Automate executables to run as administrator. However, this
solution may not solve the issue in all cases, and it will cause a UAC prompt to appear each time.

Change the on-premises Service account


The UIFlowService uses the virtual account “NT SERVICE\UIFlowService”. This account needs the ability to
“Logon as a service” in order to successfully startup.
Most environments wouldn't require to change the default configuration. If your company has some restrictions
in place, you can either ask your domain administrator to grant “NT SERVICE\UIFlowService” the right to “Logon
as a service” or change the account here with an allowed one.
1. Select Change account
2. Select This account
3. Provide the new account. Ex: DOMAIN\AlexJohnson
4. Provide the password of this account and select Configure

Collect Machine logs


There are several logs you can collect for the machine’s configuration and service logs, and you should always
start with the logs. In the Troubleshoot tool, select Exports logs link, as shown in the following image.

This file is saved to the desktop as a zip file.


Data Collection in Power Automate
1/15/2022 • 3 minutes to read • Edit Online

Overview of Diagnostic Data in Power Automate


Microsoft is dedicated to being transparent with our customers about the data we collect from our client
software and giving them more control over their data. As part of this work, we’re moving our major products
to a model where diagnostic data we collect from our client software as customers use their devices will be
classified as eitherRequired orOptional. This will make it easier for our customers to find information about the
data we collect and how we use it, and to make informed choices about their privacy.
Diagnostic data is used to keep Power Automate client software secure and up-to-date, detect, diagnose and fix
problems, and also make product improvements. This data does not include a user's name or email address, the
content of the user's files, or information about apps unrelated to the product.
While Microsoft classifies some diagnostic data asRequired and some asOptional, Power Automate client
software doesn’t collect Optional diagnostic data from its users by default unless specified otherwise during the
initial installation process or later within the Settings area. This article provides an overview of the types of
diagnostic data that are Required and Optional, and the specific categories of diagnostic data that are collected
by Power Automate client products.

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:

Required diagnostic data summary


DATA C AT EGO RY DESC RIP T IO N EXA M P L ES

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.

DATA C AT EGO RY DESC RIP T IO N EXA M P L ES

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.

Attended/Unattended desktop direct connectivity to the cloud


service
The UIFlowSer vice is a Windows service that is installed with Power Automate on the desktop machine. By
default, it's set to start automatically and runs as the new user NT SERVICE\UIFlowSer 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 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.

Attended/Unattended desktop connectivity to the cloud service using


the on-premises data gateway
NOTE
Power Automate now offers direct connectivity to the cloud without the use of on-premises data gateways. You can find
more information in Attended/Unattended desktop direct connectivity to the cloud service.

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.

Other Power Automate outgoing web requests


Power Automate makes some additional outgoing web requests at runtime, which are documented in Desktop
flows services required for runtime.
The CRL endpoints are only required if you use the on-premises data gateway. They use HTTP over port 80 and
are initiated by the UIFlowSer vice .
The WebDriver endpoints are only required if you use Selenium IDE desktop flows and have an automatically
updating browser. These endpoints use HTTPS over port 443 and are initiated by the
Microsoft.Flow.RPA.Agent.exe process using the user account that is running the desktop flow.

Session credential lifecycle


1. A desktop machine is registered by signing in to the on-premises data gateway or registering inside
Power Automate using the direct connectivity feature. This process generates a public and private key to
be used for secure communication with this machine.
2. The machine registration request is sent by the desktop application to the Power Automate cloud
services. The request contains the newly generated machine's public key. This key is stored along with the
machine registration in the cloud.
3. When the request completes, the machine is successfully registered and appears in the Power Automate
web portal as a resource that can be managed. However, the machine cannot be used by a flow until a
connection to it is established.
4. To establish a Power Automate connection in the web portal, users must select an available machine and
provide the username and password credentials of the account to use to run the desktop flow.
Users can select any previously registered machine, including machines that have been shared with them.
When a connection is saved, the credentials are encrypted using the public key associated with the
machine and stored in this encrypted form.
The cloud service is storing the encrypted user credentials for the machine. However, it can't decrypt the
credentials because the private key only exists on the desktop machine. The user can delete this
connection at any point, and the stored encrypted credentials will also be deleted.
5. When a desktop flow is run from the cloud, it uses a previously established connection selected in the
Run a flow built with Power Automate for desktop action.
6. When the desktop flow job is sent from the cloud to the desktop, it includes the encrypted credentials
stored in the connection. These credentials are then decrypted on the desktop using the secret private
key, and they're used to sign in as the given user account.

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

A Microsoft Dataverse database stores flows created in Power Automate.

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.

Create a Microsoft Dataverse database in Power Automate for


desktop
Administrators can create a Microsoft Dataverse database in Power Automate.
If you're using a free work or school account, the provisioning will start automatically after logging in with your
account. If the connected account is a premium account, select Create database to create a Microsoft
Dataverse database.

Add a Microsoft Dataverse database as a Microsoft Teams user


You can use the approvals experience in Teams to automatically add a Dataverse database that Power Automate
can use to store flows. This only needs to be done once per tenant and non-admins can perform this task.
Follow these steps to create an approval from the Approvals app in Teams.
1. Sign into Microsoft Teams.
2. Select More added apps (...) .

3. Search for approvals , and then select the Approvals app.


4. Select New approval request on the top right of the app.

5. Provide a name for your request. For example, My first request.


6. Specify yourself in the Approvers list.
7. Select Send .
This starts the process for adding a Dataverse database and may take a few minutes to complete. Once
created, you will receive a notification in Teams with a request for approval.

8. Approve this request.


Your Dataverse database is now added to the default environment.
9. Restart Power Automate for desktop (exit from the system tray icon).
You can now create desktop flows with Power Automate.

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.

Build your first flow


The following example demonstrates the creation of a short flow. The completed flow will prompt the user to
select a folder. The flow will then copy the folder to another folder named backup on the user's desktop.
To create the flow:
1. Launch Power Automate and select the New flow button in the console.

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.

8. Select run to run 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.

To create the flow:


1. Launch Power Automate for desktop and select the New flow button in the Console .
2. Populate a name for the flow and then select the Create button. In this example, the flow is named
Backup flow .

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.

Create a new desktop flow in Power Automate


1. To create a desktop flow in Power Automate, open the app and select New Flow .

2. Enter a name for the desktop flow, and click OK .


3. Create the flow in the flow designer and press Ctrl+S to save the flow. Close the flow designer and the
flow will appear in the console.

Design a flow in Power Automate


1. Create a new folder on the desktop, and name it Countries .
2. Go to flow.microsoft.com , select My flows , then +New flow , and Instant cloud flow .
3. In the dialog box, enter a cloud flow name, select Manually trigger a flow , and then select Create .

4. Select + New step .

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.

10. Configure the variable as follows:


Variable type: Input
Variable name: Countr yName
Data type: Text
Default value: France
External name: Countr yName
Description: This is the countr y name 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.

18. In the Variables pane, create two Output variables as follows:


Variable type: Output
Variable name: FileCount
External name: FileCount
Description: This is the file count output variable.
and
Variable type: Output
Variable name: FilePath
External name: FilePath
Description: This is the file path output variable.
19. Add two Set variable actions and configure them as follows:
Set variable: FilePath
To: %SpecialFolderPath%\Countries\%Countr yName%\%FormattedDateTime%.txt
and
Set variable: FileCount
To: %Files.count%

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.

Run desktop flows unattended or attended


When you create desktop flows, you run them either in attended or unattended mode. Unattended is best for
applications that do not need human supervision.
When running unattended, Power Automate automatically signs into the target devices that run Windows 10,
Windows Server 2016, or Windows Server 2019. Once the automation completes, Power Automate signs out
from the device and reports its activity.
When running attended, Power Automate uses an existing Windows user session.
When you add a desktop flow to a cloud flow, you can choose whether you want your desktop flow to run
attended or unattended. Here are some key differences between attended and unattended runs:
Unattended mode
To run unattended desktop flows, the target machine needs to be available with all users signed out.

IMPORTANT
Locked Windows user sessions will prevent desktop flows from running.
Flows run in unattended mode can't be launched with elevated privileges

Power Automate performs the following:


1. Power Automate creates, manages, and then releases the Windows user session on the target devices.
2. Unattended desktop flows run on devices with the screen locked so that no one can see the flow while it
runs.
3. Windows 10 devices cannot run unattended if there are any active Windows user sessions present (even
a locked one). You will receive this error: Cannot execute desktop flow. There is a locked or an inactive
Windows user session on the target device.
4. On Windows Server, if you have a locked Windows user session open with the same user as the desktop
flow is supposed to run as, you will receive the same error: Cannot execute desktop flow. There is a
locked or inactive Windows user session on the target device.
Attended mode
To run an attended desktop flow, you need to have an active Windows user session that matches the name of
the user configured for your connection. The session must not be locked.
When an attended desktop flow starts on the target machine, we recommend that you avoid interacting with
your device until the run completes.

Run multiple desktop flows on the same device sequentially


You can schedule multiple desktop flows to run on one or more devices. If more than one desktop flow is
triggered to run on the same device, Power Automate follows these rules:
1. The first desktop flow runs on the target device based on priority and time requested.
2. Queues other desktop flows and then displays them as Queued .
3. Picks the next desktop flow when each run completes based on priority and time requested, shown as
Next to run .
You can view the real-time execution order of a device by its run queue. You can also manually change the order
of the desktop flows in the run queue at run-time, either by changing the priority or moving them to the top of
the queue.

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.

Run desktop flows concurrently on Windows Server devices


Multiple users can be signed in simultaneously on Windows Server 2016 and Windows Server 2019. Power
Automate leverages this OS capability to simultaneously run multiple desktop flows on such devices. With this
feature, your organization can save on its infrastructure costs.
Perform the following steps to benefit from multiple desktop flows on a single device:
1. Setup a Windows Server 2016 or 2019 device with the on-premises gateway and the latest version of
desktop flows installed.
2. Use two or more user accounts to create desktop flows connections targeting the gateway on this device.
Power Automate automatically scales the number of concurrent desktop flows runs to the maximum supported
by the device. If the capacity of the device is exceeded, the additional runs wait as described here.
IMPORTANT
If you want to use more than two parallel user sessions on Windows Server, you must turn on Remote Desktop Services.
Learn more about RDS.

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.

Load balance requests across gateways in a cluster


You can choose to distribute desktop flows runs evenly across gateways in a cluster. By default, the selection of a
gateway during load balancing is random.
Follow these steps to add a gateway to create a cluster

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.

Best practices to avoid timeouts and distribute load across machines


If you plan to run multiple desktop flows, there are a set of strategies you can adopt to distribute load and
ensure that all your desktop flows run successfully without overloading the target machine(s) or running into
timeouts because multiple desktop flows are running at the same time. You can either:
1. Plan your desktop flows to run at different times of the day, spreading your load over time. This works best if
you have a single or a limited set of machines that can run workloads, and you can control the triggers (for
example, scheduled flows) that start your desktop flows.
2. Create clusters of machines that can run desktop flows with identical configurations in parallel.
3. Create multiple flows that each use a separate connection to target different machines.
By following these strategies, you can avoid having desktop flows competing to run on the same device and in
some cases failing due to timeouts.

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.

Rerun failed desktop flows


If a desktop flow run fails, correct the issue, and then try the following steps to rerun it:
1. Go to the details page and identify the failed run.
2. Select the Resubmit button from the action menu.

Support long running desktop flows


Some of your desktop flows might run for long durations (e.g. more than 24 hours). To ensure that those flows
run successfully and don't fail due to the default timeout values:
1. Select the ellipsis (…) on the top right corner of the desktop flows action. And select Settings.
2. Select the Timeout property and update the duration to correctly handle your dekstop flow run.
3. Select Done .

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 .

3. Select + New Step .

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.

Register a new machine


Your machine will be automatically registered on the currently selected environment in the application. If you do
not have permission to register your machine in that environment or want to use another environment, you will
need to update the environment.
1. Install the latest version of Power Automate on your device. If you already have the latest version, skip to
step 3.
2. Make sure you have checked Install the machine-runtime app to connect to the Power Automate

cloud por tal


3. When the installation completes, launch the Power Automate machine-runtime app
4. Sign into Power Automate machine runtime. Your machine should be automatically registered in the
currently selected environment
5. If the machine hasn't been registered yet, a message will prompt you to select a Machine running
environment. Power Automate will use this environment to run all the triggered desktop flows.

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.

Update running environment for your machine


Your machine can only run desktop flows from the cloud in one environment at a time.
You can update the running environment which your machine can run desktop flows at any time from within
Power Automate.
1. In the machine-runtime app, selectMachine settings .
2. UnderMachine running environment , select an environment in the dropdown list.
3. ClickSave .

NOTE
Keep in mind that changing the running environment of a machine removes all its current connections.

Trigger a desktop flow to run on your machine


1. Edit your cloud flow or create a new cloud flow.
2. Select + New step .
3. Select the Run a flow built with Power Automate for desktop action.
4. If you’ve already created a connection with desktop flows, click the three dots in the top right and under
My connections select +Add new connection .
5. Next to Connect, select Direct to machine .
6. Select the name of your machine.
7. Enter the username and password you would use to sign into your machine.
8. Click Create .

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.

View list of machines


Once a machine is registered to an environment, you can view its details at any time in Power Automate. You can
also view all other machines that you have access to.
1. Sign into Power Automate.
2. Select Monitor > Machines .
Within the list, for each machine you can view:
The name of the machine.
The description of the machine.
The group that the machine is a part of, if applicable.
The status of the machine.
The number of flows running on the machine.
The number of flows queued on the machine, if applicable.
The type of access you have to the machine.
The owner of the machine.

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

Run a desktop flow on the machine X X

Share the machine X

Add machine to group X

Edit details X

Delete machine X

Switch from gateways to direct connectivity


You can easily switch to using direct connectivity by changing the desktop flow connection and use one with the
direct to machine option.
You can edit the flow and choose the new desktop flow connection for each of the desktop flow actions in your
flow or create a new connection:
1. If you haven't done it yet, update Power Automate to version 2.8.73.21119 or newer.
2. If you’ve already created a connection with desktop flows, click the three dots in the top right and under
My connections select +Add new connection .
3. Next to Connect, select Direct to machine .
4. Select the name of your machine.
5. Enter the username and password you would use to sign into your machines.
6. Click Create .
You can also change the connections that are used by cloud flow in its details page when you click on run.

Update permissions based on security role


By default, all users with an Environment Maker role can register their machines in an environment. You can
restrict actions on machines and machine groups by modifying the Flow Machine and Flow Machine Group
permissions for a particular security role.
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

Run a desktop flow X X X

Share a machine X X

Share a machine group X X

Add machine to group X

Edit machine details X

Edit machine group details X

Delete machine X

Delete machine group X

Machine and machine group limitations


NAME L IM IT

Maximum number of machines in a group 50

Maximum amount of time a desktop flow can run 24 hours


NAME L IM IT

Maximum amount of time a desktop flow can be queued 3 hours

Other known limitations


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 run
desktop flows from the cloud using an on-premises data gateway.
Manage machine groups
1/15/2022 • 6 minutes to read • Edit Online

Create a machine group


Machine groups allow you to organize multiple machines together to help distribute your automation workload
and optimize productivity.
1. Sign into Power Automate machine runtime
2. Select Machine group
3. Select Create a new group
4. Enter a name for your machine group, then optionally enter a description.
5. Click Create

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 .

Add your machine to a group


You will need at least one machine in your group to run desktop flows.
1. In the Power Automate machine runtime, select Machine group
2. In the displayed list, you can find all the available machine groups. To add the machine to a machine
group, select the desired group and fill in the required credentials.
3. If this is the first time adding a machine to your group, you will need to create a password for your group.
This password is used to limit access for those who can add machines to the group. Make sure you do not
lose the password, as you will be unable to recover it. If you have already added a machine before, enter
the password for the group.
4. Select Add machine .
When you add your machine to a group, any connections currently targeting your machine will break. You will
need to update those connections to target the machine group.

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.

Trigger a desktop flow to run on your machine group


1. Edit your cloud flow or create a new cloud flow.
2. Select +New step .
3. Select the Run a flow built with Power Automate for desktop action.
4. If you’ve already created a connection with desktop flows, click the three dots in the top right and under
My connections select +Add new connection .
5. Next to Connect, select Direct to machine .
6. Select the name of your machine group.
7. Enter the username and password you would use to sign into your machines.
8. Click Create .

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.

View list of machine groups


Once a machine group is created in an environment, you can view its details at any time in Power Automate. You
can also view all other machine groups that you have access to.
1. Sign into Power Automate.
2. Select Monitor > Machines .
3. Select Machine groups .
Within the list, for each machine you can view:
The name of the machine group.
The description of the machine group.
The number of the machines in the group.
The number of flows running in the machine group.
The number of flows queued in the machine group.
The type of access you have to the machine group.
The owner of the machine group.

Share a machine group


You can share a machine group with other users in your organization, giving those users specific permissions to
access your machine group.
1. Sign into Power Automate.
2. Select Monitor , then select Machines .
3. Select Machine groups .
4. Select your machine group from the list.
5. Select Manage access .
6. Select the Add people field, then enter the name of the person in your organization with whom you’d
like to share the machine group.
7. Select the name of the person to choose with which permissions they can access the machine group.
8. Click Save .

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

Run a desktop flow on the group X X


A C T IO N S C O - O W N ER USER

Share the machine group X

Add machines to group X

Remove machines from group X

Edit details X

Delete machine group 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.

Change the machine group of a machine


If you want to change the machine group that contains your machine, select another group in the list of
available machine groups and fill in the required credentials
If you want to remove the machine from a group without adding it to a new one, select Leave group .

Change machine group's password


To change the password of the currently used machine group, click on the ellipses next to the machine group
and select Edit group password .
Next, populate the New password and Confirm password fields, and select the Change button to confirm
the changes.

Update permissions based on security role


By default, all users with an Environment Maker role can register their machines in an environment. You can
restrict actions on machines and machine groups by modifying the Flow Machine and Flow Machine Group
permissions for a particular security role.

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

Run a desktop flow X X X

Share a machine X X

Share a machine group X X

Add machine to group X

Edit machine details X

Edit machine group details X

Delete machine X

Delete machine group X

Machine and machine group limitations


NAME L IM IT

Maximum number of machines in a group 50

Maximum amount of time a desktop flow can run 24 hours

Maximum amount of time a desktop flow can be queued 3 hours

Other known limitations


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 run
desktop flows from the cloud using an on-premises data gateway.
When triggering multiple desktop flows in parallel on a machine group, there are cases where machine
selection will take up to 50 seconds before assigning the desktop flow to machine that is available. In these
rare cases, desktop flow runs might seem to be running sequentially if they have very short run durations.
Silent registration for machines
1/15/2022 • 3 minutes to read • Edit Online

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.

Using a service principal account


NOTE
To create the application user, you need to have admin rights on the Dataverse environment of your tenant.

1. Create an Azure app:


a. Go to Azure portal: https://portal.azure.com/
b. Search app registrations

c. Select new registration


d. Define a name and select Single tenant (or multi-tenant) then select register
2. Give your app the following permissions
a. Select Add a permission
b. Select Flow Ser vice
c. Select Flow.Read.All
3. Create an application user..

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)

How to use the Machine registration App?


1. Open Star t menu
2. Search for command prompt (or PowerShell) and then run it as the administrator
3. Change the directory to the Power Automate install folder (by default: C:\Program Files (x86)\Power
Automate)

cd C:\Program Files (x86)\Power Automate

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

Silently register a new machine


To register silently your machine in Power Automate with the service principal account, use the register
operation -register with the following arguments: Connection arguments (for service principal account):
1. Applicationid: The application to use.
2. Clientsecret: The secret of the applicationid (you can also use the certificateThumbprint). This input isn’t
expected to be specified as an input to the command line. See “Secure input” section to see options you
can choose to provide it.
3. Tenantid: The tenant identifier to use.
Machine registration arguments:
1. Environmentid (optional): The environment where the machine will be registered. If not provided, the
machine is registered in the default environment. You can retrieve it in the URL of Power Automate.
2. Machine name (optional): The name of the registered machine.
3. Machine description (optional): The description of the registered machine

.\PAD.MachineRegistration.Silent.exe -register -applicationid appid -clientsecret (or -


certificatethumbprint thumbprint) -tenantid tenantid -environmentid envid

NOTE
If you decide to use AAD account, you can specify the username: -username [UPN] instead of service principal account
arguments

Join silently a machine group


NOTE
You cannot create machine group silently. You will need to create them from the portal before adding machines silently.

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

.\PAD.MachineRegistration.Silent.exe -joinmachinegroup -groupid groupid -grouppassword

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):

echo mypassword | .\PAD.MachineRegistration.Silent.exe -joinmachinegroup -groupid groupid -


grouppassword

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:

grouppassword < pwd.txt

b. For Powershell:

Get-Content password.txt | .\PAD.MachineRegistration.Silent.exe -joinmachinegroup -groupid


groupid -grouppassword
Introduction to the Power Automate Azure Virtual
Desktop integration starter kit
1/15/2022 • 2 minutes to read • Edit Online

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.

Setup the Power Automate AVD integration starter kit


Import the solution into a Production environment
1. Download the Power Automate AVD integration starter kit from the Github repository
2. Navigate to your environment:
a. Go to https://flow.microsoft.com
b. Select the environment in which the starter kit will be hosted.
3. On the left pane, select Solutions .
4. Select Impor t , and then Browse .
5. Select the Power Automate AVD integration starter kit solution from File Explorer
(AzureVirtualDesktopStarterKit_x_x_x_xx_managed.zip or AzureVirtualDesktopStarterKit_x_x_x_xx.zip)
6. When the compressed (.zip) file has been loaded, select Next .
7. Review the information, and then select Next .
8. Establish connections to activate your solution. If you create a new connection, you must select Refresh .
You won't lose your import progress.
9. Make sure you create connections that target the AVD tenant you want to use.
10. Select Impor t .

NOTE
The import can take up to 10 minutes to be completed.

Update the Flow Sample Environment Variable

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>

To update Environment Variables:


1. Go to Power Automate.
2. On the left pane, select Solutions .
3. Select the Default Solution and change the filter to show Environment Variables .
4. Select the Sample Orchestration Flow Id variable and then configure its Current Value .
5. Enter the Flow Id you copied earlier as the current value.
Update the runbook name Variable
If you rename the runbook file when you import it in your Azure Automation account, you need to update the
Runbook Name environment variable with the same value.
To update Environment Variables:
1. Go to Power Automate.
2. On the left pane, select Solutions .
3. Select the Default Solution and change the filter to show Environment Variables .
4. Select the Runbook Name variable and then configure its Current Value .
5. Enter the new runbook name you specified in the “import the runbook script“ step.

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.

Import the Runbook script


1. Sign in to the Azure portal.
2. Search for and select Automation Accounts.
3. On the Automation Accounts page, select your Automation account from the list.
4. From the Automation account, select Runbooks under Process Automation to open the list of runbooks.
5. Click Impor t a runbook and then Select a file.
6. Select the runbook from the File Explorer (runbookWorkflow.ps1)
7. Rename the runbook if needed and select PowerShell in the Runbook type dropdown.
8. Click Create . The new runbook appears in the list of runbooks for the Automation account.
9. You have to publish the runbook before you can run it.
Create an Azure AD app registration to connect to Azure Service Management APIs and to the Power
Platform
Create an app registration to register your VMs and add them to machine groups

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

Create an app registration with Azure Service Management permission

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.

Multi-tenant App registrations


If your Dataverse tenant is different from the AVD one, there are additional steps and validation you need to go
through to let your application interact with your Dataverse tenant.Read more on [how to use multi-tenant
server-to-server authentication](/powerapps/developer/data-platform/use-multi-tenant-server-server-
authentication>
Use the Azure Virtual Desktop Integration starter kit
1/15/2022 • 2 minutes to read • Edit Online

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.

List of desktop flows


1. Sign into Power Automate.
2. Select My flows > Desktop flows .

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.

Copy desktop flows


To duplicate an existing flow:
1. Sign into Power Automate.
2. Select My flows from the left side of the screen.
3. Select Desktop flows .
4. Select the flow that you want to copy.
5. Select Save As .
6. Populate a name for the new flow.
7. Select Save .

Manage desktop flows access


For each of your desktop flows, you can manage its access by selecting manage access in the desktop flows
details page.
In this panel, you can:
Share the desktop flow with another user
Edit users' permissions
Remove users' permissions for this flow

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.

View list of all desktop flow runs


1. Sign into Power Automate
2. Select Monitor > Desktop flow runs
From this page you can view all your desktop flow runs for the current environment to which you have access.

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.

Desktop flow run information


The following information is available on your runs:
P RO P ERT Y DESC RIP T IO N

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.

Status The status of the desktop flow 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.

Customize your view


You can make changes to your view to narrow the list of runs to only those you are interested in seeing. Click
the column name to change the order of items or filter them to specific values.

View all runs from the parent flow run


You may have several desktop flow runs that were triggered by one flow run. Click the three dots next to the
desktop flow name, then select See all desktop flow runs in the parent flow.

View the run queue for a queued run


Machines and gateways can be used to run multiple desktop flows. To see the placement of a desktop flow in the
run queue, click the three dots next to the name of the desktop flow and select See desktop flow in run
queue .
Live updates
To keep your desktop flow run information always up to date, you can activate the Live updates toggle switch
at the top of the page.
Live updates are only supported for up to fifty desktop flow runs. Loading more runs will deactivate live updates
and activating live updates with more than fifty runs will trim the list to the supported amount.
Monitor desktop flow queues
1/15/2022 • 4 minutes to read • Edit Online

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.

View run queue for a machine or machine group


Visit the details page for your machine or machine group, then click on the Run queue tab to see the list of
queued desktop flow runs.

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.

See parent flow run


If you have permission to access the parent flow, you can use this action to view its run details.

Cancel parent flow run


If you are the owner of the flow, or have the role System Administrator or Environment Admin, you can cancel
the parent flow run instance. This will cancel the current desktop flow as well as all the other action that were
used in the parent flow.

View list of run queues for gateways


Users can view the desktop flow queues for their gateways under the Machines page > Gateways pivot . The
gateways pivot is only available if you own or have access to a gateway.

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.

Using gateways with multiple environments


It is recommended to use a gateway for desktop flows only by one environment. However, gateways can still be
used across multiple environments if needed.
With multiple environments, in some cases no flows may appear to be running even with a full list of queued
runs, as the gateway may be running flows in another environment. Run queues are per environment and
cannot be prioritized one over the other. A message will be shown to indicate if the gateway is being used in
another environment.

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

[This topic is pre-release documentation and is subject to change.]


Power Automate offers to administrators the option to create and enforce policies that classify desktop flows
action groups as business or non-business and mark actions or action groups as blocked. That way a non-
business action can't be combined with an action that has been marked as business so that to avoid data
exposure outside the organization. For more details on how to form a data loss prevention (DLP) policy policy,
visit the respective topic under the Administer Power Platform documentation.
This feature will be rolling out to all cloud regions based on the following schedule.See when will the feature be
fully enabled in your region in the table below.

DAT E AVA IL A B L E IN REGIO N S

11/1 Canada

11/30 Switzerland , Brazil, Canada

12/6 Asia, UK, Australia, Japan

12/20 Europe

12/20 US(NAM)

1/4 Government Community Cloud (GCC), Government


Community Cloud - High (GCC High), Department of
Defense (DoD), or China regions

Troubleshoot data loss prevention (DLP) policies violations


While saving a desktop flow you will be notified about the data loss prevention violations the flow includes. The
same will occur while attempting to run the flow from the designer and the console. A desktop flow that violates
a data loss prevention (DLP) policy will be marked as suspended and the run option will be disabled.
To resolve a violation navigate to the designer and delete or disable the actions causing this error.

Business vs non-business data loss prevention policy


The business vs non-business data loss prevention policy, prevents users to use actions from the two categories
on the same flow.
For example, the flow that appears below contains the Open SQL connection , Execute SQL statement and
Close SQL connection actions which belong to the Database actions group and the Launch Excel , Write to
Excel and Close Excel actions that belongs to the Excel actions group. Thus it receives an error as the Database
group of actions are marked as business while the Excel group is marked as non-business.
To resolve this data loss prevention policy (DLP) violation, delete or disable actions from one of the two groups.

Blocked actions and action groups data loss prevention policy


Apart from marking action groups as business and non-business, the administrator can mark action groups or
particular actions as blocked. In this case these actions can't be used at all in the flow.
In the example shown below the Email group of actions and the Send email through Outlook actions are marked
as blocked.
To resolve this data loss prevention policy (DLP) violation, delete or disable all actions that are marked as
blocked.

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.

Making use of suspended desktop flows in cloud flows


A suspended desktop flows due to data loss prevention (DLP) prevention policies violations won't be available to
be selected.
To be able to launch the desktop flow from a cloud flow, edit the desktop flow in the desktop designer and
resolve the DLP violations.You will then be able to select again the desktop flow to run.

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

The flow console is the central interface of Power Automate.

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.

Starting a desktop flow


Users may run any Power Automate desktop flows available to them through the console, by hovering the
cursor over a desktop flow and pressing the "Start" button. The status of the flow is also displayed:
If the flow contains input variables, a dialog box prompts the user to provide values for each input variable.

Editing a desktop flow


Through the console, users may also create a new flow by pressing the "New flow" button, or edit an already
existing one by double-clicking on it, or hovering the cursor over it and pressing the edit button:
In both scenarios, the flow designer will be launched; this is where flow creation and editing takes place.

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.

Update Power Automate for desktop


Power Automate will frequently check for updates and display a notification dialog. In order not to disrupt your
work, the update dialog offers you the option to delay the update and proceed with it at a later time. If you don't
wish to receive any update notifications, you may uncheck the Show update notifications option in the
general settings. To manually update, you may click on the Check for updates button in the general 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.

Adding an action to the workspace


To begin developing a desktop flow, select an action and double-click on it, or drag it into the workspace.

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.

Configuring action errors


When an action throws an error, the flow stops its execution by default. To configure a custom error handling
behavior for an action, select the On error option in its properties.
The first option in the dialog box is the Retr y action if an error occurs checkbox. This checkbox makes the
flow execute the action a set number of times after a set number of seconds. The default value is one retrying
with an interval of two seconds.

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.

Enabling and disabling actions


To disable or enable an action, right-click on it and select Disable action or Enable action , respectively.

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.

Select a subflow tab to edit the respective subflow.

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.

Managing the workspace toolbar


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.
Hold down Ctrl to select multiple actions. Hold down Shift and select the first and last actions to select a range
of actions. Copy and paste any selected actions in the workspace.
When copying actions, all their parameters, images, and UI elements are copied as well. You can copy and paste
actions within the same subflow, among different subflows, or other flow designer instances. Apart from flows,
you can paste actions in other applications, such as chats and text files.

Searching in the flow


To search for a text string, an action or variable within the flow, use the search field at the top right of the flow
designer window. The results pane will show all occurrences of text string by action and subflow. Double-click on
a result to highlight the action that contains it.
Using the Go to line option
The Go to line function navigates to a specific line within the current subflow. This function is helpful in subflows
that contain a large number of actions.
Select Edit , then Go to line and enter a line. The corresponding action will be highlighted.

Using the Run from here option


To run the flow starting from a specific action, right-click the action and select Run from here . This ignores all
previous actions and runs the flow from the selected action onwards.

NOTE
The Run from here option isn't available for actions located in loops, conditionals, or the On block error action.

Record desktop flows


Power Automate for desktop enables you to record actions in real time through the built-in recorder. The
recorder keeps track of mouse and keyboard activity in relation to UI elements, and records each action
separately. The recorder can be used to automate desktop and web applications.
To record a flow, select Recorder in the toolbar of the flow designer. When the recorder dialog is launched,
select Record to start recording. To suspend the recording, select Pause . To add a comment to the recorded
actions, select + Comment .
Select the bin icon to remove individual actions, or select Reset to delete all the actions recorded so far. When
the recording is completed, select Finish to convert the recorded steps to Power Automate for desktop actions.

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

Run, stop, and pause in flow designer


Select Run or press F5 to run the flow. When the flow runs, Run becomes Pause . Select Pause or press Ctrl +
Pause while the flow is running to pause and inspect any changes up to that point. Select Run while the flow is
paused to resume it. The Run next action button and the F10 shortcut run the flow action by action and pause
it after each action completes. The Stop button and the Shift + F5 shortcut stop the flow completely.

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.

Run a desktop flow by action


The Run next action button runs the flow action by action. After each action is completed, the flow is paused.
Open the variables pane to check the value of any variable at the point where it's paused. This feature is useful
for debugging.

The status bar


The status bar on the bottom of the window shows the status of the flow and the number of the selected actions.
Additionally, it shows the total number of actions and subflows in the current flow.
The Run delay field defines the time that the flow waits after running each action in the flow designer. You can
modify the default value to increase or decrease the milliseconds that the flow waits.
The status bar also displays the number of errors, if any are present. Select the Errors option to pop up the
Errors pane .
If you search inside the flow, the status bar shows an additional field containing the number of the results. Select
this field to pop up the Find in code pane.
Run from here
To run the flow starting from a specific action, right-click the action and select Run from here . This ignores all
previous actions and runs the flow from the selected action onwards.

Power Automate reserved keywords


A certain amount of words are being used in the core of Power Automate and can't be used during development
in the variable, subflow, label or error block names. The list of these words is displayed below.

action false loop step

and for main switch

block foreach mod then

call from next throw

case function no times

default global not to

disable goto on true

else if or wait

end in output while

error input repeat xor

exit label set yes


Manage variables and the variables pane
1/15/2022 • 6 minutes to read • Edit Online

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.

The variable value viewer


When the flow runs, the current value of each variable is shown next to its name. Variables of disabled actions
are omitted. To clear the values of all variables, select the eraser icon at the bottom of the pane.
To view the value of a variable in more detail, double-click on the variable. The variable value viewer shows
the data type of the variable, and expands any datarows or datatables to show their contents.

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.

Renaming a desktop variable


To rename a desktop flow variable, make a right-click on its name in the Variables pane and select Rename .
The name of the variable will be updated in all its occurrences.
Although you can update variables' names manually through actions, the name will be changed only in these
specific actions, not globally.

Input and output variables


Power Automate enables data exchange with the Power Automate platform through the input and output
variables. These variables are passed to and from Power Automate for desktop, allowing you to create
sophisticated flows.
Additionally, you can use input variables to set values manually when the flows are triggered through the
console.

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.

Create an input variable


To create an input variable:
1. Select the (+ ) button in the variables pane and then Input .
2. When the Add a new input variable dialog is appeared, populate the following fields:
Variable type : Defines if the variable is input or output.
Variable name : The name of the variable in the flow.
Data type : The type of the variable, like number, text, or datetime.
Default value : The default value when the flow runs from the Power Automate flow designer or the
Power Automate console.
External name : The name used outside the flow. The external name is the name that will appear in
Power Automate.
Description : A description of the variable that will appear in Power Automate and the Flow inputs
dialog.

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.

Create an output variable


To create an output variable:
1. Select the (+ ) button in the variables pane and then Output .
2. When the Add a new output variable dialog is appeared, populate the following fields:
Variable type : Defines if the variable is input or output.
Variable name : The name of the variable in the flow.
External name : The name used outside the flow. The external name is the name that will appear in
Power Automate.
Description : A description of the variable that will appear in Power Automate.

NOTE
The Variable type , Variable name , and External name fields are required to create an output variable.

Manage input and output variables


All the created input and output variables are displayed in the appropriate section of the variables pane.

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.

Known issues and limitations


Issue: Flows built or edited with Power Automate for desktop version 2.14 or above are incompatible
with older versions of Power Automate for desktop. You can't use older versions of Power Automate for
desktop to open or run these flows.
Workarounds: None.
Variable datatypes
1/15/2022 • 7 minutes to read • Edit Online

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.

Simple data types


Text value - Any kind of text, from email addresses to the text contents of a .txt file.
Text data type properties
To create a Text value variable, use the Set variable action and populate the input parameter with the
desired text without any notation.

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.

Advanced data types


List - Lists are collections of items. Depending on the types of the individual list items, there can be lists
of text values, lists of numerical values, and so on. The list data type is the equivalent of a single-
dimension array in programming terms.
You can create a list through the Create new list action and add an item to that list through the Add
item to list action.
You can also create a list through actions that generate lists as output. For example, the Read text from
file action can return a list of text values and the Get files in folder action returns a list of files.
To retrieve a specific item of a list, use the following notation: %VariableName[ItemNumber]%
In the example below, the flow stores the first number of the previously displayed list to a new variable.
Keep in mind that the index should be 0 for the first item of the list.

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.

To retrieve a specific item of a datatable, use the following notation: %VariableName[RowNumber]


[ColumnNumber]% . Keep in mind that the RowNumber and the ColumnNumber should be 0 for the
first item (row or column).
For example, suppose that a flow retrieves the content of an Excel worksheet and stores it in the
ExcelData variable. To access the first cell on the second row of the retrieved table, use the expression
displayed below.
NOTE
The ExcelData variable contains a table of values extracted from an Excel worksheet using the Read from Excel
worksheet action. It contains some values of a specific worksheet and not the whole Excel file.

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:

N OTAT IO N DESC RIP T IO N

yyyy Year

MM Month

dd Day

HH Hour

mm Minutes

ss Seconds
N OTAT IO N DESC RIP T IO N

ff Milliseconds

zzz UTC Offset

Dates and time data type properties


Email
Mail message - Represents an email message. The Retrieve emails action populates these variables.
Email data type properties
Exchange
Exchange mail message - Represents an email message retrieved from an Exchange server. The Retrieve
Exchange email messages action populates these variables.
Exchange data type properties
Files and folders
File - Represents a file.
Folder - Represents a folder.
Files and folders data type properties
FTP
FTP file - Represents an FTP file.
FTP director y - Represents an FTP directory
FTP data type properties
OCR
OCR Engine – Contains an OCR engine created through the Create OCR engine action.
Outlook
Outlook mail message - Represents an email Outlook message. The Retrieve email messages from
Outlook action populates these variables.
Outlook data type properties
Terminal
Terminal session - Contains a terminal session created through the Open terminal session action.
Terminal data type properties
XML
XML node - Contains the content of an XML document. The Read XML from file action populates these
variables.
XML data type properties.
Variables datatype properties
1/15/2022 • 9 minutes to read • Edit Online

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

Length The length of the stored text in characters.

isEmpty This property is true if the variable is empty or false if it


contains some characters.

ToUpper The text of the variable written in upper case characters.

ToLower The text of the variable written in lower case characters.

Trimmed The text of the variable written without white characters in


the begging and the end.

Dates
P RO P ERT Y DESC RIP T IO N

Year The year part of the datetime value.

Month The month part of the datetime value.

Day The day part of the datetime value.

DayOfWeek The name of the day (Sunday, Monday etch).

DayOfYear The day of the year part of the datetime value (1-365/6).

Hour The hour part of the datetime value.

Minute The minute part of the datetime value.

Second The seconds part of the datetime value.

Lists
P RO P ERT Y DESC RIP T IO N

Count The number of items stored into the list.

Files
P RO P ERT Y DESC RIP T IO N

FullName The full path to the file.

RootPath The root path of the file, for example C:\ .

Directory The directory where the file is stored.

Name The name of the file, including the extension.

NameWithoutExtension The name of the file without its extension.

Extension The extension of the file.

Size The size of the file in bytes.

CreationTime The date when the file was created.

LastAccessed The date when the file was last accessed.

LastModified The date when the file was last modified.

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

IsSystem This property is true if the file is a system file or false if it


isn't.

IsReadOnly This property is true if the file is read only or false if it isn't.

IsArchive This property is true if the file is an archive 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

FullName The full path to the folder.

RootPath The root path of the folder, for example, C:\ .

Parent The parent directory of the folder.

Name The name of the folder.

CreationTime The date when the folder was created.

LastModified The date when the folder was last modified.

IsHidden This property is true if the folder is hidden or false if the


folder is visible.

Exists This property is true if the folder exists or false if the folder
doesn't exist.

isEmpty This property is true if the folder is empty or false if the


folder isn't empty.

FilesCount The number of files in the folder.

FoldersCount The number of folders in the folder.

Mail messages
P RO P ERT Y DESC RIP T IO N

MailFolder The name folder the email message is retrieved from.

Uid The unique identifier of the message.


P RO P ERT Y DESC RIP T IO N

From The sender of the email message.

To A list of values containing the recipients of the message.

Cc A list of values containing additional recipients for the


message (carbon copy).

Date The date and time in which the message was sent.

Subject The subject of the message.

Body The body of the message. The body can be in plain text or in
HTML form.

BodyText If the previous property contains HTML, this property


contains the body of the message in plain text form.

Attachments A list of files that represent the saved attachments of the


email message (if any).

Exchange connection
P RO P ERT Y DESC RIP T IO N

ServerAddress The address of the Exchange server.

Exchange mail messages


P RO P ERT Y DESC RIP T IO N

MailFolder The name folder the email message is retrieved from.

ItemId The unique identifier of the message.

From The sender of the email message.

To A list of values containing the recipients of the message.

Cc A list of values containing additional recipients for the


message (carbon copy).

Date The date and time in which the message was sent.

Subject The subject of the message.

Body The body of the message. The body can be in plain text or in
HTML form.

BodyText If the previous property contains HTML, this property


contains the body of the message in plain text form.
P RO P ERT Y DESC RIP T IO N

Attachments A list of files that represent the saved attachments of the


email message (if any).

Outlook mail messages


P RO P ERT Y DESC RIP T IO N

MailFolder The name folder the email message is retrieved from.

EntryId The unique identifier of the message.

From The sender of the email message.

To A list of values containing the recipients of the message.

Cc A list of values containing additional recipients for the


message (carbon copy).

Bcc A list of values containing additional recipients for the


message (blind carbon copy).

Date The date and time in which the message was sent.

Subject The subject of the message.

Body The body of the message. The body can be in plain text or in
HTML form.

BodyText If the previous property contains HTML, this property


contains the body of the message in plain text form.

Attachments A list of files that represent the saved attachments of the


email message (if any).

FTP files
P RO P ERT Y DESC RIP T IO N

FullName The full path to the file.

Directory The directory where the file is stored on the FTP Server.

Name The name of the file, including the extension.

NameWithoutExtension The name of the file without its extension.message.

Extension The extension of the file.

Size The size of the file in bytes.


P RO P ERT Y DESC RIP T IO N

LastModified The date when the file was last modified.

FTP folders
P RO P ERT Y DESC RIP T IO N

FullName The full path to the folder.

Parent The parent directory of the folder.

Name The name of the folder.

LastModified The date when the folder was last modified.

FTP connection
P RO P ERT Y DESC RIP T IO N

Host The host of the FTP connection.

SecurityProtocol The security protocol used in the connection.

Datatables
P RO P ERT Y DESC RIP T IO N

RowsCount The number of rows of the data table.

Columns A list that contains the names of the columns of the data
table.

IsEmpty This property is true if the datatable is empty or false if it is


contains elements.

Datarows
P RO P ERT Y DESC RIP T IO N

ColumnsCount The number of columns that the data row holds.

ColumnsNames A list that contains the headers of the datarow.

Web browser instance


P RO P ERT Y DESC RIP T IO N
P RO P ERT Y DESC RIP T IO N

DisplayRectangleX The position of the top-left corner of the window in the x


axel.

DisplayRectangleY The position of the top-left corner of the window in the y


axel.

Handle The handle of the browser instance.

HtmlDialogs Contains the dialogs of the current page, if they exist.

IsAlive This property is true if the browser window is alive or false if


it isn't.

Window instance
P RO P ERT Y DESC RIP T IO N

Handle The handle of the window instance.

Excel instance
P RO P ERT Y DESC RIP T IO N

Handle The handle of the Excel instance.

SQL connection
P RO P ERT Y DESC RIP T IO N

ConnectionString The connection string used for the database connection.

IsClosed This property is true if the browser window is closed or false


if it is open.

CMD session
P RO P ERT Y DESC RIP T IO N

IsAlive This property is true if the CMD session is alive or false if it


isn't.

ProcessId The unique identifier of the process.

Terminal session
P RO P ERT Y DESC RIP T IO N
P RO P ERT Y DESC RIP T IO N

IsTerminated This property is true if the terminal session is terminated or


false if it isn't.

XML node
P RO P ERT Y DESC RIP T IO N

Children The children of the XML node.

InnerText The inner text of the XML node.

InnerXML The inner XML of the XML node .

Name The name of the XML document.

OuterXML The outer XML of the XML node.

Parent The parent of the XML node.

Value The value of the XML node.

Active Directory entry


P RO P ERT Y DESC RIP T IO N

LdapPath The LDAP path of the Active Directory connection.

Group info
P RO P ERT Y DESC RIP T IO N

Description The description of the group.

DisplayName The display name of the group.

Members A list containing the members of the group.

Name The name of the group.

User info
P RO P ERT Y DESC RIP T IO N

City The city uf the user.

Company The company of the user.

Country The country of the user.


P RO P ERT Y DESC RIP T IO N

Department The department of the user.

Email The email of the user.

Extension The extension of the user.

FirstName The first name of the user.

Initials The initials of the user.

LastName The last name of the user.

PostalCode The postal code of the user.

State The state of the user.

StreetAddress The address of the user.

TelephoneNumber The phone number of the user.

Title The title of the user.

EBS snapshot
P RO P ERT Y DESC RIP T IO N

DataEncryptionKeyId The id of the data encryption key.

Description The description of the snapshot.

Encrypted This property is true if the snapshot is encrypted.

KmsKeyId The The identifier of the AWS Key Management Service


customer master key to use for encryption.

OwnerAlias The alias of the owner.

OwnerId The id of the owner.

Progress The progress of the snapshot.

SnapshotId The id of the snapshot.

StartTime The start time of the snapshot.

State The state of the snapshot.

StateMessage The state message of the snapshot.

Tags The tags of the snapshot.


P RO P ERT Y DESC RIP T IO N

VolumeId The volume id.

VolumeSize The size of the volume.

EBS volume
P RO P ERT Y DESC RIP T IO N

Attachments The attachments of the volume.

AvailabilityZone The availability zone of the volume.

CreateTime This creation time of the volume.

Encrypted This property is true if the volume is encrypted.

FastRestored This property is true if the fast restore is enabled.

Iops The max IOPS of the volume.

KmsKeyId The The identifier of the AWS Key Management Service


customer master key to use for encryption.

MultiAttachEnabled This property is true if the multi-attach is enabled.

OutpostArn The Amazon Resource Name (ARN) of the outpost.

Size The size of the volume.

SnapshotId The id of the snapshot.

State The state of the volume.

Tags The tags of the volume.

VolumeId The id of the volume.

VolumeType The type of the volume.

Azure managed disk


P RO P ERT Y DESC RIP T IO N

AvailabilityZones The availability zones of the disk.

Configuration The configuration of the disk.

Encrypted This property is true if the disk is encrypted.


P RO P ERT Y DESC RIP T IO N

IopsSLimit The max IOPS of the disk.

IsAttachedToVirtualMachine This property is true if the disk is attached to a virtual


machine.

OperationSystem The operation system installed on the disk.

SizeInGB The size of the disk in GB.

State This state of the disk.

ThroughputLimit The throughput limit of the disk.

TimeCreated The creation time of the disk.

Type The type of the disk.

VirtualMachine The virtual machine that the disk is attached to.

ResourceGroup The resource group of the disk.

Id The id of the disk.

Location The location of the disk.

Name The name s of the disk.

SubscriptionId The subscription id of the disk.

Tags The tags of the disk.

Azure resource group


P RO P ERT Y DESC RIP T IO N

ProvisioningState The provisioning state of the resource group.

Id The id of the resource group.

Location This location of the resource group.

Name The name of the resource group.

SubscriptionId The subscription id of the resource group.

Tags The tags of the resource group.

Azure snapshot
P RO P ERT Y DESC RIP T IO N

CreationSourceId The creation source id of the snapshot.

CreationSourceType The creation source type of the snapshot.

OperationSystem This operation system on the the snapshot.

SizeInGB The size of the snapshot in GB.

StorageAccountType This storage account type of the snapshot.

TimeCreated The creation time of the snapshot.

ResourceGroup The resource group of the snapshot.

id This id of the snapshot.

Location The location of the snapshot.

Name The name of the snapshot.

SubscriptionId The subscription id of the snapshot.

Tags The tags of the snapshot.


Use variables and the % notation
1/15/2022 • 2 minutes to read • Edit Online

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)

%4 / Var% 4 divided by the value of the Variable named “Var”

%'this is ' + 'text'% this is text (text)

%'This is the number ' + 5% This is the number 5 (text)

Comparisons
Besides arithmetic operators, make comparisons using the following operators

O P ERATO R DESC RIP T IO N

=, != Equal/not equal

<, <= Less than/less than or equal

>, >= Greater than/greater than or 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.

EXP RESSIO N RESULT

%Index = 1 OR Index = 2% True if the value of the Index variable is 1 OR 2, otherwise


False

%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.

Manage captured images


To remove all the images that aren't used in any action, select the dots icon next to the Capture image option,
and then select Remove unused images . If you navigate inside a specific folder, the Remove unused images
option will remove only the unused images located in this folder.
To create a new folder, select Add a new folder and specify a name for the created folder. You can store images
into a specific folder by capturing them while the folder is open.

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.

Use images in actions


After capturing images, you can use them as input in actions that require them, such as the Move mouse to
image action.

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.

The error detail view


To find more information about a thrown exception, navigate to the Errors pane and double-click on the
respective error. Once you do so, the Error details dialog box will appear. This dialog box displays information
about:
1. Location : The subflow and the action that threw the error.
2. Error message : The error message.
3. Error details : A long description of the error. These details give a clear message about why the error
happened and what the cause is.
Record flows in Power Automate Desktop
1/15/2022 • 4 minutes to read • Edit Online

Power Automate for desktop enables you to design flows automatically by replicating the task you wish to
automate.

Record desktop and web flows


To record a flow that automates desktop or/and web applications:
1. Create a new desktop flow and select Recorder in the toolbar of the flow designer.

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.

To record flows using images:


1. Create a new desktop flow and select Recorder in the toolbar of the flow designer.
2. Select the dots icon on the right side of the recorder dialog, and then enable Image recording . After
enabling this option, select Record to start recording actions using image recognition.

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.

Known issues and limitations


Issue : The recorder may not record all steps from the Windows Start menu or system tray.
Workarounds : None.
Issue : While running a flow created through image-based recording, the click may be sent to the wrong
place.
Workarounds : Edit the auto-generated action “Move mouse to image” through the flow designer and
decrease the Tolerance parameter in the Advanced settings.
Issue : The “Extract text from image” popup that appears after sending a right-click using the recorder,
may hide behind the popup of the application.
Workarounds : Send the right-click to another place on the screen.
Issue : Any keystrokes sent to a maximized RDP window through an image-based recording are not
being recorded.
Workarounds : Resize the RDP window so that it doesn't cover the full screen.
Use loops
1/15/2022 • 2 minutes to read • Edit Online

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.

A simple loop is ideal to use in two cases:


1. The exact number of times that a block of actions should be repeated is known.
2. The loop index variable must be used somewhere inside the loop.
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.

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.

For each loop


The For each loop iterates through a list (or data table) and stores the current item in a variable. Its primary
purpose is to get each item of a list (or row of a data table) and use it in other actions.

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.

Building a browser automation flow


To begin a browser automation flow, use one of the browser-launching actions: Launch new Microsoft Edge ,
Launch new Internet Explorer , Launch new Chrome , or Launch new Firefox ). You can start a new
browser session or attach to an existing one.
NOTE
To interact with browsers, you need to install the appropriate browser extension and configure the browser accordingly.
You can find more information regarding the supported browsers and the required extension in Use browsers and
manage extensions.

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.

Web data extraction


To extract a piece of data from a web page, use the Get details of web page or the Get details of element
on web page action, depending on whether the data in question concerns the entire web page or an element
inside it.

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.

Interacting with the web and web services


Power Automate provides various HTTP actions to allow users to communicate directly with web resources, such
as web pages, files, and APIs, without the need of a web browser.

NOTE
You can find a list with all the available HTTP actions in the HTTTP actions reference.

Downloading web resources


Use the Download from web action to directly download web page content or files stored on the web.
Both the GET and POST methods can be used with this action. The files can be downloaded directly to the disk,
while web page contents are saved into a variable.
Accessing web APIs
Use the Invoke web ser vice action to access web APIs. Various methods are compatible with this action, which
is fully customizable in order to accommodate virtually any API.

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.

Configuring Internet Explorer


By default, Internet Explorer works in protected mode to prevent any external application from controlling it.
While Power Automate can still work with this setting enabled, it will not be able to clear the browser's cache or
cookies.
To disable protected mode and allow Power Automate to clear the browser's cache and cookies:
1. Launch Internet Explorer , select the gear icon , and choose Internet options in the menu.

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.

Configuring Internet Explorer for servers


To use Internet Explorer in Windows Servers, you have to disable the Internet Explorer Enhanced Security
Configuration feature.
This feature prohibits all flows from properly launching an Internet Explorer or Automation browser
instance via the Launch new Internet Explorer action. Additionally, it prevents web helpers from working as
expected.
To disable the IEESC feature:
1. Launch the Ser ver Manager and navigate to the Local Ser ver tab.
2. Select the Internet Explorer Enhanced Security Configuration option to open the respective
configuration dialog box.
3. Disable the IEESC feature for both administrators and users.
4. Select OK to apply the changes.

Configuring Microsoft Edge


To use Microsoft Edge to automate web-related tasks, you have to install the respective browser extension.
To install the extension:
1. Launch Flow Designer , navigate to Tools -> Browser extensions , and select Microsoft Edge .

2. In the extension's webpage, select Get to install the extension.


3. In the pop-up dialog box, select Add extension to confirm the installation.

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 .

2. In the appeared webpage, select Add to Chrome to install the extension.


3. In the pop-up dialog box, select Add extension to confirm the installation.

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 .

Using the actual Internet Explorer vs the Automation browser


Although Automation browser is based on Internet Explorer , it provides some features and limitations that
increase automation effectiveness.
1. Automation browser works out of the box, while Internet Explorer requires additional configuration.
Security configurations may be unwanted in organizations with strict security policies that prohibit
manual changes.
2. The Click download link on web page action works with the Automation browser whatever the
Internet Explorer version. For the actual Internet Explorer , the action requires version 8 or below.
3. Automation browser suppresses all message dialog boxes that may pop up unhindered in the actual
Internet Explorer . If this feature is undesirable, apply the (ShowDialogs) suffix at the end of the URL in
the Launch new Internet Explorer action.
4. Automation browser doesn't support tabs or opening links in windows. When the user clicks on a link,
the browser opens it in the same window/instance.
5. Automation browser has a small performance advantage because it doesn't load unnecessary
elements and add-ons like the actual Internet Explorer does.
Automate desktop flows
1/15/2022 • 2 minutes to read • Edit Online

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.

Interacting with desktop applications


To identify windows and components in them, Power Automate utilizes UI elements. UI elements uniquely
describe each component and can be managed through the flow designer's UI elements pane.
To configure a UI automation action, determine the specific element it will interact with.

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"] .

Use operators in a custom selector


In the previous example, the selector located a Notepad window with a specific title. To make the selector more
dynamic, replace the Equal to operator with other operators or regular expressions.
The Equal to operator makes the selector search for a specific hard-coded value. Although this functionality is
effective in static applications, hard-coded values can be a barrier in dynamic applications.
Use the Contains operator to locate elements that don't have fixed values but always contain a specific
keyword. For example, apply the Contains operator in the Notepad selector to make it work with all Notepad
windows.

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.

Use variables in a custom selector


Apart from various operators, Power Automate enables you to create dynamic selectors using variables.
If the value of a selector's attribute depends on calculations and results of previous actions, replace the hard-
coded value with a variable.
To use a variable in a selector, launch the Custom selector builder and populate the variable's name enclosed
by percentage signs (% ). You can find more information about the percentage notation in Use variables and the
% notation.
If you use a variable in the Name attribute of the Notepad example, the selector should be :desktop >
window[Name="%WindowName%"][Process="notepad"] .
Check if a variable is numeric
1/15/2022 • 2 minutes to read • Edit Online

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.

Send images as email attachments


To attach images to an email, use the Attachment(s) field in the Send email , Send email message through
Outlook , Respond to Outlook message , and Send Exchange email message actions.
You can populate the Attachment(s) field with file paths or a variable containing files. To populate multiple file
paths, enclose them in double quotes ("" ) and separate them by a space character.
Embed images to email body
Apart from attaching images to emails, Power Automate allows you to embed images to email bodies using
HTML.
To embed an image, check the Body is HTML option in the appropriate email action and populate the Body
field with the following code:

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.

Open an SQL connection to an Excel file


Before running an SQL query, you have to open a connection with the Excel file you want to access.
To establish the connection, create a new variable named %Excel_File_Path% and initialize it with the Excel file
path. Optionally, you can skip this step and use the hardcoded path of the file later in the flow.

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.

Read contents of an Excel spreadsheet


Although the Read from Excel worksheet action can read the contents of an Excel worksheet, loops can take a
significant time to iterate through the retrieved data.
A more efficient way to retrieve specific values from spreadsheets is to treat Excel files as databases and execute
SQL queries on them. This approach is faster and increases the performance of the flow.
To retrieve all the contents of a spreadsheet, you can use the following SQL query in the Execute SQL
statements action.

SELECT * FROM [SHEET$]

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:

SELECT * FROM [SHEET$] WHERE [COLUMN NAME] = 'VALUE'


NOTE
To apply this SQL query in your flows, replace:
SHEET with the name of the spreadsheet you want to access
COLUMN NAME with the column that contains the value you want to find. The columns in the first row of the Excel
worksheet are identified as the table's column names.
VALUE with the value you want to find

Delete data from an Excel row


Although Excel doesn't support the DELETE SQL query, you can use the UPDATE query to set all the cells of a
specific row to null.
More precisely, you can use the following SQL query:

UPDATE [SHEET$] SET [COLUMN1]=NULL, [COLUMN2]=NULL WHERE [COLUMN1]='VALUE'

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.

Retrieve Excel data except for a specific row


In some scenarios, you may need to retrieve all the contents of an Excel spreadsheet except for a specific row.
A convenient way to achieve this result is to set the values of the unwanted row to null and then retrieve all the
values except for the null ones.
To change the values of a specific row in the spreadsheet, you can use an UPDATE SQL query, as presented in
Delete data from an Excel row:

UPDATE [SHEET$] SET [COLUMN1]=NULL, [COLUMN2]=NULL WHERE [COLUMN1]='VALUE'

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.

'Opens the Excel file'


Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("%ExcelFile%")
objExcel.Application.Visible = True

'Selects the specified sheet'


Set objSheet = objWorkbook.Sheets("SheetName")

'Autofits the columns of the sheet'S


for col=1 to 19
objSheet.columns(col).AutoFit()
next

'Saves and closes the Excel file'


objWorkbook.Save
objWorkbook.Close SaveChanges = True
Unhide worksheets in Excel using VBScript
1/15/2022 • 2 minutes to read • Edit Online

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.

'Opens the Excel file'


Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("%ExcelFile%")
objExcel.Application.Visible = True

'Unhides all the worksheets of the Excel file'


For i=1 To objWorkbook.Sheets.Count
objWorkbook.Sheets(i).Visible = True
Next

'Saves and closes the Excel file'


objWorkbook.Save
objWorkbook.Close SaveChanges = True
Convert Excel to PDF using VBScript
1/15/2022 • 2 minutes to read • Edit Online

To convert an Excel file to PDF:


1. Use the Set variable action to create a new variable containing the path of the Excel file you want to
convert. In this example, the variable is named ExcelFile .

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

'Opens the Excel file'


Set Excel = CreateObject("Excel.Application")
Set ExcelDoc = Excel.Workbooks.open("%ExcelFilePath%")

'Creates the pdf file'


Excel.ActiveSheet.ExportAsFixedFormat 0, "%PdfFilePath%" ,0, 1, 0,,,0

'Closes the Excel file'


Excel.ActiveWorkbook.Close
Excel.Application.Quit
Use image recognition on machines with different
screen resolutions
1/15/2022 • 2 minutes to read • Edit Online

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+

title Print Images

rem The following command launches Microsoft Paint and prints the selected file using the default printer.

mspaint /p "Image_Path"

rem The following command ends the Microsoft Paint process.

taskkill /IM "mspaint.exe"

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.

rundll32 C:\WINDOWS\system32\shimgvw.dll,ImageView_PrintTo "Image_Path" "Printer_Name"


Identify a window by its handle
1/15/2022 • 2 minutes to read • Edit Online

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:

AT T RIB UT E DESC RIP T IO N

Acceleratorkey The accelerator key combinations for the automation


element.

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

bulktext The text of the element regardless of whether the element or


its subelements are hidden or not.

class The class of the element.

controltype The control tyoe of the element.

haskeyboardfocus Indicates whether the element has keyboard focus

helptext The help text of the element.

id The id of the element.

iscontentelement Indicates whether the element is a content element.

iscontrolelement Indicates whether the element is a control element.

Iskeyboardfocusable Indicates whether the element is keyboard focusable.

isoffscreen Indicates whether the element is visible on the screen.

ispassword Indicates whether the element is a password.

localizedcontroltype A localized description of the control type.

name The name of the element.

parentwindowhandle The handle of the parent window.

processid The process ID of the parent window.

processname The process name of the parent window.

windowtitle The title of the parent window.


Ensure that application windows become focused
1/15/2022 • 2 minutes to read • Edit Online

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

Installing Java configuration


In order to automate Java applications, particular settings must be in place.
To install the Java configuration manually, after Power Automate for desktop has been installed, navigate to the
installation folder (C:\Program Files (x86)\Power Automate Desktop ) and run the PAD.Java.Installer.exe
as an administrator.
Logs for Java automation with Power Automate for desktop can be found in the %temp%/
java_automation_log folder (e.g. C:\Users\username\AppData\Local\Temp\java_automation_log ).

Uninstalling Java configuration


To uninstall the Java configuration (revert all changes applied to the machine by the Java installer):
1. Launch the Command Line tool (cmd)
2. Run the following command:

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 .

Prevent errors while retrieving details


Although most properties exist virtually on every web page, there are scenarios in which the Get details of
web page action fails to retrieve the selected detail. For example, web pages without meta keywords are a
common occurrence.
If you're unsure if an attribute exists on a web page, configure the On error options of the Get details of web
page action to continue running the flow after failure. To find more information about action error handling,
refer to Configuring action errors.

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.

Scroll on a web page using JavaScript


Apart from the Focus text field on web page action, you can scroll on web pages using JavaScript. To run
JavaScript on web pages, use the Execute Javascript function on web page action.
JavaScript provides the window.scrollTo(xpos, ypos) function that scrolls to a specific part of a web page. The
xpos placeholder indicates the horizontal scroll, while the ypos placeholder indicates the vertical scroll.

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";
}

To click a link or press a button, use the following code:

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.

[convert]::ToBase64String((Get-Content -path "%FilePath%" -Encoding byte))

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.

The generated connection string must be similar to the following one:


Provider=Microsoft.ACE.OLEDB.12.0;Data Source=DatabasePath;Persist Security Info=False
NOTE
All the connection strings that establish connections with Microsoft Access databases consist of three main parts: the
provider, the data source, and the security credentials (if applicable).

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.

SELECT * FROM SALES WHERE VALUE = '%value%';

To resolve this issue, replace the single quotes in the SQL statement with double-quotes.

SELECT * FROM SALES WHERE VALUE = "%value%";

2. Escape percentage signs (% ) that don't indicate variables.


Power Automate identifies percentage signs as characters that indicate variables. To use them as normal
characters, escape them using an extra percentage sign.

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.

SELECT * FROM [Sheet1$] WHERE Value = "%value%";

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.

The generated connection string must be similar to the following one:


Provider=Microsoft.ACE.OLEDB.12.0;Data Source=DatabasePath;Persist Security Info=False
NOTE
All the connection strings that establish connections with Microsoft Access databases consist of three main parts: the
provider, the data source, and the security credentials (if applicable).

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 .

<add key="Microsoft.Flow.RPA.UIFlowService.ScreenDefaultResolutionEnabled" value="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.

<add key="Microsoft.Flow.RPA.UIFlowService.ScreenDefaultResolutionWidth" value="1920" />


<add key="Microsoft.Flow.RPA.UIFlowService.ScreenDefaultResolutionHeight" value="1080" />
<add key="Microsoft.Flow.RPA.UIFlowService.ScreenDefaultResolutionScale" value="100" />

4. Restart your machine.


Alternatively to restarting your machine, you can restart the UIFlowSer vice service. To restart the
service, launch Windows Task Manager, navigate to the Ser vices tab, right-click on the UIFlowSer vice
service, and select Restar t .
Extract text from a Word document using VBScript
1/15/2022 • 2 minutes to read • Edit Online

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")

'Open the document


Set WordDoc = Word.Documents.open("%FilePath%")

'Read the document


NumberOfWords = WordDoc.Sentences.count
For i = 1 to NumberOfWords
WScript.Echo WordDoc.Sentences(i)
Next

'Close the document


WordDoc.Save
Word.Quit

'Release the object variables


Set WordDoc = Nothing
Set Word = Nothing
The script contains a variable named FilePath that specifies the file path of the Word document. You can
initialize this variable using a Set variable action before the Run VBScript action or replace it with a
hardcoded value.

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.

Variables Conditionals Loops Flow control Run flow

System Workstation Scripting File Folder

Compression UI automation HTTP Browser automation Excel

Database Email Exchange Outlook Message boxes

Mouse and keyboard Clipboard Text Date time PDF

CMD session Terminal emulation OCR Cryptography Windows services

XML FTP CyberArk Active Directory AWS

Azure Google Cognitive IBM Cognitive Microsoft Cognitive


Variables
1/15/2022 • 9 minutes to read • Edit Online

All variable-related actions for different datatypes

Truncate number

Generate random number

Clear list

Remove item from list

Sort list

Shuffle list

Merge lists

Reverse list

Remove duplicate items from list

Find common list items

Subtract lists

Retrieve data table column into list

Convert JSON to custom object

Convert custom object to JSON

Add item to list

Create new list

Increase variable

Decrease variable

Set variable

Getting started with variable actions


Create variables manually with the Set variable action. Provide a name and a value for the variable to use it in
other actions.
To increase or decrease the numeric value of a variable, use the Increase variable or Decrease variable
actions respectively.

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

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

Number to truncate No Numeric value The number or


variable that holds
the numeric value to
truncate/round up

Operation N/A Get integer part, Get Get integer part Specifies the
decimal part, Round operation to perform
number on the given number

Decimal places Yes Numeric value 3 The number of


decimal places to
round the given
number up to. Enter
0 to return an
integer as a result

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

TruncatedValue Numeric value The truncated or rounded number

Ex c e p t i o n s

This action doesn't include any exceptions


Generate random number
Generate a random number or a list of random numbers that fall between a minimum and maximum value
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

Minimum value Yes Numeric value 0 The lower boundary


for the random
number(s) to
generate

Maximum value Yes Numeric value 100 The upper boundary


for the random
number(s) to
generate

Generate multiple N/A Boolean value False Specifies whether to


numbers generate a single
random number or a
list of random
numbers

How many numbers Yes Numeric value 10 Specifies how many


random numbers to
generate

Allow duplicates N/A Boolean value False Specifies whether to


permit or prevent the
same number from
appearing more than
once in the random
numbers list

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

RandomNumber Numeric value The newly generated random number

RandomNumbers List of Numeric values The newly generated list of random


numbers

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

List to clear No List of General values A list variable to


remove its elements

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

This action doesn't include any exceptions


Remove item from list
Remove one or multiple items from a list
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

Remove item by N/A Index, Value Index Specifies whether to


remove the item at a
specified index or the
item(s) with a specific
value

At index No Numeric value The index number of


the item to remove

With value No General value The item to remove

Remove all item N/A Boolean value False Removes all the
occurrences occurrences that
match the item
specified

From list No List of General values The list with items to


remove

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

EXC EP T IO N DESC RIP T IO N

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

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

List to sort No List of General values The variable that


holds the list to sort

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

First property to sort Yes Text value The name of an


by item's property to
sort the list by. Refer
to the help file for
the property names
of each object

Sort N/A Ascending, Ascending Specifies whether to


Descending sort by the first
property ascending
or descending

Second property to Yes Text value The name of a


sort by second property to
sort the list by

Sort N/A Ascending, Ascending Specifies whether to


Descending sort by the second
property ascending
or descending

Third property to Yes Text value The name of a third


sort by property to sort the
list by

Sort N/A Ascending, Ascending Specifies whether to


Descending sort by the third
property ascending
or descending

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

This action doesn't include any exceptions


Shuffle list
Create a random permutation of a list
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

List to shuffle No List of General values The variable that


contains the list to
shuffle

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

This action doesn't include any exceptions


Merge lists
Merge two lists into one
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

First list No List of General values The first list of items


to merge

Second list No List of General values The second list of


items to merge

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

OutputList List of General values The merged list. The initial lists aren't
affected

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

List to reverse No List of General values The list whose items


order to reverse

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

This action doesn't include any exceptions


Remove duplicate items from list
Remove the multiple occurrences of items in a list, so that in the resulting list each item will be unique
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

List to remove No List of General values The list variable to


duplicate items from remove duplicate
items from

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

This action doesn't produce any variables


Ex c e p t i o n s
This action doesn't include any exceptions
Find common list items
Compare two lists and create a new list with the items that are common to both
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

First list No List of General values The variable that


contains the first list
to compare

Second list No List of General values The variable that


contains the second
list to compare

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

IntersectionList List of General values The new list of common items

Ex c e p t i o n s

This action doesn't include any exceptions


Subtract lists
Compare two lists and create a new list with the items that are in the first list but not in the second
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

First list No List of General values The variable that


holds the first list to
compare

Second list No List of General values The variable that


holds the second list
to compare

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

ListDifference List of General values The new resulting list

Ex c e p t i o n s

This action doesn't include any exceptions


Retrieve data table column into list
Convert the contents of a data table column into a list
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

Data table No Datatable The data table with


the column to
convert into a list
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

Column name or No Text value The column name, if


index column names are
defined, or the index
number of the
column to retrieve

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

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

EXC EP T IO N DESC RIP T IO N

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

Convert JSON to custom object


Convert a JSON string to a custom object
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

JSON No Text value A JSON text, or a


previously created
variable containing
one, to convert it to
a custom object

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

JsonAsCustomObject General value Τhe converted custom object from the


provided JSON

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Error parsing the JSON Indicates that there is an error parsing the specified JSON

Convert custom object to JSON


Convert a custom object to a JSON string
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

Custom object No Custom object The custom object to


convert to 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

CustomObjectAsJson Text value The converted JSON from the


provided custom object

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Error parsing the custom object Indicates that there is an error parsing the custom object

Add item to list


Α ppend a new item to a list
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

Add item No General value A value or a variable


to add to the list.
Provide a list of
values to append
multiple elements. If
the list has a specific
type of elements, the
new element is
converted over to
that type

Into list No List of General values A list variable to


append the new
elements to

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

NewList List of General values The new list

Ex c e p t i o n s

This action doesn't include any exceptions


Create new list
Create a new empty list
In p u t P ar am et er s

This action doesn't require any input


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

List List of General values The new list

Ex c e p t i o n s

This action doesn't include any exceptions


Increase variable
Increase the value of a variable by a specific amount
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

Variable name No Numeric value The numeric value to


increase

Increase by No Numeric value A numeric value, or a


previously created
variable containing
one, to increase the
variable by

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

This action doesn't include any exceptions


Decrease variable
Decrease the value of a variable by a specific amount
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

Variable name No Numeric value A numeric value, or a


previously created
variable containing
one, to decrease the
variable by

Decrease by No Numeric value A numeric value, or a


previously created
variable containing
one, to decrease the
variable by

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

This action doesn't include any exceptions


Set variable
Set the value of a new or existing variable, create a new variable or overwrite a previously created variable
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

To No * The value to assign


to the variable

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

NewVar * The name of the variable to set


NOTE
Produced variable names, may not contain special characters, white spaces and non-latin characters and can't start with
arithmetic characters.

Ex c e p t i o n s

This action doesn't include any exceptions


Conditionals
1/15/2022 • 3 minutes to read • Edit Online

Case

Default case

Else

Else if

If

Switch

Getting started with conditionals


Conditional actions allow you to modify which actions to run, based on the outcomes of conditional statements.
Useful applications and features:
Use the If group of conditionals to evaluate any type of condition.
Use the Switch group of conditionals to compare a single variable with multiple possible values.
Cover multiple scenarios by employing nested conditionals.
Provide default and alternative behaviors to flows based on the available data.
You can find more information on how to use the conditional actions here

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

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

Operator N/A Equal to (=), Not Equal to (=) The comparison


equal to (<>), operator of this case
Greater than (>),
Greater than or equal
to (>=), Less than
(<), Less than or
equal to (<=),
Contains, Does not
contain, Is empty,
Isn't empty, Starts
with, Doesn't start
with, Ends with,
Doesn't end with
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

Value to compare No * Enter a value to


compare with the
switch-block value

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

This action doesn't include any exceptions


Default case
A block of actions that is run, if no case expression has been met in the switch body
In p u t P ar am et er s

This action doesn't require any input


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

This action doesn't include any exceptions


Else
Marks the beginning of a block of actions that ran if the condition specified in the preceding 'If' statements
aren't met
In p u t P ar am et er s

This action doesn't require any input


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

This action doesn't include any exceptions


Else if
Marks the beginning of a block of actions that ran if the conditions specified in the preceding 'If' statements
aren't met, but the condition specified in this statement is met
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

Operator N/A Equal to (=), Not Equal to (=) Choose the


equal to (<>), relationship of first
Greater than (>), operand to the
Greater than or equal second operand.
to (>=), Less than
(<), Less than or
equal to (<=),
Contains, Does not
contain, Is empty,
Isn't empty, Starts
with, Doesn't start
with, Ends with,
Doesn't end with
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

First operand No * Enter a value name


defined by a previous
action, text, number
or expression to
compare with the
second operand.

Second operand No * Enter a value name


produced by a
previous action, text,
number or
expression to
compare with the
first operand.

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

This action doesn't include any exceptions


If
Marks the beginning of a block of actions that is run if the condition specified in this statement is met
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

Operator N/A Equal to (=), Not Equal to (=) Choose the


equal to (<>), relationship of first
Greater than (>), operand to the
Greater than or equal second operand.
to (>=), Less than
(<), Less than or
equal to (<=),
Contains, Does not
contain, Is empty,
Isn't empty, Starts
with, Doesn't start
with, Ends with,
Doesn't end with

First operand No * Enter a value name


defined by a previous
action, text, number
or expression to
compare with the
second operand.

Second operand No * Enter a value name


produced by a
previous action, text,
number or
expression to
compare with the
first operand.

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

This action doesn't include any exceptions


Switch
Dispatches execution to different parts of the switch body based on the value of the expression
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

Value to check No * Enter a value name,


text, or number to
compare with the
following cases.

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

This action doesn't include any exceptions


Loops
1/15/2022 • 2 minutes to read • Edit Online

Exit loop

For each

Loop

Loop condition

Next loop

Getting started with loops


Loops are used to automate repetitive sections of a flow by executing a block of actions multiple times.
Useful applications and features:
Use simple loops to perform a given number of repetitions and iterate through data.
Deploy loop conditions in order to repeat actions until a condition is met.
Iterate through the items of a list using for each loops.
Explicitly end loops when required.
You can find more information on how to use the loop actions here

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

This action doesn't require any input


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

This action doesn't include any exceptions


For each
Iterates over items in a list, data table or data row, allowing a block of actions to be executed repeatedly
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

Value to iterate No * Enter a list, data row,


or data table value to
iterate through it.

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

* The value name that will store the


current item value in each iteration.

Ex c e p t i o n s

This action doesn't include any exceptions


Loop
Iterates a block of actions for a specified number of times
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

Start from No Numeric value Set the starting point


of the loop counter.

Increment by No Numeric value Set the increment


that the loop counter
variable is increased
by.

End to No Numeric value Set the ending point


of the loop counter.

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

* The value name that will store the


current index, starting at the start
from value. The value will change by
the increment with each iteration.

Ex c e p t i o n s

This action doesn't include any exceptions


Loop condition
Iterates a block of actions as long as a specified condition proves to be true
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

Operator N/A Equal to (=), Not Equal to (=) Choose the


equal to (<>), relationship of first
Greater than (>), operand to second
Greater than or equal operand.
to (>=), Less than
(<), Less than or
equal to (<=)

First operand No * Enter a value name


defined by a previous
action, text, number
or expression to
compare with the
second operand.
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

Second operand No * Enter a value name


produced by a
previous action, text,
number or
expression to
compare with the
first operand.

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

This action doesn't include any exceptions


Next loop
Forces the next iteration of the block to take place, skipping any actions in between
In p u t P ar am et er s

This action doesn't require any input


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

This action doesn't include any exceptions


Flow control
1/15/2022 • 3 minutes to read • Edit Online

Control the automation flow

Comment

End

Exit subflow

Get last error

Go to

Label

On block error

Run subflow

Stop flow

Wait

Getting started with flow control


Flow control refers to controlling the order in which actions and subflows run. Power Automate enables flow
control through the flow control actions.
Labels are used to create points of reference for the Go to action to direct the flow to. In the figure below, the
flow is directed to a label earlier in the flow to repeat a series of actions.

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.

Flow control actions


Comment
User comment
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

Comment Yes Text value User comment

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

This action doesn't include any exceptions


End
In p u t P ar am et er s

This action doesn't require any input


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

This action doesn't include any exceptions


Exit subflow
Exits current subflow and returns to the point it was called from
In p u t P ar am et er s

This action doesn't require any input


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

This action doesn't include any exceptions


Get last error
Retrieves the last error that occured in 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

Clear error N/A Boolean value False After the error is


stored in the variable,
it's cleared so that
next time the error is
retrieved, it won't
retrieve the same
error value

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

LastError Error The details of the error that last


occured in the flow

Ex c e p t i o n s

This action doesn't include any exceptions


Go to
Transfers the flow of execution to another point, indicated by a label
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

Go to label No Text value Label in the flow

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

This action doesn't include any exceptions


Label
Acts as the destination of a 'go to' statement
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

Label name No Text value Label in the program

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

This action doesn't include any exceptions


On block error
Marks the beginning of a block to handle actions errors
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

Name No Text value The name of the


Exception Block for
Visual purposes only.

Capture unexpected N/A Boolean value False Expand the scope of


logic errors error handling, also
capturing logical
errors in the flow, for
example, diving a
number by zero or
trying to access an
item from an out of
bounds position.

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

This action doesn't include any exceptions


Run subflow
Run a subflow specifying any required arguments
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

Subflow name No Subflow The name of the


subflow to call
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

This action doesn't include any exceptions


Stop flow
Terminates 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

End flow No Successfully, With Successfully Terminate the


error message execution of the flow,
either successfully or
with an error

Error message No Text value The error message to


return to the flow
caller upon exit

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

This action doesn't include any exceptions


Wait
Suspends the execution of the flow for a specified amount of seconds
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

Duration No Numeric value Time duration in


seconds

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

This action doesn't include any exceptions


Run desktop flow
1/15/2022 • 2 minutes to read • Edit Online

Set your automation to trigger other flows

Run desktop flow

Getting started with the Run desktop flow action


The Run desktop flow action enables you to call other desktop flows while running a specific desktop flow. To
use the action, add it to the workspace and select the desktop flow you want to call. If the called flow contains
input variables, the action will prompt you to enter their values.

NOTE
You can find more information regarding the Run desktop flow action in Run desktop flow from other desktop flows.

Run desktop flow action


Run desktop flow
Runs a desktop flow which can receive input variables and may produce output variables. The parent flow run
will be paused until the called desktop flow completes.
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

Destop flow No Desktop flow Select the desktop


flow to run from
within this flow

Va r i a b l e s P r o d u c e d

This action produces the output variables of the selected flow


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Wait for process

Run application

Terminate process

Ping

Set Windows environment variable

Get Windows environment variable

Delete Windows environment variable

Getting started with system actions


Use system actions to automate tasks which are fundamental to the Windows operating system.
Launch any of your installed applications with the Run application action. Command line arguments require
placement in quotes and a space among them. In the figure below, the Run application actions opens a
specific document in Word in quiet mode:
Apart from running applications, Power Automate for desktop enables you to terminate processes by name or
ID through the Terminate process action and wait for processes to start or stop through the Wait for
process action.

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

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

If process N/A Is running, Isn't Is running State of the process


running to check

Process name No Text value The name of the


process to check

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

EXC EP T IO N DESC RIP T IO N

Can't retrieve list of processes Indicates a problem retrieving the list of processes

Wait for process


Suspends the execution until a process starts or stops
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

Process name No Text value The name of the


process to check

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

This action doesn't produce any variables


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

Application path No File The executable file as


a complete file path

Command line Yes Text value Add extra arguments


arguments that would go after
the executable file
name. For example,
enter notepad.exe in
the application path
and a specific text file
in the command line
arguments

Working folder Yes Folder The full path of the


folder to work out of,
if applicable.

Window style N/A Normal, Hidden, Normal Choose the


Minimized, appearance and size
Maximized of the application
window when it
opens

After application N/A Continue Continue Whether the next


launch immediately, Wait for immediately action execute
application to load, immediately, or wait
Wait for application until the program
to complete loads or completes
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

Timeout Yes Numeric value 0 The maximum wait


time, and how long
before forcing a
continue

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

AppProcessId Numeric value The process ID output

AppExitCode Numeric value The application exit code

WindowHandle Numeric value The window handle. When opening a


new window, this will catch the value of
the window handle, and store it in this
variable. A window handle is useful to
specifically identify a window in a later
action

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

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

Process ID No Numeric value The ID of the process


to terminate

Process name No Text value The name of the


process to terminate.
If more than one
processes with the
same name are
running, all of them
will be terminated

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

EXC EP T IO N DESC RIP T IO N

Process with specified ID not running Indicates that a process with the specified ID isn't running

Failed to terminate process Indicates a problem terminating the process

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

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

Host name No Text value The name of the


remote computer or
an IP address

Timeout Yes Numeric value 5000 The maximum


number of
milliseconds to wait
for the Ping reply
message

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

PingResult Text value The status of the ping message


(success or failure)

RoundTripTime Numeric value The number of milliseconds taken for


the Ping to complete

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Can't complete ping action Indicates a problem completing the ping action

Set Windows environment variable


Sets an environment variable to a given value
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

Environment variable No Text value The name of the


name environment variable

New environment No Text value The value that is set


variable value to the environment
variable

Type N/A User, System User The type of the


environment variable

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

EXC EP T IO N DESC RIP T IO N

Indicates a problem setting the environment variable's value Indicates a problem setting the environment variable's value

Insufficient permissions Indicates that the user has insufficient permissions to


perform this action
Get Windows environment variable
Retrieves the value of an environment variable
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

Environment variable No Text value The name of the


name environment variable
whose value will be
retrieved

Search for variable N/A Boolean value False Specify whether to


only in scope search for the
variable only in a
specific scope

Scope N/A User, System User The scope from


which the
environment variable
should 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

EnvironmentVariableValue Text value The environment variable's value

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Environment variable doesn't exist Indicates that the specified environment variable doesn't
exist

Insufficient permissions Indicates that the user has insufficient permissions to


perform this action

Delete Windows environment variable


Deletes an environment variable from a given scope
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

Environment variable No Text value The name of the


name environment variable
to delete

Type N/A User, System User The type of the


environment variable
to delete

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
EXC EP T IO N DESC RIP T IO N

Failed to delete environment variable Indicates a problem deleting an environment variable

Insufficient permissions Indicates that the user has insufficient permissions to


perform this action
Workstation
1/15/2022 • 7 minutes to read • Edit Online

Perform a variety of tasks on the workstation

Print document

Get default printer

Set default printer

Log off user

Shutdown computer

Show desktop

Lock workstation

Play sound

Empty recycle bin

Take screenshot

Control screen saver

Get screen resolution

Set screen resolution

Getting started with workstation actions


The workstation group of actions provides a collection of actions that automate some essential functionalities of
your workstation.
To print a document, deploy the Print document action and populate the path of the file you want to print.

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

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 to print No File The path of the


document to print

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

EXC EP T IO N DESC RIP T IO N

Document not found Indicates that the specified document was not found

Access denied for document Indicates that access was denied for the provided document

Can't print document Indicates a problem printing the specified document

Get default printer


Gets the name of the default printer
In p u t P ar am et er s

This action doesn't require any input


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

PrinterName Text value The name of the default printer

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Can't get default printer Indicates a problem getting the default printer

Set default printer


Sets a printer as the default printer
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

Printer name No Text value The name of the


printer to set as
default

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

EXC EP T IO N DESC RIP T IO N

Can't set default printer Indicates a problem setting the default printer

Log off user


Logs off the current user

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

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

Force log off N/A Boolean value False Specify whether to


force the user
account to log off,
regardless of
unsaved files or
programs that won't
close

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

EXC EP T IO N DESC RIP T IO N

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

Action to perform N/A Shutdown, Restart, Shutdown Specify which


Suspend, Hibernate shutdown option the
computer will
perform

Force N/A Boolean value False Specify whether to


force the computer
to shut down,
regardless of
unsaved files or
programs that won't
close

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

EXC EP T IO N DESC RIP T IO N

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

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

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

This action doesn't produce any variables


Ex c e p t i o n s

This action doesn't include any exceptions


Lock workstation
Locks the workstation's display to protect it from unauthorized use
In p u t P ar am et er s

This action doesn't require any input


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

EXC EP T IO N DESC RIP T IO N

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

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

Play sound from N/A System, WAV file System The type of sound to
play

Sound to play N/A Asterisk, Beep, Asterisk The specific sound to


Exclamation, Hand, play
Question

File to play No File The full path of the


specific WAV file to
play

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

EXC EP T IO N DESC RIP T IO N

Can't find sound file Indicates that the sound file could not be found

Invalid sound file Indicates an invalid sound file

Empty recycle bin


Deletes all files from the windows recycle bin
In p u t P ar am et er s

This action doesn't require any input


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

This action doesn't include any exceptions


Take screenshot
Takes a screenshot of the foreground window or the specified screen and saves the image in a file or to the
clipboard
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

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

Screen to capture No Numeric value Specify which screen


to capture

Save screenshot to N/A Clipboard, File Clipboard The location to save


the screenshot to

Image file No File The full path of the


file name where the
captured image will
be saved

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

This action doesn't produce any variables


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to take screenshot Indicates a problem taking the screenshot

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

Control screen saver


Enables, disables, starts or stops the screensaver
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

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

This action doesn't produce any variables


Ex c e p t i o n s

This action doesn't include any exceptions

Get screen resolution


Gets the width, height, bit count and frequency of a selected monitor
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


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

Monitor number No Numeric value The number of the


monitor to get the
resolution of

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

MonitorWidth Numeric value The width of the monitor

MonitorHeight Numeric value The height of the monitor

MonitorBitCount Numeric value The monitor bit count

MonitorFrequency Numeric value The monitor frequency

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to get the screen's resolution Indicates a problem getting the screen's resolution

Set screen resolution


Sets the width, height, bit count and frequency of a selected monitor during an attended desktop flow run.

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

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

Monitor number No Numeric value The number of


monitor to set the
resolution of

Monitor width No Numeric value The value to set the


monitor width to

Monitor height No Numeric value The value to set the


monitor height to

Monitor bit count No Numeric value The value to set the


monitor bit count to

Monitor frequency No Numeric value The value to set the


monitor frequency to

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

EXC EP T IO N DESC RIP T IO N

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

Incorporate scripting languages code in you automation

Run DOS command

Run VBScript

Run JavaScript

Run PowerShell script

Run Python script

Getting started with scripting actions


Scripting actions are a major part of the system actions group. These actions enable users to run blocks of code
and implement custom behavior in Power Automate.
All scripting actions follow the basic structure of the respective programming or scripting language: PowerShell,
Python, VBScript, and JavaScript.
To declare variables in scripting actions and return results in Power Automate, use the following commands:
To declare new variables in PowerShell scripts, use the $ notation. To return values from Run PowerShell
script actions to Power Automate, use the Write-Output command.

$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

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

DOS command or No File The name of DOS


application command or a
console application,
with arguments if
applicable

Working folder Yes Folder The full path of the


folder to work out of,
if applicable

Change code page N/A Boolean value False Specifies whether to


change the session's
current code page

Encoding No ASMO-708 : Arabic utf-8 : Unicode (UTF- The encoding to use


(ASMO 708), big5 : 8) when reading the
Chinese Traditional output
(Big5), cp1025 : IBM
EBCDIC (Cyrillic
EBCDIC (Cyrillic
A RGUM EN T O P T IO N A L ASerbian-Bulgarian),
C C EP T S DEFA ULT VA L UE DESC RIP T IO N
cp866 : Cyrillic (DOS),
cp875 : IBM EBCDIC
(Greek Modern),
csISO2022JP :
Japanese (JIS-Allow 1
byte Kana), DOS-720
: Arabic (DOS), DOS-
862 : Hebrew (DOS),
EUC-CN : Chinese
Simplified (EUC),
EUC-JP : Japanese
(JIS 0208-1990 and
0212-1990), euc-jp :
Japanese (EUC), euc-
kr : Korean (EUC),
GB18030 : Chinese
Simplified (GB18030),
gb2312 : Chinese
Simplified (GB2312),
hz-gb-2312 :
Chinese Simplified
(HZ), IBM-Thai : IBM
EBCDIC (Thai),
IBM00858 : OEM
Multilingual Latin I,
IBM00924 : IBM
Latin-1, IBM01047 :
IBM Latin-1,
IBM01140 : IBM
EBCDIC (US-Canada-
Euro), IBM01141 :
IBM EBCDIC
(Germany-Euro),
IBM01142 : IBM
EBCDIC (Denmark-
Norway-Euro),
IBM01143 : IBM
EBCDIC (Finland-
Sweden-Euro),
IBM01144 : IBM
EBCDIC (Italy-Euro),
IBM01145 : IBM
EBCDIC (Spain-Euro),
IBM01146 : IBM
EBCDIC (UK-Euro),
IBM01147 : IBM
EBCDIC (France-
Euro), IBM01148 :
IBM EBCDIC
(International-Euro),
IBM01149 : IBM
EBCDIC (Icelandic-
Euro), IBM037 : IBM
EBCDIC (US-Canada),
IBM1026 : IBM
EBCDIC (Turkish
Latin-5), IBM273 :
IBM EBCDIC
(Germany), IBM277 :
IBM EBCDIC
(Denmark-Norway),
IBM278 : IBM
EBCDIC (Finland-
Sweden), IBM280 :
Sweden), IBM280 :
A RGUM EN T O P T IO N A L IBM EBCDIC
A C C EP TS (Italy), DEFA ULT VA L UE DESC RIP T IO N
IBM284 : IBM
EBCDIC (Spain),
IBM285 : IBM
EBCDIC (UK),
IBM290 : IBM
EBCDIC (Japanese
katakana), IBM297 :
IBM EBCDIC (France),
IBM420 : IBM
EBCDIC (Arabic),
IBM423 : IBM
EBCDIC (Greek),
IBM424 : IBM
EBCDIC (Hebrew),
IBM437 : OEM
United States,
IBM500 : IBM
EBCDIC
(International),
ibm737 : Greek
(DOS), ibm775 :
Baltic (DOS), ibm850
: Western European
(DOS), ibm852 :
Central European
(DOS), IBM855 :
OEM Cyrillic, ibm857
: Turkish (DOS),
IBM860 : Portuguese
(DOS), ibm861 :
Icelandic (DOS),
IBM863 : French
Canadian (DOS),
IBM864 : Arabic
(864), IBM865 :
Nordic (DOS),
ibm869 : Greek,
Modern (DOS),
IBM870 : IBM
EBCDIC (Multilingual
Latin-2), IBM871 :
IBM EBCDIC
(Icelandic), IBM880 :
IBM EBCDIC (Cyrillic
Russian), IBM905 :
IBM EBCDIC
(Turkish), iso-2022-jp
: Japanese (JIS), iso-
2022-jp : Japanese
(JIS-Allow 1 byte
Kana - SO/SI), iso-
2022-kr : Korean
(ISO), iso-8859-1 :
Western European
(ISO), iso-8859-13 :
Estonian (ISO), iso-
8859-15 : Latin 9
(ISO), iso-8859-2 :
Central European
(ISO), iso-8859-3 :
Latin 3 (ISO), iso-
8859-4 : Baltic (ISO),
iso-8859-5 : Cyrillic
(ISO), iso-8859-6 :
Arabic (ISO), iso-
Arabic (ISO), iso-
A RGUM EN T O P T IO N A L A8859-7
C C EP T S: Greek (ISO), DEFA ULT VA L UE DESC RIP T IO N
iso-8859-8 : Hebrew
(ISO-Visual), iso-
8859-8-i : Hebrew
(ISO-Logical), iso-
8859-9 : Turkish
(ISO), Johab : Korean
(Johab), koi8-r :
Cyrillic (KOI8-R),
koi8-u : Cyrillic
(KOI8-U), ks_c_5601-
1987 : Korean,
macintosh : Western
European (Mac),
shift_jis : Japanese
(Shift-JIS), us-ascii :
US-ASCII, utf-16 :
Unicode, utf-16BE :
Unicode (Big-Endian),
utf-32 : Unicode
(UTF-32), utf-32BE :
Unicode (UTF-32
Big-Endian), utf-7 :
Unicode (UTF-7), utf-
8 : Unicode (UTF-8),
windows-1250 :
Central European
(Windows), windows-
1251 : Cyrillic
(Windows),
Windows-1252 :
Western European
(Windows), windows-
1253 : Greek
(Windows), windows-
1254 : Turkish
(Windows), windows-
1255 : Hebrew
(Windows), windows-
1256 : Arabic
(Windows), windows-
1257 : Baltic
(Windows), windows-
1258 : Vietnamese
(Windows), windows-
874 : Thai (Windows),
x-Chinese-CNS :
Chinese Traditional
(CNS), x-Chinese-
Eten : Chinese
Traditional (Eten), x-
cp20001 : TCA
Taiwan, x-cp20003 :
IBM5550 Taiwan, x-
cp20004 : TeleText
Taiwan, x-cp20005 :
Wang Taiwan, x-
cp20261 : T.61, x-
cp20269 : ISO-6937,
x-cp20936 : Chinese
Simplified (GB2312-
80), x-cp20949 :
Korean Wansung, x-
cp50227 : Chinese
Simplified (ISO-
Simplified (ISO-
A RGUM EN T O P T IO N A L 2022),
A C C EP Tx-EBCDIC-
S DEFA ULT VA L UE DESC RIP T IO N
KoreanExtended :
IBM EBCDIC (Korean
Extended), x-Europa :
Europa, x-IA5 :
Western European
(IA5), x-IA5-German :
German (IA5), x-IA5-
Norwegian :
Norwegian (IA5), x-
IA5-Swedish :
Swedish (IA5), x-iscii-
as : ISCII Assamese,
x-iscii-be : ISCII
Bengali, x-iscii-de :
ISCII Devanagari, x-
iscii-gu : ISCII
Gujarati, x-iscii-ka :
ISCII Kannada, x-iscii-
ma : ISCII Malayalam,
x-iscii-or : ISCII Oriya,
x-iscii-pa : ISCII
Punjabi, x-iscii-ta :
ISCII Tamil, x-iscii-te :
ISCII Telugu, x-mac-
arabic : Arabic (Mac),
x-mac-ce : Central
European (Mac), x-
mac-chinesesimp :
Chinese Simplified
(Mac), x-mac-
chinesetrad : Chinese
Traditional (Mac), x-
mac-croatian :
Croatian (Mac), x-
mac-cyrillic : Cyrillic
(Mac), x-mac-greek :
Greek (Mac), x-mac-
hebrew : Hebrew
(Mac), x-mac-
icelandic : Icelandic
(Mac), x-mac-
japanese : Japanese
(Mac), x-mac-korean
: Korean (Mac), x-
mac-romanian :
Romanian (Mac), x-
mac-thai : Thai (Mac),
x-mac-turkish :
Turkish (Mac), x-mac-
ukrainian : Ukrainian
(Mac)`

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

CommandOutput Text value The text output from the DOS


command or application

CommandErrorOutput Text value The text describing the errors occurred


(if any) during the execution of the
DOS command or application
A RGUM EN T TYPE DESC RIP T IO N

CommandExitCode Numeric value The command or application exit code.


This will be a numeric value

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

VBScript to run Yes Text value The VBScript code to


execute. Variables
may be included
within the script since
they will be evaluated
prior to the execution
of the VBScript

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

VBScriptOutput Text value The script's output

ScriptError Text value The errors that may occur during the
execution of the VBScript code

Ex c e p t i o n s

This action doesn't include any exceptions


Run JavaScript
Executes some custom JavaScript code and retrieves its output into a variable
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

JavaScript to run Yes Text value The JavaScript code


to execute. Variables
may be included
within the script since
they will be evaluated
prior to the
JavaScript code's
execution

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

JavascriptOutput Text value The script's output


A RGUM EN T TYPE DESC RIP T IO N

ScriptError Text value The errors that may occur during the
execution of the JavaScript code

Ex c e p t i o n s

This action doesn't include any exceptions


Run PowerShell script
Executes some custom PowerShell script and retrieves its output into a variable
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

PowerShell code to Yes Text value The PowerShell code


run to execute. Variables
may be included
within the script since
they will be evaluated
prior to the execution
of the PowerShell
code

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

PowershellOutput Text value The script's output

ScriptError Text value The errors that may occur during the
execution of the PowerShell code

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to run PowerShell script Indicates a problem running the provided PowerShell script

Run Python script


Executes Python 2 script code and retrieves its output
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

Python script to run No Text value Τhe Python script


code to execute

Module folder paths Yes List of Folders The path(s) of


folder(s) where
external Python
modules lie

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

PythonScriptOutput Text value Τhe script's output


A RGUM EN T TYPE DESC RIP T IO N

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

EXC EP T IO N DESC RIP T IO N

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

Manage and manipulate files

If file exists

Wait for file

Copy file(s)

Move file(s)

Delete file(s)

Rename file(s)

Read text from file

Write text to file

Read from CSV file

Write to CSV file

Get file path part

Get temporary file

Getting started with file actions


Power Automate provides the files actions to automate managing files and manipulate their properties.
To get a list of all files in a specified folder, you can use the Get files in folder action. You can filter files by
using the File filter action. Add keywords, along with the asterisk (*) wildcard character, and separate multiple
terms with a semicolon (;). In the figure below, the file filter is set to .png , and Include subfolders has been
enabled. This means that the resulting variable will only contain PNG format files stored in the specified folder
and its subfolders.

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

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

If file N/A Exists, Doesn't exist Exists The state of the file
to check

File path No File The full path to look


for the file

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

This action doesn't include any exceptions


Wait for file
Suspend the execution of the automation until a file is created or deleted
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

Wait for file to be N/A Created, Deleted Created Specifies whether to


pause the flow on
the creation or
deletion of a certain
file

File path No File The full path to look


for the file

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

This action doesn't include any exceptions


Copy file (s)
Copy one or more files into a destination 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


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(s) to copy No List of Files The file(s) to copy.


This can be a file
path, or a variable
containing a file, a list
of files, a text path, or
a list of text paths.
Use the 'Get files in
folder' action to
populate a variable
with a list of files

Destination folder No Folder The destination


folder for the copied
files

If file exists N/A Do nothing, Do nothing Specifies what to do


Overwrite if a file with the same
name already exists
in the destination
folder

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

CopiedFiles List of Files The copied file(s) as a list of files

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

File not found Indicates that the file doesn't exist

Can't copy file Indicates a problem copying the file

Move file (s)


Move one or more files into a destination 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

File(s) to move No List of Files The file(s) to move.


This can be a file
path, or a variable
containing a file, a list
of files, a textual
path, or a list of text
paths. Use the 'Get
files in folder' action
to populate a
variable with a list of
files
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

Destination folder No Folder The destination


folder for the moved
files

If file exists N/A Do nothing, Do nothing Specifies what to do


Overwrite if a file with the same
name already exists
in the destination
folder

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

MovedFiles List of Files The moved file(s) as a list of files

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

File not found Indicates that the file doesn't exist

Can't move file Indicates a problem moving the file

Delete file (s)


Delete one or more files
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

File(s) to delete No List of Files The file(s) to delete.


This can be a file
path, or a variable
containing a file, a list
of files, a text path, or
a list of text paths.
Use the 'Get files in
folder' to populate a
variable with a list of
files

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

EXC EP T IO N DESC RIP T IO N

File path doesn't exist Indicates that the file path doesn't exist

File not found Indicates that the file doesn't exist


EXC EP T IO N DESC RIP T IO N

Can't delete file Indicates a problem deleting the file

Rename file (s)


Change the name of one or more files
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

File to rename No List of Files The file(s) to rename.


This can be a file
path, or a variable
containing a file, a list
of files, a text path, or
a list of text paths.
Use the 'Get files in
folder' action to
populate a variable
with a list of files

Add number to N/A Boolean value True Specifies whether to


add the number to
the existing file
name(s) or a new
name

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

New file name No Text value The new name of the


file(s)

New extension Yes Text value The text to add as


the new extension for
the file(s)

New file name No Text value The new name of the


file(s)

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

Text to add Yes Text value The text to add to


the original file
name(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

Text to remove Yes Text value The text to remove


from the original file
name(s). This rename
scheme searches
each file name, and
removes the entered
text anywhere in the
name, each time it
occurs

Text to replace No Text value The text to replace in


the original file
name(s). This rename
scheme searches
each file name, and
replaces the entered
text anywhere in the
name, each time it
occurs

Use custom datetime N/A Boolean value False Specifies whether to


use a custom
datetime

Datetime to add N/A Current datetime, Current datetime Specifies what


Creation time, Last datetime value to
accessed, Last add to the file
modified name(s)

Keep extension N/A Boolean value True Specifies whether to


include the previous
extension with the
file name(s). Disable
this option to add
the extension to the
file(s) manually

Replace with Yes Text value The text to replace


the original text with

Start numbering at No Numeric value The starting number


value

Add text N/A After name, Before After name Specifies whether to
name add the text before
or after the original
name(s)

Custom datetime No Datetime The datetime to add


to the file name(s)

Increment by No Numeric value The number to


increment the
starting value by
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

Add datetime N/A After name, Before After name Specifies whether to
name add the datetime
before or after the
original name(s)

Separator N/A Nothing, Space, Space Specifies what to use


Dash, Period, to separate the
Underscore original file name and
the number added,
including the option
to not use a
separator

Separator N/A Nothing, Space, Space Specifies what to use


Dash, Period, to separate the
Underscore original file name and
the datetime value
added, including the
option to not use a
separator

Use padding N/A Boolean value False Specifies whether to


use padding

Datetime format Yes Text value yyyyMMdd The format of the


datetime value to
add to the file name,
such as MM/dd/yyyy
for date, and
hh:mm:sstt for time

Make each number Yes Numeric value 3 The minimum length


at least for each number
added

If file exists N/A Do nothing, Do nothing Specifies what to do


Overwrite if a file with the same
name already exists
in the folder

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

RenamedFiles List of Files The renamed file(s) as a list of files

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Directory not found Indicates that the directory wasn't found

File not found Indicates that the file doesn't exist

Can't rename file Indicates a problem renaming the file

Read text from file


Read the contents of a text file
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

File path No File The file to read

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

Encoding N/A Default, ANSI, UTF-8 The encoding to read


Unicode, Unicode the specified text
(big-endian), UTF-8 from the text file
with.

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

FileContents Text value The contents as a text

FileContents List of Text values The contents as a list of texts

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Directory not found Indicates that the directory wasn't found

File not found Indicates that the file doesn't exist

Failed to read from file Indicates a problem reading from the file

Write text to file


Write or appends text to a file
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

File path No File The file to write the


text. This can be a file
path, or a variable
containing a file or a
textual path

Text to write Yes General value The text to write in


the specified file
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

Append new line N/A Boolean value True Specifies whether to


append a new line at
the end of the overall
text to write to the
file

If file exists N/A Overwrite existing Overwrite existing Specifies whether to


content, Append content overwrite the existing
content content, or to
append to the end of
the existing content.
If the file doesn't
exist, this action
automatically creates
it

Encoding N/A Default, ANSI, Unicode The encoding to use


Unicode, Unicode for the specified text
(big-endian), UTF-8, to write into the text
Unicode (without file
byte order mask),
UTF-8 (without byte
order mask)

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

EXC EP T IO N DESC RIP T IO N

Failed to write text to file Indicates a problem writing to the file

Invalid directory for file Indicates that the directory is invalid

Read from CSV file


Read a CSV file into a data table
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

File path No File The CSV file to read.


This can be a file
path, or a variable
containing a file or a
textual path

Encoding N/A UTF-8, Unicode, UTF-8 The encoding be use


Unicode (big-endian), for reading the
UTF-8 (No byte order specified CSV file
mark), Unicode (no
byte οrder mark),
System default, ANSI
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

Trim fields N/A Boolean value True Specifies whether to


automatically trim off
the leading and
trailing whitespaces
of the extracted cells

First line contains N/A Boolean value False Specifies whether to


column names use the first row of
the CSV resource to
set the column
names of the
resulting data table
variant. Enable this
option to avoid
reading the names as
data into the table.
Subsequent actions
may access the data
held by the data
table using column
names (instead of
column numbers)

Columns separator N/A Predefined, Custom, Predefined Specifies whether to


Fixed column widths use a predefined
columns separator, a
custom one or fixed
column widths

Separator N/A System default, System default The column-


Comma, Semicolon, separator to parse
Tab the the CSV file

Custom separator No Text value The custom column-


separator to use for
parsing the CSV
resource specified

Fixed column widths No Text value The fixed column-


widths to use for
parsing the CSV
resource specified.
Separate the widths
using commas,
spaces, tabs or
newlines

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

CSVTable Datatable The contents of the CSV file as a data


table

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

Write to CSV file


Write a data table, data row or list to a CSV file
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

Variable to write No General value The data table, data


row variable or list
variable to write into
the target CSV file

File path No File The CSV file to


export the variable
to. This can be a file
path, or a variable
containing a file or a
textual path

Encoding N/A UTF-8, Unicode, UTF-8 The encoding to use


Unicode (big-endian), for writing to the
UTF-8 (No byte order specified CSV file
mark), Unicode (no
byte οrder mark),
System default, ANSI

Include column N/A Boolean value False Specifies whether the


names column names of the
variant specified
should become the
very first row of the
CSV file. This option
takes effect if and
only if the target CSV
file either doesn't
intially exist or exists
but is otherwise
empty of text

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

Separator N/A System default, System default The column


Comma, Semicolon, separator to use in
Tab the specified CSV file

Custom columns No Text value The custom column


separator separator to use in
the CSV file
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

Use custom columns N/A Boolean value False Specifies whether to


separator use a custom
columns separator or
a predefined one

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

EXC EP T IO N DESC RIP T IO N

Write failed Indicates a problem writing to the CSV file

Get file path part


Retrieve one or more parts (directory, filename, extension etc) from a text that represents a file path
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

File path No File The file path to use


as the source

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

RootPath File The root path of the source file

Directory Folder The directory of the source file

FileName Text value The name of the source file

FileNameNoExtension Text value The file name (without the extension)


of the source file

FileExtension Text value The extension (for example, .doc) of the


source file

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

File path contains invalid characters Indicates that the file path doesn't exist

Get temporary file


Create a uniquely named, empty temporary file on disk, and get the file object (which is a representation, and
can access the file and all its information)
In p u t P ar am et er s

This action doesn't require any input


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

TempFile File The temporary file object

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to create temporary file Indicates a problem creating a temporary file


Folder
1/15/2022 • 9 minutes to read • Edit Online

Manage and manipulate folders

If folder exists

Get files in folder

Get subfolders in folder

Create folder

Delete folder

Empty folder

Copy folder

Move folder

Rename folder

Get special folder

Getting started with folder actions


Manipulate and organize folders with the Power Automate folders actions.
The Get special folder action retrieves the paths for commonly used directories which vary among different
users and computers. In the figure below, the desktop directory is retrieved and stored into a variable. The
variable %SpecialFolderPath% can now be used any time it is necessary to use the desktop path, regardless of
the user who runs the flow or the computer which it runs on.

Create new folders with the Create folder action.


To get a list of a folder's contents, use the Get subfolders in folder action. This action provides a list of folders
located within the specified folder. In the figure below, the variable for the path of a special folder is used as
input and include subfolders has been enabled. In the expanded Advanced section, folders are to be sorted by
creation time in ascending order and name in descending order.

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

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

If folder N/A Exists, Doesn't exist Exists Choose the state of


the folder to check

Folder path No Folder Enter or choose the


full path of the folder,
or a variable
containing the folder,
to check its state

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

This action doesn't include any exceptions


Get files in folder
Retrieve the list of files in 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

Folder No Folder Enter or choose the


full path of the folder,
or a variable
containing the folder,
to retrieve the list of
files from

File filter Yes Text value * Choose a filter to


limit the files
retrieved. This allows
wild cards, for
example, *.txt or
document?.doc. To
allow for multiple file
filters, separate the
choices with a semi-
colon, for example,
.txt;.exe.

Include subfolders N/A Boolean value False Specify whether to


look into subfolders
as well

Fail upon denied N/A Boolean value True Specify whether to


access to any throw an error when
subfolder trying to get files of a
folder with no access
rights or ignore
those folders
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

Sort by N/A No sort, Full name, No sort Specify whether to


Root path, Directory, sort the results and
Name, Name without by which criterion
extension, Extension,
Size, Creation time,
Last accessed, Last
modified, Is hidden,
Is system, Is read-
only, Is archive, Exists

Descending N/A Boolean value False Specify whether to


sort the items in
descending or
ascending order

Then by N/A No sort, Full name, No sort Specify whether to


Root path, Directory, sort the results by a
Name, Name without second criterion
extension, Extension,
Size, Creation time,
Last accessed, Last
modified, Is hidden,
Is system, Is read-
only, Is archive, Exists

Descending N/A Boolean value False Specify whether to


sort the items in
descending or
ascending order

Then by N/A No sort, Full name, No sort Specify whether to


Root path, Directory, sort the results by a
Name, Name without third criterion
extension, Extension,
Size, Creation time,
Last accessed, Last
modified, Is hidden,
Is system, Is read-
only, Is archive, Exists

Descending N/A Boolean value False Specify whether to


sort the items in
descending or
ascending order

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

Files List of Files The retrieved files as a list of file


objects

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Get subfolders in folder


Retrieve the list of subfolders in 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

Folder No Folder Enter or choose the


full path of the folder,
or a variable
containing the folder,
to retrieve the list of
subfolders from

Folder filter Yes Text value * Choose a filter to


limit the subfolders
retrieved. This allows
wild cards, for
example, Doc* or
Document?. To allow
for multiple folder
filters, separate the
choices with a semi-
colon, for example,
Doc*;*.

Include subfolders N/A Boolean value False Specify whether to


look into the
subfolders and
retrieve their
subfolders (and so
on) as well

Fail upon denied N/A Boolean value True Specify whether to


access to any throw an error when
subfolder trying to get
subfolders of a folder
with no access rights
or ignore those
folders

Sort by N/A No sort, Full name, No sort Specify whether to


Root path, Directory, sort the results and
Name, Name without by which criterion
extension, Extension,
Size, Creation time,
Last accessed, Last
modified, Is hidden,
Is system, Is read-
only, Is archive, Exists

Descending N/A Boolean value False Specify whether to


sort the items in
descending or
ascending order
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

Then by N/A No sort, Full name, No sort Specify whether to


Root path, Directory, sort the results by a
Name, Name without second criterion
extension, Extension,
Size, Creation time,
Last accessed, Last
modified, Is hidden,
Is system, Is read-
only, Is archive, Exists

Descending N/A Boolean value False Specify whether to


sort the items in
descending or
ascending order

Then by N/A No sort, Full name, No sort Specify whether to


Root path, Directory, sort the results by a
Name, Name without third criterion
extension, Extension,
Size, Creation time,
Last accessed, Last
modified, Is hidden,
Is system, Is read-
only, Is archive, Exists

Descending N/A Boolean value False Specify whether to


sort the items in
descending or
ascending order

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

Folders List of Folders The retrieved subfolders as a list of


folder objects

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

Create new folder No Folder Enter or choose the


into full path of the folder,
or a variable
containing the folder,
to create a new
folder in
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

New folder name No Text value Enter the text, or a


text variable, to be
the name of the new
folder

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

NewFolder Folder The created folder object (which is a


representation and can access the
folder and all its information)

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Folder doesn't exist Indicates that the folder was not found

Can't create folder Indicates a problem creating the folder

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

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

Folder to delete No Folder Enter or choose the


full path of the folder,
or a variable
containing the folder,
to delete. Remember
that all contents of
that folder and its
subfolders are
deleted too.

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

EXC EP T IO N DESC RIP T IO N

Folder doesn't exist Indicates that the folder was not found

Can't delete folder Indicates a problem deleting the folder

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

Folder to empty No Folder Enter or choose the


full path of the folder,
or a variable
containing the folder,
to delete its contents

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

EXC EP T IO N DESC RIP T IO N

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

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

Folder to copy No Folder Enter or choose the


full path of the folder,
or a variable
containing the folder,
to copy. If the folder
path ends with a \
only the contents of
the folder (files +
subfolders) are
copied. Otherwise,
the folder itself
(along with its
contents) is copied as
a subfolder into the
destination folder.

Destination folder No Folder Enter or choose the


full path of the folder,
or a variable
containing the folder,
to be the destination
folder

If folder exists N/A Do nothing, Do nothing Specify whether to


Overwrite overwrite files or not
copy them at all, if
the destination folder
already exists. If the
folder exists, but the
files have different
names, the old files
still remain in the
folder.

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

CopiedFolder Folder The copied folder object (which is a


representation and can access the
folder and all its information)

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Folder doesn't exist Indicates that the folder was not found

Destination folder doesn't exist Indicates that the destination folder was not found

Can't copy folder Indicates a problem copying the folder

Move folder
Move an existing folder into a destination 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

Folder to move No Folder Enter or choose the


full path of the folder,
or a variable
containing the folder,
to move

Destination folder No Folder Enter or choose the


full path of the folder,
or a variable
containing the folder,
to be the destination
folder

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

MovedFolder Folder The moved folder object (which is a


representation and can access the
folder and all its information)

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Folder doesn't exist Indicates that the folder was not found

Destination folder doesn't exist Indicates that the destination folder was not found

Can't move folder Indicates a problem moving the folder

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

Folder to rename No Folder Enter or choose the


full path of the folder,
or a variable
containing the folder,
to change its name

New folder name No Text value Enter the text, or a


text variable, to be
the new folder name

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

RenamedFolder Folder The renamed folder object (which is a


representation and can access the
folder and all its information)

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Folder doesn't exist Indicates that the folder was not found

Can't rename folder Indicates a problem renaming the folder

Get special folder


Retrieve the path of a Windows' special folder (such as Desktop, My Pictures, Internet Cache etc)
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

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

A RGUM EN T TYPE DESC RIP T IO N

SpecialFolderPath Folder The special folder object (which is a


representation and can access the
folder and all its information)

Ex c e p t i o n s

This action doesn't include any exceptions


Compression
1/15/2022 • 3 minutes to read • Edit Online

Zip or unzip files from archives

ZIP files

Unzip files

Getting started with compression actions


To compress (or zip) a file, use the ZIP files action. Specify a path to the archive, or where it should be created. If
the archive already exists, the specified files will be added to it. In the figure below, the path to the file is entered
as a variable. Best compression ensures maximum file size reduction, and a password adds a layer of security
to the archive. A comment is also added as a variable.

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

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

Archive path No File The full path of ZIP


file to create. If the
file already exists, this
action adds the new
zipped files and/or to
the existing ZIP file. If
the ZIP file already
contains a file or
folder with the same
name, it overwrites it.

File(s) to zip No List of The full path of the


FileSystemObject file(s) or folder(s) to
include in the ZIP file
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

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

Password Yes Encrypted value The password to use


for protecting the ZIP.
Leave this attribute
blank to create a non
password-protected
ZIP

Archive comment Yes Text value The comment to


include in the ZIP file
as a file property

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

ZipFile File The ZIP file created by this action

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Failed to zip files Indicates a problem zipping the files

Unzip files
Uncompress one or more files or folders contained in a ZIP archive
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

Archive path No File The full path of a ZIP


file to extract

Destination folder No Folder The full path of the


folder to extract the
archive to. This
overwrites files in the
folder with the same
name as a file in the
archive
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

Password Yes Encrypted value The password, if any,


that is used for this
archive. If the ZIP file
isn't password-
protected, leave this
blank

Include mask Yes Text value The filter to limit the


files extracted to
those entered here.
This allows wild cards,
for example '.txt' or
'document?.doc'
(without the quotes).
To allow multiple file
filters, separate the
choices with a semi-
colon, for instance,
'.txt;*.exe'

Exclude mask Yes Text value The filter to limit the


files extracted by
excluding those
entered here. This
allows wild cards, for
example, '.txt' or
'document?.doc'
(without the quotes).
To allow multiple file
filters, separate the
choices with a semi-
colon, for instance,
'.txt;*.exe'

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

EXC EP T IO N DESC RIP T IO N

Can't create destination folder Indicates that the destination folder couldn't be created

Archive not found Indicates that the archive doesn't exist

Archive isn't a valid ZIP file Indicates that the archive isn't a valid ZIP file

Failed to unzip files Indicates a problem unzipping the files


UI automation
1/15/2022 • 26 minutes to read • Edit Online

Interact with desktop/windows applications


You can find more information on how to use the UI automation actions here

Get details of window

Get details of a UI element in window

Get selected checkboxes in window

Get selected radio button in window

Extract data from window

Take screenshot of UI element

Focus text field in window

Populate text field in window

Press button in window

Select radio button in window

Set checkbox state in window

Set drop-down list value in window

Get window

Focus window

Set window state

Set window visibility

Move window

Resize window

Close window

If window contains

Wait for window content


If image

Use desktop

Select tab in window

Wait for image

Click UI element in window

Select menu option in window

Drag and drop UI element in window

Expand/collapse tree node in window

If window

Wait for window

Getting started with UI automation


Power Automate provides various UI automation actions to enable users to interact with Windows and desktop
applications. Some UI automation actions require you to set UI elements in their properties to indicate the
element you want to handle.
To add a new UI element, select Add UI element through the deployed UI automation action or the UI
elements tab of the flow designer.

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

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

Window No UIControl The window to get


details from

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

A RGUM EN T TYPE DESC RIP T IO N

WindowProperty General value The retrieved information of the


window

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to retrieve property of window Indicates a problem retrieving the window property

Get details of a UI element in window


Gets the value of a UI element's attribute in a 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

UI element No UIControl The UI element to


get details from

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

AttributeValue Text value The value of the UI element's text

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to retrieve attribute of UI element Indicates a problem retrieving the UI element's attribute

Get selected checkboxes in window


Retrieves the names of the selected checkboxes in a checkbox group or the state of a specific checkbox
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

UI element No UIControl The checkbox or


checkbox group

Operation N/A Get names of Get names of Specify whether to


selected checkboxes selected checkboxes retrieve the state of
in group, Get state of in group multiple selected
checkbox checkboxes or just
one

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

IsChecked Boolean value The state of the selected checkbox

SelectedCheckboxes List of Text values The names of selected checkboxes


inside the specified checkbox group

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to retrieve checkbox state(s) Indicates a problem retrieving the specified checkbox state(s)

Get selected radio button in window


Retrieves the names of the selected radio button in a radio button group or the state of a specific radio button
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

UI element No UIControl The radio button or


radio button group

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

A RGUM EN T TYPE DESC RIP T IO N

IsSelected Boolean value The state of the selected radio button

SelectedRadiobutton Text value The selected radio button inside the


specified radio group

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to retrieve radio button state Indicates a problem retrieving the specified radio button
state

Extract data from window


Extracts data from specific parts of a window in the form of single values, lists, or tables
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

Window No UIControl The window to


extract data from

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

A RGUM EN T TYPE DESC RIP T IO N

ExcelInstance Excel instance The Excel instance with the extracted


data. Use this instance to manipulate
the spreadsheet (or save and close it)
by using the dedicated Excel actions.

DataFromWindow General value The extracted data in the form of a


datatable

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Extraction failed Indicates a problem extracting data from the specified


window

Take screenshot of UI element


Takes a screenshot of a UI element in 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

UI element No UIControl The UI element in the


window to capture as
screenshot
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

Save mode N/A Clipboard, File Clipboard Specify whether to


save the image into a
file or store it into
the clipboard

Image file path No File Set the full path for


the file to be saved

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

A RGUM EN T TYPE DESC RIP T IO N

ImageFile File The file path of the generated


screenshot image file

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to retrieve UI element Indicates a problem retrieving the UI element

Failed to save image Indicates a problem saving the taken screenshot

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

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

Text field No UIControl The text box to focus

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

EXC EP T IO N DESC RIP T IO N

Failed to set input focus in window text box Indicates a problem setting the focus on the specified web
page text field

Populate text field in window


Fills a text box in a window with the specified text
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

Text box No UIControl The text box to


populate

Text to fill-in No Encrypted value The text to fill in the


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

This action doesn't produce any variables


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to write in textbox Indicates a problem populating the specified text field

Press button in window


Presses a window button
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

UI element No UIControl The button to press

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

EXC EP T IO N DESC RIP T IO N

Failed to press button Indicates a problem pressing the specified button

Select radio button in window


Selects a radio button on a 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

Radio button No UIControl The radio button to


select

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
EXC EP T IO N DESC RIP T IO N

Failed to select radio button UI element Indicates a problem selecting the specified radio button UI
element

Set checkbox state in window


Checks or unchecks a checkbox in a window form
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

Checkbox No UIControl The checkbox to set


the state of

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

This action doesn't produce any variables


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to set checkbox state Indicates a problem setting the specified checkbox state

Set drop-down list value in window


Sets or clears the selected option(s) for a drop-down list in a window form
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

Drop-down list No UIControl The drop-down list


whose value to set

Operation N/A Clear selected Clear selected Specify whether you


options, Select options want to select a value
option(s) by name, by name or by
Select option(s) by ordinal position (1 2
index 3 ...) or clear the
selected value of the
drop-down list

Options indices No Text value A space-separated


list of 1-based indices
(e.g. 1 3 4)
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

Options names No Text value One or more options


(one per line if more
than one) to select in
the drop down list.
Multiple options
make sense only
when working with
multi-select lists. If
the list is single-
selection, then only
the first option
specified will be used.

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

EXC EP T IO N DESC RIP T IO N

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

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

Get window N/A Specific window, Specific window Specify whether to


Foreground window look using a selector
or the foreground
window

UI element No UIControl The selector of the


window to get

Bring window to N/A Boolean value False Specify whether to


front bring the window to
the foreground
automatically upon
acquiring it

Fail if window isn't N/A Boolean value True Specify whether to


found wait indefinitely for
the window to
appear or to fail if the
window doesn't show
up within a set time
period
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

Timeout No Numeric value The timeout to wait


in seconds

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

WindowTitle Text value The title of the foreground window

AutomationWindow Window instance The specific window instance for use


with later UI Automation actions

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to get window Indicates a problem getting the window

Focus window
Activates and brings to the foreground 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

Find window mode N/A By window UI By window UI Specify whether to


element, By window element look for the window
instance/handle, By using a UI element or
title and/or class a combination of
window title/class

Window No UIControl The window UI


element

Window title Yes Text value The window title.


Wildcards can be
used, like '?' or '*'.

Window instance No Numeric value The instance or


handle of the window
to focus

Window class Yes Text value If there are two


windows with the
same title, window
class may help
differentiate between
them. In this case,
enter the class of the
window to use.

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
EXC EP T IO N DESC RIP T IO N

Window wasn't found Indicates that the specified window wasn't found

Can't focus window Indicates a problem focusing the specified window

Can't perform window-related action in non interactive Indicates a problem performing window-related action in
mode non-interactive mode

Set window state


Restores, maximizes or minimizes 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

Find window mode N/A By window UI By window UI Specify whether to


element, By window element look for the window
instance/handle, By using a UI element or
title and/or class a combination of
window title/class

Window No UIControl The window UI


element

Window title Yes Text value The window title.


Wildcards can be
used, like '?' or '*'.

Window instance No Numeric value The instance or


handle of the window
to set the state of

Window class Yes Text value If there are two


windows with the
same title, window
class may help
differentiate between
them. In this case,
enter the class of the
window to use.

Window state N/A Restored, Maximized, Restored Choose in which


Minimized state to display the
window

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

EXC EP T IO N DESC RIP T IO N

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

Set window visibility


Shows a hidden window or hides a visible 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

Find window mode N/A By window UI By window UI Specify whether to


element, By window element look for the window
instance/handle, By using a UI element or
title and/or class a combination of
window title/class

Window No UIControl The window UI


element

Window title Yes Text value The window title.


Wildcards can be
used, like '?' or '*'.

Window instance No Numeric value The instance or


handle of the window
to set the visibility of

Window class Yes Text value If there are two


windows with the
same title, window
class may help
differentiate between
them. In this case,
enter the class of the
window to use.

Visibility N/A Visible, Hidden Hidden Choose in which


state to set the
window visibility to

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

EXC EP T IO N DESC RIP T IO N

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

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

Find window mode N/A By window UI By window UI Specify whether to


element, By window element look for the Window
instance/handle, By using a UI element or
title and/or class a combination of
window title/class

Window No UIControl The window UI


element

Window title Yes Text value The window title.


Wildcards can be
used, like '?' or '*'.

Window instance No Numeric value The instance or


handle of the window
to move

Window class Yes Text value If you have two


windows with the
same title, Window
Class may help
differentiate between
them. In this case,
enter the class of the
window to use.

Position X No Numeric value The X position of the


window

Position Y No Numeric value The Y position of the


window

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

EXC EP T IO N DESC RIP T IO N

Window wasn't found Indicates that the specified window wasn't found

Can't move window Indicates a problem moving the specified window

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

Find window mode N/A By window UI By window UI Specify whether to


element, By window element look for the window
instance/handle, By using a UI element or
title and/or class a combination of
window title/class

Window No UIControl The window UI


element

Window title Yes Text value The window title.


Wildcards can be
used, like '?' or '*'.

Window instance No Numeric value The instance or


handle of the window
to resize

Window class Yes Text value If there are two


windows with the
same title, window
class may help
differentiate between
them. In this case,
enter the class of the
window to use

Width No Numeric value The new width, in


pixels

Height No Numeric value The new height, in


pixels

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

EXC EP T IO N DESC RIP T IO N

Window wasn't found Indicates that the specified window wasn't found

Can't resize window Indicates a problem resizing the specified window

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

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


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

Find window mode N/A By window UI By window UI Specify whether to


element, By window element look for the window
instance/handle, By using a UI element or
title and/or class a combination of
window title/class

Window No UIControl The window UI


element

Window title Yes Text value The window title.


Wildcards can be
used, like '?' or '*'.

Window instance No Numeric value The instance or


handle of the window
to close

Window class Yes Text value If there are two


windows with the
same title, window
class may help
differentiate between
them. In this case,
enter the class of the
window to use.

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

EXC EP T IO N DESC RIP T IO N

Window wasn't found Indicates that the specified window wasn't found

Can't close window Indicates a problem closing the specified window

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

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 Contains UI element, Contains UI element Check whether a


Doesn't contain UI specific text or UI
element, Contains element exists in a
text, Doesn't contain window
text

Check UI element N/A Boolean value False Check whether a


state specific UI element is
enabled or disabled
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

Text No Text value The text to check for

UI element No UIControl The UI element to


check for

Window No UIControl The window to check


if the text exists on

State N/A Enabled, Disabled Enabled The UI element state


to check for

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

This action doesn't include any exceptions

Wait for window content


Suspends the execution of the automation until a specific piece of text or UI element appears or disappears from
a 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

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

Check UI element N/A Boolean value False Check whether a


state specific UI element is
enabled or disabled

Text No Text value The text to check for

UI element No UIControl The UI element to


check for

Window No UIControl The window to check


if the text exists on

State N/A Enabled, Disabled Enabled The UI element state


to check for

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

EXC EP T IO N DESC RIP T IO N

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

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

If image N/A exists, doesn't exist exists Whether to check for


the existence or
absence of the
selected image

Image to check No List of Image The image/s that the


action will check if
it/they exist

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

X1 Yes Numeric value The start X


coordinate of the
subregion to scan for
the supplied text

X2 Yes Numeric value The end X coordinate


of the subregion to
scan for the supplied
text

Y1 Yes Numeric value The start Y


coordinate of the
subregion to scan for
the supplied text

Y2 Yes Numeric value The end Y coordinate


of the subregion to
scan for the supplied
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

Tolerance Yes Numeric value 10 Specify how much


the image(s)
searched for can
differ from the
originally chosen
image

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

EXC EP T IO N DESC RIP T IO N

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

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

UI element No UIControl The UI element to


perform a click on

Click type N/A Left click, Right click, Left click The kind of click to
Double click perform

Launch new N/A Boolean value True When this parameter


application when left- is set to 'true', it
clicking on the ensures that a new
taskbar window of an
application will be
created when left-
clicking on its icon in
the 'quick launch' bar,
aka the taskbar of
Windows 7 or above.
Uncheck this option
to bring an already
running instance of
the application to the
foreground.

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

EXC EP T IO N DESC RIP T IO N

Taskbar operation failed Indicates that the taskbar operation failed


Select tab in window
Selects a tab from a group of tabs
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

Tab No UIControl The tab to select

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

EXC EP T IO N DESC RIP T IO N

Selecting tab failed Indicates a problem selecting the specified tab

Wait for image


This action waits until a specific image appears on the screen or on the 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

Wait for image to N/A Appear, Disappear Appear Check whether to


wait for the image(s)
to appear or
disappear

Image to wait for No List of Image The image/s that the


action will check if
it/they exist

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

X1 Yes Numeric value The start X


coordinate of the
subregion to scan for
the supplied 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

X2 Yes Numeric value The end X coordinate


of the subregion to
scan for the supplied
text

Y1 Yes Numeric value The start Y


coordinate of the
subregion to scan for
the supplied text

Y2 Yes Numeric value The end Y coordinate


of the subregion to
scan for the supplied
text

Tolerance Yes Numeric value 10 Specify how much


the image(s)
searched for can
differ from the
originally chosen
image

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

X Numeric value The X coordinate of the point where


the text was found on the screen. If
the text has been search in the
foreground window this is relative to
the top left corner of the window.

Y Numeric value The Y coordinate of the point where


the text was found on the screen. If
the text has been search in the
foreground window this is relative to
the top left corner of the window.

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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 UI element in window


Clicks on any UI element of a 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

UI element No UIControl The UI element to


click on

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

Offset X Yes Text value 0 Offset the mouse


from the position by
this many pixels to
the right

Offset Y Yes Text value 0 Offset the mouse


from the position by
this many pixels
down

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

EXC EP T IO N DESC RIP T IO N

Click failed Indicates that the click failed

Select menu option in window


Selects an option in a menu of a 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

UI element No UIControl The menu option to


select

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

EXC EP T IO N DESC RIP T IO N

Failed to select option Indicates a problem selecting the specified menu option

Drag and drop UI element in window


Drags and drops a UI element of a 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

UI element to drag No UIControl The UI element to


drag

UI element to drop No UIControl The UI element to


over drop over

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 offset X Yes Text value 0 Offset the mouse-


down click, that will
be used to grab the
UI element drag, by
this many pixels to
the right

Mouse down offset Y Yes Text value 0 Offset the mouse-


down click, that will
be used to grab the
UI element to drag,
by this many pixels
downwards

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 offset X Yes Text value 0 Offset the mouse-up


click, that will be
used to grab the UI
element to drag, by
this many pixels to
the right

Mouse up offset Y Yes Text value 0 Offset the mouse-up


click, that will be
used to grab the UI
element to drag, by
this many pixels
downwards

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

EXC EP T IO N DESC RIP T IO N

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

Expand/collapse tree node in window


Expands or collapses a node of a tree view residing in a 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

UI element No UIControl The tree node to


expand/collapse

Folders path Yes Text value A forward slash


separated path made
out of folder names
leading to the tree
node to expand or
collapse

Use regular N/A Boolean value False Specify whether each


expressions folder name in the
path to interpret as a
regular expression

Operation N/A Expand, Collapse Expand Specify whether to


expand or collapse
the tree node

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

This action doesn't produce any variables


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Get window N/A By window UI By window UI Specify whether to


element, By window element look for the Window
instance/handle, By using a UI element or
title and/or class a combination of
window title/class

Window title Yes Text value The window title.


Wildcards can be
used, like '?' or '*'.

Window No UIControl The window UI


element

Window instance No Numeric value The instance or


handle of the window
to check

Window class Yes Text value If there are two


windows with the
same title, window
class may help
differentiate between
them. In this case,
enter the class of the
window to be used.

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

This action doesn't produce any variables


Ex c e p t i o n s

This action doesn't include any exceptions


Wait for window
Suspends the execution or the process until a specific window opens, closes, get or loses the focus
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

Find window N/A By window UI By window UI Specify whether to


element, By window element look for the window
instance/handle, By using a UI element or
title and/or class a combination of
window title/class

Window title Yes Text value The window title.


Wildcards can be
used, like '?' or '*'.

Window No UIControl The window UI


element
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

Window instance No Numeric value The instance or


handle of the window
to check

Window class Yes Text value If there are two


windows with the
same title, window
class may help
differentiate between
them. In this case,
enter the class of the
window to be used

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

This action doesn't produce any variables


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Can't focus window Indicates a problem focusing the specified window

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

Communicate with web applications and services directly


You can find more information on how to use the web actions here

Download from web

Invoke SOAP web service

Invoke web service

Getting started with web actions


HTTP actions enable users to interact with APIs and send web requests that perform various operations, such as
uploading and downloading data and files.
To send an API request, like POST, GET, PUT, or DELETE, you can use the Invoke web ser vice action.
In the action's properties, you have to populate the service's URL and the appropriate HTTP method. Additionally,
you have to choose the request and response content type, such as XML and JSON.
The Custom headers and Request body fields depend on the API, and you have to configure them as
described in its documentation.
If the webserver requires authentication, you can populate your credentials in the appropriate fields of the
action's Advanced settings.
The results of the web service request are stored in a variable named WebSer viceResponse . If the results are
files, you can select to save them locally on your desktop.
To download text or files from the web, you can use the Download from web action . This action requires you
to populate the URL of the web page or the file and select the appropriate HTTP method.
If the webserver requires authentication, you can populate your credentials in the appropriate fields of the
action's Advanced settings.

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

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

URL No Text value The web page or file's


URL

Method N/A GET, POST GET Specify how to


retrieve a website's
information. GET
should be used when
all information
needed is in the URL,
and POST to enter
more information
(passwords, etc)

Post parameters No Datatable The POST parameters


in the form of a
datatable with two
columns

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)

Destination folder No Folder The folder where the


file returned from the
web server will be
saved

Destination file path No File The full path (folder


plus filename) where
the file returned by
the web server will
be stored
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

Connection timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before giving
up

Follow redirection N/A Boolean value True Specify whether to


allow the web server
to redirect you to
another web page or
website

Clear cookies N/A Boolean value False Specify whether to


clear all cookies
created by similar
actions during this
automation

User agent Yes Text value Mozilla/5.0 Specify which


(Windows; U; browser identity to
Windows NT 5.1; en- be seen as. Some
US; rv:1.8.1.21) web servers will not
Gecko/20100312 allow access unless a
Firefox/3.6 browser identity is
chosen

Encoding N/A Auto - detect, Auto - detect The encoding used


IBM037 : IBM for the web page. If
EBCDIC (US-Canada), the Auto-detect
IBM437 : OEM option is chosen, the
United States, encoding to be used
IBM500 : IBM will be specified by
EBCDIC the web server
(International),
ASMO-708 : Arabic
(ASMO 708), DOS-
720 : Arabic (DOS),
ibm737 : Greek
(DOS), ibm775 :
Baltic (DOS), ibm850
: Western European
(DOS), ibm852 :
Central European
(DOS), IBM855 :
OEM Cyrillic, ibm857
: Turkish (DOS),
IBM00858 : OEM
Multilingual Latin I,
IBM860 : Portuguese
(DOS), ibm861 :
Icelandic (DOS),
DOS-862 : Hebrew
(DOS), IBM863 :
French Canadian
(DOS), IBM864 :
Arabic (864), IBM865
: Nordic (DOS), cp866
: Cyrillic (DOS),
ibm869 : Greek,
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
Modern (DOS),
IBM870 : IBM
EBCDIC (Multilingual
Latin-2), windows-
874 : Thai (Windows),
cp875 : IBM EBCDIC
(Greek Modern),
shift_jis : Japanese
(Shift-JIS), gb2312 :
Chinese Simplified
(GB2312),
ks_c_5601-1987 :
Korean, big5 :
Chinese Traditional
(Big5), IBM1026 :
IBM EBCDIC (Turkish
Latin-5), IBM01047 :
IBM Latin-1,
IBM01140 : IBM
EBCDIC (US-Canada-
Euro), IBM01141 :
IBM EBCDIC
(Germany-Euro),
IBM01142 : IBM
EBCDIC (Denmark-
Norway-Euro),
IBM01143 : IBM
EBCDIC (Finland-
Sweden-Euro),
IBM01144 : IBM
EBCDIC (Italy-Euro),
IBM01145 : IBM
EBCDIC (Spain-Euro),
IBM01146 : IBM
EBCDIC (UK-Euro),
IBM01147 : IBM
EBCDIC (France-
Euro), IBM01148 :
IBM EBCDIC
(International-Euro),
IBM01149 : IBM
EBCDIC (Icelandic-
Euro), utf-16 :
Unicode, utf-16BE :
Unicode (Big-Endian),
windows-1250 :
Central European
(Windows), windows-
1251 : Cyrillic
(Windows),
Windows-1252 :
Western European
(Windows), windows-
1253 : Greek
(Windows), windows-
1254 : Turkish
(Windows), windows-
1255 : Hebrew
(Windows), windows-
1256 : Arabic
(Windows), windows-
1257 : Baltic
(Windows), windows-
1258 : Vietnamese
(Windows), Johab :
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
Korean (Johab),
macintosh : Western
European (Mac), x-
mac-japanese :
Japanese (Mac), x-
mac-chinesetrad :
Chinese Traditional
(Mac), x-mac-korean
: Korean (Mac), x-
mac-arabic : Arabic
(Mac), x-mac-hebrew
: Hebrew (Mac), x-
mac-greek : Greek
(Mac), x-mac-cyrillic :
Cyrillic (Mac), x-mac-
chinesesimp :
Chinese Simplified
(Mac), x-mac-
romanian : Romanian
(Mac), x-mac-
ukrainian : Ukrainian
(Mac), x-mac-thai :
Thai (Mac), x-mac-ce
: Central European
(Mac), x-mac-
icelandic : Icelandic
(Mac), x-mac-turkish
: Turkish (Mac), x-
mac-croatian :
Croatian (Mac), utf-
32 : Unicode (UTF-
32), utf-32BE :
Unicode (UTF-32
Big-Endian), x-
Chinese-CNS :
Chinese Traditional
(CNS), x-cp20001 :
TCA Taiwan, x-
Chinese-Eten :
Chinese Traditional
(Eten), x-cp20003 :
IBM5550 Taiwan, x-
cp20004 : TeleText
Taiwan, x-cp20005 :
Wang Taiwan, x-IA5 :
Western European
(IA5), x-IA5-German :
German (IA5), x-IA5-
Swedish : Swedish
(IA5), x-IA5-
Norwegian :
Norwegian (IA5), us-
ascii : US-ASCII, x-
cp20261 : T.61, x-
cp20269 : ISO-6937,
IBM273 : IBM
EBCDIC (Germany),
IBM277 : IBM
EBCDIC (Denmark-
Norway), IBM278 :
IBM EBCDIC
(Finland-Sweden),
IBM280 : IBM
EBCDIC (Italy),
IBM284 : IBM
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
EBCDIC (Spain),
IBM285 : IBM
EBCDIC (UK),
IBM290 : IBM
EBCDIC (Japanese
katakana), IBM297 :
IBM EBCDIC (France),
IBM420 : IBM
EBCDIC (Arabic),
IBM423 : IBM
EBCDIC (Greek),
IBM424 : IBM
EBCDIC (Hebrew), x-
EBCDIC-
KoreanExtended :
IBM EBCDIC (Korean
Extended), IBM-Thai :
IBM EBCDIC (Thai),
koi8-r : Cyrillic (KOI8-
R), IBM871 : IBM
EBCDIC (Icelandic),
IBM880 : IBM
EBCDIC (Cyrillic
Russian), IBM905 :
IBM EBCDIC
(Turkish), IBM00924 :
IBM Latin-1, EUC-JP :
Japanese (JIS 0208-
1990 and 0212-
1990), x-cp20936 :
Chinese Simplified
(GB2312-80), x-
cp20949 : Korean
Wansung, cp1025 :
IBM EBCDIC (Cyrillic
Serbian-Bulgarian),
koi8-u : Cyrillic
(KOI8-U), iso-8859-1
: Western European
(ISO), iso-8859-2 :
Central European
(ISO), iso-8859-3 :
Latin 3 (ISO), iso-
8859-4 : Baltic (ISO),
iso-8859-5 : Cyrillic
(ISO), iso-8859-6 :
Arabic (ISO), iso-
8859-7 : Greek (ISO),
iso-8859-8 : Hebrew
(ISO-Visual), iso-
8859-9 : Turkish
(ISO), iso-8859-13 :
Estonian (ISO), iso-
8859-15 : Latin 9
(ISO), x-Europa :
Europa, iso-8859-8-i
: Hebrew (ISO-
Logical), iso-2022-jp :
Japanese (JIS),
csISO2022JP :
Japanese (JIS-Allow 1
byte Kana), iso-
2022-jp : Japanese
(JIS-Allow 1 byte
Kana - SO/SI), iso-
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
2022-kr : Korean
(ISO), x-cp50227 :
Chinese Simplified
(ISO-2022), euc-jp :
Japanese (EUC), EUC-
CN : Chinese
Simplified (EUC), euc-
kr : Korean (EUC), hz-
gb-2312 : Chinese
Simplified (HZ),
GB18030 : Chinese
Simplified (GB18030),
x-iscii-de : ISCII
Devanagari, x-iscii-be
: ISCII Bengali, x-iscii-
ta : ISCII Tamil, x-iscii-
te : ISCII Telugu, x-
iscii-as : ISCII
Assamese, x-iscii-or :
ISCII Oriya, x-iscii-ka :
ISCII Kannada, x-iscii-
ma : ISCII Malayalam,
x-iscii-gu : ISCII
Gujarati, x-iscii-pa :
ISCII Punjabi, utf-7 :
Unicode (UTF-7), utf-
8 : Unicode (UTF-8)
Accept untrusted N/A Boolean value False Specify whether
certificates untrusted certificates
will be accepted

Use credentials N/A Boolean value False Specify whether the


web server requires
authentication. This
property refers to
HTTP authentication
(that is, when the
browser displays a
popup window
asking for user name
and password)

User name No Text value The user name for


the web server

Password No Encrypted value The password for the


web server

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

DownloadedFile File The downloaded file

WebPageText Text value The web page text

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Directory doesn't exist Indicates that a required directory doesn't exist


EXC EP T IO N DESC RIP T IO N

Download from web error Indicates a problem downloading from web

Invoke SOAP web service


Invokes a method from a SOAP web 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

Endpoint No Text value The endpoint of the


web service

Custom headers Yes Text value The custom headers


to be included in the
request that will be
sent to the web
service

Request body No Text value The body of the


request that will be
sent to the web
service

Connection timeout No Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server

Follow redirection N/A Boolean value True Specify whether to


allow the web server
to redirect you to
another web service

Clear cookies N/A Boolean value False Specify whether to


clear all cookies
previously created by
similar actions during
this flow

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

User agent No Text value Mozilla/5.0 Specify which


(Windows; U; browser identity to
Windows NT 5.1; en- be seen as. Some
US; rv:1.8.1.21) web servers will not
Gecko/20100312 allow access unless a
Firefox/3.6 browser identity is
chosen

User agent Yes Text value Mozilla/5.0 Specify which


(Windows; U; browser identity to
Windows NT 5.1; en- be seen as. Some
US; rv:1.8.1.21) web servers will not
Gecko/20100312 allow access unless a
Firefox/3.6 browser identity is
chosen

Encoding N/A Auto - detect, Auto - detect The encoding used


IBM037 : IBM for the web service
EBCDIC (US-Canada), response. If the auto-
IBM437 : OEM detect option is
United States, chosen, the encoding
IBM500 : IBM to be used will be
EBCDIC specified by the web
(International), service
ASMO-708 : Arabic
(ASMO 708), DOS-
720 : Arabic (DOS),
ibm737 : Greek
(DOS), ibm775 :
Baltic (DOS), ibm850
: Western European
(DOS), ibm852 :
Central European
(DOS), IBM855 :
OEM Cyrillic, ibm857
: Turkish (DOS),
IBM00858 : OEM
Multilingual Latin I,
IBM860 : Portuguese
(DOS), ibm861 :
Icelandic (DOS),
DOS-862 : Hebrew
(DOS), IBM863 :
French Canadian
(DOS), IBM864 :
Arabic (864), IBM865
: Nordic (DOS), cp866
: Cyrillic (DOS),
ibm869 : Greek,
Modern (DOS),
IBM870 : IBM
EBCDIC (Multilingual
Latin-2), windows-
874 : Thai (Windows),
cp875 : IBM EBCDIC
(Greek Modern),
shift_jis : Japanese
(Shift-JIS), gb2312 :
Chinese Simplified
(GB2312),
ks_c_5601-1987 :
Korean, big5 :
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
Chinese Traditional
(Big5), IBM1026 :
IBM EBCDIC (Turkish
Latin-5), IBM01047 :
IBM Latin-1,
IBM01140 : IBM
EBCDIC (US-Canada-
Euro), IBM01141 :
IBM EBCDIC
(Germany-Euro),
IBM01142 : IBM
EBCDIC (Denmark-
Norway-Euro),
IBM01143 : IBM
EBCDIC (Finland-
Sweden-Euro),
IBM01144 : IBM
EBCDIC (Italy-Euro),
IBM01145 : IBM
EBCDIC (Spain-Euro),
IBM01146 : IBM
EBCDIC (UK-Euro),
IBM01147 : IBM
EBCDIC (France-
Euro), IBM01148 :
IBM EBCDIC
(International-Euro),
IBM01149 : IBM
EBCDIC (Icelandic-
Euro), utf-16 :
Unicode, utf-16BE :
Unicode (Big-Endian),
windows-1250 :
Central European
(Windows), windows-
1251 : Cyrillic
(Windows),
Windows-1252 :
Western European
(Windows), windows-
1253 : Greek
(Windows), windows-
1254 : Turkish
(Windows), windows-
1255 : Hebrew
(Windows), windows-
1256 : Arabic
(Windows), windows-
1257 : Baltic
(Windows), windows-
1258 : Vietnamese
(Windows), Johab :
Korean (Johab),
macintosh : Western
European (Mac), x-
mac-japanese :
Japanese (Mac), x-
mac-chinesetrad :
Chinese Traditional
(Mac), x-mac-korean
: Korean (Mac), x-
mac-arabic : Arabic
(Mac), x-mac-hebrew
: Hebrew (Mac), x-
mac-greek : Greek
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
(Mac), x-mac-cyrillic :
Cyrillic (Mac), x-mac-
chinesesimp :
Chinese Simplified
(Mac), x-mac-
romanian : Romanian
(Mac), x-mac-
ukrainian : Ukrainian
(Mac), x-mac-thai :
Thai (Mac), x-mac-ce
: Central European
(Mac), x-mac-
icelandic : Icelandic
(Mac), x-mac-turkish
: Turkish (Mac), x-
mac-croatian :
Croatian (Mac), utf-
32 : Unicode (UTF-
32), utf-32BE :
Unicode (UTF-32
Big-Endian), x-
Chinese-CNS :
Chinese Traditional
(CNS), x-cp20001 :
TCA Taiwan, x-
Chinese-Eten :
Chinese Traditional
(Eten), x-cp20003 :
IBM5550 Taiwan, x-
cp20004 : TeleText
Taiwan, x-cp20005 :
Wang Taiwan, x-IA5 :
Western European
(IA5), x-IA5-German :
German (IA5), x-IA5-
Swedish : Swedish
(IA5), x-IA5-
Norwegian :
Norwegian (IA5), us-
ascii : US-ASCII, x-
cp20261 : T.61, x-
cp20269 : ISO-6937,
IBM273 : IBM
EBCDIC (Germany),
IBM277 : IBM
EBCDIC (Denmark-
Norway), IBM278 :
IBM EBCDIC
(Finland-Sweden),
IBM280 : IBM
EBCDIC (Italy),
IBM284 : IBM
EBCDIC (Spain),
IBM285 : IBM
EBCDIC (UK),
IBM290 : IBM
EBCDIC (Japanese
katakana), IBM297 :
IBM EBCDIC (France),
IBM420 : IBM
EBCDIC (Arabic),
IBM423 : IBM
EBCDIC (Greek),
IBM424 : IBM
EBCDIC (Hebrew), x-
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
EBCDIC-
KoreanExtended :
IBM EBCDIC (Korean
Extended), IBM-Thai :
IBM EBCDIC (Thai),
koi8-r : Cyrillic (KOI8-
R), IBM871 : IBM
EBCDIC (Icelandic),
IBM880 : IBM
EBCDIC (Cyrillic
Russian), IBM905 :
IBM EBCDIC
(Turkish), IBM00924 :
IBM Latin-1, EUC-JP :
Japanese (JIS 0208-
1990 and 0212-
1990), x-cp20936 :
Chinese Simplified
(GB2312-80), x-
cp20949 : Korean
Wansung, cp1025 :
IBM EBCDIC (Cyrillic
Serbian-Bulgarian),
koi8-u : Cyrillic
(KOI8-U), iso-8859-1
: Western European
(ISO), iso-8859-2 :
Central European
(ISO), iso-8859-3 :
Latin 3 (ISO), iso-
8859-4 : Baltic (ISO),
iso-8859-5 : Cyrillic
(ISO), iso-8859-6 :
Arabic (ISO), iso-
8859-7 : Greek (ISO),
iso-8859-8 : Hebrew
(ISO-Visual), iso-
8859-9 : Turkish
(ISO), iso-8859-13 :
Estonian (ISO), iso-
8859-15 : Latin 9
(ISO), x-Europa :
Europa, iso-8859-8-i
: Hebrew (ISO-
Logical), iso-2022-jp :
Japanese (JIS),
csISO2022JP :
Japanese (JIS-Allow 1
byte Kana), iso-
2022-jp : Japanese
(JIS-Allow 1 byte
Kana - SO/SI), iso-
2022-kr : Korean
(ISO), x-cp50227 :
Chinese Simplified
(ISO-2022), euc-jp :
Japanese (EUC), EUC-
CN : Chinese
Simplified (EUC), euc-
kr : Korean (EUC), hz-
gb-2312 : Chinese
Simplified (HZ),
GB18030 : Chinese
Simplified (GB18030),
x-iscii-de : ISCII
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
Devanagari, x-iscii-be
: ISCII Bengali, x-iscii-
ta : ISCII Tamil, x-iscii-
te : ISCII Telugu, x-
iscii-as : ISCII
Assamese, x-iscii-or :
ISCII Oriya, x-iscii-ka :
ISCII Kannada, x-iscii-
ma : ISCII Malayalam,
x-iscii-gu : ISCII
Gujarati, x-iscii-pa :
ISCII Punjabi, utf-7 :
Unicode (UTF-7), utf-
8 : Unicode (UTF-8)
Accept untrusted N/A Boolean value False Specify whether
certificates untrusted certificates
will be accepted

HTTP Authentication N/A Boolean value False Specify whether the


web server requires
HTTP authentication
(that is, the browser
displays a popup
window asking for a
username and
password)

User name No Text value The user name for


the web server

Password No Encrypted value The password for the


web server

R e q u e st B u i l d e r P a r a m e t e r s

A RGUM EN T A C C EP T S DESC RIP T IO N

WSDL File The Web Services Decription Language


(WSDL) document to build the request
with

Service Text value The service to invoke

Port Text value The port to invoke the service

SOAP version Text value The version of the SOAP service

Operation Text value The operation to invoke the service

Request envelope Text value The envelope to send in the request to


invoke the service

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

SoapServiceResponseHeaders List of Text values The HTTP headers of the response

SoapServiceResponse Text value The web service response text


A RGUM EN T TYPE DESC RIP T IO N

StatusCode Numeric value The status code returned

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Invoke SOAP service error Indicates a problem invoking the SOAP service

Invalid header in custom headers Indicates that some custom headers were invalid

Invoke web service


Invokes a web service by sending data and retrieves the response from the web 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

URL No Text value The web service's


URL

Method N/A GET, POST, GET The HTTP method to


CONNECT, HEAD, be used to invoke
PUT, DELETE, the web service
OPTIONS, TRACE,
PATCH

Accept Yes Text value application/xml The acceptable


content type for the
response of the web
service

Content type Yes Text value application/xml The content type of


the request that will
be sent to the web
service

Custom headers Yes Text value The custom headers


to be included in the
request that will be
sent to the web
service

Request body Yes Text value The body of the


request that will be
sent to the web
service

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)

Destination folder No Folder The folder where the


file returned by the
web service will be
saved

Destination file path No File The full path (folder


plus filename) where
the file returned by
the web service will
be stored

Connection timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before giving
up

Follow redirection N/A Boolean value True Specify whether to


allow the web server
to redirect you to
another web service

Clear cookies N/A Boolean value False Specify whether to


clear all cookies
created by similar
actions during this
automation before
this action

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

User agent Yes Text value Mozilla/5.0 Specify which


(Windows; U; browser identity to
Windows NT 5.1; en- be seen as. Some
US; rv:1.8.1.21) web servers will not
Gecko/20100312 allow access unless a
Firefox/3.6 browser identity is
chosen

Encoding N/A Auto - detect, Auto - detect The encoding used


IBM037 : IBM for the web service
EBCDIC (US-Canada), response. If the auto-
IBM437 : OEM detect option is
United States, chosen, the encoding
IBM500 : IBM to be used will be
EBCDIC specified by the web
(International), service
ASMO-708 : Arabic
(ASMO 708), DOS-
720 : Arabic (DOS),
ibm737 : Greek
(DOS), ibm775 :
Baltic (DOS), ibm850
: Western European
(DOS), ibm852 :
Central European
(DOS), IBM855 :
OEM Cyrillic, ibm857
: Turkish (DOS),
IBM00858 : OEM
Multilingual Latin I,
IBM860 : Portuguese
(DOS), ibm861 :
Icelandic (DOS),
DOS-862 : Hebrew
(DOS), IBM863 :
French Canadian
(DOS), IBM864 :
Arabic (864), IBM865
: Nordic (DOS), cp866
: Cyrillic (DOS),
ibm869 : Greek,
Modern (DOS),
IBM870 : IBM
EBCDIC (Multilingual
Latin-2), windows-
874 : Thai (Windows),
cp875 : IBM EBCDIC
(Greek Modern),
shift_jis : Japanese
(Shift-JIS), gb2312 :
Chinese Simplified
(GB2312),
ks_c_5601-1987 :
Korean, big5 :
Chinese Traditional
(Big5), IBM1026 :
IBM EBCDIC (Turkish
Latin-5), IBM01047 :
IBM Latin-1,
IBM01140 : IBM
EBCDIC (US-Canada-
Euro), IBM01141 :
IBM EBCDIC
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
(Germany-Euro),
IBM01142 : IBM
EBCDIC (Denmark-
Norway-Euro),
IBM01143 : IBM
EBCDIC (Finland-
Sweden-Euro),
IBM01144 : IBM
EBCDIC (Italy-Euro),
IBM01145 : IBM
EBCDIC (Spain-Euro),
IBM01146 : IBM
EBCDIC (UK-Euro),
IBM01147 : IBM
EBCDIC (France-
Euro), IBM01148 :
IBM EBCDIC
(International-Euro),
IBM01149 : IBM
EBCDIC (Icelandic-
Euro), utf-16 :
Unicode, utf-16BE :
Unicode (Big-Endian),
windows-1250 :
Central European
(Windows), windows-
1251 : Cyrillic
(Windows),
Windows-1252 :
Western European
(Windows), windows-
1253 : Greek
(Windows), windows-
1254 : Turkish
(Windows), windows-
1255 : Hebrew
(Windows), windows-
1256 : Arabic
(Windows), windows-
1257 : Baltic
(Windows), windows-
1258 : Vietnamese
(Windows), Johab :
Korean (Johab),
macintosh : Western
European (Mac), x-
mac-japanese :
Japanese (Mac), x-
mac-chinesetrad :
Chinese Traditional
(Mac), x-mac-korean
: Korean (Mac), x-
mac-arabic : Arabic
(Mac), x-mac-hebrew
: Hebrew (Mac), x-
mac-greek : Greek
(Mac), x-mac-cyrillic :
Cyrillic (Mac), x-mac-
chinesesimp :
Chinese Simplified
(Mac), x-mac-
romanian : Romanian
(Mac), x-mac-
ukrainian : Ukrainian
(Mac), x-mac-thai :
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
Thai (Mac), x-mac-ce
: Central European
(Mac), x-mac-
icelandic : Icelandic
(Mac), x-mac-turkish
: Turkish (Mac), x-
mac-croatian :
Croatian (Mac), utf-
32 : Unicode (UTF-
32), utf-32BE :
Unicode (UTF-32
Big-Endian), x-
Chinese-CNS :
Chinese Traditional
(CNS), x-cp20001 :
TCA Taiwan, x-
Chinese-Eten :
Chinese Traditional
(Eten), x-cp20003 :
IBM5550 Taiwan, x-
cp20004 : TeleText
Taiwan, x-cp20005 :
Wang Taiwan, x-IA5 :
Western European
(IA5), x-IA5-German :
German (IA5), x-IA5-
Swedish : Swedish
(IA5), x-IA5-
Norwegian :
Norwegian (IA5), us-
ascii : US-ASCII, x-
cp20261 : T.61, x-
cp20269 : ISO-6937,
IBM273 : IBM
EBCDIC (Germany),
IBM277 : IBM
EBCDIC (Denmark-
Norway), IBM278 :
IBM EBCDIC
(Finland-Sweden),
IBM280 : IBM
EBCDIC (Italy),
IBM284 : IBM
EBCDIC (Spain),
IBM285 : IBM
EBCDIC (UK),
IBM290 : IBM
EBCDIC (Japanese
katakana), IBM297 :
IBM EBCDIC (France),
IBM420 : IBM
EBCDIC (Arabic),
IBM423 : IBM
EBCDIC (Greek),
IBM424 : IBM
EBCDIC (Hebrew), x-
EBCDIC-
KoreanExtended :
IBM EBCDIC (Korean
Extended), IBM-Thai :
IBM EBCDIC (Thai),
koi8-r : Cyrillic (KOI8-
R), IBM871 : IBM
EBCDIC (Icelandic),
IBM880 : IBM
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
EBCDIC (Cyrillic
Russian), IBM905 :
IBM EBCDIC
(Turkish), IBM00924 :
IBM Latin-1, EUC-JP :
Japanese (JIS 0208-
1990 and 0212-
1990), x-cp20936 :
Chinese Simplified
(GB2312-80), x-
cp20949 : Korean
Wansung, cp1025 :
IBM EBCDIC (Cyrillic
Serbian-Bulgarian),
koi8-u : Cyrillic
(KOI8-U), iso-8859-1
: Western European
(ISO), iso-8859-2 :
Central European
(ISO), iso-8859-3 :
Latin 3 (ISO), iso-
8859-4 : Baltic (ISO),
iso-8859-5 : Cyrillic
(ISO), iso-8859-6 :
Arabic (ISO), iso-
8859-7 : Greek (ISO),
iso-8859-8 : Hebrew
(ISO-Visual), iso-
8859-9 : Turkish
(ISO), iso-8859-13 :
Estonian (ISO), iso-
8859-15 : Latin 9
(ISO), x-Europa :
Europa, iso-8859-8-i
: Hebrew (ISO-
Logical), iso-2022-jp :
Japanese (JIS),
csISO2022JP :
Japanese (JIS-Allow 1
byte Kana), iso-
2022-jp : Japanese
(JIS-Allow 1 byte
Kana - SO/SI), iso-
2022-kr : Korean
(ISO), x-cp50227 :
Chinese Simplified
(ISO-2022), euc-jp :
Japanese (EUC), EUC-
CN : Chinese
Simplified (EUC), euc-
kr : Korean (EUC), hz-
gb-2312 : Chinese
Simplified (HZ),
GB18030 : Chinese
Simplified (GB18030),
x-iscii-de : ISCII
Devanagari, x-iscii-be
: ISCII Bengali, x-iscii-
ta : ISCII Tamil, x-iscii-
te : ISCII Telugu, x-
iscii-as : ISCII
Assamese, x-iscii-or :
ISCII Oriya, x-iscii-ka :
ISCII Kannada, x-iscii-
ma : ISCII Malayalam,
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
x-iscii-gu : ISCII
Gujarati, x-iscii-pa :
ISCII Punjabi, utf-7 :
Unicode (UTF-7), utf-
8 : Unicode (UTF-8)
Accept untrusted N/A Boolean value False Specify whether
certificates untrusted certificates
will be accepted

HTTP Authentication N/A Boolean value False Specify whether the


web server requires
authentication. This
property refers to
HTTP authentication
(that is, when the
browser displays a
popup window
asking for user name
and password)

User name No Text value The user name for


the web server

Password No Encrypted value The password for the


web server

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

WebServiceResponseHeaders List of Text values The HTTP headers of the response

DownloadedFile File The downloaded file

WebServiceResponse Text value The web service response text

StatusCode Numeric value The status code returned

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Invoke web service error Indicates a problem invoking the web service

Directory doesn't exist Indicates that a required directory doesn't exist

Invalid header in custom headers Indicates that some custom headers were invalid
Browser automation
1/15/2022 • 25 minutes to read • Edit Online

Start and manage web applications on browsers


You can find more information on how to use the browser automation actions here

Extract data from web page

Get details of web page

Get details of element on web page

Take screenshot of web page

Focus text field on web page

Populate text Field on web page

Set check box state on web page

Select radio button on web page

Set drop-down list value on web page

Press button on web page

If web page contains

Wait for web page content

Launch new Internet Explorer

Launch new Firefox

Launch new Chrome

Launch new Microsoft Edge

Create new tab

Go to web page

Click link on web page

Click download link on web page

Run JavaScript function on web page


Hover mouse over element on web page

Close web browser

Getting started with browser automation


Browser automation actions enable users to interact with web applications and components through UI
elements. UI elements describe uniquely the web components that the action is going to handle.
To add a new UI element, select Add UI element through the deployed browser automation action or the UI
elements tab of the flow designer.

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.

Browser automation actions


Web data extraction
Extract data from web applications, from a single value up to tables or custom multiple pieces of data
Extract data from web page
Extract data from specific parts of a web page in the form of single values, lists, rows or tables
You can find more information on how to use this action here
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with
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

UI element No WebControl Select the UI element


on web page to
extract data from

Extraction No Datatable The parameters to


parameters use when extracting
data. Depending on
the extraction mode,
this accepts different
data.

Max web pages to No Numeric value The maximum


process number of web
pages to process

Pager CSS selector No Text value The pager CSS


selector

Extraction mode N/A Undefined, Single Single value Specify what to


value, Handpicked extract from the web
values, List, Table, page
Entire HTML table

Use paging N/A Boolean value False Specify whether to


use paging

Get all web pages N/A Boolean value False Specify whether to
get all web pages

Store data mode N/A Variable, Excel Variable Specify whether to


spreadsheet store the extracted
data in a variable or
an Excel spreadsheet

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

ExcelInstance Excel instance The Excel instance with the extracted


data. Use this instance to manipulate
the spreadsheet (or save and close it)
by using the dedicated Excel actions.

DataFromWebPage Datatable The extracted data in the form of a


single value, list, datarow or datatable

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to extract data Indicates a problem extracting data

Failed to launch Excel instance Indicates a problem launching an Excel instance

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

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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

Get N/A Web page Web page Select the


description, Web description information to
page meta keywords, retrieve from the web
Web page title, Web page
page text, Web page
source, Web
browser's current
URL address

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

WebPageProperty Text value The details retrieved from the web


page

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to get details of web page Indicates a problem getting the details of the specified web
page

Get details of element on web page


Get the value of an element's attribute on a web page
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

UI element No WebControl Select the UI element


on web page to get
details from

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

A RGUM EN T TYPE DESC RIP T IO N


A RGUM EN T TYPE DESC RIP T IO N

AttributeValue Text value The value of the web element's


attribute

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to retrieve attribute of UI element on web page Indicates a problem retrieving attribute of web page element

Take screenshot of web page


Take a screenshot of the web page (or an element of the web page) currently displayed in the browser and save
the image into a file or to the clipboard
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

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

UI element No WebControl Select the UI element


on web page to
capture

Save mode N/A Clipboard, File Clipboard Specify whether to


save the image into a
file or store it into
the clipboard

Image file No File Set the full path for


the file to save the
image capture

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

This action doesn't produce any variables


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Element with specified CSS selector not found Indicates that a web page element with the specified CSS
selector was not found

Failed to save file Indicates a problem saving the specified file

Failed to save in the clipboard Indicates a problem while saving to the clipboard
EXC EP T IO N DESC RIP T IO N

Failed to take screenshot Indicates a problem taking a screenshot

Web form filling


Fill in forms on web applications
Focus text field on web page
Set the focus on an input element of a web page and scroll it into view
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

UI element No WebControl Select the UI element


on web page to focus

Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely before
proceeding

If a pop-up dialog N/A Close it, Press a Do nothing Specify what to do if


appears button, Do nothing a pop-up dialog
appears

Dialog button to Yes Text value OK Enter the dialog


press button to press if a
pop-up dialog
appears

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

EXC EP T IO N DESC RIP T IO N

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

Populate text Field on web page


Fill a text field in a web page with the specified text
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

UI element No WebControl Select the text field to


populate

Text No Encrypted value Enter the text to fill in


the text field

Emulate typing N/A Boolean value True Specify whether to fill


the text field at once
by simply setting the
value of the text box,
or emulate a user
typing by sending
characters one by
one. The latter
method is slower, but
required in some
complex web pages.

Unfocus text box N/A Boolean value False Choose whether to


after filling it unfocus the text box
right after this action
fills it with the
specified text. In case
of scraping
autocompletion lists,
this parameter
should be set to
"False".

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 a pop-up dialog N/A Close it, Press a Do nothing Specify what to do if


appears button, Do nothing a pop-up dialog
appears after
populating the text
field

Dialog button to Yes Text value OK Enter the dialog


press button to press if a
pop-up dialog
appears

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

EXC EP T IO N DESC RIP T IO N

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

Set check box state on web page


Check or uncheck a check box in a web form
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

UI element No WebControl Select the check box


to set the state of

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

If a pop-up dialog N/A Close it, Press a Do nothing Specify what to do if


appears button, Do nothing a pop-up dialog
appears after setting
the check box state

Dialog button to Yes Text value OK Enter the dialog


press button to press if a
pop-up dialog
appears

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

EXC EP T IO N DESC RIP T IO N

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

Select radio button on web page


Select a radio button on the web page
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

UI element No WebControl The radio button to


select

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

If a pop-up dialog N/A Close it, Press a Do nothing Specify what to do if


appears button, Do nothing a pop-up dialog
appears after
selecting the radio
button

Dialog button to Yes Text value OK The dialog button to


press press if a pop-up
dialog appears

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

EXC EP T IO N DESC RIP T IO N

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

Set drop-down list value on web page


Set or clear the selected option for a drop-down list in a web form
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

UI element No WebControl Select the drop-down


list to set its value
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

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

Option name(s) No List of Text values Enter one or more


options (one per line
if more than one) to
be selected in the
drop-down list.
Multiple options
make sense only
when working with
multi-select lists. If
the list is single-
selection, then only
the first option
specified will be used.

Option indices No List of Numeric Type a space-


values separated list of 1-
based indices (e.g. 1
3 4)

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

If a pop-up dialog N/A Close it, Press a Do nothing Specify what to do if


appears button, Do nothing a pop-up dialog
appears after setting
the drop-down list
value

Dialog button to Yes Text value OK Enter the dialog


press button to press if a
pop-up dialog
appears

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

EXC EP T IO N DESC RIP T IO N

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

Press button on web page


Press a web page button
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

UI element No WebControl Select the button to


press

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

If a pop-up dialog N/A Close it, Press a Do nothing Specify what to do if


appears button, Do nothing a pop-up dialog
appears after
pressing the button

Dialog button to Yes Text value OK Enter the dialog


press button to press if a
pop-up dialog
appears

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

EXC EP T IO N DESC RIP T IO N

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

If web page contains


Mark the beginning of a conditional block of actions, depending on whether a specific piece of text or element
exists in a web page
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

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

UI element No WebControl Select the UI element


on web page to
check for

Text No Text value Enter the text on web


page to check for

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

EXC EP T IO N DESC RIP T IO N

Failed to communicate with the browser Indicates that an error with the browser occured

Wait for web page content


Suspend the flow until a specific piece of text or web page element appears or disappears from a web page
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

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

UI element No WebControl Select the UI element


on web page to
check for

Text No Text value Enter the text on web


page to check for

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

EXC EP T IO N DESC RIP T IO N

Wait for web page content failed Indicates that the wait operation failed

Launch new Internet Explorer


Launch a new instance or attach to a running instance of Internet Explorer for automating web sites and web
applications
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

Launch mode N/A Launch automation Launch automation Specify whether to


browser, Launch new browser launch the
Internet Explorer, automation browser
Attach to running or a new instance of
Internet Explorer Internet Explorer or
attach to an existing
one

Attach to Internet N/A By title, By URL, Use By title Specify whether to


Explorer tab foreground window attach to an Internet
Explorer tab by its
title, URL, or attach
to the active tab of
Internet Explorer
running as the
foreground window

Initial URL No Text value Enter the URL of the


web site to visit when
the web browser is
launched

Tab title No Text value Enter the title (or


part of it) of the
Internet Explorer tab
to attach to

Tab URL No Text value Enter the URL (or


part of it) of the
Internet Explorer tab
to attach to

Window state N/A Normal, Maximized, Normal Specify whether to


Minimized launch the browser
window in normal,
minimized of
maximized state

Clear cache N/A Boolean value False Specify whether to


clear the entire cache
of the web browser
right after launching
it

Clear cookies N/A Boolean value False Specify whether to


clear all stored
cookies in the web
browser right after
launching it

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

If a pop-up dialog N/A Close it, Press a Do nothing Specify what to do if


appears button, Do nothing a pop-up dialog
appears while loading
the initial web page

Dialog button to Yes Text value OK Enter the dialog


press button to press if a
pop-up dialog
appears

Custom user agent Yes Text value Specify the custom


string user agent string for
the runtime web
helper. If this field
remains empty, the
runtime web helper
uses by default the
user agent string of
Internet Explorer
installed on the
machine.

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

A RGUM EN T TYPE DESC RIP T IO N

InternetExplorer Web browser instance The Internet Explorer instance to use


with browser automation actions

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to launch Internet Explorer Indicates a problem launching Internet Explorer

Invalid URL Indicates that the provided URL was invalid

Launch new Firefox


Launch a new instance or attach to a running instance of Firefox for automating web sites and web applications
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

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

Initial URL No Text value Enter the URL of the


web site to visit when
the web browser is
launched

Tab title No Text value Enter the title (or


part of it) of the
Firefox tab to attach
to

Tab URL No Text value Enter the URL (or


part of it) of the
Firefox tab to attach
to

Window state N/A Normal, Maximized, Normal Specify whether to


Minimized launch the browser
window in normal,
minimized of
maximized state

Clear cache N/A Boolean value False Specify whether to


clear the entire cache
of the web browser
right after launching
it

Clear cookies N/A Boolean value False Specify whether to


clear all stored
cookies in the web
browser right after
launching it

Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely before
proceeding

If a pop-up dialog N/A Close it, Press a Do nothing Specify what to do if


appears button, Do nothing a pop-up dialog
appears while loading
the initial web page

Dialog button to Yes Text value OK Enter the dialog


press button to press if a
pop-up dialog
appears
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

Timeout No Numeric value 60 Set the time in


seconds that you
want to wait for the
browser to be
launched before the
action fails

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

Browser Web browser instance The Firefox instance to use with


browser automation actions

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to launch Firefox Indicates a problem launching Firefox

Invalid URL Indicates that the provided URL was invalid

Launch new Chrome


Launch a new instance or attach to a running instance of Chrome for automating web sites and web applications
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

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

Attach to Chrome N/A By title, By URL, Use By title Specify whether to


tab foreground window attach to a Chrome
tab by its title, URL,
or attach to the
active tab of Chrome
running as the
foreground window

Initial URL No Text value Enter the URL of the


web site to visit when
the web browser is
launched

Tab title No Text value Enter the title (or


part of it) of the
Chrome tab to attach
to

Tab URL No Text value Enter the URL (or


part of it) of the
Chrome tab to attach
to
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

Window state N/A Normal, Maximized, Normal Specify whether to


Minimized launch the browser
window in normal,
minimized of
maximized state

Clear cache N/A Boolean value False Specify whether to


clear the entire cache
of the web browser
right after launching
it

Clear cookies N/A Boolean value False Specify whether to


clear all stored
cookies in the web
browser right after
launching it

Wait for page to load N/A Boolean value True Specify whether to
wait for the new web
page to load
completely before
proceeding

If a pop-up dialog N/A Close it, Press a Do nothing Specify what to do if


appears button, Do nothing a pop-up dialog
appears while loading
the initial web page

Dialog button to Yes Text value OK Enter the dialog


press button to press if a
pop-up dialog
appears

Timeout No Numeric value 60 Set the time in


seconds that you
want to wait for the
browser to be
launched before the
action fails

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

Browser Web browser instance The Chrome instance to use with


browser automation actions

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to launch Chrome Indicates a problem launching Chrome

Invalid URL Indicates that the provided URL was invalid

Launch new Edge


Launch a new instance or attach to a running instance of Edge for automating web sites and web applications
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

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

Initial URL No Text value Enter the URL of the


web site to visit when
the web browser is
launched

Tab title No Text value Enter the title (or


part of it) of the Edge
tab to attach to

Tab URL No Text value Enter the URL (or


part of it) of the Edge
tab to attach to

Window state N/A Normal, Maximized, Normal Specify whether to


Minimized launch the browser
window in normal,
minimized of
maximized state

Clear cache N/A Boolean value False Specify whether to


clear the entire cache
of the web browser
right after launching
it

Clear cookies N/A Boolean value False Specify whether to


clear all stored
cookies in the web
browser right after
launching it

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

If a pop-up dialog N/A Close it, Press a Do nothing Specify what to do if


appears button, Do nothing a pop-up dialog
appears while loading
the initial web page

Dialog button to Yes Text value OK Enter the dialog


press button to press if a
pop-up dialog
appears

Timeout No Numeric value 60 Set the time in


seconds that you
want to wait for the
browser to be
launched before the
action fails

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

Browser Web browser instance The Edge instance to use with browser
automation actions

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to launch Edge Indicates a problem launching Edge

Invalid URL Indicates that the provided URL was invalid

Create new tab


Create a new tab and navigate to the given URL (supported in Edge, Chrome and Firefox)
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

URL to navigate to No Text value Enter the URL, or a


variable containing
the URL, to navigate
to

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

If a pop-up dialog N/A Close it, Press a Do nothing Specify what to do if


appears button, Do nothing a pop-up dialog
appears while loading
the web page

Dialog button to Yes Text value OK Enter the dialog


press button to press if a
pop-up dialog
appears

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

NewBrowser Web browser instance The new web browser instance to use
with browser automation actions

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Invalid URL Indicates that the provided URL was invalid

Failed to create a new tab Indicates a problem creating a new tab

Go to web page
Navigate the web browser to a new page
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

Navigate N/A To URL, Back, To URL Specify where to


Forward, Reload web navigate to
page

URL No Text value Enter the URL to


navigate to

Wait for page to load N/A Boolean value True Specify whether to
wait for the web
page to load
completely before
proceeding

If a pop-up dialog N/A Close it, Press a Do nothing Specify what to do if


appears button, Do nothing a pop-up dialog
appears while loading
the web page
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

Dialog button to Yes Text value OK Enter the dialog


press button to press if a
pop-up dialog
appears

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

EXC EP T IO N DESC RIP T IO N

Failed to navigate to web page Indicates a problem navigating to the specified web page

Invalid URL Indicates that the provided URL was invalid

Click link on web page


Click on a link or any other element of a web page
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

UI element No WebControl Select the UI element


on web page to click

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

If a pop-up dialog N/A Close it, Press a Do nothing Specify what to do if


appears button, Do nothing a pop-up dialog
appears after clicking
on the link

Dialog button to Yes Text value OK Enter the dialog


press button to press if a
pop-up dialog
appears

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

EXC EP T IO N DESC RIP T IO N

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

Failed to click UI element Indicates a problem clicking the specified element

Click download link on web page


Click on a link in a web page that results in downloading a file
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

UI element No WebControl Select the UI element


on web page to click

Destination folder No Folder Enter or choose the


full path of the folder,
or a variable
containing the folder,
to save the
downloaded file to

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

DownloadedFile File The file on the disk where the


download is saved. This is a filepath
that consists of the download folder as
specified above plus the name of the
file as provided by the web server.

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to download file Indicates a problem downloading the specified file

Element with specified CSS selector not found Indicates that a web page element with the specified CSS
selector was not found

Failed to click UI element Indicates a problem clicking the specified element

Failed to save file Indicates a problem saving the specified file

Run JavaScript function on web page


Run a JavaScript function on the web page and get the returned result
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


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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

JavaScript function Yes Text value function Enter the JavaScript


ExecuteScript() { function to run on
/*your code here, the web page
return something
(optionally); */ }

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

Result Text value The result of the JavaScript function


that run

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to run JavaScript Indicates a problem running JavaScript

Hover mouse over element on web page


Hover the mouse over an element of a web page
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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to work with

UI element No WebControl Select the UI element


on web page to
hover

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

EXC EP T IO N DESC RIP T IO N

Failed to hover over element Indicates a problem hovering over the specified element

Close web browser


Close a web browser 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

Web browser No Web browser Enter or choose the


instance instance variable that contains
the web browser
instance to close

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

EXC EP T IO N DESC RIP T IO N

Failed to close the web browser Indicates a problem closing the web browser
Excel
1/15/2022 • 21 minutes to read • Edit Online

Automate any Excel related activity

Run Excel Macro

Get active Excel worksheet

Get all Excel worksheets

Delete Excel worksheet

Rename Excel worksheet

Activate Cell in Excel Worksheet

Select cells in Excel worksheet

Get selected cell range from Excel worksheet

Copy cells from Excel worksheet

Paste cells to Excel worksheet

Delete from Excel worksheet

Insert row to Excel worksheet

Delete row from Excel worksheet

Insert column to Excel worksheet

Delete column from Excel worksheet

Find and replace cells in Excel worksheet

Get first free row on column from Excel worksheet

Launch Excel

Attach to running Excel

Read from Excel worksheet

Get active cell on Excel worksheet

Save Excel
Write to Excel worksheet

Close Excel

Set active Excel worksheet

Add new worksheet

Get first free column/row from Excel worksheet

Get column name on Excel worksheet

Getting started with Excel actions


After setting an Excel instance, either with the Launch Excel or the Attach to running Excel action, you may
read from or write to an Excel file.
To read and extract data from an Excel document, use the Read from Excel worksheet action. Retrieve the
value of a single cell, or a table of data.
In the following example, to read the cells A1 through E5 as seen in the selection below:

The action has to have the following configuration:

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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action

Macro No Text value The macro to run.


The text should
consist of the name
of the macro,
followed by any
arguments (optional),
all separated by
semicolons

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

EXC EP T IO N DESC RIP T IO N

Failed to run macro Indicates a problem running the specified macro

Get active Excel worksheet


Retrieves an Excel document's active worksheet
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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action

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

SheetName Text value The name of the active worksheet

SheetIndex Numeric value The index of the active worksheet

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to retrieve active worksheet Indicates a problem retrieving the active worksheet

Get all Excel worksheets


Retrieves all worksheet names of an Excel document
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

Excel instance No Excel instance Specify the Excel


instance. This variable
must have been
previously specified
in a Launch Excel
action

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

SheetNames List of Text values The names of all worksheets

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to retrieve all worksheet names Indicates a problem retrieving the names of the Excel
worksheet

Delete Excel worksheet


Deletes a specific worksheet from 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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action

Delete worksheet N/A Index, Name Name Whether to find the


with worksheet by name
or index

Worksheet index No Numeric value The Index number of


the worksheet to
delete. The
numbering starts
from 1, meaning that
the index of the fist
worksheet is 1, the
second one is 2 etc.

Worksheet name No Text value The name of the


worksheet to delete

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

EXC EP T IO N DESC RIP T IO N


EXC EP T IO N DESC RIP T IO N

Can't find worksheet Indicates that a worksheet with the specified name could not
be found

Failed to delete worksheet Indicates a problem deleting the specified worksheet

Rename Excel worksheet


Renames a specific worksheet 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

Excel instance No Excel instance Specify the Excel


instance. This variable
must have been
previously specified
in a Launch Excel
action

Rename worksheet N/A Index, Name Name Specify whether to


with find the worksheet
by name or index

Worksheet index No Numeric value The index of the


worksheet to
rename. The
numbering starts
from 1, meaning that
the index of the fist
worksheet is 1, of the
second is 2 etc.

Worksheet name No Text value The name of the


worksheet to rename

Worksheet new No Text value The new name of the


name worksheet

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

EXC EP T IO N DESC RIP T IO N

Can't find worksheet Indicates that a worksheet with the specified name could not
be found

Failed to rename worksheet Indicates a problem renaming the specified worksheet

Activate Cell in Excel Worksheet


Activate a cell in the active worksheet of an Excel instance, by providing column, row and offset
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

Excel instance No Excel instance Specify the Excel


instance to work
with. This variable
must have been
previously specified
in a Launch Excel
action

Activate N/A Absolutely specified Absolutely specified Select whether to


cell, Relatively cell specify the cell to
specified cell activate absolutely, or
relatively, by using an
offset distance being
the number of cells
between the
currently activated
reference cell and the
actual cell activate

Column No Text value The numeric value or


letter of the cell
column

Direction N/A Left, Right, Above, Left Select offset


Below direction. Select
where to look for the
cell to activate based
on the position of
the currently active
cell

Offset from active cell No Numeric value The distance in cells


between the
currently active cell
and the desired cell.
The numbering starts
from 0

Row No Numeric value The numeric value of


the cell row. The
numbering starts
from 1

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

EXC EP T IO N DESC RIP T IO N

Failed to activate cell Indicates a problem activating an Excel cell

Select cells in Excel worksheet


Selects a range of cells in the active worksheet 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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action

Select N/A Absolutely specified Absolutely specified Specify whether to


cell, Relatively cell select an explicitly
specified cell specified range of
cells or a range of
cells relatively to the
currently active cell

X Axis Direction N/A Left, Right Left The X-axis offset


direction. Where to
look along the
horizontal axis, based
on currently
activated cell's
position

Start column No Text value The index or letter of


the first column

X Offset No Numeric value The X-axis offset

Start row No Numeric value The first row number.


The numbering starts
from 1

End column No Text value The index or letter of


the last column

Y Axis Direction N/A Above, Below Above The Y-axis offset


direction. Where to
look along the
vertical axis, based
on the position of
the currently active
cell

End row No Numeric value The last row number.


The numbering starts
from 1

Y Offset No Numeric value The Y-axis offset

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

EXC EP T IO N DESC RIP T IO N

Failed to select cells Indicates a problem selecting the specified cells


Get selected cell range from Excel worksheet
Retrieve the selected range of cells in a structure consisting of first column, first row, last column and last row
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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action

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

FirstColumnIndex Numeric value The numeric value of the range's first


column

FirstRowIndex Numeric value The numeric value of the range's first


row

LastColumnIndex Numeric value The numeric value of the range's last


column

LastRowIndex Numeric value The numeric value of the range's last


row

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to retrieve the selected range of cells Indicates a problem retrieving the selected range of cells

Copy cells from Excel worksheet


Copies a range of cells from the active worksheet 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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action

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

Start column No Text value The index or letter of


the first column
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

Start row No Numeric value The index of the first


row

End column No Text value The index or letter of


the last column

End row No Numeric value The index of the last


row

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

EXC EP T IO N DESC RIP T IO N

Failed to copy cells Indicates a problem copying the cells from the Excel
document

Paste cells to Excel worksheet


Pastes a range of cells to the active worksheet 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

Excel instance No Excel instance Specify the Excel


instance. This variable
must have been
previously specified
in a Launch Excel
action

Paste mode N/A On specified cell, On On specified cell Specify whether to


currently active cell paste on a specified
cell or the currently
active cell

Column No Text value The index or letter of


the cell column

Row No Numeric value The row number

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

EXC EP T IO N DESC RIP T IO N

Failed to paste cells Indicates a problem pasting the specified cells

Delete from Excel worksheet


Deletes a cell or a range of cells from the active worksheet 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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action

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

Start column No Text value The cell column


(single cell's value) or
first column as a
numeric value or a
letter

Start row No Numeric value The cell row (single


cell's value) or first
row number

End column No Text value The last column as a


numeric value or a
letter

End row No Numeric value The last row number

Shift direction N/A Left, Up Left The shift direction

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

EXC EP T IO N DESC RIP T IO N

Failed to delete cell(s) Indicates a problem deleting the specified cell(s)

Insert row to Excel worksheet


Inserts a row above a selected row 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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action

Row index No Numeric value The index of the row


to add a new row
above. The
numbering starts
from 1
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

EXC EP T IO N DESC RIP T IO N

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

Delete row from Excel worksheet


Deletes a selected row from 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

Excel instance No Excel instance The Excel instance.


This variable must
have been previously
specified in a Launch
Excel action

Delete row No Numeric value The Index number of


the row to delete.
The numbering starts
from 1

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

EXC EP T IO N DESC RIP T IO N

Can't find row Indicates that a row with the specified index could not be
found

Failed to delete row Indicates a problem deleting the specified row

Insert column to Excel worksheet


Inserts a column to the left of a selected column 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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action
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

Column No Text value The column's index


number or letter. A
new column will
appear on the left
side of the column
indicated

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

EXC EP T IO N DESC RIP T IO N

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

Delete column from Excel worksheet


Deletes a selected column from 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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action

Delete column No Text value The index number or


letter of the column
to delete

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

EXC EP T IO N DESC RIP T IO N

Can't find column Indicates that a column with the specified name could not be
found

Failed to delete column Indicates a problem deleting the specified column

Find and replace cells in Excel worksheet


Finds text and replaces it with another in the active worksheet 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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action

Search mode N/A Find, Find and Find The mode to search
replace with

All matches N/A Boolean value False Whether to


find/replace text in all
the matching cells
found or in the first
matching cell only

Text to find No Text value The text to find in the


worksheet

Text to replace with No Text value The text used to


replace the matching
cells

Match case N/A Boolean value False Whether to search


for case-sensitive
data

Match entire cell N/A Boolean value False Whether to search


contents for cells that contain
just the specified text

Search by N/A Rows, Columns Rows The order in which to


search for the 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

FoundColumnIndex Numeric value The index of the column found

FoundRowIndex Numeric value The index of the row found

Cells Datatable The list of cells matching the criteria

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to find and/or replace text Indicates a problem finding and/or replacing the specified
text

Get first free row on column from Excel worksheet


Retrieve the first free row, given the column of the active worksheet
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

Excel instance No Excel instance Specify the Excel


instance. This variable
must have been
previously specified
in a Launch Excel
action

Column No Text value The index or letter


that identifies the
column. Column
numbering starts
from index 1

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

FirstFreeRowOnColumn Numeric value The numeric value of the given


column's first fully empty row

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

Launch Excel N/A with a blank with a blank Specify whether to


document, and open document open a New Excel
the following document, or an
document existing one

Document path No File The full path of the


existing Excel
document to open

Make instance visible N/A Boolean value True Specify whether to


make the Excel
window visible or
hide it

Password Yes Encrypted value The password on the


Excel document, if it
is password
protected

Open as ReadOnly N/A Boolean value False Specify whether to


open the stored
document in read-
only mode 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

Load add-ins and N/A Boolean value False Specify whether to


macros load add-ins and
macros into the new
Excel instance

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

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

EXC EP T IO N DESC RIP T IO N

Failed to launch Excel Indicates a problem launching an Excel instance

Failed to open Excel document Indicates a problem opening the specified Excel document

Attach to running Excel


Attaches to an Excel document that's already open
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

Document name No File The name or the


path of the Excel
document to attach
to

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

ExcelInstance Excel instance The Excel instance this action has


attached to for use with later Excel
actions

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Read from Excel worksheet


Reads the value of a cell or a range of cells from the active worksheet 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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action

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

Start column No Text value The cell column


(single cell's value) or
first column as a
numeric value or a
letter

Start row No Numeric value The cell row (single


cell's Value) or first
row number

End column No Text value The last column as a


numeric value or a
letter

End row No Numeric value The last row number

Get cell contents as N/A Boolean value False Specify whether to


text retrieve the content
of the cell(s) purely as
text or as the closest
matching type such
as Date Time for
dates, Numeric for
numbers and so on

First line of range N/A Boolean value False Specify whether to


contains column consider the first row
names as column names. In
this case, the names
won't be read as data
into the table and
later actions can
search the data by
column names

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

ExcelData General value The value of the single cell

ExcelData Datatable The value of the range of cells as a


DataTable
Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to read cell value(s) Indicates a problem reading the value(s) of the specified
Excel cell(s)

Get active cell on Excel worksheet


Get the active cell in the active worksheet of the Excel document
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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action

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

ActiveCellColumnIndex Numeric value The numeric value of the active cell's


column

ActiveCellRowIndex Numeric value The numeric value of the active cell's


row

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

Excel instance No Excel instance The Excel instance to


save. This variable
must have been
previously specified
in a Launch Excel
action

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)

Document path No File The full path to save


the document as

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

EXC EP T IO N DESC RIP T IO N

Failed to save Excel document Indicates a problem saving the Excel document

Write to Excel worksheet


Writes a value into a cell or a range of cells 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

Excel instance No Excel instance The Excel instance to


work with. This
variable must have
been previously
specified in a Launch
Excel action
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

Value to write No General value Enter the text,


number or variable
to insert. If the
variable contains a
table, it will fill in cells
to the right and
below writing over
other cell data if need
be and a list will fill in
cells below

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

Column No Text value The column number


or letter for the cell
to write to

Row No Numeric value The row of the cell to


write to. The
numbering starts
from 1, meaning that
the index of the fist
worksheet is 1, of the
second is 2 etc.

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

EXC EP T IO N DESC RIP T IO N

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

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

Excel instance No Excel instance The Excel instance to


close. This variable
must have been
previously specified
in a Launch Excel
action

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)

Document path No File The full path of the


document

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

EXC EP T IO N DESC RIP T IO N

Failed to save Excel document Indicates a problem saving the Excel document

Failed to close Excel instance Indicates a problem closing the Excel instance

Set active Excel worksheet


Activates a specific worksheet 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

Excel instance No Excel instance Specify the Excel


instance. This variable
must have been
previously specified
in a Launch Excel
action
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

Activate worksheet N/A Index, Name Name Specify whether to


with find the worksheet
by name or index

Worksheet index No Numeric value The index number of


the worksheet to
activate. The
numbering starts
from 1, meaning that
the index of the fist
worksheet is 1, of the
second is 2, etc.

Worksheet name No Text value The name of the


worksheet to activate

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

EXC EP T IO N DESC RIP T IO N

Can't find worksheet Indicates that a worksheet with the specified name could not
be found

Failed to activate worksheet Indicates a problem activating the specified worksheet

Add new worksheet


Adds a new worksheet to 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

Excel instance No Excel instance Specify the Excel


instance. This variable
must have been
previously specified
in a Launch Excel
action

New worksheet name No Text value Specify the name of


the new worksheet

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

This action doesn't produce any variables


Ex c e p t i o n s
EXC EP T IO N DESC RIP T IO N

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

Failed to add worksheet Indicates a problem adding the worksheet

Get first free column/row from Excel worksheet


Retrieves the first free column and/or row of the active worksheet. This is useful for adding new data into a
worksheet that already has data in it
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

Excel instance No Excel instance Specify The Excel


instance. This variable
must have been
previously specified
in a Launch Excel
action

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

FirstFreeColumn Numeric value The numeric value of the first fully


empty column. For example, if column
F is the first empty column, it will be
stored as '6'

FirstFreeRow Numeric value The numeric value of the first fully


empty row. For example, if row 7 is the
first empty row, it will be stored as '7'

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to retrieve first free column/row Indicates a problem retrieving the first free column/row of an
Excel instance

Get column name on Excel worksheet


Gets the name of the column
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

Column number No Numeric value The column number

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

ColumnName Text value The name of the column

Ex c e p t i o n s

This action doesn't include any exceptions


Database
1/15/2022 • 2 minutes to read • Edit Online

Connect to databases and execute SQL statements

Open SQL connection

Execute SQL statement

Close SQL connection

Getting started with database actions


To connect to a database, use the Open SQL connection action. The Connection string field specifies all
information that is necessary to connect to a database, such as the driver, the database, server names, and the
username and password.
Connect to an Excel Database:
Example of a connection string used to connect to an Excel database connection string that one can use is:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myExcelFile.xlsx;Extended Properties="Excel 12.0


Xml;HDR=YES";

Example of a connection string used to connect to an Access database:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb; Persist Security Info=False;

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

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


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

Connection string No Text value The connection string


to use to connect to
the database

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

SQLConnection SQL connection A handle for the new SQL connection

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Execute SQL statement


Connect to a database and execute a SQL statement
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

Get connection by N/A Connection string, SQL connection Specifies whether to


SQL connection variable create a new
variable connection from a
given connection
string or select an
already open
connection

SQL connection No SQL connection The handle for the


new SQL connection

Connection string No Text value The connection string


to use to connect to
the database

SQL statement No Text value The SQL statement


to execute to the
database

Timeout Yes Numeric value 30 The maximum


amount of time to
wait for a result from
the database

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

QueryResult Datatable The result from the database in the


form of a data table, with rows and
columns
Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Close SQL connection


Close an open connection to a database
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

SQL connection No SQL connection The handle for the


new SQL connection

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

This action doesn't include any exceptions


Configuring the connection string
SQL actions require a database connection. To connect to a database, enter the string manually or as a variable.
When the action connects to a database, it stores the connection into a SQL connection variable.
1. 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.
2. Once you access the wizard, select the correct driver for the database under the Provider tab.

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

Automate sending, receiving and managing emails through imap/smtp

Retrieve email messages

Process email messages

Send email

Getting started with email actions


Before deploying any email action, you have to configure the server that will handle the respective request. The
Retrieve email messages and Process email messages actions require an IMAP server, while the Send
email action requires an SMTP server.
To retrieve emails that meet specific criteria from your mailbox, use the Retrieve email messages action. In
the example below, the filter has been configured to retrieve only unread messages from the inbox. The filter
further specifies that the email should be from b.friday, the subject contains the word "Report" and the body
contains "Tuesday". Attachments from any retrieved emails which match these criteria will be saved locally.

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

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

IMAP server No Text value The IMAP server


address (e.g.
imap.gmail.com)

Port Yes Numeric value 993 The port to use for


the IMAP server.
Usually this is port
993
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

Enable SSL N/A Boolean value True Specify whether to


use a secure
connection to
communicate with
the IMAP Server

User name No Text value The username of the


email account to
access

Password No Encrypted value The password of the


email account to
access

Accept untrusted N/A Boolean value False Specify whether


certificates untrusted certificates
will be accepted

Mail folder No Text value The name of the


IMAP mail-folder
(also known as
'mailBox') to retrieve
messages from

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

Mark As read N/A Boolean value True Specify whether to


mark as read the
retrieved messages
or leave them as is

"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

"To" field contains Yes Text value The full email


address(es) of the
recipient(s)
(separated by space if
more than one) for
the messages that
will be retrieved.
Leave this attribute
blank to retrieve all
messages regardless
of the recipient(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

"Subject" contains Yes Text value The key phrase to


find within the email
subject. Leave this
attribute blank to
retrieve all emails
regardless of their
subject

'Body' contains Yes Text value The key phrase to


find within the email
body. Leave this
attribute blank to
retrieve all emails
regardless of their
content

Save attachments N/A Save attachments, Do not save Specify whether to


Do not save attachments save the attachments
attachments of the emails
retrieved or not

Save attachments No Folder The folder to save


into the attachments

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

RetrievedEmails List of Mail Messages The retrieved emails for later


processing as a list of mail message
objects

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Failed to save attachments Indicates a problem saving the attachments

Failed to retrieve emails Indicates a problem retrieving the emails

Process email messages


Moves, deletes or marks as unread an email (or a list of emails) retrieved by a Retrieve emails action
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


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

IMAP server No Text value The IMAP server


address (e.g.
imap.gmail.com)

Port Yes Numeric value 993 The port to use for


the IMAP server.
Usually this is port
993

Enable SSL N/A Boolean value True Specify whether to


use a secure
connection to
communicate with
the IMAP server

Username No Text value The username of the


email account to
access

Password No Encrypted value The password of the


email account to
access

Accept Untrusted N/A Boolean value False Specify whether


Certificates untrusted certificates
will be accepted

Email(s) to process No List of Mail Messages The email or list of


emails to process.
This should be a
variable populated by
a Retrieve emails
action

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

Mail folder No Text value The name of the mail


folder to which the
emails will be moved

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

EXC EP T IO N DESC RIP T IO N

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

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

SMTP server No Text value The SMTP server


address

Server port Yes Numeric value 25 The port to use for


the server. Usually
this is port 25

Enable SSL N/A Boolean value False Specify whether or


not to communicate
with the server
through a secure
connection

SMTP Server needs N/A Boolean value False Specify whether the
authentication server requires
authentication

User name No Text value The username of the


email account to
access

Password No Encrypted value The password of the


email account to
access

Accept untrusted N/A Boolean value False Specify whether


certificates untrusted certificates
will be accepted

From No Text value The sender's email


address

Sender display name Yes Text value The sender's display


name

To No Text value The email(s) of the


recipient(s). If more
than one email is
entered, the list of
addresses should be
separated by semi-
colons
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

CC Yes Text value The email(s) of the Cc


recipient(s). If more
than one email is
entered, the list of
addresses should be
separated by semi-
colons

BCC Yes Text value The email(s) of the


BCC (hidden)
recipient(s). If more
than one email is
entered, the list of
addresses should be
separated by semi-
colons

Subject Yes Text value The subject of the


email

Body Yes Text value The body of the


email

Body Is HTML N/A Boolean value False Specify whether the


body of the email will
be interpreted as
HTML coding

Attachment(s) Yes List of Files The full path of any


attachment(s), or a
file or a list of files.
Multiple files should
be enclosed in
double quotes (") and
separated by a space
character

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

EXC EP T IO N DESC RIP T IO N

Invalid email address Indicates that the specified email address is invalid

Failed to send email Indicates a problem sending the email

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

Automate sending, receiving, and managing emails through Exchange

Connect to Exchange server

Retrieve Exchange email messages

Send Exchange email message

Process Exchange email messages

Getting started with Exchange actions


The Exchange group of actions allows users to connect to an exchange server of their choice, and manage their
correspondence.
Exchange actions require a connection to an Exchange server. Establish the connection by using the Connect to
Exchange ser ver action. In the following figure, the exchange server address has been entered manually,
rather than using auto discovery. The credetials are set to user defined, so the domain, username and password
are entered manually as well. In the Advanced section, a timeout has been set. This allows the action to return
an error if a connection hasn't been established within the specified time frame.

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

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

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

Connection type N/A Auto discovery, Auto discovery Specifies how to


Exchange server connect to the
address Exchange server

Server address No Text value The Exchange server


address

Email address No Text value The Exchange


account email
address

Credentials N/A Exchange default, Exchange default Specifies the way to


User defined provide the user's
Exchange credentials

Domain Yes Text value The Exchange


account domain. To
extract the account
domain from the
username, left this
field empty

Username No Text value The Exchange


account username

Password No Encrypted value The Exchange


account password

Timeout Yes Numeric value 30 The time in seconds


to wait for the
connection to be
established before
the action fails

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

ExchangeConnection Exchange connection The specific Exchange connection for


use with later Exchange actions

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to connect to the Exchange server Indicates a problem connecting to the Exchange server

Retrieve Exchange email messages


Retrieve email messages from the specified Exchange server
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

Exchange connection No Exchange connection The Exchange


connection. Create
an Exchange
connection with the
'Connect to Exchange
server' action

Mailbox type N/A Personal, Shared Personal The type of the


mailbox to retrieve
email messages from

Shared mailbox No Text value The address of the


address shared mailbox to
retrieve email
messages from

Retrieve email N/A Boolean value False Specifies whether to


messages from retrieve email
custom folder messages from a
custom folder or a
predefined Exchange
folder

Exchange folder N/A Inbox, Deleted items, Inbox A predefined


Drafts, Outbox, Sent Exchange folder to
items, Junk email retrieve email
messages from

Mail folder Yes Text value Inbox The name or path


(e.g. folder1\folder2)
of the mail-folder to
retrieve email
messages from

Retrieve N/A All email messages, Unread email Specifies whether to


Unread email messages only retrieve all email
messages only, Read messages in the
email messages only folder or only the
unread ones

Mark as read N/A Boolean value True Specifies whether to


mark as read the
retrieved email
messages or leave
them as is

From contains Yes Text value The full email address


of the sender to
retrieve messages
from. Leave this
attribute blank to
retrieve all messages
regardless of the
sender
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

To contains Yes Text value The full email


address(es) of the
recipient(s)
(separated by space if
more than one) for
the email messages
to retrieve. Leave this
attribute blank to
retrieve all email
messages regardless
of the recipient(s)

Subject contains Yes Text value The key phrase to


find within the email
subject. Leave this
attribute blank to
retrieve all email
messages regardless
of their subject

Body contains Yes Text value The key phrase to


find within the email
body. Leave this
attribute blank to
retrieve all email
messages regardless
of their content

Attachments N/A Save attachments, Do not save Specifies whether to


Do not save attachments save the attachments
attachments of the email
messages retrieved
or not

Save attachments No Folder The folder to save


into the attachments into

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

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

EXC EP T IO N DESC RIP T IO N

Failed to save attachments Indicates a problem saving the attachments

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

Send Exchange email message


Create and send a new email message
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

Exchange connection No Exchange connection The Exchange


connection. Create
an Exchange
connection with the
'Connect to Exchange
server' action

From No Text value The sender's email


address

Sender display name Yes Text value The sender's display


name

To No Text value The email(s) of the


recipient(s). To enter
more than one email,
separate the list of
addresses by semi-
colons

CC Yes Text value The email(s) of the


CC recipient(s). To
enter more than one
email, separate the
list of addresses by
semi-colons

BCC Yes Text value The email(s) of the


BCC (hidden)
recipient(s). To enter
more than one email,
separate the list of
addresses by semi-
colons

Subject Yes Text value The subject of the


email

Body Yes Text value The text of the body

Body is HTML N/A Boolean value False Specifies whether to


interpret the body of
the email as HTML
coding

Attachment(s) Yes List of Files The full path of any


attachment(s).
Enclose multiple files
in double quotes (")
and separate them
by a space character

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
EXC EP T IO N DESC RIP T IO N

Attachment not found Indicates that the specified attachment(s) don't exist

Failed to send email Indicates a problem sending the email

Process Exchange email messages


Move, delete or mark as unread an email message (or a list of email messages)
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

Exchange connection No Exchange connection The Exchange


connection. Create
an Exchange
connection with the
'Connect to Exchange
server' action

Email message(s) to No List of Exchange mail The email message(s)


process messages to process. Use a
variable populated by
a 'Retrieve Exchange
email messages'
action

Operation N/A Delete email Move email Specifies which


messages from messages to mail operation to perform
server, Mark email folder on the specified email
messages as unread, messages
Move email
messages to mail
folder

Mailbox type N/A Personal, Shared Personal The type of the


mailbox to retrieve
email messages from

Shared mailbox No Text value The address of the


address shared mailbox to
retrieve email
messages from

Move to custom N/A Boolean value False Specifies whether to


folder move email
messages to a
custom folder or a
predefined Exchange
folder

Exchange folder N/A Inbox, Deleted items, Inbox A predefined


Drafts, Outbox, Sent Exchange folder to
items, Junk email move email
messages from
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

Mail folder Yes Text value Inbox The name or path


(e.g. folder1\folder2)
of the mail-folder to
move email
messages to

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

EXC EP T IO N DESC RIP T IO N

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

Automate sending, receiving, and managing emails of an Outlook account

Launch Outlook

Retrieve email messages from Outlook

Send email through Outlook

Process email messages in Outlook

Save Outlook email messages

Respond to Outlook mail message

Close Outlook

Getting started with Outlook actions


For PCs with an installation of Outlook, users can manage the mailboxes of their accounts with the Outlook
group of actions.
After creating an Outlook instance with the Launch Outlook action, use the Retrieve email messages from
Outlook action to get the messages from a specified account and mail folder. In the figure below, the action
retrieves all the email messages from the folder Tickets which is in a subfolder of the Inbox. The filters have
been configured to search for email messages from a specific address, further specifying the contents of the
subject with a previously defined variable. Any attachments are also saved.

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

This action doesn't require any input


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

OutlookInstance Outlook instance The specific Outlook instance for use


with later Outlook actions

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to launch Outlook Indicates a problem launching Outlook

Retrieve email messages from Outlook


Retrieve email messages from an Outlook account
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

Outlook instance No Outlook instance The Outlook instance


to work with. Specify
this variable in a
'Launch Outlook'
action

Account No Text value The name of the


Outlook account
(data file name) to
work with

Mail folder No Text value The name of the


folder to retrieve
messages from. Enter
the full folder path
for subfolders (ex:
Inbox\Work)

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

Mark as read N/A Boolean value True Specifies whether to


mark as read all the
unread messages
retrieved

From contains Yes Text value The full email address


of the sender whose
messages to retrieve.
Leave this attribute
blank to retrieve all
messages regardless
of the sender
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

To contains Yes Text value The full email


address(es) of the
recipient(s)
(separated by space
or semicolon if more
than one) for the
messages to retrieve.
Leave this attribute
blank to retrieve all
messages regardless
of the recipient(s)

Subject contains Yes Text value The key phrase to


find within the email
subject. Leave this
attribute blank to
retrieve all email
messages regardless
of their subject

Body contains Yes Text value The key phrase to


find within the email
body. Leave this
attribute blank to
retrieve all email
messages regardless
of their content

Attachments N/A Save attachments, Do not save Specifies whether to


Do not save attachments save the attachments
attachments of the email
messages retrieved
or not

Save attachments No Folder The path to save the


into attachments of the
retrieved emails into

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

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

EXC EP T IO N DESC RIP T IO N

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

Send email through Outlook


Create and send a new email message through Outlook
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

Outlook instance No Outlook instance The Outlook instance


to work with. Specify
this variable in a
'Launch Outlook'
action

Account No Text value The name of the


Outlook account
(data file name) to
work with

Send email from N/A Account, Other Account Specifies whether to


mailbox send the email using
the specified account
or a different one, for
example from a
shared mailbox

Send from No Text value The name of the


Outlook account to
send the email from;
for example, a shared
mailbox.

To No Text value The email address(es)


of the recipient(s). To
enter more than one
email address,
separate the list of
addresses by spaces
or semicolons

CC Yes Text value The email address(es)


of the CC recipient(s).
To enter more than
one email address,
separate the list of
addresses by spaces
or semicolons

BCC Yes Text value The email address(es)


of the BCC (hidden)
recipient(s). To enter
more than one email
address, separate the
list of addresses by
spaces or semicolons
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

Subject Yes Text value The subject of the


email

Body Yes Text value The text of the body

Body is HTML N/A Boolean value False Specifies whether to


interpret the body of
the email as HTML
coding

Attachment(s) Yes List of Files The full path of any


attachment(s).
Enclose multiple files
in double quotes (")
and separate them
by a space character

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

EXC EP T IO N DESC RIP T IO N

Failed to find Outlook account Indicates that the specified Outlook account doesn't exist

Failed to send email Indicates a problem sending the email

Attachment not found Indicates that the specified attachment(s) don't exist

Process email messages in Outlook


Move or deletes an email (or a list of email messages) retrieved by a 'Retrieve emails from Outlook' action.
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

Outlook instance No Outlook instance The Outlook instance


to work with. Specify
this variable in a
'Launch Outlook'
action

Account No Text value The name of the


Outlook account
(data file name) to
work with

Email messages to No List of Outlook mail The email message(s)


process messages to process. Use a
variable populated by
a 'Retrieve email
messages from
Outlook' action
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

Operation N/A Delete email Move email Specifies which


messages, Move messages to mail operation to perform
email messages to fodler on the specified email
mail fodler, Mark as messages
unread

Mail folder No Text value The name of the


folder to retrieve
messages from. Enter
the full folder path
for subfolders (e.g.,
Inbox\Work)

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

EXC EP T IO N DESC RIP T IO N

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 Outlook email messages


Save Outlook email messages given an account
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

Outlook instance No Outlook instance The Outlook instance


to work with. Specify
this variable in a
'Launch Outlook'
action

Account No Text value The name of the


Outlook account
(data file name) to
work with

Email message(s) to No List of Outlook mail The email message(s)


save messages to save. Use a
variable populated by
a 'Retrieve email
messages from
Outlook' action
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

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)

File name N/A Default, Custom Default Specifies whether to


save the messages
using the default
name (subject) or
provide another

Save as No Text value Specifies the custom


name for messages'
name which differs
from message to
message by an
automatically added
suffix

Save email No Folder The folder to save


message(s) to the messages to

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

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

EXC EP T IO N DESC RIP T IO N

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)

Respond to Outlook mail message


Respond to an Outlook message, by replying, replying to all or forwarding it
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


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

Outlook instance No Outlook instance The Outlook instance


to work with. Specify
this variable in a
'Launch Outlook'
action

Account No Text value The name of the


Outlook account
(data file name) to
work with

Mail message No Outlook mail The mail message to


message act upon. Use a
variable populated by
a 'Retrieve email
messages from
Outlook' action

Response action N/A Reply, Reply all, Reply Specifies whether to


Forward reply (to sender or
all) with a message or
forward the received
message

To No Text value The email address(es)


of the recipient(s). To
enter more than one
email address,
separate the list of
addresses by spaces
or semicolons

CC Yes Text value The email address(es)


of the CC recipient(s).
To enter more than
one email address,
separate the list of
addresses by spaces
or semicolons

BCC Yes Text value The email address(es)


of the BCC (hidden)
recipient(s). To enter
more than one email
address, separate the
list of addresses by
spaces or semicolons

Body Yes Text value The text of the body

Attachment(s) Yes List of Files The full path of any


attachment(s).
Enclose multiple files
in double quotes (")
and separate them
by a space character

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

EXC EP T IO N DESC RIP T IO N

Failed to find Outlook account Indicates that the specified Outlook account doesn't exist

Failed to send email Indicates a problem sending the email

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

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

Outlook instance No Outlook instance The Outlook instance


to work with. This
variable is specified in
a 'Launch Outlook'
action

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

EXC EP T IO N DESC RIP T IO N

Failed to close Outlook instance Indicates a problem closing the Outlook instance
Message boxes
1/15/2022 • 8 minutes to read • Edit Online

Interact with users and request input through message boxes

Display message

Display input dialog

Display select date dialog

Display select from list dialog

Display select file dialog

Display select folder dialog

Getting started with message boxes


Message boxes can be used in flows to interact with a user to either request input, or to provide output of flow
data.
To display a message to the user while the process runs, use the Display message action. In the figure below,
this action will show a message box which informs the user that parsing is complete, and provide two
options(Yes/No ) whether to parse an additional file. The message box has been set to display the question icon,
and to always be on top of other windows. The user's selection is stored in a variable.

The resulting message looks like the following figure:

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 boxes actions


Display message
Displays a message box
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

Message box title Yes Text value The text to use as the
message box title

Message to display Yes Text value The text to display as


the actual message

Message box icon N/A None, Information, None The icon to display
Question, Warning, with the message
Error box

Message box buttons N/A OK, OK - Cancel, Yes OK The buttons to


- No, Yes - No - display on the
Cancel, Abort - Retry message box
- Ignore, Retry -
Cancel

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

Timeout Yes Numeric value 3 The seconds to pause


the automation while
waiting for input,
until continuing
automatically

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

ButtonPressed Text value The text of the button pressed

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Display input dialog


Displays a dialog box that prompts the user to enter text
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

Input dialog title Yes Text value The dialog title

Input dialog message Yes Text value The dialog message

Default value Yes Text value Specify the text to


display by default. If
the user wishes to
change this, they can
type over it.
Otherwise, the
default text will be
used

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

A RGUM EN T TYPE DESC RIP T IO N

UserInput Text value The text entered by the user, or the


default text

ButtonPressed Text value The text of the button pressed. The


user will automatically be given the
choice of OK or Cancel

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

Dialog title Yes Text value The dialog title

Dialog message Yes Text value The dialog message

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

Default value Yes Datetime The default value for


the date

Default value for Yes Datetime The default value for


second date the end date in a
range

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

A RGUM EN T TYPE DESC RIP T IO N

SelectedDate Datetime The date entered by the user or the


default date

SecondSelectedDate Datetime The second date entered by the user


or that default date

ButtonPressed Text value The text of the button pressed by the


user. The user will automatically be
given the choice of OK or Cancel

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Display select from list dialog


Displays a dialog box with options that lets the user select from a list
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

Dialog title Yes Text value The dialog title

Dialog message Yes Text value The dialog message

List to choose from No General value The list to display as


a drop-down menu
for the user to
choose from

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

Limit to list N/A Boolean value True Whether to allow the


user to enter their
own answer outside
of the list being
displayed

Allow empty N/A Boolean value False Allow the user to not
selection select anything,
creating an empty
selected item output

Allow multiple N/A Boolean value False Allow the user to


selection select more than one
choice. This means
that the selected
item and selected
index variables will
hold a list of items

Preselect items N/A Boolean value False Specify whether the


starting with a + sign items with a
prepended '+' sign
will appear
automatically
preselected

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

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

SelectedIndex Numeric value The index number of the item selected


from the list. This allows the user to
use the item number instead of the full
text of the user's choice
A RGUM EN T TYPE DESC RIP T IO N

SelectedIndexes List of Numeric values The index number of the items


selected from the list. This allows the
user to use the item number instead of
the full text of the user's choice

ButtonPressed Text value The name of the button pressed by


the user (OK or Cancel)

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Display select file dialog


Displays the select file dialog and prompts the user to select one or more files
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

Dialog title Yes Text value The dialog title

Initial folder Yes Folder The initial folder to


open when browsing
for a file. This is
where the select file
dialog action will
start the user looking
for the file(s)

File filter Yes Text value A filter to limit the


files retrieved. This
allows wild cards, for
example ".txt" or
"document?.doc"
(without the quotes).
To allow the user to
choose from multiple
file filters, separate
the choices with a
semi-colon, for
example ".txt;*.exe"

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

A RGUM EN T TYPE DESC RIP T IO N

SelectedFile File The file that will be selected through


the dialog

SelectedFiles List of Files The file(s) selected

ButtonPressed Text value The text of the button pressed. The


user will automatically be given the
choice of Open or Cancel

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Display select folder dialog


Displays the select folder dialog and prompts the user to select 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

Dialog description Yes Text value The description of


the select folder
dialog For example,
"Please select the
folder into which you
wish to copy the
files"

Initial folder Yes Folder The initial folder to


open. This will be the
default folder unless
the user picks a new
one

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

SelectedFolder Folder The selected folder

ButtonPressed Text value The text of the button pressed. The


user will automatically be given the
choice of OK or Cancel

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Take control of the mouse and keyboard

Block Input

Get mouse position

Move mouse

Move mouse to image

Move mouse to text on screen (OCR)

Send mouse click

Send keys

Press/release key

Set key state

Wait for mouse

Get keyboard identifier

Wait for shortcut key

Getting started with mouse and keyboard actions


Simulate using the keyboard to enter text or other key commands with the Send Keys action. Use the Inser t
special key button to insert keys such as the arrow keys, Caps Lock or keys from the numeric keypad, and
Insert modifier to send keys such as Shift and Control. In the example below, a signature is added to an email
message, starting with two line breaks. At the end of the text, the action sends the Ctrl+A and Ctrl+C commands,
to select all and copy, to use the contents of the entire email text from the clipboard in a subsequent action.
NOTE
To use a key as a modifier, use the curly brackets notation for both keys: e.g. for Ctrl + A, use {Control}({A})

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

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

Block it N/A Boolean value True Specify whether to


block or unblock
mouse and keyboard
input

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

EXC EP T IO N DESC RIP T IO N

Can't block/unblock user input in non interactive mode Indicates a problem blocking/unblocking input in non-
interactive mode

Failed to block/unblock input Indicates a problem blocking/unblocking input

Get mouse position


Retrieves the current position of the mouse cursor on the screen in pixel coordinates
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

Relative to N/A Screen, Foreground Screen Specify whether to


window retrieve the mouse
position in screen
coordinates or
relative to the top
left corner of the
active window

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

MousePosX Numeric value The horizontal (X) value of the mouse


position

MousePosY Numeric value The vertical (Y) value of the mouse


position

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

Position X No Numeric value The horizontal (X)


value of the position
to send the mouse to

Position Y No Numeric value The vertical (Y) value


of the position to
send the mouse to
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

Relative to N/A Screen, Active Screen Specify whether the


window, Current new mouse position
mouse position will be relative to the
top left corner of the
screen, the foremost
window, or the
current mouse
position

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

This action doesn't produce any variables


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Can't move mouse in non interactive mode Indicates a problem moving the mouse in non-interactive
mode

Failed to move mouse Indicates a problem moving the mouse

Move mouse to image


Moves the mouse over an image found on screen or on the 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

Image to move No List of Image The list of Images to


mouse to move the mouse to

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

X1 Yes Numeric value The starting X of the


subregion to search
in

Y1 Yes Numeric value The starting Y of the


subregion to search
in

X2 Yes Numeric value The ending X of the


subregion to search
in

Y2 Yes Numeric value The ending Y of the


subregion to search
in

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

Offset X Yes Text value 0 The pixels to offset


the mouse from the
position to the right

Offset Y Yes Text value 0 The pixels to offset


the mouse from the
position down

Tolerance Yes Numeric value 10 Specify how much


the specified image
can differ from the
originally chosen
image

Mouse movement N/A Instant, With Instant Specify the style of


style animation (low movement in which
speed), With the mouse will move
animation (normal from its previous
speed), With position to the
animation (high beginning of the
speed) recorded route (or to
its final position)

Occurence Yes Numeric value 1 The occurence of the


image found to move
the mouse to

Fail timeout Yes Numeric value 0 The fail timeout in


seconds
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

Send a click after N/A Boolean value False Specify whether to


moving mouse send a click after the
mouse is positioned
over the image

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

Seconds before click Yes Numeric value 0 The number of


seconds to wait
before sending the
click

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

X Numeric value The X coordinate of the point where


the image is found on the screen. If
the image is being searched for on the
foreground window, the coordinate
returned is relative to the top left
corner of the window

Y Numeric value The Y coordinate of the point where


the image is found on the screen. If
the image is being searched for on the
foreground window, the coordinate
returned is relative to the top left
corner of the window

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Failed to move mouse Indicates a problem moving the mouse

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

Move mouse to text on screen (OCR )


Moves the mouse over a text found on the screen or on the foreground window using OCR
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

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.

OCR engine variable No OCREngineObject The OCR engine to


search for the text
with

Text to find No Text value The text to move the


mouse over

Is regular expression N/A Boolean value False Whether to use a


regular expression to
look for the text on
screen

Occurence Yes Numeric value 1 A positive number


that will be used as
the occurence of the
input text on screen

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

Image(s) No List of Image The image(s)


specifying the
subregion (relative to
the top left corner of
the image) to scan
for the supplied text

X1 Yes Numeric value The start X


coordinate of the
subregion to scan for
the supplied 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

Tolerance Yes Numeric value 10 Specify how much


the image(s)
searched for can
differ from the
originally chosen
image

Y1 Yes Numeric value The start Y


coordinate of the
subregion to scan for
the supplied text

X1 Yes Numeric value The start X


coordinate of the
subregion relative to
the specified image
to scan for the
supplied text

X2 Yes Numeric value The end X coordinate


of the subregion to
scan for the supplied
text

Y1 Yes Numeric value The start Y


coordinate of the
subregion relative to
the specified image
to scan for the
supplied text

Y2 Yes Numeric value The end Y coordinate


of the subregion to
scan for the supplied
text

X2 Yes Numeric value The end X coordinate


of the subregion
relative to the
specified image to
scan for the supplied
text

Y2 Yes Numeric value The end Y coordinate


of the subregion
relative to the
specified image to
scan for the supplied
text

Move mouse from N/A Instant, With Instant The style of


previous position animation (low movement in which
speed), With the mouse will move
animation (normal from its previous
speed), With position to its final
animation (high position
speed)
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

Windows OCR N/A Chinese (Simplified), English The language of the


language Chinese (Traditional), text that the
Czech, Danish, Dutch, Windows OCR
English, Finnish, engine detects
French, German,
Greek, Hungarian,
Italian, Japanese,
Korean, Norwegian,
Polish, Portuguese,
Romanian, Russian,
Serbian (Cyrillic),
Serbian (Latin),
Slovak, Spanish,
Swedish, Turkish

Use other language N/A Boolean value False Specifies whether to


use a language not
given in the
'Tesseract language'
field

Tesseract language N/A English, German, English The language of the


Spanish, French, text that the
Italian Tesseract engine
detects

Language No Text value The Tesseract


abbreviation abbreviation of the
language to use. For
example, if the data is
'eng.traineddata', set
this to 'eng'

Language data path No Text value The path of the


folder that holds the
specified language's
Tesseract data

Image width No Numeric value 1 The width multiplier


multiplier of the image

Image height No Numeric value 1 The height multiplier


multiplier of the image

Wait for text to N/A Boolean value False Specify whether to


appear wait if the text isn't
found on the screen
or foreground
window

Fail if text doesn't Yes Numeric value 10 The number of


appear within seconds to wait for
the supplied text to
appear
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

Send a click after N/A Boolean value False Specify whether to


moving mouse send a click after the
mouse is positioned
over the text

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

Wait before clicking Yes Numeric value 1 The number of


for seconds to wait
before clicking

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

Offset X Yes Text value 0 Offset the mouse


from the position by
this many pixels to
the right

Offset Y Yes Text value 0 Offset the mouse


from the position by
this many pixels
down

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

A RGUM EN T TYPE DESC RIP T IO N

LocationOfTextFoundX Numeric value The X coordinate of the point where


the text is found on the screen. If the
text is searched for in the foreground
window, this is relative to the top left
corner of the window

LocationOfTextFoundY Numeric value The Y coordinate of the point where


the text is found on the screen. If the
text is searched for in the foreground
window this is relative to the top left
corner of the window
A RGUM EN T TYPE DESC RIP T IO N

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

EXC EP T IO N DESC RIP T IO N

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

Failed to move mouse Indicates a problem moving the mouse

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

Send mouse click


Sends a mouse click event
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

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

Wait Yes Numeric value 0 The time to delay


before sending the
mouse event in
1/1000 of a second

Move mouse N/A Boolean value False Move mouse


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

X No Numeric value The horizontal (X)


position of the
mouse in pixel
coordinates

Y No Numeric value The vertical (Y)


position of the
mouse in pixel
coordinates

Relative to N/A Screen, Active Screen Specify whether the


window, Current new mouse position
mouse position will be relative to the
top left corner of the
screen, the foremost
window, or the
current mouse
position

Mouse movement N/A Instant, With Instant The style of


style animation (low movement in which
speed), With the mouse will move
animation (normal from its previous
speed), With position to the
animation (high beginning of the
speed) recorded route (or to
its final position)

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

EXC EP T IO N DESC RIP T IO N

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

Failed to send mouse click Indicates a problem sending a mouse click

Send keys
Sends keys to the application that is currently active
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

Send keys to N/A Foreground window, Foreground window Specify whether to


By UI element, By send the keys to the
window foreground window
instance/handle, By or to a UI element or
title and/or class to a window instance
or a combination of
window title/class
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

Text to send No Encrypted value The text to send to


the application

Delay between Yes Numeric value 10 Specify the delay in


keystrokes milliseconds between
sending keystrokes
to avoid input errors

Send Text as N/A Boolean value False Emulate the actual


hardware keys keystrokes on
keyboard when
sending whole Text

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

EXC EP T IO N DESC RIP T IO N

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

Failed to send keystrokes Indicates a problem sending keystrokes

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

Buttons LButton, RButton, Cancel, MButton, XButton1, XButton2

Keyboard Control Back, Tab, LineFeed, Clear, Enter, Return, ShiftKey,


ControlKey,Menu, Pause, CapsLock, Capital, Escape, Space,
Prior, PageUp, PageDown, Next, End, Home, Left, Up, Right,
Down, Select, Print, Execute, Snapshot, PrintScreen, Insert,
Delete, Help

Buttons HangulMode, HanguelMode, KanaMode, JunjaMode,


FinalMode, KanjiMode, HanjaMode

IME keys IMEConvert, IMENonconvert, IMEAccept, IMEAceept,


IMEModeChange
C AT EGO RY K EY S

Browser keys BrowserSearch, BrowserFavorites, BrowserHome

Volume keys VolumeMute, VolumeDown, VolumeUp

Media keys MediaNextTrack, MediaPreviousTrack, MediaStop,


MediaPlayPause

Buttons LaunchMail, SelectMedia, LaunchApplication1,


LaunchApplication2

OEM keys OemSemicolon, Oem1, Oemplus, Oemcomma, OemMinus,


OemPeriod, Oem2, OemQuestion, Oem3, Oemtilde, Oem4,
OemOpenBrackets, OemPipe, Oem5, OemCloseBrackets,
Oem6, OemQuotes, Oem7, Oem8, Oem102, OemBackslash,
OemClear

Buttons ProcessKey, Packet, Attn, Crsel, Exsel, EraseEof, Play, Zoom,


NoName, Pa1

Buttons KeyCodem, Shift, Control, Alt, Modifiers

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

Windows keys LWin, RWin, Apps, Sleep

NumPad keys NumPad0, NumPad1, NumPad2, NumPad3, NumPad4,


NumPad5, NumPad6, NumPad7, NumPad8, NumPad9

Calculation keys Multiply, Add, Separator, Subtract, Decimal, Divide

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

Buttons NumLock, Scroll, LShiftKey, RShiftKey, LControlKey,


RControlKey, LMenu, RMenu, BrowserBack, BrowserForward,
BrowserRefresh, BrowserStop

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

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

Action to perform N/A Press, Release Press Specify whether to


press or release keys
with this action
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

Control N/A Boolean value False Specify whether the


Ctrl key will be
pressed/released or
not

Alt N/A Boolean value False Specify whether the


Alt key will be
pressed/released or
not

Shift N/A Boolean value False Specify whether the


Shift key will be
pressed/released or
not

Win N/A Boolean value False Specify whether the


Windows key will be
pressed/released or
not

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

EXC EP T IO N DESC RIP T IO N

Can't press or release key in non interactive mode Indicates a problem pressing or releasing the key in non-
interactive mode

Set key state


Sets the state (on or off) for the keys Caps Lock, Num Lock or Scroll Lock
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

Key N/A Caps Lock, Num Caps Lock Specify the key to set
Lock, Scroll Lock

State N/A Off, On On Whether to set the


key state to on or off

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

EXC EP T IO N DESC RIP T IO N

Can't set key state in non interactive mode Indicates a problem setting the key state in non interactive
mode

Wait for mouse


Suspends the execution of the flow until the mouse pointer changes, usually to or from the 'wait cursor' or
hourglass
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

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

This action doesn't produce any variables


Ex c e p t i o n s

This action doesn't include any exceptions


Get keyboard identifier
Retrieves the active keyboard identifier from the machine's registry
In p u t P ar am et er s

This action doesn't require any input


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

KeyboardLayoutId Numeric value The registry key of the active keyboard


identifier

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Keyboard identifier wasn’t found Indicates an error while retrieving the keyboard identifier

Wait for shortcut key


Pause the flow run until a specific shortcut key is pressed. Shortcut keys must contain at least one key or a key
and one of (ctrl, alt, shift). Multiple shortcut keys can be defined
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

Shortcut keys N/A Keys combination Ctrl + A Specify the shortcut


keys to wait for.
Shortcut keys must
contain exactly one
key or a key and a
combination of (ctrl,
alt, shift). To add
more than one
shortcut key, select
'New shortcut key'

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

Continue after Yes Numeric value 10 The time in seconds


before continuing the
flow run

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

IndexOfShortcutKeyPressed Numeric value The index of the shortcut key if the


shortcut keys are in a list format.

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Shortcut key failed to register Indicates that a shortcut key failed to register.
Clipboard
1/15/2022 • 2 minutes to read • Edit Online

Set or get data from the clipboard

Get clipboard text

Set clipboard Text

Clear clipboard contents

Getting started with clipboard actions


To manipulate or extract the contents of the clipboard, use the Clipboard action group.
To obtain the contents of the clipboard and store them in a variable, use the Get clipboard text action.
To change the text of the clipboard, use the Set clipboard text action. In the example below, a variable with the
current date and time has been set to the clipboard. The next paste command will paste the value of the variable.

To clear the clipboard, use the Clear clipboard contents action.

Clipboard actions
Get clipboard text
Gets clipboard text
In p u t P ar am et er s

This action doesn't require any input


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

ClipboardText Text value The text stored in the clipboard

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Can't retrieve clipboard contents Indicates a problem retrieving clipboard contents

Set clipboard Text


Sets clipboard text
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

Clipboard text No Text value The text to set to the


clipboard

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

EXC EP T IO N DESC RIP T IO N

Can't set clipboard contents Indicates a problem setting clipboard contents

Clear clipboard contents


Clears clipboard contents
In p u t P ar am et er s

This action doesn't require any input


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

This action doesn't include any exceptions


Text
1/15/2022 • 14 minutes to read • Edit Online

Control and manipulate text

Append line to text

Get subtext

Pad text

Trim text

Change text case

Convert text to number

Convert number to text

Convert text to datetime

Convert datetime to text

Create random text

Join text

Split text

Parse text

Replace text

Escape text for regular expression

Recognize entities in text

Getting started with text actions


To combine a list of text values into a single text value, use the Join text action. Specify a list variable, and
separate the list items by using a delimiter. To separate a single text value into a list of items, use the Split text
action. Specify a text value that has recognizable delimiters by which to separate the list items.
To find a string in a text and replace it with another string or character, use the Replace text action. The
following figure demonstrates a replacement of the string "Product Characteristics" with "Characteristics".

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.

EN T IT Y IN P UT T EXT RET URN ED VA L UES

Date time I'll go back 04th Jan 2019 Value: 1/4/2019 12:00:00 AM
Original text: 04th Jan 2019

Date time Schedule a meeting tonight at 7pm Value: 9/30/2021 7:00:00 PM


Original text: tonight at 7pm

Dimension You weight 200lbs Value: 200


Unit: Pound
Original text: 200lbs

Dimension Α twister roared through an area Value: 10


about ten miles long there Unit: Mile
Original text: ten miles

Temperature Τhe temperature outside is 40 deg Value: 40


celsius Unit: C
Original text: 40 deg celsius

Currency Νet interest income sank 27 percent in Value: 254000000


the quarter to /$ 254 million Unit: Dollar
Original text: $ 254 million

Number range This number is larger than twenty and From: 20


less or equal than thirty five To: 35
Original text: larger than twenty and
less or equal than thirty five
EN T IT Y IN P UT T EXT RET URN ED VA L UES

Number range From 5 to 10 From: 5


To: 10
Original text: From 5 to 10

Number range Less than 4.565 From: 0


To: 4.565
Original text: Less than 4.565

Number A dozen Value: 12


Original text: A dozen

Number Two thirds Value: 0.666666666666667


Original text: Two thirds

Ordinal I like the first two books Value: 1


Original text: first

Ordinal Eleventh Value: 11


Original text: Eleventh

Percentage 100 percent Value: 100


Original text: 100 percent

Phone number Tel: +1 209-555-0100 Value: +1 209-555-0100


Original text: +1 209-555-0100

Email [email protected] Value: [email protected]


Original text: [email protected]

IP address My PC IP address is 1.1.1.1 Value: 1.1.1.1


Original text: 1.1.1.1

Mention @Alice Value: @Alice


Original text: @Alice

Hashtag #News Value: #News


Original text: #News

URL www.microsoft.com Value: www.microsoft.com


Original text: www.microsoft.com

GUID 123e4567-e89b-12d3-a456- Value: 123e4567-e89b-12d3-a456-


426655440000 426655440000
Original text: 123e4567-e89b-
12d3-a456-426655440000

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

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

Original text No Text value The original text

Line to append Yes Text value The text to add on as


a new line

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

Result Text value The new text

Ex c e p t i o n s

This action doesn't include any exceptions


Get subtext
Retrieve a subtext from a text value
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

Original text No Text value The text to retrieve a


section of text from

Start index N/A Start of text, Character position Specify how to find
Character position the starting point for
text retrieval

Character position No Numeric value The position of the


first character to
retrieve. This is a
zero-based index,
counting from zero
for the first character

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

Number of chars No Numeric value The number of


characters to retrieve

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

Subtext Text value The retrieved subtext

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

Text to pad Yes Text value The text to lengthen

Pad N/A Left, Right Left Specify whether to


add characters to the
left or right of the
existing text

Text for padding Yes Text value The character or text


that will be added to
lengthen the original
text

Total length Yes Numeric value 10 The total character


length of the final
padded text. This
means that the text
for padding will be
repeatedly added
until the final text is
of the specified
length

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

PaddedText Text value The new, padded text

Ex c e p t i o n s

This action doesn't include any exceptions


Trim text
Removes all occurrences of white space characters (such as space, tab, or new line) from the beginning and/or
end of an existing text
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

Text to trim Yes Text value Text to trim

What to trim N/A whitespace whitespace Specify where white


characters from the characters from the space characters will
beginning, beginning and end be removed from
whitespace
characters from the
end, whitespace
characters from the
beginning and end

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

TrimmedText Text value The new trimmed text

Ex c e p t i o n s

This action doesn't include any exceptions


Reverse text
Reverses the order of letters in a text string
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

Text to reverse Yes Text value The text to reverse

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

ReversedText Text value The new reversed text

Ex c e p t i o n s

This action doesn't include any exceptions


Change text case
Changes the casing of a text to uppercase, lowercase, title case or sentence case
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

Text to convert Yes Text value The text to convert

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

A RGUM EN T TYPE DESC RIP T IO N

TextWithNewCase Text value The new converted text

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

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

Text to convert No Text value A text variable


containing only a
number, to convert
to a numeric value
variable. Spaces are
ignored, but non-
number text throws
an exception

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

TextAsNumber Numeric value The new numeric value

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Convert number to text


Converts a number to text using a specified 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

Number to convert No Numeric value A numeric value to


convert to text

Decimal places Yes Numeric value 2 The number of


decimal places that
will be included
before truncation.
Zeros can also be
added to the end to
pad the text in this
way

Use thousands N/A Boolean value True Specify whether or


separator not to use
punctuation as a
1000 separator

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

FormattedNumber Text value The formatted number as text


Ex c e p t i o n s

This action doesn't include any exceptions


Convert text to datetime
Converts a text representation of a date and/or time value to a datetime value
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

Text to convert No Text value The text to convert


to a datetime value.
This text must be in a
recognizably
datetime value
format

Date is represented N/A Boolean value False Specify whether the


in custom format text to convert
contains a
representation of the
date and time in a
non-standard, non-
recognizable format

Custom format No Text value The format in which


the date is stored in
the text. A custom
format can be
expressed as, for
example, yyyyMMdd
for date and hhmmss
for time

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

TextAsDateTime Datetime The datetime value

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Convert datetime to text


Converts a datetime value to text using a specified custom 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

Datetime to convert No Datetime The datetime value


to convert to text

Format to use N/A Standard, Custom Standard Specify whether to


use a standard
datetime format, or
create a custom 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

Custom Format No Text value The custom format


to display the
datetime value in. A
datetime can be
expressed as, for
example,
MM/dd/yyyy for date
and hh:mm:sstt for
time

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

A RGUM EN T TYPE DESC RIP T IO N

FormattedDateTime Text value The formatted datetime as a text value

Ex c e p t i o n s

This action doesn't include any exceptions


Create random text
Generates a text of specified length consisting of random characters. This can be useful for generating
passwords
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

Use uppercase letters N/A Boolean value True Specify whether


(A-Z) uppercase characters
will be included in the
generated text

Use lowercase letters N/A Boolean value True Specify whether


(a-z) lowercase characters
will be included in the
generated text

Use digits (0-9) N/A Boolean value True Specify whether


digits will be included
in the generated text

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

Minimum length Yes Numeric value 6 The minimum length


of the random text.
For a certain length
of text, set the
minimum and
maximum values to
that number

Maximum length Yes Numeric value 10 The maximum length


of the random text.
For a certain length
of text, set the
minimum and
maximum values to
that number

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

RandomText Text value The generated random text

Ex c e p t i o n s

This action doesn't include any exceptions


Join text
Converts a list into a text value by separating its items with a specified delimiter
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

Specify the list to join No List of Text values The list to convert to
text

Delimiter to separate N/A None, Standard, None Specify whether to


list items Custom use no delimiter, a
standard delimiter or
a custom one

Custom delimiter No Text value The character(s) to


use as delimiter

Standard delimiter N/A Space, Tab, New line Space Specify the delimiter
to use

Times Yes Numeric value 1 Specify how many


times to use the
specified delimiter

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

JoinedText Text value The new delimited text

Ex c e p t i o n s

This action doesn't include any exceptions


Split text
Creates a list containing the substrings of a text that are separated by a specified delimiter or a regular
expression
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

The text to split No Text value The text to split

Delimiter type N/A Standard, Custom Standard Whether the used


delimiter is of a
standard or custom
format

Custom delimiter No Text value The character(s) that


were used as a
delimiter

Standard delimiter N/A Space, Tab, New line Space The delimiter used

Times Yes Numeric value 1 Specify how many


times is the delimiter
used

Is regular expression N/A Boolean value False Specify whether the


delimiter will be a
regular expression. A
regular expression
creates a range of
possibilities for the
delimiter. For
example, '\d' means
that the delimiter
could be any digit

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

A RGUM EN T TYPE DESC RIP T IO N

TextList List of Text values The new list

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Text to Parse No Text value The text to parse

Text to Find No Text value The subtext or a


regular expression to
search for

Is regular expression N/A Boolean value False Specify whether the


subtext is a regular
expression. For
example \d means
that the subtext
could be any digit

Start Parsing at No Numeric value The position to start


Position looking for the 'Text
to Find'. The first
position is zero, so
use 0 to start from
the beginning

First occurrence only N/A Boolean value True Specify whether to


find the first
occurrence only, or
each occurrence of
the 'Text to find'

Ignore case N/A Boolean value False Specify whether to


find the specified text
using case-sensitive
or case-insensitive
matching

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

A RGUM EN T TYPE DESC RIP T IO N

Position Numeric value The position 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

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

Match Text value The result that matches the given


regular expression
A RGUM EN T TYPE DESC RIP T IO N

Matches List of Text values The results that match the given
regular expression

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

Text to parse No Text value The text to parse

Text to find No Text value The subtext or a


regular expression to
search for

Use regular N/A Boolean value False Specify whether the


expressions for find subtexts are regular
and replace expressions. A
regular expression
creates a range of
possibilities for the
subtext. For example,
'\d' means that the
subtext could be any
digit

Ignore case N/A Boolean value False Specify whether to


find the subtext to
replace using case-
sensitive or case-
insensitive matching

Replace with No Text value The text or a regular


expression to replace
found text

Activate escape N/A Boolean value False Specify whether to


sequences use special
sequences. For
example, '\t' in the
replacement text will
be interpreted as a
tab

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

A RGUM EN T TYPE DESC RIP T IO N

Replaced Text value The new updated text

Ex c e p t i o n s

This action doesn't include any exceptions


Escape text for regular expression
Escapes a minimal set of characters (, *, +, ?, |, {, [, (,), ^, $,., #, and white space) by replacing them with their
escape codes
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

Text to escape No Text value The text to escape

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

EscapedText Text value The escaped text

Ex c e p t i o n s

This action doesn't include any exceptions


Recognize entities in text
Recognizes entities in text, such as numbers, units, data/time and others expressed in natural language accross
multiple languages
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

Text to recognize No Text value The text to recognize


from entities from

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

Language N/A English, Chinese English Specify the language


(Simplified), Spanish, of the text
Spanish (Mexico),
Portuguese, French,
German, Italian,
Japanese, Dutch,
Korean, Swedish,
Turkish, Hindi

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

RecognizedEntities Datatable The recognized entities

Ex c e p t i o n s

This action doesn't include any exceptions


Datetime
1/15/2022 • 2 minutes to read • Edit Online

Get the date and time and perform time related functions

Add to datetime

Subtract dates

Get current date and time

Getting started with datetime actions


The Get current date and time action will store the current date and time (or date only, if selected) in a
datetime type variable. The date will be formatted with the format currently selected in Windows.
Add any amount of a specified unit of time to a date with the Add to datetime action.
To find the difference between two dates, use the Subtract dates action. The difference can be returned in
seconds, minutes, hours or days.

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

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

Datetime No Datetime The datetime value


to alter

Add No Numeric value The numeric value to


add. To subtract a
time, this value
would be negative.
For example, add -7
days here to go back
one week

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

A RGUM EN T TYPE DESC RIP T IO N

ResultedDate Datetime The new, altered datetime value


Ex c e p t i o n s

This action doesn't include any exceptions


Subtract dates
Finds the time difference between two given dates in days, hours, minutes, or seconds
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

From date No Datetime The datetime to


subtract the first
datetime from. This
will be the base
datetime, so
generally put the
later date/time in this
attribute

Subtract date No Datetime The datetime to


subtract

Get difference in N/A Seconds, Minutes, Days The unit of time to


Hours, Days express the difference
in

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

TimeDifference Numeric value The difference in time as a numeric


value

Ex c e p t i o n s

This action doesn't include any exceptions


Get current date and time
Retrieves the current date or the current date and time
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 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

Country/region Yes Text value Europe/Bucharest The country/region


to get the time of or
add a numeric value
as the hours that will
be added in the UTC
time zone
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

CurrentDateTime Datetime The current datetime value

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Automate PDF files and their content (text and images)

Extract images from PDF

Extract text from PDF

Extract PDF pages to new PDF

Merge PDF files

Getting started with PDF actions


Use the PDF action group to extract images and text from PDF files and arrange pages to create new documents.
To extract text from a PDF file, use the Extract text from PDF action. In the example below, a file has been
specified, and the action is configured to extract text from a range of pages. In the Advanced section, a
password has been entered to access the secure file.

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

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

PDF file No File The PDF file to


extract images from.
Enter a file path, a
variable containing a
file or a text path

Password Yes Encrypted value The password of the


PDF file. Leave this
blank if the PDF isn't
password protected

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

Single page number No Numeric value The number of the


single page to extract
images from
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

From page number No Numeric value The first page


number from the
range of pages to
extract images from

To page number No Numeric value The last page


number from the
range of pages to
extract images from

Image(s) name No Text value How the name of the


image(s) starts.
Extracted image(s)
name example:
GivenName_1,
GivenName_2

Save image(s) to No Folder The folder to save


the extracted images
as png files

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

EXC EP T IO N DESC RIP T IO N

Invalid password The given password is invalid

Failed to extract images Indicates that an error occured while extracting images from
the given pages of the PDF

Folder doesn't exist Indicates that the folder doesn't exist

PDF file doesn't exist File doesn't exist on the given path

Extract text from PDF


Extract text from a PDF file
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

PDF file No File The PDF file to


extract text from.
Enter a file path, a
variable containing a
file or a text path

Password Yes Encrypted value The password of the


PDF file. Leave this
blank if the PDF isn't
password protected
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

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

Single page number No Numeric value The number of the


single page to extract
text from

From page number No Numeric value The first page


number from the
range of pages to
extract text from

To page number No Numeric value The last page


number from the
range of pages to
extract text from

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

ExtractedPDFText Text value The extracted text

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

PDF file doesn't exist File doesn't exist on the given path

Invalid password The given password is invalid

Failed to extract text Error while trying to extract text

Extract PDF pages to new PDF


Extract pages from a PDF file to a new PDF file
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

PDF file No File The PDF file to


extract pages from.
Enter a file path, a
variable containing a
file or a text path

Password Yes Encrypted value The password of the


PDF file. Leave this
blank if the PDF isn't
password protected

Page selection No Text value The index numbers of


the pages to keep
(eg 1,3,17-24 )
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

Extracted PDF path No File The path to store the


extracted PDF file

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

A RGUM EN T TYPE DESC RIP T IO N

ExtractedPDF File The new PDF file

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Invalid password The given password is invalid

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

Merge PDF files


Merges multiple PDF files into a new one
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

PDF files No List of Files The files to merge.


Enclose multiple files
in double quotes (")
and separate them
by a delimiter, or use
a list of files

Merged PDF path No File The path to store the


merged 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

Passwords Yes Encrypted value The delimited


passwords. The order
should be the same
as the order of the
input PDFs. Leave
this blank if the PDFs
aren't password
protected

Delimiter Yes Text value , A custom password


delimiter. This
delimiter shouldn't be
part of any of the
passwords

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

MergedPDF File The merged PDF file

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

PDF file doesn't exist File doesn't exist on the given path

Invalid password The given password is invalid

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

Automate a CMD session

Open CMD session

Read from CMD session

Write to CMD session

Wait for text on CMD session

Close CMD session

Getting started with CMD actions


Use the CMD group of actions featured in Power Automate to automate Windows Command Prompt tasks.
Use Open CMD session to commence a command prompt session. Specify the working folder, and optionally
change the code page in the Advanced section.
The Write to CMD session action uses the CMD session variable. Specify a command, and select whether to
send Enter immediately afterwards to run it. In the figure below, the command creates a new folder in the
current working directory.

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

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

Working folder Yes Folder The full path of the


folder to start the
CMD session, if
applicable

Change code page N/A Boolean value False Specifies whether to


change the session's
current code page

Encoding No ASMO-708 : Arabic utf-8 : Unicode (UTF- The encoding to use


(ASMO 708), big5 : 8) when reading the
Chinese Traditional output
(Big5), cp1025 : IBM
EBCDIC (Cyrillic
Serbian-Bulgarian),
cp866 : Cyrillic (DOS),
cp875 : IBM EBCDIC
(Greek Modern),
csISO2022JP :
Japanese (JIS-Allow 1
byte Kana), DOS-720
: Arabic (DOS), DOS-
862 : Hebrew (DOS),
EUC-CN : Chinese
Simplified (EUC),
EUC-JP : Japanese
(JIS 0208-1990 and
0212-1990), euc-jp :
Japanese (EUC), euc-
Japanese (EUC), euc-
A RGUM EN T O P T IO N A L AkrC:CKorean
EP T S (EUC), DEFA ULT VA L UE DESC RIP T IO N
GB18030 : Chinese
Simplified (GB18030),
gb2312 : Chinese
Simplified (GB2312),
hz-gb-2312 :
Chinese Simplified
(HZ), IBM-Thai : IBM
EBCDIC (Thai),
IBM00858 : OEM
Multilingual Latin I,
IBM00924 : IBM
Latin-1, IBM01047 :
IBM Latin-1,
IBM01140 : IBM
EBCDIC (US-Canada-
Euro), IBM01141 :
IBM EBCDIC
(Germany-Euro),
IBM01142 : IBM
EBCDIC (Denmark-
Norway-Euro),
IBM01143 : IBM
EBCDIC (Finland-
Sweden-Euro),
IBM01144 : IBM
EBCDIC (Italy-Euro),
IBM01145 : IBM
EBCDIC (Spain-Euro),
IBM01146 : IBM
EBCDIC (UK-Euro),
IBM01147 : IBM
EBCDIC (France-
Euro), IBM01148 :
IBM EBCDIC
(International-Euro),
IBM01149 : IBM
EBCDIC (Icelandic-
Euro), IBM037 : IBM
EBCDIC (US-Canada),
IBM1026 : IBM
EBCDIC (Turkish
Latin-5), IBM273 :
IBM EBCDIC
(Germany), IBM277 :
IBM EBCDIC
(Denmark-Norway),
IBM278 : IBM
EBCDIC (Finland-
Sweden), IBM280 :
IBM EBCDIC (Italy),
IBM284 : IBM
EBCDIC (Spain),
IBM285 : IBM
EBCDIC (UK),
IBM290 : IBM
EBCDIC (Japanese
katakana), IBM297 :
IBM EBCDIC (France),
IBM420 : IBM
EBCDIC (Arabic),
IBM423 : IBM
EBCDIC (Greek),
IBM424 : IBM
EBCDIC (Hebrew),
EBCDIC (Hebrew),
A RGUM EN T O P T IO N A L IBM437
A C C EP T S: OEM DEFA ULT VA L UE DESC RIP T IO N
United States,
IBM500 : IBM
EBCDIC
(International),
ibm737 : Greek
(DOS), ibm775 :
Baltic (DOS), ibm850
: Western European
(DOS), ibm852 :
Central European
(DOS), IBM855 :
OEM Cyrillic, ibm857
: Turkish (DOS),
IBM860 : Portuguese
(DOS), ibm861 :
Icelandic (DOS),
IBM863 : French
Canadian (DOS),
IBM864 : Arabic
(864), IBM865 :
Nordic (DOS),
ibm869 : Greek,
Modern (DOS),
IBM870 : IBM
EBCDIC (Multilingual
Latin-2), IBM871 :
IBM EBCDIC
(Icelandic), IBM880 :
IBM EBCDIC (Cyrillic
Russian), IBM905 :
IBM EBCDIC
(Turkish), iso-2022-jp
: Japanese (JIS), iso-
2022-jp : Japanese
(JIS-Allow 1 byte
Kana - SO/SI), iso-
2022-kr : Korean
(ISO), iso-8859-1 :
Western European
(ISO), iso-8859-13 :
Estonian (ISO), iso-
8859-15 : Latin 9
(ISO), iso-8859-2 :
Central European
(ISO), iso-8859-3 :
Latin 3 (ISO), iso-
8859-4 : Baltic (ISO),
iso-8859-5 : Cyrillic
(ISO), iso-8859-6 :
Arabic (ISO), iso-
8859-7 : Greek (ISO),
iso-8859-8 : Hebrew
(ISO-Visual), iso-
8859-8-i : Hebrew
(ISO-Logical), iso-
8859-9 : Turkish
(ISO), Johab : Korean
(Johab), koi8-r :
Cyrillic (KOI8-R),
koi8-u : Cyrillic
(KOI8-U), ks_c_5601-
1987 : Korean,
macintosh : Western
European (Mac),
shift_jis : Japanese
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
(Shift-JIS), us-ascii :
US-ASCII, utf-16 :
Unicode, utf-16BE :
Unicode (Big-Endian),
utf-32 : Unicode
(UTF-32), utf-32BE :
Unicode (UTF-32
Big-Endian), utf-7 :
Unicode (UTF-7), utf-
8 : Unicode (UTF-8),
windows-1250 :
Central European
(Windows), windows-
1251 : Cyrillic
(Windows),
Windows-1252 :
Western European
(Windows), windows-
1253 : Greek
(Windows), windows-
1254 : Turkish
(Windows), windows-
1255 : Hebrew
(Windows), windows-
1256 : Arabic
(Windows), windows-
1257 : Baltic
(Windows), windows-
1258 : Vietnamese
(Windows), windows-
874 : Thai (Windows),
x-Chinese-CNS :
Chinese Traditional
(CNS), x-Chinese-
Eten : Chinese
Traditional (Eten), x-
cp20001 : TCA
Taiwan, x-cp20003 :
IBM5550 Taiwan, x-
cp20004 : TeleText
Taiwan, x-cp20005 :
Wang Taiwan, x-
cp20261 : T.61, x-
cp20269 : ISO-6937,
x-cp20936 : Chinese
Simplified (GB2312-
80), x-cp20949 :
Korean Wansung, x-
cp50227 : Chinese
Simplified (ISO-
2022), x-EBCDIC-
KoreanExtended :
IBM EBCDIC (Korean
Extended), x-Europa :
Europa, x-IA5 :
Western European
(IA5), x-IA5-German :
German (IA5), x-IA5-
Norwegian :
Norwegian (IA5), x-
IA5-Swedish :
Swedish (IA5), x-iscii-
as : ISCII Assamese,
x-iscii-be : ISCII
Bengali, x-iscii-de :
Bengali, x-iscii-de :
A RGUM EN T O P T IO N A L AISCII Devanagari,
C C EP TS x- DEFA ULT VA L UE DESC RIP T IO N
iscii-gu : ISCII
Gujarati, x-iscii-ka :
ISCII Kannada, x-iscii-
ma : ISCII Malayalam,
x-iscii-or : ISCII Oriya,
x-iscii-pa : ISCII
Punjabi, x-iscii-ta :
ISCII Tamil, x-iscii-te :
ISCII Telugu, x-mac-
arabic : Arabic (Mac),
x-mac-ce : Central
European (Mac), x-
mac-chinesesimp :
Chinese Simplified
(Mac), x-mac-
chinesetrad : Chinese
Traditional (Mac), x-
mac-croatian :
Croatian (Mac), x-
mac-cyrillic : Cyrillic
(Mac), x-mac-greek :
Greek (Mac), x-mac-
hebrew : Hebrew
(Mac), x-mac-
icelandic : Icelandic
(Mac), x-mac-
japanese : Japanese
(Mac), x-mac-korean
: Korean (Mac), x-
mac-romanian :
Romanian (Mac), x-
mac-thai : Thai (Mac),
x-mac-turkish :
Turkish (Mac), x-mac-
ukrainian : Ukrainian
(Mac)`

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

CmdSession CMD session The CMD session for use with later
CMD actions

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Can't start command session Indicates a problem initiating a CMD session

Working directory doesn't exist Indicates that an error occured trying to locate the working
directory

Read from CMD session


Read the output of a CMD 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

CMD session No CMD session A previously opened


CMD session

Separate output from N/A Boolean value False Specifies whether to


error store the standard
output and the
standard error into
different variables or
combined into one

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

CmdOutput Text value The CMD session's standard output

CmdError Text value The CMD session's standard error

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

CMD session is closed Indicates that the CMD session specified is closed

Write to CMD session


Execute a command on an open CMD 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

CMD session No CMD session A previously opened


CMD session variable

Command No Text value The name of the


command to execute

Send Enter after N/A Boolean value True Specifies whether to


command send an Enter the
command

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

EXC EP T IO N DESC RIP T IO N

Can't write to CMD session Indicates an error writing to a CMD session

CMD session is closed Indicates that the CMD session specified is closed

Wait for text on CMD session


Wait for a specific text on a previously opened CMD 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

CMD session No CMD session An open CMD


session variable

Text to wait No Text value The text or regular


expression to wait to
appear on standard
output or on
standard error

Is regular expression N/A Boolean value False Specifies whether to


wait for a regular
expression instead of
plain text

Ignore case N/A Boolean value True Specifies whether the


text to wait should
match with standard
output or standard
error without taking
into account the case
of the text

Timeout Yes Numeric value 0 Specifies whether to


wait indefinitely for
the text to appear or
to fail if the text
doesn't show up
within a set time
period

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

This action doesn't produce any variables


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Close CMD session


Close a previously opened CMD 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


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

CMD session No CMD session The CMD session to


close. Specify this
variable in an open
CMD session action

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

This action doesn't include any exceptions


Terminal emulation
1/15/2022 • 10 minutes to read • Edit Online

Take control of terminal emulators for automating mainframes and legacy systems

Open terminal session

Close terminal session

Move cursor on terminal session

Get text from terminal session

Set text on terminal session

Send key to terminal session

Wait for text on terminal session

Getting started with terminal emulation actions


Power Automate provides integration with terminal emulators through the Terminal emulation actions. These
actions enable you to handle terminals and mainframes and perform various operations on them, such as
moving the cursor, setting and getting text, and sending keys.
Before deploying any terminal actions, use the Open terminal session action to open a new connection with
the installed provider.

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

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

Provider N/A Micro focus Micro focus reflection The terminal


reflection, HLLAPI emulation to use

HLLAPI DLL path No File The HLLAPI DLL of


the provider.
RocketSoftware
BlueZone default
name: 'ehlapi64.dll'.
IBM Personal
Communications
default name:
'EHLAPI32.dll'.
MicroFocus Rumba
default path:
'System/ehlapi32.Dll'.
Cybelesoft zScope
default name:
'zHllap32.dll'. Any
other provider that
offers an HLLAPI DLL
in its installation
folder.

Installation path No Folder The installation path


of the provider's
application on the
user's file system
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

Configuration N/A Existing profile, Existing profile Choose 'Existing


Specify connection profile' to select a file
containing a
preconfigured
terminal emulation
connection. Choose
'Specify connection'
to specify the type of
the connection, the
host address and the
port.

Session name No Text value The session name to


connect to. The
HLLAPI short name,
and it is a unique
identifier for the host
session. It can be
found in the Terminal
emulator's
configuration
settings.

Host type N/A IBM 3270, IBM 5250 IBM 3270 The host type of the
connection

Profile No File The file that contains


the preconfigured
connection

Host address No Text value The host's address to


connect to

Port No Numeric value The port to be used


for this connection

Attach to running N/A Boolean value False Specifies whether to


session attach to a currently
open/running
terminal session

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

TerminalSession Terminal session The specific terminal session for use


with later terminal emulation
commands

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Error communicating with the emulator Indicates a problem connecting to the emulator

Profile error Profile error


Close terminal session
Close an open terminal 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

Terminal session to No Terminal session The previously


close opened terminal
session

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

EXC EP T IO N DESC RIP T IO N

Error communicating with the emulator Indicates a problem connecting to the emulator

Move cursor on terminal session


Move the terminal's cursor on the specified position
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

Terminal session No Terminal session The terminal session


to work with

Row No Numeric value The vertical position


of the cursor on the
screen

Column No Numeric value The horizontal


position of the cursor
on the screen

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

EXC EP T IO N DESC RIP T IO N

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 terminal session


Get text from a terminal 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

Terminal session No Terminal session The terminal session


to work with

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

Label No Text value The label of the field


to look for

Index No Numeric value The index of the field


to look for

Text length No Numeric value The length of the text


to receive

Row No Numeric value The vertical position


of the field on the
screen

Column No Numeric value The horizontal


position of the field
on the screen

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

TerminalText Text value The text retrieved from the terminal


session

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Terminal screen is unformatted Indicates that the terminal screen is unformatted

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 on terminal session


Set text on a terminal 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

Terminal session No Terminal session The terminal session


to work with

Text No Encrypted value The text to set on the


specified location

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

Label No Text value The label of the field


to look for

Index No Numeric value The index of the field


on the screen

Row No Numeric value The vertical position


of the field on the
screen

Column No Numeric value The horizontal


position of the field
on the screen

Treat @ character as N/A Boolean value False Check this box to


literal sent the '@'
character literally.
Leave this option
disabled to sent it as
a special character

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

EXC EP T IO N DESC RIP T IO N

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

Terminal screen is unformatted Indicates that the terminal screen is unformatted

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

Send key to terminal session


Send a control key to a terminal 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

Terminal session No Terminal session The terminal session


to work with

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

This action doesn't produce any variables


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Error communicating with the emulator Indicates a problem connecting to the emulator

Key not supported Indicates that the key isn't supported

Wait for text on terminal session


Wait for a specific text to appear on a terminal 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

Terminal session No Terminal session The previously


opened terminal
session

Text to wait for No Text value The text or regular


expression to wait to
appear on the
terminal screen or on
a specified field

Regular expression N/A Boolean value False Specifies whether to


wait for a regular
expression instead of
plain text

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

Label No Text value The label of the field


to look for

Index No Numeric value The index of the field


to look for

Row No Numeric value The vertical position


of the field on the
screen

Column No Numeric value The horizontal


position of the field
on the screen
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

Timeout Yes Numeric value 0 The maximum


amount of time to
wait

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

This action doesn't produce any variables


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Terminal screen is unformatted Indicates that the terminal screen is unformatted

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

Timeout expired Indicates that the timeout has been expired


OCR
1/15/2022 • 13 minutes to read • Edit Online

Initiate OCR engines to perform OCR related activities

If text on screen (OCR)

Wait for text on screen (OCR)

Extract text with OCR

Getting started with OCR actions


Power Automate enables users to read, extract, and manage data within an assortment of files through optical
character recognition (OCR).
To create an OCR engine and extract text from images and documents with OCR, use the Extract text with
OCR action. In the figure below, the engine is created for the purpose of this action alone, and the OCR source is
a locally stored image. The action is set to extract text from the entire image. Power Automate supports both
Windows OCR engine and Tesseract engine.

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.

Using the Windows OCR engine


The default engine of all OCR actions in Power Automate is the Windows OCR engine. To extract any text using
the Windows OCR engine, you need to install the appropriate languages pack for the language you want to
extract.
If the appropriate language pack hasn't been installed, Power Automate will throw an error prompting you to
install it. You can find more information regarding downloading and installing language packs in Language
packs for Windows.
After installing the appropriate language pack, extend the OCR engine settings of the OCR action and select
the desired language. The Windows OCR engine supports 25 languages: Chinese (Simplified and Traditional),
Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian,
Polish, Portuguese, Romanian, Russian, Serbian (Cyrillic and Latin), Slovak, Spanish, Swedish, and Turkish.
Using the Tesseract OCR engine
Apart from the Windows OCR engine, Power Automate supports the Tesseract engine. This engine can extract
text in five languages without further configuration: English, German, Spanish, French, and Italian.
To extract text in a language outside the mentioned list, enable the Use other languages option in the OCR
engine settings of the OCR action. When this 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. You can
find the language data files for all the available languages in this GitHub repository.
The Tesseract engine can be also used to extract text from multilingual documents. You can find more
information regarding extracting text from multilingual documents in Perform OCR on multilingual documents.

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

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

If text N/A Exists, Doesn't exist Exists Specifies whether to


check if the text
exists or not on the
given source to
analyze

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.

OCR engine variable No OCREngineObject The engine to use for


the OCR operation

Text to find No Text value The text to search for


in the specified
source

Is regular expression N/A Boolean value False Specifies whether to


use a regular
expression to find the
specified text

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

Search mode N/A Whole of specified Whole of specified Specifies whether to


source, Specific source scan the entire
subregion only, screen (or window) or
Subregion relative to a narrowed down
image 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

Image(s) No List of Image The image(s)


specifying the
subregion (relative to
the top left corner of
the image) to scan
for the supplied text

X1 Yes Numeric value The start X


coordinate of the
subregion to scan for
the supplied text

Tolerance Yes Numeric value 10 Specifies how much


the image(s)
searched for can
differ from the
originally chosen
image

Y1 Yes Numeric value The start Y


coordinate of the
subregion to scan for
the supplied text

X1 Yes Numeric value The start X


coordinate of the
subregion relative to
the specified image
to scan for the
supplied text

X2 Yes Numeric value The end X coordinate


of the subregion to
scan for the supplied
text

Y1 Yes Numeric value The start Y


coordinate of the
subregion relative to
the specified image
to scan for the
supplied text

Y2 Yes Numeric value The end Y coordinate


of the subregion to
scan for the supplied
text

X2 Yes Numeric value The end X coordinate


of the subregion
relative to the
specified image to
scan for the supplied
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

Y2 Yes Numeric value The end Y coordinate


of the subregion
relative to the
specified image to
scan for the supplied
text

Windows OCR N/A Chinese (Simplified), English The language of the


language Chinese (Traditional), text that the
Czech, Danish, Dutch, Windows OCR
English, Finnish, engine detects
French, German,
Greek, Hungarian,
Italian, Japanese,
Korean, Norwegian,
Polish, Portuguese,
Romanian, Russian,
Serbian (Cyrillic),
Serbian (Latin),
Slovak, Spanish,
Swedish, Turkish

Use other language N/A Boolean value False Specifies whether to


use a language not
given in the
'Tesseract language'
field

Tesseract language N/A English, German, English The language of the


Spanish, French, text that the
Italian Tesseract engine
detects

Language No Text value The Tesseract


abbreviation abbreviation of the
language to use. For
example, if the data is
'eng.traineddata', set
this to 'eng'

Language data path No Text value The path of the


folder that holds the
specified language's
Tesseract data

Image width No Numeric value 1 The width multiplier


multiplier of the image

Image height No Numeric value 1 The height multiplier


multiplier of the image

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

A RGUM EN T TYPE DESC RIP T IO N

LocationOfTextFoundX Numeric value The X coordinate of the point where


the text appears on the screen. If the
search is performed in the foreground
window, the coordinate returned is
relative to the top left corner of the
window

LocationOfTextFoundY Numeric value The X coordinate of the point where


the text appears on the screen. If the
search is performed in the foreground
window, the coordinate returned is
relative to the top left corner of the
window

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Wait for text on screen (OCR )


Wait until a specific text appears/disappears on the screen, on the foreground window, or relative to an image
on the screen or foreground window using OCR
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

Wait for text to N/A Appear, Disappear Appear Specifies whether to


wait for the text to
appear or disappear

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

OCR engine variable No OCREngineObject The engine to use for


the OCR operation

Text to find No Text value The text to search for


in the specified
source

Is regular expression N/A Boolean value False Specifies whether to


use a regular
expression to find the
specified text

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

Search mode N/A Whole of specified Whole of specified Specifies whether to


source, Specific source scan the entire
subregion only, screen (or window) or
Subregion relative to a narrowed down
image subregion of it

Image(s) No List of Image The image(s)


specifying the
subregion (relative to
the top left corner of
the image) to scan
for the supplied text

X1 Yes Numeric value The start X


coordinate of the
subregion to scan for
the supplied text

Tolerance Yes Numeric value 10 Specifies how much


the image(s)
searched for can
differ from the
originally chosen
image

Y1 Yes Numeric value The start Y


coordinate of the
subregion to scan for
the supplied text

X1 Yes Numeric value The start X


coordinate of the
subregion relative to
the specified image
to scan for the
supplied 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

X2 Yes Numeric value The end X coordinate


of the subregion to
scan for the supplied
text

Y1 Yes Numeric value The start Y


coordinate of the
subregion relative to
the specified image
to scan for the
supplied text

Y2 Yes Numeric value The end Y coordinate


of the subregion to
scan for the supplied
text

X2 Yes Numeric value The end X coordinate


of the subregion
relative to the
specified image to
scan for the supplied
text

Y2 Yes Numeric value The end Y coordinate


of the subregion
relative to the
specified image to
scan for the supplied
text

Windows OCR N/A Chinese (Simplified), English The language of the


language Chinese (Traditional), text that the
Czech, Danish, Dutch, Windows OCR
English, Finnish, engine detects
French, German,
Greek, Hungarian,
Italian, Japanese,
Korean, Norwegian,
Polish, Portuguese,
Romanian, Russian,
Serbian (Cyrillic),
Serbian (Latin),
Slovak, Spanish,
Swedish, Turkish

Use other language N/A Boolean value False Specifies whether to


use a language not
given in the
'Tesseract language'
field

Tesseract language N/A English, German, English The language of the


Spanish, French, text that the
Italian Tesseract engine
detects
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

Language No Text value The Tesseract


abbreviation abbreviation of the
language to use. For
example, if the data is
'eng.traineddata', set
this to 'eng'

Language data path No Text value The path of the


folder that holds the
specified language's
Tesseract data

Image width No Numeric value 1 The width multiplier


multiplier of the image

Image height No Numeric value 1 The height multiplier


multiplier of the image

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

A RGUM EN T TYPE DESC RIP T IO N

LocationOfTextFoundX Numeric value The X coordinate of the point where


the text appears on the screen. If the
search is performed in the foreground
window, the coordinate returned is
relative to the top left corner of the
window

LocationOfTextFoundY Numeric value The X coordinate of the point where


the text appears on the screen. If the
search is performed in the foreground
window, the coordinate returned is
relative to the top left corner of the
window

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Extract text with OCR


Extract text from a given source using the given OCR engine
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

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.

OCR engine variable No OCREngineObject The engine to use for


the OCR operation

OCR source N/A Screen, Foreground Screen The source of the


window, Image on image to perform the
disk OCR operation on

Image file path No File The path of the


image to perform the
OCR operation on

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

Image No List of Image The image to use for


narrowing down the
scan to a subregion
that is relative to the
specified image
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

Tolerance Yes Numeric value 10 Specifies how much


the image can differ
from the originally
chosen image

X1 Yes Numeric value The start X


coordinate of the
subregion to narrow
down the scan

X2 Yes Numeric value The end X coordinate


of the subregion to
narrow down the
scan

Y1 Yes Numeric value The start Y


coordinate of the
subregion to narrow
down the scan

Y2 Yes Numeric value The end Y coordinate


of the subregion to
narrow down the
scan

Windows OCR N/A Chinese (Simplified), English The language of the


language Chinese (Traditional), text that the
Czech, Danish, Dutch, Windows OCR
English, Finnish, engine detects
French, German,
Greek, Hungarian,
Italian, Japanese,
Korean, Norwegian,
Polish, Portuguese,
Romanian, Russian,
Serbian (Cyrillic),
Serbian (Latin),
Slovak, Spanish,
Swedish, Turkish

Use other language N/A Boolean value False Specifies whether to


use a language not
given in the
'Tesseract language'
field

Tesseract language N/A English, German, English The language of the


Spanish, French, text that the
Italian Tesseract engine
detects

Language No Text value The Tesseract


abbreviation abbreviation of the
language to use. For
example, if the data is
'eng.traineddata', set
this to 'eng'
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

Language data path No Text value The path of the


folder that holds the
specified language's
Tesseract data

Image width No Numeric value 1 The width multiplier


multiplier of the image

Image height No Numeric value 1 The height multiplier


multiplier of the 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

A RGUM EN T TYPE DESC RIP T IO N

OcrText Text value The result after the text extraction

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Encrypt and decrypt text and files

Encrypt text with AES

Decrypt text with AES

Encrypt from file with AES

Decrypt to file with AES

Hash text

Hash from file

Hash text with key

Hash from file with key

Getting started with cryptography actions


The Cr yptography actions enable users to encrypt and decrypt plain text and text from files providing a key
and an encoding format.
The Encr ypt text with AES action encrypts a text using the AES algorithm and a user-specified encryption key.
The encryption key can be provided directly or through a variable.
To encrypt the text of a file directly, use the Encr ypt from file with AES action. This action works similarly to
the Encr ypt text with AES action, but it requires a source file instead of a text value.
To decrypt a text, use the Decr ypt text with AES and populate the encrypted text and the encryption key
previously used to encrypt it. To decrypt a text and store it in a file, use the Decr ypt to file with AES and
specify a destination path for the file.

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

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

Encoding N/A Default, ANSI, Unicode The encoding of the


Unicode, Big-endian text to encrypt
Unicode, UTF-8

Text to encrypt No Text value The text to encrypt

Encryption key No Encrypted value The encryption key


to use

Padding N/A None, PKCS7, Zeros, PKCS7 The padding to use


ANSIX923, ISO10126 for the selected
encryption algorithm

Key size N/A 128 bits, 192 bits, 256 bits The size of the key in
256 bits bits to use for the
encryption

Use salt N/A Boolean value False Specifies whether to


use salt for
encryption. When
this option is
enabled, the
randomly generated
salt becomes an
output in the form of
a base64 string.
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

Use initialization N/A Boolean value False Specifies whether to


vector use an initialization
vector. When this
option is enabled, the
randomly generated
initialization vector
becomes an output
in the form of a
base64 string

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

EncryptedText Text value The encrypted text for later processing

Salt Text value The randomly generated salt value for


later processing

InitializationVector Text value The randomly generated initialization


vector value for later processing

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to encrypt text Indicates that an error occurred during encryption

Decrypt text with AES


Decrypt a string with AES based on a specified key 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

Encoding N/A Default, ANSI, Unicode The encoding for the


Unicode, Big-endian decrypted text
Unicode, UTF-8

Text to decrypt No Text value The text to decrypt in


the form of a base64
string

Decryption key No Encrypted value The decryption key


to use

Padding N/A None, PKCS7, Zeros, PKCS7 The padding to use


ANSIX923, ISO10126 for the selected
decryption algorithm

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

Use salt N/A Boolean value False Specifies whether to


use salt for the
decryption

Salt No Text value The salt to use for


decryption in the
form of a base64
string

Use initialization N/A Boolean value False Specifies whether to


vector use an initialization
vector

Initialization vector No Text value The initialization


vector to use for
decryption in the
form of a base64
string

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

DecryptedText Text value The decrypted text for later processing

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to decrypt text Indicates that an error occurred during decryption

Encrypt from file with AES


Encrypt the contents of a file with AES, using a key and a specified 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

Encoding N/A Default, ANSI, Unicode The encoding of the


Unicode, Big-endian file to encrypt
Unicode, UTF-8

File to encrypt No File The text file that


stores the contents
to encrypt

Encryption key No Encrypted value The encryption key


to use

Padding N/A None, PKCS7, Zeros, PKCS7 The padding to use


ANSIX923, ISO10126 for the selected
encryption algorithm

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

Use salt N/A Boolean value False Specifies whether to


use salt for
encryption. When
this option is
enabled, the
randomly generated
salt becomes an
output in the form of
a base64 string.

Use initialization N/A Boolean value False Specifies whether to


vector use an initialization
vector. When this
option is enabled, the
randomly generated
initialization vector
becomes an output
in the form of a
base64 string

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

EncryptedText Text value The text of the encrypted file for later
processing

Salt Text value The randomly generated salt value for


later processing

InitializationVector Text value The randomly generated initialization


vector value for later processing

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

File not found Indicates that the file doesn't exist

Failed to encrypt the contents of the file Indicates that an error occurred while encrypting the
contents of the file

Decrypt to file with AES


Decrypt a string to a file with AES based on a specified key 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

Encoding N/A Default, ANSI, Unicode The encoding of the


Unicode, Big-endian text to decrypt
Unicode, UTF-8

Text to decrypt No Text value The text to decrypt in


the form of a base64
string
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

Decryption key No Encrypted value The decryption key


to use

Decrypt to file No File The file to save the


decrypted text into

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

Padding N/A None, PKCS7, Zeros, PKCS7 The padding to use


ANSIX923, ISO10126 for the selected
decryption algorithm

Key size N/A 128 bits, 192 bits, 256 bits The size of the key in
256 bits bits to use for
decryption

Use salt N/A Boolean value False Specifies whether to


use salt for
decryption

Salt No Text value The salt to use for


decryption in the
form of a base64
string

Use initialization N/A Boolean value False Specifies whether to


vector use an initialization
vector. Enter the
initialization vector in
the form of a base64
string

Initialization vector No Text value The initialization


vector to use for
decryption

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

DecryptedFile File The decrypted file for later processing

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Hash algorithm N/A SHA256, SHA384, SHA256 The algorithm to use


SHA512 for hashing

Encoding N/A Default, ANSI, Unicode The encoding of the


Unicode, Big-endian text to hash
Unicode, UTF-8

Text to hash No Text value The text to hash

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

HashedText Text value The hashed text for later processing

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to hash text Indicates that an error occurred during hashing

Hash from file


Hash the contents of a file, 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

Hash algorithm N/A SHA256, SHA384, SHA256 The algorithm to use


SHA512 for hashing

Encoding N/A Default, ANSI, Unicode The encoding of the


Unicode, Big-endian file to hash
Unicode, UTF-8

File to hash No File The file to hash the


contents of

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

HashedText Text value The hashed text for later processing

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

File not found Indicates that the file doesn't exist

Failed to hash the file Indicates that an error occurred while hashing the contents
of the file

Hash text with key


Hash a string with a key, 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

Hash algorithm N/A HMAC SHA256, HMAC SHA256 The algorithm to use
HMAC SHA384, for hashing
HMAC SHA512

Encoding N/A Default, ANSI, Unicode The encoding of the


Unicode, Big-endian text to hash
Unicode, UTF-8

Text to hash No Text value The text to hash

Hash key No Encrypted value The key to hash the


text with

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

HashedText Text value The hashed text for later processing

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to hash text with key Indicates that an error occurred during hashing with key

Hash from file with key


Hash the contents of a file with a key, 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

Hash algorithm N/A HMAC SHA256, HMAC SHA256 The algorithm to use
HMAC SHA384, for hashing
HMAC SHA512

Encoding N/A Default, ANSI, Unicode The encoding of the


Unicode, Big-endian file to hash
Unicode, UTF-8

File to hash No File The file to hash the


contents of

Hash key No Encrypted value The hash key to hash


the text with

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

HashedText Text value The hashed text for later processing

Ex c e p t i o n s
EXC EP T IO N DESC RIP T IO N

File not found Indicates that the file doesn't exist

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

Control the workstation's installed services

If service

Wait for service

Start service

Stop service

Pause service

Resume service

Getting started with services


Power Automate allows users to handle Windows services through the Windows services group of actions. With
these actions, users can maintain full control of the operating system and limit the running services.
To control services, use the Windows services group of actions. These actions allow flows to start, stop, pause
and resume Windows services. In the figure below, the Star t ser vice action starts UIFlowSer vice . For this
group of actions, only the service name is required, and no output is returned.

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.

Windows services actions


If service
Marks the beginning of a conditional block of actions depending on whether a service is running, paused,
stopped or installed on the computer
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

If service N/A Is stopped, Is Is running The state of the


installed, Isn't service to check
installed, Is running,
Is paused
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

Service name No Text value The name of the


service to check

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

EXC EP T IO N DESC RIP T IO N

Service not found Indicates that the service can't be found

Can't retrieve status for service Indicates that there is a problem retrieving the status of the
service

Wait for service


Suspend the execution of the automation until a service is running, paused or stopped on the computer
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

Wait for service to N/A Stop, Start, Pause Start Specifies whether the
flow pauses until a
certain service starts,
stops or pauses

Service name No Text value The name of the


service to check

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

EXC EP T IO N DESC RIP T IO N

Service not found Indicates that the service can't be found

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

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

Service to start No Text value The name of the


service to start

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
EXC EP T IO N DESC RIP T IO N

Service not found Indicates that the service can't be found

Service is already running Indicates that the service is already running

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

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

Service to stop No Text value The name of the


service to stop

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

EXC EP T IO N DESC RIP T IO N

Service not found Indicates that the service can't be found

Service isn't running Indicates that the service isn't running

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

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

Service to pause No Text value The name of the


service to pause

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

EXC EP T IO N DESC RIP T IO N

Service not found Indicates that the service can't be found

Service isn't running Indicates that the service isn't running

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

Service to resume No Text value The name of the


service to resume

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

EXC EP T IO N DESC RIP T IO N

Service not found Indicates that the service can't be found

Service isn't running Indicates that the service isn't running

Can't resume service Indicates that there is a problem resuming the service
XML
1/15/2022 • 7 minutes to read • Edit Online

Manage and manipulate XML files

Read XML from file

Write XML to file

Execute XPath expression

Get XML element attribute

Set XML element attribute

Remove XML element attribute

Get XML element value

Set XML element value

Insert XML element

Remove XML element

Getting started with XML actions


Power Automate provides the capability to use flows to automate the management of XML attributes and
elements through XML actions.
To read an XML file, use the Read XML from file action. Specify the path or browse for the file, and select one
of the encoding options.
After selecting a file, to run an Xpath query, select the Execute XPath expression action. In the example that
follows, the document is specified as a variable from the Read XML from file action, and an XPath query is
entered.

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

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 path: No File The file that contains


the XML document
to read

Encoding: N/A Default, ANSI, Default The encoding used


Unicode, Unicode big for the specified file
endian, UTF-8

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

XmlDocument XML node The variable that holds the read XML
document

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Directory not found Indicates that the directory doesn't exist

File not found Indicates that the file doesn't exist

Failed to read from file Indicates a problem reading from file

File doesn't contain a valid XML document Indicates that the file doesn't contain a valid XML document

Write XML to file


Write the contents of an XML node variable into a file
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

File path: No File The file to write the


XML document into

XML to write: No Text value The XML node or


document to write
into the file

Encoding: N/A Default, ANSI, Default The encoding used


Unicode, Unicode big for the specified file
endian, UTF-8

Format XML: N/A Boolean value True Specifies whether to


format the XML
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

Indentation per level: Yes Numeric value 2 Specifies by how


many spaces to
indent each level of
the XML

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

EXC EP T IO N DESC RIP T IO N

Invalid directory specified Indicates that the specified directory is invalid

Failed to write XML to file Indicates a problem writing XML to file

Execute XPath expression


Extract values from an XML document based on the provided XPath query
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

XML document to No Text value The XML as text or a


parse: previously defined
variable that contains
the XML document
to parse

XPath query: No Text value The XPath expression


to execute against
the XML document

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

A RGUM EN T TYPE DESC RIP T IO N

XPathResult XML node The extracted node(s) as an XML node

XPathResults List of XML nodes The extracted node(s) as a list of XML


nodes

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

XML document: No XML node The XML document


or XML element to
retrieve its attribute

XPath query Yes Text value The XPath expression


to locate the sub-
element and retrieve
its attribute

Attribute name: No Text value The name of the


attribute to retrieve
its value

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

A RGUM EN T TYPE DESC RIP T IO N

XmlAttributeValue Boolean value The retrieved value of the XML


attribute

XmlAttributeValue Datetime The retrieved value of the XML


attribute

XmlAttributeValue Numeric value The retrieved value of the XML


attribute

XmlAttributeValue Text value The retrieved value of the XML


attribute

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Set XML element attribute


Set the value of an attribute of an XML element
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

XML document: No XML node The XML document


or XML element to
set its attribute

XPath query: Yes Text value The XPath expression


to locate the sub-
element and set its
attribute

Attribute name: No Text value The name of the


attribute to set its
value

Attribute value: No Text value The new value for the


attribute

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

EXC EP T IO N DESC RIP T IO N

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

Remove XML element attribute


Remove an attribute from an XML element
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

XML document: No XML node The XML document


or XML element to
remove its attribute

XPath query: Yes Text value The XPath expression


to locate the sub-
element and remove
its attribute

Attribute name: No Text value The name of the


attribute to remove

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

EXC EP T IO N DESC RIP T IO N

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 XML element value


Get the value of an XML element
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

XML document: No XML node The XML document


or XML element to
retrieve its value

XPath query: Yes Text value The XPath expression


to locate the sub-
element and retrieve
its value

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

A RGUM EN T TYPE DESC RIP T IO N

XmlElementValue Boolean value The XML element value

XmlElementValue Datetime The XML element value

XmlElementValue Numeric value The XML element value

XmlElementValue Text value The XML element value

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Set XML element value


Set the value of an XML element
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

XML document: No XML node The XML document


or XML element to
retrieve it value

XPath query: Yes Text value The XPath expression


to locate the sub-
element and retrieve
its value

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

This action doesn't produce any variables


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Insert XML element


Insert a new XML element into an XML document
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

XML document: No XML node The XML document


to insert the new
XML element

XPath query: No Text value The XPath expression


to locate the parent
XML element and
insert the new
element into it

XML element to No XML node The new XML


insert: element to insert
into the XML
document

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

EXC EP T IO N DESC RIP T IO N

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

Remove XML element


Remove one or more XML elements from an XML document
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

XML document: No XML node The XML document


that contains the
XML element(s) to
remove

XPath query: No Text value The XPath expression


to locate the
element(s) to remove

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

EXC EP T IO N DESC RIP T IO N

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

Manage files and folders on an FTP server

Open FTP connection

List FTP directory

Open secure FTP connection

Close connection

Change working directory

Download file(s) from FTP

Download folder(s) from FTP

Upload File(s) to FTP

Upload folder(s) to FTP

Delete FTP file

Rename FTP File

Create FTP directory

Delete FTP directory

Invoke FTP command

Synchronize directories

Getting started with FTP actions


Use the FTP action group to upload and download files and manipulate directories on FTP servers.
To establish an FTP connection, use the Open FTP connection action. In the figure below, the host and port are
specified, the user's credentials are entered and a timeout is set for the action to return an error if the connection
fails.
Download files using the Download file(s) from FTP action. The figure below shows the connection variable
in use and the local folder which is the destination. The remote file has also been specified and set to overwrite
existing any existing file in the same location.

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

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

Host No Text value Enter the FTP server


address here.

Port Yes Numeric value 21 Enter the FTP server


port here.

Active mode N/A Boolean value False Specify the mode of


the connection

Username No Text value Specify the username


of the FTP account to
use

Password Yes Encrypted value Specify the password


of the FTP account to
use

Timeout Yes Numeric value 10 Set the time in


seconds that you
want to wait for the
connection to be
established before
the action fails

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

FTPConnection FTP connection The FTP connection

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Login failure error Indicated that the login failed

Connection error Indicates that there is a problem with the connection

List FTP directory


This action returns the subdirectories and files contained in the current directory of an FTP connection
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

Connection No FTP connection The FTP connection

Path Yes Text value The path that you


want to list.

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

Directories List of FTP directories The listed directories

Files List of FTP Files The listed files

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Open secure FTP connection


This action establishes a specific secure 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

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

Host No Text value Enter the FTP server


address here.

Port Yes Numeric value 22 Enter the FTP server


port here.

Active mode N/A Boolean value True Specify the mode of


the connection

Secure FTP Protocol N/A SFTP, FTPS explicit, SFTP Choose the FTP
FTPS implicit protocol you wish to
use to encrypt your
connection

Authentication N/A Username and Username and Choose the method


method password, Private password you wish to use to
key, Private key and authenticate yourself
passphrase on the FTP server

User name No Text value Specify the username


of the FTP account to
use

Password Yes Encrypted value Specify the password


of the FTP account
you wish to use

Path to private key No Text value Enter the file path to


the private-key to be
used for
authentication
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

Private key pass Yes Encrypted value Enter a variable


phrase containing the
private-key pass
phrase here

Timeout Yes Numeric value 10 Set the time in


seconds that you
want to wait for the
connection to be
established before
the action fails

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

SftpConnection FTP connection SFTP connection

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Login failure error Indicated that the login failed

Connection error Indicates that there is a problem with the connection

Close connection
This action closes an open FTP connection
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

Connection No FTP connection The FTP connection

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

EXC EP T IO N DESC RIP T IO N

Not connected error Indicates that there is no open connection with the FTP
server

Change working directory


This action sets the current working directory for an FTP connection
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

Connection No FTP connection The FTP connection

Set working directory No Text value Set the path to be


to set as the working
directory
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

EXC EP T IO N DESC RIP T IO N

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

Download file (s) from FTP


Downloads one or more files from an FTP server
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

FTP connection No FTP connection The FTP connection


to work with. This
variable must have
been previously
specified in an Open
FTP connection
action

Download into folder No Folder The folder to be the


destination of the
file(s) that will be
downloaded

File(s) to download No List of FTP Files The file(s) to


download

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

If file exists N/A Overwrite, Do not Overwrite Specify what to do if


download, Download the file already exists.
with unique name Overwrite writes over
the original file so
you can't access it
any more, and
download with
unique name adds an
underscore and a
sequential number to
the end
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

This action doesn't produce any variables


Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Download folder(s) from FTP


Downloads one or more folders from an FTP server
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

FTP connection No FTP connection The FTP connection


to work with. This
variable must have
been previously
specified in an Open
FTP connection
action

Folder(s) to No List of FTP directories The name of the


download folder path(s), or FTP
folder(s) to download

Download into local No Folder The full path of the


folder destination of the
FTP folder(s) you are
downloading

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
EXC EP T IO N DESC RIP T IO N

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

Upload File (s) to FTP


Uploads one or more files to an FTP server
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

FTP connection No FTP connection The FTP connection


to work with. This
variable must have
been previously
specified in an Open
FTP connection
action

File(s) to upload No List of Files The file(s) to upload

Remote location Yes Text value The location where


the filesshould be
uploaded

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

If file exists N/A Overwrite, Do not Overwrite Specify what to do if


download, Download the file already exists.
with unique name Overwrite writes over
the original file so
you can't access it
any more, and
Download with
Unique Name adds
an underscore and a
sequential number to
the end
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

EXC EP T IO N DESC RIP T IO N

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

Upload file error Indicates that the file couldn't be uploaded

Upload folder(s) to FTP


Uploads one or more folders to an FTP server
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

FTP connection No FTP connection The FTP connection


to work with. This
variable must have
been previously
specified in an Open
FTP connection
action

Folder(s) to upload No List of Folders The folder(s) to


upload. The folders
being uploaded
should not already
exist within the active
directory of the FTP
server

Remote location No Text value The location where


the folders should be
uploaded

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

EXC EP T IO N DESC RIP T IO N

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

Upload directory error Indicates that the directory couldn't be uploaded


Delete FTP file
Deletes one or more files from an FTP server
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

FTP connection No FTP connection The FTP connection


to work with. This
variable must have
been previously
specified in an Open
FTP connection
action

Files to delete No List of FTP Files The files to delete

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

EXC EP T IO N DESC RIP T IO N

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

Rename FTP File


Renames a file that resides on an FTP server
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

FTP connection No FTP connection The FTP connection


to work with. This
variable must have
been previously
specified in an Open
FTP connection
action

File to rename No FTP File The file to rename

New file name No Text value The new name for


the file. If you enter a
name with a path,
the file will also be
moved to that
location. If the
location doesn't exist,
it will throw an
exception

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

EXC EP T IO N DESC RIP T IO N

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

Create FTP directory


Creates a directory on an FTP server
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

FTP connection No FTP connection The FTP connection


to work with. This
variable must have
been previously
specified in an Open
FTP connection
action

New directory No FTP directory The new directory. If


a path is specified, all
of the new folders
leading to the new
directory will be
created

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

EXC EP T IO N DESC RIP T IO N

Access denied error Indicates that this account doesn't have access for an
operation

File exists error Indicates that the file already exists

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

Delete FTP directory


Deletes a directory from an FTP server
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

FTP connection No FTP connection The FTP connection


to work with. This
variable must have
been previously
specified in an Open
FTP connection
action

Directory to delete No FTP directory The folder to be


deleted. Everything
in the folder will be
deleted as well

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

EXC EP T IO N DESC RIP T IO N

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

Invoke FTP command


Invokes the given literal FTP command on the server
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

FTP connection No FTP connection The FTP connection


to work with. This
variable must have
been previously
specified in an open
FTP connection
action

FTP command No Text value The command to run


along with any
arguments. For
example, you could
run FEAT, or CHMOD
here
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

Valid reply code(s) Yes Text value The code(s) that


could be returned by
the command,
separated by semi-
colon. If the FTP
command returns a
code that wasn't
entered here, this
action will throw an
exception. Only
applies over simple
FTP or FTPS
connections

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

ReplyCode Text value The actual code that was returned.


Only applies over simple FTP or FTPS
connections

ReplyText Text value The text returned by the FTP server

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

FTP connection No FTP connection The FTP connection


to work with. This
variable must have
been previously
specified in an Open
FTP connection
action
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

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

File filter Yes Text value * File-name pattern


that controls which
files will be included
or excluded. This
option allows
wildcards such as
".txt" ,
"document?.doc". The
option also allows for
multiple filters by
using coma as a
separator,
".txt,*.pdf,document?"

Local folder No Folder Name of the local


folder to be
syncronized

FTP directory Yes FTP directory / Name of the FTP


directory to be
synchronized

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.

Include N/A Boolean value True This option will


subdirectories include subdirectories
in the
synchronization
process.

Time difference in Yes Numeric value 0 Time difference in


hours hours of the remote
server in case it
operates on a
different Time Zone.
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

Time difference in Yes Numeric value 0 Time difference in


minutes Minutes of the
remote server in case
it operates on a
different Time Zone.

Time difference N/A Boolean value True Specify whether the


ahead server's time zone is
ahead or not.

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

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.

FilesAdded List of Files List of files that initially existed in the


source and after the syncronzation
process were added to the target.

FilesModified List of Files List of files that initially existed in both


the source and the target and after the
syncronzation process were added to
the target.

FilesDeleted List of Files List of files that initially existed in the


target directory and after the
synchronzation process were deleted.

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Upload file error Indicates that the file couldn't be uploaded


EXC EP T IO N DESC RIP T IO N

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

Connect to CyberArk and retrieve passwords

Get password from CyberArk

Getting started with CyberArk actions


CyberArk offers an identity security platform that secures human and machine identities from end-to-end.
Power Automate enables you to retrieve credentials from CyberArk through the Get password from
CyberArk action.

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

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

Server address No Text value The base URI for the


web request

Application ID No Text value The application ID to


use for the web
request

Safe No Text value The safe on CyberArk


in which the
application belongs

Folder No Text value The folder necessary


for the web request
query
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

Object No Text value The object necessary


for the web request
query

Extra data Yes Text value The extra data (if any)
for the web request's
query

Accept untrusted N/A Boolean value False Specifies whether to


certificates accept untrusted
certificates

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

Use only valid N/A Boolean value False Specifies whether to


certificates load only valid
certificates from the
store

Store certificate path No Text value The path of the


certificate in the
certificate store

Certificates path No File The path of the


certificate selected
from the store

Certificate password No Encrypted value The password for the


certificate file

Timeout Yes Numeric value 30 The waiting time (in


seconds) to get
results from
CyberArk

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

JSONResponse Custom object The API response result

CyberArkPassword Encrypted value The password retrieved from CyberArk

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to send web request Indicates a problem sending the web request

Timeout expired Indicates that the request timed out

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

Connect to an Active Directory server and perform operations

Create group

Get group info

Get group members

Modify group

Create object

Delete object

Move object

Rename object

Create user

Get user info

Modify user

Unlock user

Update user info

Connect to server

Close connection

Getting started with Active Directory actions


Active Directory actions require a connection to an Active Directory server. Establish the connection by using the
Connect to server action, which requires the LDAP path to specify the domain controllers. The LDAP Path field
should specify the domain controllers and have the following format:

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

Active Directory actions


Group
Create, modify and get information about a group in an Active Directory server
Create group
Creates a group 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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

Group name No Text value The name of the


newly created group

Location Yes Text value The location that the


group will be created
in

Description Yes Text value The description for


the group

Group scope N/A Local, Global, Global The scope of the


Universal group in the Active
Directory

Group type N/A Security, Distribution Security The type of the


group

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

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication


EXC EP T IO N DESC RIP T IO N

Invalid operation Indicates an invalid operation error

The server isn't operational Indicates that the Active Directory server isn't operational

Unauthorized access Indicates that an authorization error occurred

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

Active Directory error General Active Directory error

Get group info


Gets information about a group from the Active Directory server
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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

Distinguished name No Text value The distinguished


name of the Active
Directory entry

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

GroupInfo Group info The group's info

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication

Invalid operation Indicates an invalid operation error

The server isn't operational Indicates that the Active Directory server isn't operational

Unauthorized access Indicates that an authorization error occurred

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

Active Directory error General Active Directory error


Get group members
Gets the members of a group 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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

Distinguished name No Text value The distinguished


name of the Active
Directory entry

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

GroupMembers List of Group members The variable that holds the members
of the group

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication

Invalid operation Indicates an invalid operation error

The server isn't operational Indicates that the Active Directory server isn't operational

Unauthorized access Indicates that an authorization error occurred

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

Active Directory error General Active Directory error

Modify group
Modifies a group 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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

Distinguished name No Text value The distinguished


name of the Active
Directory entry
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

Operation N/A Rename group, Rename group Select the operation


Delete group, Add to perform
user, Remove user

New name No Text value The new name for


the group

User distinguished No Text value Specify the user's


name distinguished name

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

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication

Invalid operation Indicates an invalid operation error

The server isn't operational Indicates that the Active Directory server isn't operational

Unauthorized access Indicates that an authorization error occurred

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

Active Directory error General Active Directory error

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

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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

Location Yes Text value The location that the


group will be created
in

Object type N/A Computer, Computer The type of the


Organizational unit object

Object name No Text value The name of the


newly created object

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

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication

Invalid operation Indicates an invalid operation error

The server isn't operational Indicates that the Active Directory server isn't operational

Unauthorized access Indicates that an authorization error occurred


EXC EP T IO N DESC RIP T IO N

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

Invalid attribute syntax Indicates that a given attribute is invalid

Active Directory error General Active Directory error

Delete object
Deletes 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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

Distinguished name No Text value The distinguished


name of the Active
Directory entry

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

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication

Invalid operation Indicates an invalid operation error

The server isn't operational Indicates that the Active Directory server isn't operational

Unauthorized access Indicates that an authorization error occurred

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

Active Directory error General Active Directory error

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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

Distinguished name No Text value The distinguished


name of the Active
Directory entry

Move to location No Text value The location for the


object to be moved
to

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

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication

Invalid operation Indicates an invalid operation error

The server isn't operational Indicates that the Active Directory server isn't operational

Unauthorized access Indicates that an authorization error occurred

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

Active Directory error General Active Directory error

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

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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

Distinguished name No Text value The distinguished


name of the Active
Directory entry

New name No Text value Type the new name


for the group

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

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication

Invalid operation Indicates an invalid operation error

The server isn't operational Indicates that the Active Directory server isn't operational

Unauthorized access Indicates that an authorization error occurred

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

Active Directory error General Active Directory error

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

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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

Location Yes Text value The location that the


group will be created
in

First name No Text value The first name of the


user

Initials Yes Text value The initials of the


user

Last name Yes Text value The last name of the


user

Username No Text value The username of the


user
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

Password No Encrypted value The password of the


user

Password never N/A Boolean value False Specify whether the


expires password of the user
will expire

Disabled account N/A Boolean value False Specify whether the


account will be
disabled

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

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication

Invalid operation Indicates an invalid operation error

The server isn't operational Indicates that the Active Directory server isn't operational

Unauthorized access Indicates that an authorization error occurred

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

Active Directory error General Active Directory error

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

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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

Distinguished name No Text value The distinguished


name of the Active
Directory entry

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

UserInfo User info The user's info

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication

Invalid operation Indicates an invalid operation error


EXC EP T IO N DESC RIP T IO N

The server isn't operational Indicates that the Active Directory server isn't operational

Unauthorized access Indicates that an authorization error occurred

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

Active Directory error General Active Directory error

Modify user
Modify a user 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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

Distinguished name No Text value The distinguished


name of the Active
Directory entry

Operation N/A Enable/disable user, Enable/disable user Select the operation


Rename user, Delete to be performed
user, Reset password

Enable user N/A Boolean value False Enable or disable the


user

New name No Text value Type the new name


for the group

New password No Encrypted value Type the new


password for the
group

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

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication

Invalid operation Indicates an invalid operation error

The server isn't operational Indicates that the Active Directory server isn't operational

Unauthorized access Indicates that an authorization error occurred


EXC EP T IO N DESC RIP T IO N

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

Invalid attribute syntax Indicates that a given attribute is invalid

Active Directory error General Active Directory error

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

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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

Distinguished name No Text value The distinguished


name of the Active
Directory entry

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

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication

Invalid operation Indicates an invalid operation error

The server isn't operational Indicates that the Active Directory server isn't operational

Unauthorized access Indicates that an authorization error occurred

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

Active Directory error General Active Directory error

Update user info


Updates a user's information 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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

Distinguished name No Text value The distinguished


name of the Active
Directory entry

Display name Yes Text value The display name of


the user

First name Yes Text value The first name of the


user

Initials Yes Text value The initials of the


user

Last name Yes Text value The last name of the


user

Title Yes Text value The title of the user

The email of the user Yes Text value The email of the user

The company of the Yes Text value The company of the


user user

Telephone number Yes Text value The telephone


number of the user

Extension Yes Text value The extension of the


user

City Yes Text value The city of the user

Postal code Yes Text value The postal code of


the user

State Yes Text value The state of the user

Country N/A Afghanistan, Åland None The country of the


Islands, Albania, user as a two-letter
Algeria, American code (ISO 3166-1
Samoa, Andorra, alpha-2)
Angola, Anguilla,
Antarctica, Antigua
and Barbuda,
Argentina, Armenia,
Aruba, Australia,
Austria, Azerbaijan,
Bahamas, Bahrain,
Bangladesh,
Barbados, Belarus,
Belgium, Belize,
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
Benin, Bermuda,
Bhutan, State of
Bolivia Plurinational,
Bonaire, Bosnia and
Herzegovina,
Botswana, Bouvet
Island, Brazil, British
Indian Ocean
Territory, Brunei
Darussalam, Bulgaria,
Burkina Faso,
Burundi, Cabo Verde,
Cambodia,
Cameroon, Canada,
Cayman Islands,
Central African
Republic, Chad, Chile,
China, Christmas
Island, Cocos
(Keeling) Islands,
Colombia, Comoros,
Congo, Democratic
Republic of the
Congo, Cook Islands,
Costa Rica, Côte
d'Ivoire, Croatia,
Cuba, Curaçao,
Cyprus, Czech
Republic, Denmark,
Djibouti, Dominica,
Dominican Republic,
Ecuador, Egypt, El
Salvador, Equatorial
Guinea, Eritrea,
Estonia, Ethiopia,
Falkland Islands
(Malvinas), Faroe
Islands, Fiji, Finland,
France, French
Guiana, French
Polynesia, French
Southern Territories,
Gabon, Gambia,
Georgia, Germany,
Ghana, Gibraltar,
Greece, Greenland,
Grenada,
Guadeloupe, Guam,
Guatemala,
Guernsey, Guinea,
Guinea-Bissau,
Guyana, Haiti, Heard
Island and McDonald
Islands, Holy See,
Honduras, Hong
Kong, Hungary,
Iceland, India,
Indonesia, Islamic
Republic of Iran, Iraq,
Ireland, Isle of Man,
Israel, Italy, Jamaica,
Japan, Jersey, Jordan,
Kazakhstan, Kenya,
Kiribati, Democratic
Peoples Republic of
Peoples Republic of
A RGUM EN T O P T IO N A L AKorea,
C C EP TRepublic
S of DEFA ULT VA L UE DESC RIP T IO N
Korea, Kuwait,
Kyrgyzstan, Lao
People's Democratic
Republic, Latvia,
Lebanon, Lesotho,
Liberia, Libya,
Liechtenstein,
Lithuania,
Luxembourg, Macao,
North Macedonia,
Madagascar, Malawi,
Malaysia, Maldives,
Mali, Malta, Marshall
Islands, Martinique,
Mauritania,
Mauritius, Mayotte,
Mexico, Micronesia,
Moldova, Monaco,
Mongolia,
Montenegro,
Montserrat,
Morocco,
Mozambique,
Myanmar, Namibia,
Nauru, Nepal,
Netherlands, New
Caledonia, New
Zealand, Nicaragua,
Niger, Nigeria, Niue,
Norfolk Island,
Northern Mariana
Islands, Norway,
Oman, Pakistan,
Palau, Palestine,
Panama, Papua New
Guinea, Paraguay,
Peru, Philippines,
Pitcairn, Poland,
Portugal, Puerto
Rico, Qatar, Réunion,
Romania, Russia,
Rwanda, Saint
Barthélemy, Saint
Helena, Saint Kitts
and Nevis, Saint
Lucia, Saint Martin
(French part), Saint
Pierre and Miquelon,
Saint Vincent and the
Grenadines, Samoa,
San Marino, Sao
Tome and Principe,
Saudi Arabia,
Senegal, Serbia,
Seychelles, Sierra
Leone, Singapore,
Sint Maarten (Dutch
part), Slovakia,
Slovenia, Solomon
Islands, Somalia,
South Africa, South
Georgia and the
South Sandwich
Islands, South Sudan,
Islands, South Sudan,
A RGUM EN T O P T IO N A L Spain,
A C C EPSri
T S Lanka, DEFA ULT VA L UE DESC RIP T IO N
Sudan, Suriname,
Svalbard and Jan
Mayen, Swaziland,
Sweden, Switzerland,
Syrian Arab Republic,
Taiwan, Tajikistan,
Tanzania, Thailand,
Timor-Leste, Togo,
Tokelau, Tonga,
Trinidad and Tobago,
Tunisia, Turkey,
Turkmenistan, Turks
and Caicos Islands,
Tuvalu, Uganda,
Ukraine, United Arab
Emirates, United
Kingdom of Great
Britain and Northern
Ireland, United States
of America, United
States Minor
Outlying Islands,
Uruguay, Uzbekistan,
Vanuatu, Bolivarian
Republic of
Venezuela, Vietnam,
Virgin Islands
(British), Virgin
Islands (U.S.), Wallis
and Futuna, Yemen,
Zambia, Zimbabwe,
None

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

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication

Invalid operation Indicates an invalid operation error

The server isn't operational Indicates that the Active Directory server isn't operational

Unauthorized access Indicates that an authorization error occurred

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

Active Directory error General Active Directory error

Connect to server
Connects to an Active Directory server
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

LDAP path No Text value The LDAP path of the


Active Directory
server

Use authentication N/A Boolean value False Specify whether


authentication is
needed to connect to
the server

Username No Text value The user's username

Password No Encrypted value The user's password

Authentication type N/A None, Secure, Secure Specify the type of


Encryption, Secure authentication to be
sockets layer, Read- used
only server,
Anonymous, Fast
bind, Signing, Sealing,
Delegation, Server
bind

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

ParentDirectoryEntry Active Directory entry The parent of the Active Directory


entry for use with later Active
Directory actions

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Authentication error Indicates an error with the user's authentication

Unauthorized access Indicates that an authorization error occurred

The server isn't operational Indicates that the Active Directory server isn't operational

Invalid operation Indicates an invalid operation error

Active Directory error General Active Directory error

Close connection
Closes the connection with the Active Directory server
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


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

Parent directory No Active Directory The parent entry of


entry entry the Active Directory
server

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

This action doesn't include any exceptions


AWS
1/15/2022 • 13 minutes to read • Edit Online

Connect to Amazon web services and automate a variety of tasks

Start EC2 instance

Stop EC2 instance

Reboot EC2 instance

Get available EC2 instances

Describe instances

Create snapshot

Describe snapshots

Delete snapshot

Create volume

Attach volume

Detach volume

Describe volumes

Delete volume

Create EC2 session

End EC2 session

Getting started with AWS actions


IMPORTANT
To deploy AWS actions in your desktop flows, you need an active AWS subscription.

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

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

EC2 client No EC2 client The EC2 client

Instance IDs No List of Text values The instance IDs to


start

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

StartingEc2Instances List of Instance state changes The returned information for the
started instances

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Authentication failed Indicates that the provided credentials couldn't be validated

Unauthorized operation Indicates that an unauthorized operation was requested

Invalid instance ID Indicates that either the specified instance ID is malformed,


or that the specified instance doesn't exist

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

Stop EC2 instance


Stop EC2 instance(s)
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

EC2 client No EC2 client The EC2 client

Instance IDs No List of Text values The instance IDs to


stop

Force stop N/A Boolean value False Specifies whether to


force the instances to
stop. The instances
don't have an
opportunity to flush
file system caches or
file system metadata

Hibernatation: N/A Boolean value False Specifies whether to


hibernate the
instance, if it was
enabled for
hibernation at
launch. If the
instance can't
hibernate
successfully, a normal
shutdown occurs

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

StoppingEc2Instances List of Instance state changes The returned information for the
stopped instances

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Authentication failed Indicates that the provided credentials couldn't be validated

Unauthorized operation Indicates that an unauthorized operation was requested

Unsupported operation Indicates that an unsupported operation was requested. For


example, an instance that is instance store-backed can't be
stopped

Invalid instance ID Indicates that either the specified instance ID is malformed,


or that the specified instance doesn't exist

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

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

EC2 client No EC2 client The EC2 client

Instance IDs No List of Text values The instance IDs to


reboot

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

EXC EP T IO N DESC RIP T IO N

Authentication failed Indicates that the provided credentials couldn't be validated

Unauthorized operation Indicates that an unauthorized operation was requested

Unsupported operation Indicates that an unsupported operation was requested. For


example, an instance that is instance store-backed can't be
stopped

Invalid instance ID Indicates that either the specified instance ID is malformed,


or that the specified instance 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

Amazon service request failed Indicates that the request to AWS failed

Get available EC2 instances


Get information for the relevant EC2 instances
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

EC2 client No EC2 client The EC2 client

Availability zone Yes Text value Specifies the


availability zone, a
region code followed
by a letter identifier

Instance state N/A Pending, All, All The state of the


Unknown, Running, instance (pending,
Shutting down, running, shutting
Terminated, Stopping, down, terminated,
Stopped stopping, stopped)

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

EXC EP T IO N DESC RIP T IO N

Authentication failed Indicates that the provided credentials couldn't be validated

Unauthorized operation Indicates that an unauthorized operation was requested

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

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

EC2 client No EC2 client The EC2 client

Instance IDs Yes List of Text values The instance IDs be


describe

Availability zone Yes Text value Specifies the


availability zone, a
region code followed
by a letter identifier

Instance state N/A Pending, All, All The current state of


Unknown, Running, the instance
Shutting down,
Terminated, Stopping,
Stopped

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

Ec2Instances List of EC2 instances The retrieved instance(s) with all the
relevant information

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Authentication failed Indicates that the provided credentials couldn't be validated

Unauthorized operation Indicates that an unauthorized operation was requested

Invalid instance ID Indicates that either the specified instance ID is malformed,


or that the specified instance doesn't exist

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

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

EC2 client No EC2 client The EC2 client

Volume ID No Text value The ID of the EBS


volume

Name Yes Text value The name of the


snapshot

Description Yes Text value A description for the


snapshot

Purpose Yes Text value The purpose of the


snapshot

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

Snapshot EBS snapshot The created snapshot

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Authentication failed Indicates that the provided credentials couldn't be validated

Unauthorized operation Indicates that an unauthorized operation was requested

Invalid volume Indicates that either the volume ID isn't valid, or the
specified volume doesn't exist

or the volume isn't in the same qvailability zone as the


specified instance

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

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

EC2 client No EC2 client The EC2 client


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

Describe snapshots N/A All snapshots, All snapshots Specifies whether to


mode Snapshots by ID, get all snapshots of
Snapshots by owner the defined region or
ID, Snapshots by filter snapshots by
restorable user ID, their ID, owner or
Snapshots by custom user by which they
filter are restorable

Snapshot IDs Yes List of Text values The snapshot IDs to


describe

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

A RGUM EN T TYPE DESC RIP T IO N

EBSSnapshots List of EBS snapshots The retrieved snapshot(s) with all the
relevant information

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Authentication failed Indicates that the provided credentials couldn't be validated

Unauthorized operation Indicates that an unauthorized operation was requested

Invalid snapshot ID Indicates that either the specified snapshot ID is invalid, or


that the specified snapshot doesn't exist

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

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

EC2 client No EC2 client The EC2 client

Snapshot ID No Text value The ID of the EBS


snapshot to delete

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
EXC EP T IO N DESC RIP T IO N

Authentication failed Indicates that the provided credentials couldn't be validated

Unauthorized operation Indicates that an unauthorized operation was requested

Invalid snapshot ID Indicates that either the specified snapshot ID is invalid, or


that the specified snapshot 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

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

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

EC2 client No EC2 client The EC2 client

Name Yes Text value The desired name for


the volume

Purpose Yes Text value The purpose of the


volume, if any

Availability zone No Text value Specifies the


availability zone, a
region code followed
by a letter identifier

From snapshot N/A Boolean value False Specifies whether to


create the volume
from a specified
snapshot

Snapshot ID No Text value The snapshot from to


create the volume
from

Volume size No Text value The size of the


volume in GBs

Size Yes Text value The size must be


equal to or larger
than the snapshot
size
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

Encrypted N/A Boolean value False Specifies whether to


encrypt the volume

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

A RGUM EN T TYPE DESC RIP T IO N

Volume EBS volume The created volume

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Authentication failed Indicates that the provided credentials couldn't be validated

Unauthorized operation Indicates that an unauthorized operation was requested

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

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

EC2 client No EC2 client The EC2 client

Volume ID No Text value The ID of the EBS


volume

Instance ID No Text value The ID of the


instance

Device name No Text value The name of the


device

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
EXC EP T IO N DESC RIP T IO N

Authentication failed Indicates that the provided credentials couldn't be validated

Unauthorized operation Indicates that an unauthorized operation was requested

Unsupported operation Indicates that an unsupported operation was requested. For


example, an instance that is instance store-backed can't be
stopped

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

or the volume isn't in the same qvailability zone as the


specified instance

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

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

EC2 client No EC2 client The EC2 client

Volume ID No Text value The ID of the EBS


volume

Instance ID Yes Text value The ID of the


instance

Device name Yes Text value The name of the


device

Force detachment N/A Boolean value False Specifies whether to


force detachment, if
the previous
detachment attempt
didn't occur cleanly

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

EXC EP T IO N DESC RIP T IO N

Authentication failed Indicates that the provided credentials couldn't be validated


EXC EP T IO N DESC RIP T IO N

Unauthorized operation Indicates that an unauthorized operation was requested

Unsupported operation Indicates that an unsupported operation was requested. For


example, an instance that is instance store-backed can't be
stopped

Invalid parameter Indicates that a parameter specified in the request isn't valid,
unsupported, or can't be used

Invalid attempt to detach Indicates an attempt to detach a volume from an instance to


which it isn't attached

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

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

EC2 client No EC2 client The EC2 client

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

Volume IDs No List of Text values The volume IDs to


describe

Instance ID No Text value The ID of the


instance that the
volume is attached to

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

EBSVolumes List of EBS volumes The retrieved EBS volumes with all the
relevant information

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Authentication failed Indicates that the provided credentials couldn't be validated

Unauthorized operation Indicates that an unauthorized operation was requested


EXC EP T IO N DESC RIP T IO N

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

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

EC2 client No EC2 client The EC2 client

Volume ID No Text value The ID of the EBS


volume to delete

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

EXC EP T IO N DESC RIP T IO N

Authentication failed Indicates that the provided credentials couldn't be validated

Unauthorized operation Indicates that an unauthorized operation was requested

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

or the volume isn't in the same qvailability zone as the


specified instance

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

Create EC2 session


Create an EC2 client to automate EC2 web services
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


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

Access keys N/A Boolean value False Specifies whether to


use access key ID
and secret access key
in order to create the
EC2 session

Access key ID No Text value The AWS access key


ID

Secret No Encrypted value The AWS secret


access key

Region endpoint No Text value The region constant


to use that
determines the
endpoint to use

Profile name Yes Text value default The name of the


profile to use

Profile location Yes Text value The location of the


credentials file that
contains the profile
to use

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

Ec2Client EC2 client The EC2 client

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

End EC2 session


Dispose an open EC2 client
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

EC2 client No EC2 client The EC2 client

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

This action doesn't include any exceptions


Azure
1/15/2022 • 14 minutes to read • Edit Online

Connect to Azure Cloud and automate the management of resources like virtual machines, disks, snapshots and
resource groups

Get resource groups

Create resource group

Delete resource group

Get disks

Attach disk

Detach disk

Create managed disk

Delete disk

Get snapshots

Create snapshot

Delete snapshot

Get virtual machines

Describe virtual machine

Start virtual machine

Stop virtual machine

Shut down virtual machine

Restart virtual machine

Create session

Get subscriptions

End session

Getting started with Azure actions


IMPORTANT
To deploy Azure actions in your desktop flows, you need an active Azure subscription.

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

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

Azure client No Azure clients The client used to


connect to Azure

Resource group Yes Text value The name of the


name resource group

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

ResourceGroups List of Azure resource groups The retrieved resource groups

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

Failed to get the resource groups with the specified criteria Indicates that getting the resource groups with the specified
criteria failed

Create resource group


Creates a new resource group
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

Azure client No Azure clients The client used to


connect to Azure
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

Resource group No Text value The name of the


name resource group

Location No Text value The location where


the new disk will be
created

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

ResourceGroup Azure resource group The created resource group

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Delete resource group


Deletes the specified resource group and all the contained resources
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

Azure client No Azure clients The client used to


connect to Azure

Resource group No Text value The name of the


name resource group

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

EXC EP T IO N DESC RIP T IO N

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

Azure client No Azure clients The client used to


connect to Azure

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

Resource group No Text value The resource group


where the disks
reside

Disk name No Text value The name of the disk

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

Disks List of Azure managed disks The retrieved disks with all the related
information

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

Azure client No Azure clients The client used to


connect to Azure

Virtual machine No Text value The VM where the


name disk will be attached

VM resource group No Text value The resource group


of the VM

Disk is managed N/A Boolean value True Specify whether the


disk to attach is
managed
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

Disk name No Text value The name of the disk


to attach

Disk's resource group No Text value The resource group


of the disk

Storage account No Text value The storage account


where VHD file is
located

Container No Text value The container that


holds the VHD file

VHD file No Text value The name of the


VHD file

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

EXC EP T IO N DESC RIP T IO N

VM wasn't found Indicates that the specified VM wasn't found

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

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

Azure client No Azure clients The client used to


connect to Azure

Virtual machine No Text value The VM from where


name the disk will be
detached

Virtual machine's No Text value The resource group


resource group of the VM

Disk name No Text value The name of the disk


to detach

Disk is managed N/A Boolean value True Specify whether the


disk to detach is
managed
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

EXC EP T IO N DESC RIP T IO N

VM wasn't found Indicates that the specified VM wasn't found

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

Failed to detach disk Indicates that detaching the disk failed

Create managed disk


Creates a managed disk with the specified settings
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

Azure client No Azure clients The client used to


connect to Azure

Disk name No Text value The name of the


managed disk to
create

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

Resource group No Text value The resource group


name of the disk

Location No Text value The location where


the new disk is
created

Source type N/A None, Snapshot, None Specifies whether to


Storage blob create an empty disk
or use the snapshot
of another disk or
use a blob in a
storage account

Snapshot name No Text value The managed


snapshot to use as a
source

Snapshot's resource No Text value The resource group


group of the snapshot

Blob URL No Text value The URL of the blob

Disk size in GB No Numeric value Size of the disk in GB


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

Storage account type N/A Standard HDD, Standard HDD The disk type
Premium SSD,
Standard SSD, Ultra
disk SSD

Storage account No Text value The name of the


name storage account
where VHD file is
stored

Availability zone Yes Text value The availability zone


for the managed disk

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

ManagedDisk Azure managed disk The created managed disk

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Failed to create disk Indicates that creating the disk failed

Delete disk
Deletes the managed disk with the specified name and resource group
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

Azure client No Azure clients The client used to


connect to Azure

Disk name No Text value The name of the


managed disk to
delete

Resource group No Text value The resource group


of the disk

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
EXC EP T IO N DESC RIP T IO N

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

Failed to delete disk Indicates that deleting the disk failed

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

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

Azure client No Azure clients The client used to


connect to Azure

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

Resource group No Text value The resource group


where the snapshots
reside

Snapshot name No Text value The name of the


snapshot

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

Snapshots List of Azure snapshots The retrieved snapshots with all the
related information

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

Azure client No Azure clients The client used to


connect to Azure

Snapshot name No Text value The name of the


snapshot to create

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

Resource group No Text value The resource group


where the snapshot
will be created

Location No Text value The location where


the new disk will be
created

Source disk No Text value The name of the


managed disk that
will be used as source
data

Source disk's No Text value The resource group


resource group of the managed disk
that will be used as
source data

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

Snapshot Azure snapshot The created snapshot

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

Failed to create snapshot Indicates that creating the snapshot failed

Delete snapshot
Deletes the snapshot with the specified name and resource group
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

Azure client No Azure clients The client used to


connect to Azure

Snapshot name No Text value The name of the


snapshot to delete

Resource group No Text value The resource group


of the snapshot

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

EXC EP T IO N DESC RIP T IO N

Snapshot wasn't found Indicates that the specified snapshot wasn't found

Failed to delete snapshot Indicates that deleting the snapshot failed

Get virtual machines


Gets the basic information for the virtual machines
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

Azure client No Azure clients The client used to


connect to Azure

Resource group Yes Text value The resource group


of the virtual
machine

Status N/A Running, Any The status of the


Deallocating, virtual machine
Deallocated, Starting,
Stopped, Stopping,
Unknown, Any

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

VirtualMachinesInfo List of Azure virtual machine info The retrieved virtual machines with
basic information

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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 machine


Gets all the information for the virtual machine(s) 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

Azure client No Azure clients The client used to


connect to Azure

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

Resource group No Text value The resource group


of the virtual
machine

Virtual machine No Text value The name of the


name virtual machine

Status N/A Running, Any The status of the


Deallocating, virtual machine
Deallocated, Starting,
Stopped, Stopping,
Unknown, Any

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

VirtualMachines List of Azure virtual machines The retrieved virtual machines with all
the related information

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

VM wasn't found Indicates that the specified VM wasn't found

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

Start virtual machine


Starts the virtual machine
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

Azure client No Azure clients The client used to


connect to Azure

Virtual machine No Text value The name of the


name virtual machine

Resource group No Text value The resource group


of the virtual
machine

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

EXC EP T IO N DESC RIP T IO N

VM wasn't found Indicates that the specified VM wasn't found

Failed to start the VM Indicates that an error occurred while trying to start the VM

Stop virtual machine


Stops the virtual machine and deallocates the related hardware (CPU and memory) and network resources
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

Azure client No Azure clients The client used to


connect to Azure

Virtual machine No Text value The name of the


name virtual machine

Resource group No Text value The resource group


of the virtual
machine

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

EXC EP T IO N DESC RIP T IO N

VM wasn't found Indicates that the specified VM wasn't found

Failed to stop the VM Indicates that an error occurred while trying to stop the VM

Shut down virtual machine


Shuts down the operating system of a virtual machine
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

Azure client No Azure clients The client used to


connect to Azure

Virtual machine No Text value The name of the


name virtual machine

Resource group No Text value The resource group


of the virtual
machine

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

EXC EP T IO N DESC RIP T IO N

VM wasn't found Indicates that the specified VM wasn't found

Failed to shut down the VM Indicates an error occured while trying to shut down the VM

Restart virtual machine


Restarts a virtual machine
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

Azure client No Azure clients The client used to


connect to Azure

Virtual machine No Text value The name of the


name virtual machine

Resource group No Text value The resource group


of the virtual
machine

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

EXC EP T IO N DESC RIP T IO N

VM wasn't found Indicates that the specified VM wasn't found

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

Client ID No Text value The client Id of the


application, also
known as application
Id, which identifies
the application that is
using the token

Client secret No Encrypted value The secret for the


client ID

Tenant ID No Text value The directory ID of


the Azure Active
Directory

Environment N/A Global cloud, China Global cloud The environment to


cloud, US authenticate to
Government,
German cloud

Authentication file No Text value The path of the file


with all the required
information to
authenticate

Subscription ID Yes Text value The Azure


subscription ID. If not
provided, the default
subscription will be
used

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

AzureClient Azure clients The created Azure client

Ex c e p t i o n s

EXC EP T IO N DESC RIP T IO N

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

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

Azure client No Azure clients The client used to


connect to Azure

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

EXC EP T IO N DESC RIP T IO N

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

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

Azure client No Azure clients The client used to


connect to Azure

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

This action doesn't include any exceptions


Google cognitive
1/15/2022 • 8 minutes to read • Edit Online

Google's cognitive actions

Analyze sentiment

Analyze entities

Analyze syntax

Label detection

Landmark detection

Text Detection

Logo detection

Image properties detection

Safe search detection

Getting started with Google cognitive actions


Google cognitive services allow users to process unstructured data through machine learning and simplify
complicated tasks like text analyzing and computer vision.
This functionality can be implemented in your desktop flows through the Google cognitive group of action.
All Google cognitive actions require an API key that authorizes you to use the respective services. You can
manage your API keys in the APIs & ser vices section of the Cloud Console.
Cognitive actions
Natural language
Reveal the structure and meaning of text
Analyze sentiment
Invokes the Google Cloud Natural Language service named 'Analyze Sentiment'
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

API key No Text value The Google Cloud


API key to be used
for this API call

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

File path No File The full path (folder


plus filename) of the
document to
transmit
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

GCS Content URI No Text value The URI of the image


residing on Google
Cloud Storage

Language Yes Text value The language of the


text

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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

Analyze entities
Invokes the Google Cloud Natural Language service named 'Analyze Entities'
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

API key No Text value The Google Cloud


API key to be used
for this API call

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

File path No File The full path (folder


plus filename) of the
document to
transmit
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

GCS URL No Text value The URI of the


document residing
on Google Cloud
Storage

Language Yes Text value The language of the


text

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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

Analyze syntax
Invokes the Google Cloud Natural Language service named 'Analyze Syntax'
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

API key No Text value The Google Cloud


API key to be used
for this API call

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

File path No File The full path (folder


plus filename) of the
document to
transmit

GCS Content URI No Text value The URI of the image


residing on Google
Cloud Storage

Language Yes Text value The language of the


text

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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

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

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

API key No Text value The Google Cloud


API key to be used
for this API call
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 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

Image file No File The full path (folder


plus filename) of the
image file to transmit

GCS Image URI No Text value The URI of the image


residing on Google
Cloud Storage

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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

Landmark detection
Invokes the Google Cloud Vision service named 'Landmark Detection'
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

API key No Text value The Google Cloud


API key to be used
for this API call

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

Image file path No File The full path (folder


plus filename) of the
image file to transmit

GCS Image URI No Text value The URI of the image


residing on Google
Cloud Storage

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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

Text Detection
Invokes the Google Cloud Vision service named 'Text Detection'
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

API key No Text value The Google Cloud


API key to be used
for this API call

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

Image file No File The full path (folder


plus filename) of the
image file to transmit

GCS Image URI No Text value The URI of the image


residing on Google
Cloud Storage
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

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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

Logo detection
Invokes the Google Cloud Vision service named 'Logo Detection'
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

API key No Text value The Google Cloud


API key to be used
for this API call

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

Image file No File The full path (folder


plus filename) of the
image file to transmit

GCS Image URI No Text value The URI of the image


residing on Google
Cloud Storage

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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

Image properties detection


Invokes the Google Cloud Vision service named 'Image Properties Detection'
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

API key No Text value The Google Cloud


API key to be used
for this API call

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

Image file No File The full path (folder


plus filename) of the
image file to transmit

GCS Image URI No Text value The URI of the image


residing on Google
Cloud Storage

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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

Safe search detection


Invokes the Google Cloud Vision service named 'Safe Search Detection'
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

API key No Text value The Google Cloud


API key to be used
for this API call

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

Image file No File The full path (folder


plus filename) of the
image file to transmit

GCS Image URI No Text value The URI of the image


residing on Google
Cloud Storage

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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
IBM cognitive
1/15/2022 • 6 minutes to read • Edit Online

IBM's cognitive actions

Convert document

Translate

Identify language

Analyze tone

Classify Image

Getting started with IBM cognitive actions


IBM cognitive services are machine learning algorithms that use artificial intelligence to perform complex
operations, such as language tone analyzing and visual recognition.
Power Automate for desktop enables you to use these services in your flows through the IBM cognitive actions.
All IBM cognitive actions require an API key that can be created and managed through the IBM Cloud console.
Additionally, they require the release date of the used API and the service endpoint location.
IBM cognitive actions
Document conversion
Translate non-structured documents like fax, email, pdf, etc. into an EDI or other structured formats
Convert document
Invokes the IBM service named 'Convert Document'
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

Username No Text value The username to be


used for this call

Password No Encrypted value The password to use


for this call

Version date No Text value The release date of


the API to use

File path No File The path to the file


to analyze
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

Mime type N/A text/html, text/html The MIME type of


text/xhtml+xml, the file
application/pdf,
application/msword,
application/vnd.open
xmlformats-
officedocument.word
processingml.docume
nt

Conversion target N/A Answer units, Answer units The output format of
Normalized HTML, the conversion
Normalized text

Answer units Yes Text value The heading levels as


a comma-separated
string

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The results of the API call

StatusCode Numeric value The status code of the API call

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

Language translator
Translate documents, apps, and webpages
Translate
Invokes the IBM service named 'Translate'
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

API key No Text value The API key to use


for this call
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

Version date No Text value The release date of


the API to use

Service endpoint N/A US South, US East, US East The account's service


location Europe, Australia, location. Can be seen
Japan, UK, Korea through IBM
"Manage" in the
resources section

Instance ID No Text value The Instance ID of


the service.

Translate mode N/A Model ID, Source and Model ID Specify the mode to
target be used for this call

Model ID No Text value The unique model_id


of the translation
model that will be
used to translate the
text

Source No Text value The source language


of the text

Target No Text value The translation target


language in 2 or 5
letter language code

Text No List of Text values The text to send or


list of words to be
separately translated

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The results of the API call

StatusCode Numeric value The status code returned

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
Identify language
Invokes the IBM service named 'Identify Language'
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

API key No Text value The API key to use


for this call

Version date No Text value The release date of


the API to use

Service endpoint N/A US South, US East, US East The account's service


location Europe, Australia, location. Can be seen
Japan, UK, Korea through IBM
"Manage" in the
resources section

Instance ID No Text value The Instance ID of


the service.

Text No Text value The text to analyze

Content type Yes Text value text/plain The format of the


requested values

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The results of the API call

StatusCode Numeric value The status code of the API call

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

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

API key No Text value The API key to use


for this call

Version date No Text value The release date of


the API to use

Service endpoint N/A US South, US East, US East The account's service


location Europe, Australia, location. Can be seen
Japan, UK, Korea through IBM
"Manage" in the
resources section

Instance ID No Text value The Instance ID of


the service.

Provide text N/A From text, From file From text Specify how the text
to be analyzed will be
provided

Text No Text value The text to analyze

File path No File The path to the file


to analyze

Content type N/A text/plain, text/html, text/plain The content type of


application/json the text that will be
sent

Tones Yes Text value The tone with which


the results will be
filtered (optional)

Sentences Yes Text value Specify whether to


remove the sentence
analysis

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The results of the API call

StatusCode Numeric value The status code of the API call

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

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

API key No Text value The API key to use


for this call

Version date No Text value The release date of


the API to use

Service endpoint N/A US South, Europe, US South The account's service


location Korea location. Can be seen
through IBM
"Manage" in the
resources section

Instance ID No Text value The Instance ID of


the service.

Provide image N/A From file, From GCS From file Specify how the
image will be
provided

Image file path No File The path to the


image to be analyzed

Image URL No Text value The URL of the image


to be analyzed

Owners Yes Text value me The classifiers to be


used as a comma
separated list

Classifier IDs Yes Text value default The classifier Ids to


be used as a comma
separated list

Threshold Yes Text value The minimum score a


class must have to be
displayed in the
response as a
floating value
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

Language Yes Text value The language of the


output

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The results of the API call

StatusCode Numeric value The status code of the API call

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
Microsoft cognitive
1/15/2022 • 8 minutes to read • Edit Online

Microsoft's cognitive actions

Spell check

Analyze image

Describe image

OCR

Tag image

Detect language

Key phrases

Sentiment

Getting started with Microsoft cognitive actions


Microsoft cognitive services enable users to accelerate decision-making using artificial intelligence without
requiring machine learning expertise.
Power Automate for desktop provides a wide variety of Microsoft cognitive actions that allow you to integrate
this functionality into your flows. Text analysis, computer vision, and spell checking are all tasks that Microsoft
cognitive actions can perform.
All Microsoft cognitive actions require a subscription key that validates your subscription for a service or group
of services. The keys are available in the Azure portal for each resource that you've created.
Microsoft cognitive actions
Bing spell check
Correct spelling errors, recognize the difference among names, brand names, and slang, as well as understand
homophones
Spell check
Invokes the Microsoft Cognitive service named 'Bing Spell Check'
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

Subscription key No Text value The subscription key


to use for this API
call

Text No List of Text values The text or the list of


texts to send

Mode Yes Text value Specify the spell-


check mode

Mkt Yes Text value For proof mode, the


only supported
language codes are:
en-us, es-es, pt-br.
For spell mode, all
language codes are
supported
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

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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

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

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

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

Subscription key No Text value The subscription key


to use for this API
call

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

Image file No File The full path (folder


plus filename) of the
image file to transmit

Image URL No Text value The URL address of


an image

Visual features Yes Text value A text value


indicating what visual
feature types to
return. Multiple
values should be
comma-separated.
For example:
categories, tags,
description

Details Yes Text value A text value


indicating which
domain-specific
details to return.
Multiple values
should be comma-
separated

Language Yes Text value A text value


indicating which
language to return.
The service will
return recognition
results in the
specified language

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value Τhe status code returned

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
Describe image
Invokes the Microsoft Cognitive service named 'Describe Image'
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

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

Subscription key No Text value The subscription key


to use for this API
call

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

Image file No File The full path (folder


plus filename) of the
image file to transmit

Image URL No Text value The URL address of


an image

Max candidates Yes Text value The maximum


number of candidate
descriptions to be
returned. The default
is 1

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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

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

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

Subscription key No Text value The subscription key


to use for this API
call

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

Image file No File The full path (folder


plus filename) of the
image file to transmit

Image URL No Text value The URL address of


an image

Language Yes Text value The BCP-47


language code of the
text to detect in the
image

Detect orientation Yes Text value Specify whether to


detect the text
orientation in the
image

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails
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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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

Tag image
Invokes the Microsoft Cognitive service named 'Tag Image'
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

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

Subscription key No Text value The subscription key


to use for this API
call

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

Image file No File The full path (folder


plus filename) of the
image file to transmit

Image URL No Text value The URL address of


an image

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails
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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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

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

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

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

Subscription key No Text value The subscription key


to use for this API
call

Text No Text value The text to analyze

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results


A RGUM EN T TYPE DESC RIP T IO N

StatusCode Numeric value The status code returned

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

Key phrases
Invokes the Microsoft Cognitive service named 'Text Analytics - Key Phrases'
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

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

Subscription key No Text value The subscription key


to use for this API
call

Text No List of Text values The text or the list of


texts to analyze

Language Yes Text value The language of the


text(s)

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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

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

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

Subscription key No Text value The subscription key


to use for this API
call

Text No List of Text values Text

Language Yes Text value The 2 letter ISO 639-


1 representation of
the language of the
text(s)

Timeout Yes Numeric value 30 The time (in seconds)


that the agent
should wait for a
connection to be
established with the
server, before it fails

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

JSONResponse Custom object The API response results

StatusCode Numeric value The status code returned

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
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

[This topic is pre-release documentation and is subject to change.]

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

Installing Process migrator for Softomotive products (preview)


After successfully downloading the setup file of the Process migrator for Softomotive products (preview), run it
to install it on your machine.
NOTE
Make sure you are performing a clean installation of Process migrator for Softomotive products (preview).
Uninstall any previous installations of the application.
Remove any previous installation residue (empty installation folders etc.)
Install the latest version of the application.

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.

Migrating WinAutomation processes to Power Automate


1. If you use a WinAutomation version later than 9, you'll be prompted to enter your WinAutomation
master key. This key is required for the migration of passwords inside encrypted processes.
If you omit to enter your WinAutomation master key, the migration of the processes will proceed, but the
password values won’t be migrated.
2. After entering your master key, the application will retrieve all the processes located on your machine.

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.

Migrating PorcessRobot processes to Power Automate


1. If you choose to migrate ProcessRobot processes, you'll be prompted to select the folder containing the
exported .prp (ProcessRobot Process) files.

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.

Completing migration and accessing the migrated processes


1. During the migration, a dialog will display information about the current state of the migration and a
progress bar.
2. When the migration is completed, an autogenerated log file will be displayed showing the migrated
processes.

3. You can access the exported logs at C:\Users{username}\AppData\Local\Microsoft\Process


migrator for Softomotive products\Logs
NOTE
For the migrated desktop flows to be visible, some time is required. To instantly view the migrated desktop flows
in Power Automate:
Sign out and sign in again in Power Automate, or
Restart the Power Automate service by exiting the service and re-running Power Automate.

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.

Dynamics 365 Customer Service: Helping call center agents rapidly


validate customer credentials
Most contact centers require agents to validate or authenticate customer identities before proceeding with the
service engagement. By enhancing Dynamics 365 Customer Service with RPA, agents can automate steps of the
validation process, streamlining call times and helping agents to troubleshoot and solve customer issues faster.

Dynamics 365 Supply Chain Management: Streamline ordering of


replacement parts for manufacturing line equipment
We’ve heard from manufacturing customers about the need to improve the process of ordering replacement
parts for equipment on the factory floor. Often, technicians who identify defective parts on the manufacturing
line need to write down part numbers, and then place the orders into the tracking system one by one. This is an
inefficient and error-prone process. By integrating RPA processes into Dynamics 365 Supply Chain
Management, technicians can simply scan or enter part details and submit orders on the spot, saving time and
effort. Since Power Automate natively integrates with Azure IOT connectors, this solution can be easily extended
to use the Azure IoT management system.
Watch a video to learn more about the new capabilities included in the latest update to Dynamics 365 Supply
Chain Management.

Dynamics 365 Finance: Streamline the creation of end-of-billing cycle


reports
At the end of billing cycles, finance workers often have to generate many different end-of-cycle reports for every
account. Traditionally, this is a manual, time-consuming, and error-prone process. Dynamics 365 Finance helps
streamline many of these processes and now, by integrating RPA capabilities in Power Automate, finance teams
can more easily automate many processes, allowing finance professionals to focus on more critical strategic
tasks. These capabilities also improve the accuracy that is demanded by increasingly restrictive financial audit
regulations.

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:

A P P L IC AT IO N SEC URIT Y RO L E L IN K TO DO C UM EN TAT IO N

Power Platform Environment admin or environment


maker (if the environment already has
Dataverse and unattended license
needed)

Dynamic 365 Supply Chain


Management

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.

EN VIRO N M EN T VA RIA B L E N A M E DESC RIP T IO N

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

5. Turn on the cloud flow in the solution


a. In the solution, click the … menu for the QOrder - CloudFlow cloud flow b. Click on Turn On
6. Put in the encrypted credentials to be used by the solution to log in to Dynamics 365
a. From the solution explorer, click on the line item called QOrder – Desktop Flow b. Click on Edit then
Launch App c. This will open the Power Automate for desktop
d. Under the Subflows dropdown, double click on LoginSCM e. In the LoginSCM subflow, double click
on action 8 f. Fill in the Text textbox with the password of the account to use during automation
7. Share each component of the solution (app, connection, flow, desktop flow) to other users in your
company as run only user.
8. Have the user launch the “QOrder-Application" Power App from their phone and start using it. Watch this
video for the scenario demo

Troubleshooting or Known issues


K N O W N ISSUE W O RK A RO UN D

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:

A P P L IC AT IO N SEC URIT Y RO L E L IN K TO DO C UM EN TAT IO N

Power Platform Environment admin or environment


maker (if the envionrment already has
Dataverse and unattended license
needed)

Dynamic 365 Supply Chain


Management

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

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.

Installing 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 a. To automate the quality
order process on Dynamics 365 Supply Chain Management, download the solution here:
https://aka.ms/D365SCMQualityOrderRPASolution
b. To automate the end-of-cycle reporting process on Dynamics 365 Finance, download the solution here
https://aka.ms/D365FinanceEndCycleReportingRPASolution
c. To automate the customer validation process on Dynamics 365 Omnichannel, download the solution
here: https://aka.ms/D365CustomerValidationRPASolution
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 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.

EN VIRO N M EN T VA RIA B L E N A M E DESC RIP T IO N

D365CompanyName Name of the company to use in your D365 organization.


It is located at the top right corner of your screen.

D365FinanceSite URL to your Dynamics 365 Finance website. It goes until


dynamics.com

D365SiteUserName Email address of the user account the automation should


run under.

5. Turn on the cloud flow in the solution


a. In the solution, click the … menu for the Repor t Reconciliation cloud flow b. Click on Turn On
6. Put in the encrypted credentials to be used by the solution to log in to Dynamics 365
a. From the solution explorer, click on the line item called Repor t Validation b. Click on Edit then
Launch App c. This will open the Power Automate for desktop
d. Under the Subflows dropdown, double click on login_to_FnO
e. In the login_to_FnO subflow, double click on action 11
f. Fill in the Text textbox with the password of the account to use during automation

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.

Use these recommended security roles.

A P P L IC AT IO N SEC URIT Y RO L E L IN K TO DO C UM EN TAT IO N

Power Platform Option 1: Environment admin


Option 2: Environment maker (if the
environment already has Dataverse
and unattended license needed)

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.

Set up your device


Now that prerequisites are set, we are on our way to get these free solutions that automate the processes.
Get the latest updates for your environment
1. Go to Power Platform admin center, select the environment in which you are interested, and then select
Dynamics 365 apps at the right side.

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.

6. Select Directly to machine from the list.


7. Select the machine onto which you installed Power Automate, and then enter the machine login
credentials (the username and password that you used to log into this machine).
Install and configure Contoso CRM app
1. Download and install contoso_crm.exe to the machine where the automation runs.
This Contoso app is used to show you how the end-to-end automation scenario works so that you can
follow the example to create your own automation.

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.

Install the Dynamics 365 RPA solution


1. Download the automation solution and save it on your machine.
2. Import the Dynamics 365 automation solution into the environment of your choice.
a. Sign into Power Automate, and then log in using your work account.
b. Select the environment that you will use from the environment picker.
c. In the vertical menu on the left of your screen, select Solutions .
d. In the horizontal menu, above the Solutions title, select Impor t > Browse .
e. Run the solution file you downloaded.
f. Select 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. You will be taken to a different tab, make
sure to not close the one you came from.
b. For the Desktop connection domain/username and password, be sure to use the machine's
Windows login credentials.

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 .

8. Select Login to Flow .


9. Authenticate using your Dynamics 365 account.
10. Now open one of your cases using Shift + Left Click to launch the productivity tools panel.

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)

Troubleshooting and known issues


K N O W N ISSUE W O RK A RO UN D

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.

You can jump right in:


Create and test Windows recorder (V1) flows for desktop applications
Create and test Selenium IDE flows for Web applications
Desktop flows or connectors?
With Power Automate, you can automate both modern applications with APIs, or legacy applications with
incomplete or missing APIs. You can even combine legacy apps, modern apps, and manual processes in a single
automation.

A P P L IC AT IO N T Y P E F EAT URE B EN EF IT S

Modern apps with APIs Connectors High reliability with software UI


updates

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.

Create a desktop Windows recorder (V1) flow


TIP
You can automate other Windows desktop apps by following a similar pattern.

1. Ensure your device is ready to create desktop flows.


2. Use Microsoft Edge (Version 80 or later) or Google Chrome to open Power Automate, and then sign in
with the same work or school account as on your device.
3. Select My flows > Desktop flows > New .

4. Click Additional desktop flow options .


5. Select Windows recorder (V1), and then click Next .

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.

13. Select Launch recorder .


The recorder control displays at the top of your screen.

14. Start the calculator app.

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.

15. Select Record from the recorder control.


16. Select the first number, select + , select the second number, and then select = .
TIP
You will improve automation reliability by:
Opening and maximizing the apps you want to record before before you start recording
Starting your recording with a click the app title bar to bring it in focus.

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.

20. Select Next .


21. Select Next to skip the optional Set up outputs step since we aren't using outputs in this walkthrough.
22. Test your desktop flow by selecting the Test now button, and then watch your desktop flow run.

IMPORTANT
For best results, do not interact with your device for the duration of playback.

1. Select Save and exit to save your desktop flow.

Known issues and solutions


You may want to add a Close action at the end of your desktop flow because desktop flows launches a
new instance of the applications with each test or run.
Select ... > Delete on the recorded actions card to remove any unnecessary/duplicate actions.
Right clicks may not play back correctly. In such case, while recording, click left to focus desktop flows on
the target user interface element, and then right click.
If desktop flows no longer records or plays back Windows applications after installing a new version,
confirm you have the latest version.
Unsupported application types
Interactions on Windows (File explorer, startup menu, task bar, etc.).
Web browsers (Chrome, IE, Microsoft Edge, Firefox, Mozilla, etc.). Please instead refer to Create a
Selenium IDE flow to automate websites.
Java applications.
Click once applications.
Applications with a Web view such as Electron applications.
Microsoft Office 2016 and earlier.
Microsoft Office online.
Unsupported configurations
Multi-screen.
Recording through a virtual machine client (Remote Desktop, Citrix, etc.).
Multiple instances of an application where the main window titles are identical.
Application windows with identical titles, for example, Microsoft Outlook with multiple Untitled –
Message (HTML) new mail windows active at the same time.
Concurrent recording sessions on a given device.
Concurrent playback sessions on a given device. In case of simultaneous desktop flow runs, the first one
takes precedence and the subsequent ones fail until the first one completes.
Playback on a device with a different keyboard layout than the device on which it was recorded.
Recording on a device or Windows session while the browser with Power Automate is on a different
device or Windows session.
Unsupported action types and behaviors
The following actions will not be recorded:
Double click.
Mouse move.
Mouse hover.
Click and drag.
Touch or pen input.
Open app before recording.

Unreliable behaviors and workarounds for Microsoft Office (desktop)


Pin the ribbon before you begin playback to avoid issues that may occur if the ribbon is set to auto-hide
during playback.
Do not select items by clicking and dragging. For example, don't use shift-click to select cells in Microsoft
Excel and don't select text in Microsoft Word or Microsoft PowerPoint by dragging the mouse.
Some elements may not work correctly in desktop flows for Microsoft Word and Microsoft PowerPoint
Desktop applications. For instance, options on the File menu such as starting from blank, or right clicking
controls like adding a paragraph in Microsoft Word or changing the layout of slides in Microsoft PowerPoint
may not work.

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

You can edit your recording to:


Modify the value for actions that support it.
Delete a step.
Delete the recording.
Change the order of actions with drag and drop. Do exercise caution with this as it may break the consistency
of your recording.
Advanced parameters let you change:
The delay after the action is performed. For example, you can add a one second delay by changing PT0S to
PT1S. This can be useful when the target application has a slow response time that doesn’t complete before
the next step of your Windows recorder (V1) flow. You can also add delay actions explicitly so that they can
be used in loops, for example.
The selector for the target user interface element.

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 .

6. Select Record app from the list of actions.

7. Select Launch recorder .


The recorder control displays at the top of your screen.

8. Start the app that you want to record.

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.

9. Select Record from the recorder control.


10. Perform the steps in the user interface of the app you are recording, and then select Done on the
recorder control.
11. Select Save , and then test your Windows recorder (V1) flow.

Provide command line arguments at launch


After you record your Windows recorder (V1) flows actions, you can provide command line arguments for the
apps that your desktop flows launch.
Follow these steps to add command line arguments to the apps that your Windows recorder (V1) flow launches:
1. Record a Windows recorder (V1) flow with the desktop recorder.
2. Select Done on the recorder, select the application launch action to expand it.
The screenshot uses Notepad++ as an example.
3. Select Show advanced options .

4. Provide the command line arguments here:

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.

Here are the steps to create a loop in a UI flow:


1. Edit the Windows recorder (V1) flow to which you want to add the 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.

2. Select Add an action .

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.

Add a retry policy


By default, Windows recorder (V1) retries failed UI automation steps using the default retry settings and timeout
value.
Follow these steps to set your own retry policy on specific steps after you've recorded your Windows recorder
(V1) flow.
1. Select ... on the step that you want to change the retry policy.
2. Select Settings .
The settings card for the step opens.
3. Add a timeout value in the Duration box.
The timeout duration can be between one minute and 24 hours. For example, you must enter the timeout
duration in this format: PT1M to represent a timeout duration of one minute or PT24H to represent a
timeout of 24 hours.

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.

Add a manual action


Once you've recorded an application with at least one action, you can manually add any of the following actions
for that application.
A C T IO N C O M M EN T

Close application

Right click

Send keys Send keys and key combinations, such as CTRL + C.

Left click

Get text Read the text from a user interface element and then use it
as an output.

Enter text

Get element enabled Check if a user interface element is enabled or disabled.

Clear element Clear the value in an editable user interface element.

Wait for seconds Wait before continuing to the next step.

Follow these steps to add a manual action:


1. Sign into Power Automate.
2. Select My flows > Desktop flows .
3. Select the Windows recorder (V1) flow that you want to edit.

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.

Set the selector


The selector identifies the user interface element onto which the action is performed during playback. We
recommend that you copy/paste this information from a separate step targeting the same user interface
element, if possible.
The format of the selector is:

{
"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.

You can capture the elementXPath using the WinAppDriver UI Recorder.


Remove the first element (everything before /Window) before using the result in elementXPath of the selector.
Test your Windows recorder (V1) flow to confirm that your selector works correctly.

Use advanced controls


You can incorporate advanced controls such as conditions , switch cases , and terminate actions within your
desktop flows.
You can perform these advanced operations with the following steps on an existing Windows recorder (V1) flow.
1. Select the Windows recorder (V1) flow you have created > More commands (...) > Edit .
2. Select + > Add an action on the down arrow of Windows recorder (V1) flow step to which you want to
add logic.
3. Select Built-in , and then select one of the control actions available.

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.

Add a recording of a remote computer using image recognition


We expect changes to this feature, so you shouldn’t use it in production. Use it only in test and development
environments.
Image recognition in Windows recorder (V1) is a preview feature and currently available when recording a
remote computer through the Remote Desktop Connection (RDC) app.
What is image recognition?
Currently, Windows recorder (V1) flows are primarily recorded using accessibility APIs (UI Automation and
WinAppDriver) to detect the controls in the Microsoft Windows UI tree. Sometimes, the UI tree isn't available,
such as with Web-based or Java apps. The UI tree may may be unreliable, such as when the IDs of a control
change frequently or between sessions.
With image recognition, click locations and other details are visually matched during playback, greatly
expanding the range of applications that can be automated.

Use image recognition to record a remote computer


1. In a new or existing Windows recorder (V1) flow, go to the Inputs tab and create two new sensitive text
inputs, one for the username and one for the password that will be used to log in to the remote device.
Sensitive text inputs allow you to pass in the values dynamically when testing or calling the Windows
recorder (V1) flow from another flow, without them being stored or logged by the Windows recorder
(V1) flow itself.

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.

Use image recognition to record on Citrix


There are two options to record on Citrix with Windows recorder (V1).
Option 1: record a Citrix application or desktop already open on your machine
1. Follow the steps in Add a recording to launch the recorder control for a new or existing Windows recorder
(V1) flow.
2. Use the Citrix app or remote desktop to connect to the remote computer.

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.

Handle error conditions


Unexpected conditions can arise during playback. These conditions can cause your desktop flows to fail. You can
use advanced error handling capabilities to create alternate steps when unexpected conditions arise.
Here are the steps to do so.
1. Sign into Power Automate with your school or work account.
2. Select My flows > Desktop flows .
3. Select More commands (the three vertical dots for the Windows recorder (V1) flow you want to edit).
4. Select Edit .
5. Select the down arrow that's located immediately before the Windows recorder (V1) flow step to which
you want to add error handling, and then select + (Insert new step).
In the following image, we're inserting the new step before the PostElementText 1 step. This means that
if PostElementText 1 fails, the alternate steps that you define next, run.

6. Select Add a parallel branch .

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.

Enable coordinate-based playback


Coordinate-based playback uses relative screen coordinate offset as a fallback that helps Windows recorder (V1)
find target objects that the default Windows UI automation framework is unable to find during playback.
Here are some of the reasons why the default Windows UI automation framework might not find target objects
during playback:
The legacy application that you're automating might not use programming technologies that support the
Windows UI automation framework.
The application or its controls may not have a unique UI automation XPath, name, or IDs.
The application has dynamic controls whose names or IDs could change.
The application has controls that do not have names, IDs, unique identifiers, etc.

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.

The migration wizard launches.


5. Select Migrate .
When the process completes, a copy of the desktop flow is saved in the current environment. The
resulting desktop flow can then be edited using the Power Automate designer. The original Windows
recorder desktop flow remains unchanged.

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.

Known issues and limitations


Windows recorder (V1) flows that contain the Run a WinAutomation or Remote Desktop Protocol
(RDP) actions are not supported for migration.
Flows with array inputs are not supported.
Windows recorder (V1) desktop flows with native SAP recordings are not supported. For example,
desktop flows that contain Set Proper ty or Call Method actions aren't supported.
TIP
If your Windows recorder (V1) desktop flow contains a step to close an application, add an error handling step for the
close application step on the converted desktop flow. You can configure the On Error condition of that action to
Continue flow run > Go to next action .

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 .

Define inputs in the Windows recorder (V1) flows


1. Select Text to define an input or select Sensitive text to define a sensitive text input.

2. Add a name, a sample data, and a description to your input.


Sample data is used during the recording or test.
The description will be helpful to differentiate the inputs that you have created.
For sensitive text inputs, the sample value will be obscured and will not be persisted after saving
3. Once your inputs are created, you can click on next to use them in a recording.

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.

Use inputs to pass information to the application


1. While recording, you can use an input in an app by selecting Use Inputs .
2. In the list, you can choose between three options:
Select one of the inputs that you defined in the Set up inputs step.

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.

Use outputs to extract information from the app


Outputs let you pass information from the legacy software that Windows recorder (V1) automates to an external
destination such as a database or any supported connector.
For example, you can extract customer information your legacy accounting software and add it to a SharePoint
list.
Outputs can only be created as you record your Windows recorder (V1) flow.
1. During a recording, select Output .

2. Select Select text .


3. Select a user interface element to get its text for the output. The text value will be automatically captured.
You can then provide a name and description for the output.

4. Provide a name and a description for the output.


5. Select Save.
Your output is now available in the dedicated area of the wizard.
Each output has:
An output name as defined during the recording.
A description: This field can be very useful when you define many outputs during a recording and want to
easily identify them later.
An action name: the action in which the output is defined in your Windows recorder (V1) flow.

Use clipboard content to define outputs


During a recording, it is possible to copy a text in the clipboard of your computer and to define it as output of
your Windows recorder (V1) flow.
1. During your recording, copy a string value
2. Select Get text from Clipboard . The content of your clipboard is displayed in the Sample value field

3. Define a name and a description for your output (as described above ) and select Save.

Delete an output from a UI flow


If you do not need an output anymore, delete it by going to the associated action and removing the Output
name in the dynamic value.

Test your Windows recorder (V1) flow


Testing Windows recorder (V1) flow lets you validate your changes and the appropriate playback behavior.
1. (Optional) Enter a value in the input field.

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.

3. Enter the text.


4. Select Add to app and then select the control into which you want to insert the text. You'll see the text
inserted into the control.
This text is entered automatically at playback time, even if the playback machines do not have the same
keyboard layouts or IME that was used in the recording.
TIP
In the Web designer, expand the Inser t text input action to review or edit the text.
Use the replay keystroke action
If you recorded any text input without using the Add static text option, each keystroke is recorded and played
back chronologically. This includes any special keys like CTRL, ALT, Windows, etc. in any English or international
keyboard layouts.
In the designer, you can review and edit the recording information in the virtual-key format under the Replay
keystroke action.
NOTE
An older version of the UI flows recorder used the SendKeys and PostElement actions. These actions will be deprecated.
We recommend that you upgrade to the latest version of the UI flows recorder and then re-record your scripts to take
advantage of the new features.

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.

How to obtain an RPA trial license


Log in to Power Automate then select the Desktop flows tab under My flows . You'll see the trial dialog from
which you can start the trial.
If you already have a paid plan or you used a trial previously, you cannot start a new trial. In this case, you will
need to ask your administrator to buy or start a trial of the Power Automate Per user plan with attended RPA.
They can make the purchase by going to Billing > Purchase ser vices in the Microsoft 365 admin center, and
then searching for the right plan.

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

Best practices for creating processes


Here are some tips for you to consider when you create processes.
WinAutomation
Triggers
Web Automation
UI Automation
Excel Automation
Text Manipulation
Image Processing
Email Automation
Databases
Mathematical Operations
Variables
ProcessRobot
Control Desk
Dashboards
Triggers
Web Automation
UI Automation
Excel Automation
Text Manipulation
Image Processing
Email Automation
Databases
Mathematical Operations
Variables

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.

Follow these steps to create a simple Selenium flow.

Create a Selenium IDE flow


1. Open the Microsoft Edge (version 80 or later) or Google Chrome, and then navigate to Power Automate.
2. Sign in with your work or school account if needed.
3. Select My flows > Desktop flows > New .

4. Click Additional desktop flow options .


5. Select Selenium IDE, and then select Next .

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 .

The Selenium IDE launches.

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.

9. Perform the actions that you want to record on the website.

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.

Limitations and known issues for Selenium IDE flows


WARNING
Passwords in Selenium IDE are stored in plain text.

Temporar y user profile for playback


Selenium IDE recordings are done with the current user's profile, but playback is done using a temporary user
profile. This means that websites that need authentication may not ask for credentials during a recording
session, but the authentication steps will be needed during playback.
To address this, the user needs to manually edit the script to insert the commands needed for the login process.
Other limitations
Recording desktop applications during a Web recording session. If you need to automate both Web and
Desktop applications, you can create a separate desktop flows for each type and then combine them in a
cloud flow.
Multi-Factor Authentication (MFA) is not supported, use a tenant that doesn't require MFA.
These Selenium IDE commands are not supported: Run, AnswerOnNextPrompt,
ChooseCancelOnNextConfirmation, ChooseCancelOnNextPrompt, ChooseOkOnNextConfirmation,
Debugger, ClickAt, DoubleClickAt, Echo, MouseOut, MouseUpAt, and MouseDownAt.
Selenium IDE actions or steps cannot exceed one minute to run. Use Power Automate instead.
Right click is not supported.
Additional Selenium IDE flow input is generated when you use Foreach commands. To work around this
issue, input any value into the extra fields. It doesn't impact the playback.
If the .side file contains multiple test projects, only the first one that was created runs.

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.

Edit in Selenium IDE


Use the Selenium IDE 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:

Accessing a property of an object variable or item of an array


variable**
This advanced capability lets you use syntax like ${foo.bar} to access the bar property of the foo object. You can
also write to the bar property of foo by using foo.bar as the value property in a store command. You can also
use syntax such as ${foo[0]} to access the item at index 0 in the foo array.

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.

Define inputs for a Web UI flow


Inputs of a UI flow let you pass information from an external source such as a database or another UI flow to the
target legacy software that you will automate.
Any variable that is used (read) before initialization (usually done via store commands) will be automatically
treated as an input variable and it will be displayed on the Run a UI flow for web action card.
You can use variables via string interpolation, for example, change the click command's target field to
"id=${elementId}". Or change the type command's value field to "${inputText}".
The command, set window size and the command, type in the following screenshots use uninitialized
variables ${Width}, ${Height}, and ${search}. These variables will become input values.
You can use variables directly in some commands, for example, forEach command's target/value fields are both
variables, you don't need to surround it with "${}".
Consult Selenium commands reference to determine which commands take variable names directly.

Define outputs for a Web UI flow


Any variable defined in the selenium script automatically becomes an output value. Use the following
commands to declare variables:
Store
Store attribute
Store json
Store title
store value
Store window handle
Store xpath count
Execute script(add 'return' syntax to return the object you want to store at the end of the script)

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.

Why use business process flows?


Business process flows provide a guide for people to get work done. They provide a streamlined user experience
that leads people through the processes their organization has defined for interactions that need to be advanced
to a conclusion of some kind. This user experience can be tailored so that people with different security roles can
have an experience that best suits the work they do.
Use business process flows to define a set of steps for people to follow to take them to a desired outcome. These
steps provide a visual indicator that tells people where they are in the business process. Business process flows
reduce the need for training because new users don’t have to focus on which table they should be using. They
can let the process guide them. You can configure business process flows to support common sales
methodologies that can help your sales groups achieve better results. For service groups, business process
flows can help new staff get up-to-speed more quickly and avoid mistakes that could result in unsatisfied
customers.

What can business process flows do?


With business process flows, you define a set of stages and steps that are then displayed in a control at the top
of the form.
Each stage contains a group of steps. Each step represents a column where data can be entered. You can
advance to the next stage by using the Next Stage button. In the unified interface, you can work with a business
process flow stage inside the stage flyout or you can pin it to the side pane. Business process flows doesn't
support expanding the stage flyout to the side pane on mobile devices.
You can make a step required so that people must enter data for a corresponding column before they can
proceed to the next stage. This is commonly called ”stage-gating”. If you are adding a business-required or
system-required column to a business process flow stage, we recommend that you add this column to your
form as well.
Business process flows appear relatively simple compared to other types of processes because they do not
provide any conditional business logic or automation beyond providing the streamlined experience for data
entry and controlling entry into stages. However, when you combine them with other processes and
customizations, they can play an important role in saving people time, reducing training costs, and increasing
user adoption.

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.

Business process flows integrated with other customizations


When you or your user enters data using business process flows, the data changes are also applied to form
columns so that any automation provided by business rules or form scripts can be applied immediately. Steps
can be added that set values for columns that are not present in the form and these columns will be added to
the Xrm.Page object model used for form scripts. Any workflows that are initiated by changes to columns
included in a business process flow will be applied when the data in the form is saved. If the automation is
applied by a real-time workflow, the changes will be immediately visible to the user when the data in the form is
refreshed after the row is saved.
Although the business process flow control in the form does not provide any direct client-side programmability,
changes applied by business rules or form scripts are automatically applied to business process flow controls. If
you hide a column in a form, that column will also be hidden in the business process flow control. If you set a
value by using business rules or form scripts, that value will be set within the business process flow.
Concurrent process flows
Concurrent business process flows let customizers configure multiple business processes and associate them
with the same starting row. Users can switch between multiple business processes running concurrently, and
resume their work at the stage in the process that they were on.

System business process flows


The following business process flows are included. To understand how business process flows work, review
these system business process flows:
Lead to Opportunity Sales Process
Opportunity Sales Process
Phone to Case Process

Multiple tables in business process flows


You can use a business process flow for a single table or span multiple tables. For example, you may have a
process that begins with an opportunity, then continues to a quote, an order, and then an invoice, before finally
returning to close the opportunity.
You can design business process flows that tie together the rows for up to five different tables into a single
process so that people using the app can focus on the flow of their process rather than on which table they are
working in. They can more easily navigate between related table rows.

Multiple business process flows are available per table


Not every user in an organization may follow the same process and different conditions may require that a
different process be applied. You can have up to 10 active business process flows per table to provide
appropriate processes for different situations.

Control which business process flow will be applied


You can associate business process flows with security roles so that only people with those security roles can see
or use them. You can also set the order of the business process flows so that you can control which business
process flow will be set by default. This works in the same way that multiple forms for a table are defined.
When someone creates a new table row, the list of available active business process definition is filtered by the
user’s security role. The first activated business process definition available for the user’s security role according
to the process order list is the one applied by default. If more than one active business process definitions is
available, users can load another from the Switch Process dialog. Whenever processes are switched, the one
currently rendered goes to the background and is replaced by the selected one, but it maintains its state and can
be switched back. Each row can have multiple process instances associated (each for a different business
process flow definition, up to a total of 10). On form load, only one business process flow is rendered. When any
user applies a different process, that process may only load by default for that particular user.
To make sure a business process is loaded by default for all user (behavior equivalent to “pinning” the process),
a custom Client API script (web resource) can be added on form load that specifically loads an existing business
process instance based on the business process definition ID.

Business process flow considerations


You can define business process flows only for those tables that support them. You also need to be aware of the
limits for the number of processes, stages, and steps that can be added.
Business process flows that call a workflow
You can call on-demand workflows from inside a business process flow. You can configure this from the new
business process flow designer by dragging a workflow component to a process stage or to the Global
Workflows section. For more information about using workflows in business process flows, see Blog: Business
process flow automation in Dynamics 365.
When you include a workflow that you want to trigger on Stage Exit of a stage in your business process flow,
and that stage is the last stage in the flow, the designer gives the impression that the workflow will be triggered
when that stage is completed. However, the workflow will not be triggered because a stage transition does not
take place. You will not receive a warning or error preventing you from including the workflow on the stage.
When a user interacts with the business process flow, finishing or abandoning the process does not result in a
stage transition, and therefore the workflow is not triggered. Consider the following examples:
You create a business process flow with two stages, S1 connects to S2, with a workflow on stage S2 and
set the trigger to Stage Exit .
You create a business process flow with three stages, S1 connect to S2, then S2 branches to S3. You
include a workflow on S2 and set the trigger to Stage Exit .
The workflow will not trigger in either case. To work around this issue, you can add a Global Workflow and add
the workflow you want to trigger to it so that the workflow is triggered for the business process rather than a
stage of the process. You can set the trigger for a Global workflow to Process Abandoned or Process Completed
to cause the workflow to trigger when a user abandons or completes the business process.

Tables that can use business process flows


All custom tables can use business process flows. The following standard tables can also use business process
flows:
Account
Appointment
Campaign
Campaign Activity
Campaign Response
Competitor
Contact
Email
Entitlement
Fax
Case
Invoice
Lead
Letter
Marketing List
Opportunity
Phone Call
Product
Price List Item
Quote
Recurring Appointment
Sales Literature
Social Activity
Order
User
Task
Team
To enable a custom table for business process flows, select the Business process flows (columns will be
created) check box in the table definition. Note that you can’t undo this action.

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.

Business process flow table customization support


Introduced in the Dynamics 365 (online), version 9.0 update, business process flow tables can appear in the
system so that table row data can be made available in grids, views, charts, and dashboards.
Use business process flow table rows with grids, views, charts, and dashboards
With business processes flows available as an table, you can now use advanced finds, views, charts, and
dashboards sourced from business process flow data for a given table, such as a lead or opportunity. System
administrators and customizers can create custom business process flow grids, views, charts, and dashboards
similar to those created with any other table.
Business process flows, such as Lead To Oppor tunity Sales Process , appear as a customizable table in
solution explorer.

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.

3. Select Forms , and select the Information editor.


4. Select your lookup data step from the Tree view , and then check Disable most recently used items .
5. Save, and then publish.
Limitations of using business process flow tables
Currently, you can’t create custom forms for tables based on a business process flow.
If a solution includes a business process flow table, the business process flow table must be manually added
to the solution before you export it. Otherwise, the business process flow table will not be included in the
solution package. More information: create and edit tables.
Adding the process table to a model-driven app may result in limited functionality. Learn more about
creating and editing business process flows.
Next steps
Watch a short video (4:49) about business process flows
Create a business process flow
Enhance business process flows with branching
Whitepaper: Process Enablement with Dynamics 365
Tutorial: Create a business process flow
1/15/2022 • 11 minutes to read • Edit Online

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.

Create a business process flow


1. Open solution explorer.
2. On the left navigation pane, select Processes .
3. On the Actions toolbar, select New .
4. In the Create Process dialog box, complete the required columns:
Enter a process name. The name of the process doesn’t need to be unique, but it should be
meaningful for people who need to choose a process. You can change this later.
In the Categor y list, select Business Process Flow .
You cannot change the category after you create the process.
In the Table list, select the table on which you want to base the process.
The table you select affects the columns available for steps that can be added to the first stage of
the process flow. If you don’t find the table you want, make sure the table has the business process
flows (columns will be created) choice in the table definition. You cannot change this after you save
the process.
5. Select OK .
The new process is created, and the business process flow designer opens with a single stage created for
you.

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.

When you're done changing properties, select the Apply button.


7. Add steps to a stage. To see the steps in a stage, select Details in the lower-right corner of the stage.
To add more steps:
a. Drag the Step component to the stage from the Components tab.
b. Select the step, and then set properties in the Proper ties tab:
a. Enter a display name for the step.
b. If you want users to enter data to complete a step, select the appropriate column from the
drop-down list.
c. Select Required if people must fill in the column to complete the step before moving to the
next stage of the process.
d. Select Apply when you're done.

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.

8. Add a branch (condition) to the process. To add a branching condition:


a. Drag the Condition component from the Components tab to a + sign between two stages.

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.

Edit a business process flow


To edit business process flows, open solution explorer, select Processes , and then select the Business Process
Flow from the list of processes that you want to edit.
When you select the name of the business process flow you want to edit from the list of processes, it opens in
the designer, where you can make any updates you want. Expand Details under the name of the process to
rename it or add a description, and view additional information.

Other things to know about business process flows


Edit Stages
Business process flows can have up to 30 stages.
You can add or change the following properties of a stage:
Stage Name
Table . You can change the table for any stage except the first one.
Stage Categor y . A category lets you group stages by a type of action. It is useful for reports that will
group rows by the stage they are in. The options for the stage category come from the Stage Category
global choice. You can add additional options to this global choice and change the labels of existing
options if you want. You can also delete these options if you wish, but we recommend that you keep the
existing options. You won’t be able to add the exact same option back if you delete it. If you don’t want
them to be used, change the label to ”Do not use”.
Relationship . Enter a relationship when the preceding stage in the process is based on a different table.
For the stage currently being defined, choose Select relationships to identify a relationship to use
when moving between the two stages. It is recommended you select a relationship for the following
benefits:
Relationships often have column maps defined that automatically carry over data between rows,
minimizing data entry.
When you select Next Stage on the process bar for a row, any rows that use the relationship will
be listed in the process flow, thereby promoting reuse of rows in the process. In addition, you can
use workflows to automate creation of rows so that the user simply selects it instead of creating
one to further streamline the process.
Edit Steps
Each stage can have up to 30 steps.
Add branch
To learn about adding a branch to a stage, see Enhance business process flows with branching.
To make a business process flow available for people to use, you must order the process flow, enable security
roles, and activate it.
Set Process Flow Order
When you have more than one business process flow for a table (row type), you’ll need to set which process is
automatically assigned to new rows. In the command bar, select Order Process Flow . For new rows or rows
that do not already have a process flow associated with them, the first business process flow that a user has
access to is the one that will be used.
Enable Security Roles
Users have access to a business process flow depending on the privilege defined on the business process flow in
the security role assigned to the user.
By default, only the System Administrator and System Customizer security roles can view a new business
process flow.
To specify privileges on a business process flow, open the business process flow for edit, and then select Edit
Security Roles on the command bar of the business process flow designer. See step 13 under Create a
business process flow listed earlier in this topic.
Activate
Before anyone can use the business process flow, you must activate it. In the command bar, select Activate .
After you confirm the activation, the business process flow is ready to use. If a business process flow has errors,
you will not be able to activate it until the errors are corrected.

Add an on-demand action to a business process flow


The Dynamics 365 (online), version 9.0 update introduces a business process flow feature: business process flow
automation with Action Steps. You can add a button to a business process flow that will trigger an action or
workflow.
Add on-demand workflows or actions using an Action Step
Suppose that, as part of the opportunity qualification process, the Contoso organization requires all
opportunities to be reviewed by a designated reviewer. Subsequently, the Contoso organization created an
action that:
Creates a task row that is assigned to the opportunity reviewer.
Appends “Ready for review” to the opportunity topic. Additionally, Contoso needs to be able to run these
actions on demand. To integrate these tasks into the opportunity qualification process, the actions must
appear on the opportunity business process flow. To enable this functionality, select As a Business Process
Flow action step .
Next, the Action Step is added to Contoso’s opportunity business process flow. Then the process flow is validated
and updated.

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.

Limitation of using Action Steps in a business process flow


Actions are not available as Action Steps if the input or output parameters are Table, EntityCollection, or
OptionSet (Choice) types. Actions with more than one EntityReference output parameter or any number of
EntityReference input parameters are not available as Action Steps. Actions not associated with a primary
table (global action) are not available as Action Steps.

The action center


When you need to see the list of business process flows in which you're involved, check out the unified action
center.

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.

Add an instant flow as a step in a business process


Let's assume you sell printers and you use the Lead to Oppor tunity Sales Process to close deals. As part of
this process, you’d like to have the team lead review and approve proposals that the sales team puts together in
an earlier stage of the business process flow before sharing it with the customer.
To do this, you'll need to do two things:
1. Build an instant flow that requests review and approval of the proposal from the team.
2. Add the instant flow as a step in the Lead to Oppor tunity Sales Process .

TIP
Only solution-aware flows can be added as a step in a business process.

Build an instant flow


1. In Power Automate, select Solutions in the navigation menu.
2. Select Default Solution from the list of solutions that appears.
3. Select the + New menu, and then select Flow from the list that appears.
4. Search for, and then select the Microsoft Dataverse connector.
5. Search for, and then select the When a row is selected trigger from the list of Microsoft Dataverse
triggers.
6. Set Environment to Default , and then set Table Name to Lead to Oppor tunity Sales Process .
7. Add a text input column for the user to enter the link to the proposal.

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"
}
}
}
}
}

Things should look like this now:


11. Add the Get row by ID action from the Microsoft Dataverse connector.
12. Set Table Name to Lead to Oppor tunity Sales Process , and Row ID to BPFFlowStageTableRowID .

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.

Add this flow as a step in the Lead to Opportunity Sales Process.


Now that you've created the instant flow, all that's needed is for you to add it to your business process flow.
1. Open the Lead to Oppor tunity Sales Process in the business process flow designer.
2. Drag and drop the Flow Step (Preview) from the list of Components onto the Propose stage.
3. Next, select the search icon in the Select a Flow column to list all flows that you can added to a business
process flow.
4. Select a cloud flow from the list, and then save your changes by selecting the Apply button at the bottom of
the properties pane.
5. Finally, select the Update button to make this business process flow with its new instant flow step available
to your users.

Flow step considerations


The status of your flow step might be Processing even after your flow successfully ran to completion, if you are
not writing to the process log. In order to mark a cloud flow step as completed, add the Update a row action of
the Microsoft Dataverse connector under the If yes path. Set the Table to Process Logs . Then set Row ID to
FlowsWorkflowLogId by picking it from the list of dynamic values. Finally, set Status Value to Succeeded by
selecting it from the dropdown.
Tutorial: Enhance business process flows with
branching
1/15/2022 • 6 minutes to read • Edit Online

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 .

Example: Car selling process flow with two branches


Let’s look at the example of the business process flow with two branches, for selling new and pre-owned cars.
First, we’ll create a new process named Car Sales Process .
1. Open solution explorer and then in the left navigation pane select Processes .
2. Select New to create a new process.
3. Specify the Categor y as Business Process Flow and for the primary Entity choose Lead .
4. Add the first stage to the process called Qualify and add steps Purchase Time frame and Car
Preference .
5. After the common Qualify stage, we split the process into to two separate branches, by using the
Condition tile.
a. Configure the condition tile with rules that meet your business requirements
b. To add the first branch for a stage, add a Stage tile on the “Yes” path of the condition tile
c. To add the second branch that is executed when condition is not satisfied, add another Stage tile on
the “No” path of the condition tile

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.

Prevent information disclosure


Consider a business process flow with branches for processing a loan request at a bank, as shown below. The
custom tables used in the stages are shown in parenthesis.

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.

Adding custom controls to a business process


Let’s say that you’d like to add a radial knob for the Estimated Budget step and a flip switch for the Identify
Decision Maker step of the Lead to Opportunity Sales 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.

Reporting on the active stage of a business process flow


Let’s say that you’d like to get a view of your sales pipeline by reporting on the active stage that the Lead to
Oppor tunity Sales Process is on.
Previously, to report on business processes by stage, one might define a view on each related table of the
business process flow and then report on the Active Stage (activestageid) column.
With the deprecation of the Active Stage (activestageid) column on related tables, there are two ways to report
on business process flows.
Option 1: Views and charts on business process flow table**(Recommended)**
In versions 9.0 and higher, each business process flow creates its own Dataverse table, usually with the same
name as the business process flow. To report on the business process flow, select the table for the business
process flow you want to report on, and then create views and charts, just as you did before.
In our example, follow these steps to go to the Lead to Oppor tunity Sales Process table:
1. Go to https://make.powerapps.com.
2. Select the Data .
3. Select the Tables .
4. Set the filter to All .
5. Search for, and then select the Lead to Oppor tunity Sales Process 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.

Using the active stage to run logic


Here are some cases in which you might want to run logic that's based on the active stage:
Using the active stage to run client-side logic
As you use the business process, there are many things that you might want to do automatically. For instance:
Change the active business process flow based on newly available information on the form or business
process flow.
Move the active stage to the next or previous stage, based on values the users entered for steps or form
columns.
Hide or show form tabs and columns based on the selected stage.
Show informative messages and run calculations based on the active business process flows, the active
or selected stage, or events such as moving the active stage.

TIP
For scenarios like these, use the supported set of client APIs for business process flows.

Using the active stage to run server-side logic


There might be cases where automation based on the business process flow needs to be done server side. For
instance:
Send an email to a user if the Qualify the stage of the Oppor tunity Sales Process is active for longer
than 15 days.
Automatically create a set of activities relevant to the active stage of the Oppor tunity Sales Process
each time it changes.
Automatically finish the Oppor tunity Sales Process when the phone call activity for closing completes.

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.

You can use connections to perform these tasks:


Update a SharePoint list.
Get data from an Excel workbook in your OneDrive for Business or Dropbox account.
Send email in Microsoft 365.
Send a tweet.
You can create a connection in multiple scenarios, including:
Creating a flow from a template.
Creating a flow from a blank, or updating an existing flow.
Creating a connection in Power Automate.

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 .

Connect to your data through an on-premises data gateway


Some connectors, such as the SharePoint connector, support the on-premises data gateway. To create a
connection that uses a gateway:
1. Follow the steps earlier in this topic to add a connection.
2. In the list of available connections, select SharePoint .
3. Select the Connect using on-premises data gateway option.

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.

2. When prompted, update your connection with new credentials.


When you update a connection, it's updated for both Power Apps and Power Automate.

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.

Cluster your gateways


You can create high availability clusters of on-premises data gateway installations to avoid single points of
failure in accessing on-premises data resources.
By default, Power Automate uses the primary gateway in the cluster. If the primary gateway isn't available, the
service switches to the next gateway in the cluster, and so on.
Once you've set up a gateway cluster, you can allow traffic to be distributed across all gateways in the cluster.
Follow these steps to distribute your traffic across your gateways:
1. Select Data on the navigation bar on the left side.
2. Select Gateways .
3. Select any of your gateways.
4. Select Distribute requests across all active gateways in this cluster .
5. Select Apply to save your changes.
For more information, see Understand gateways.
What is an on-premises data gateway?
1/15/2022 • 2 minutes to read • Edit Online

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.

How the gateway works

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.

Actions that background workflow processes can perform


Background workflow processes can perform the actions listed in the following table.

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.

Custom Step Developers can create custom background workflow steps


that define actions. There are no custom steps available by
default.

Setting row values


When you create a row you can set values for the row. When you update a row you can set, append, increment,
decrement, multiply, or clear values.
When you select Set Proper ties , a dialog box opens showing you the default form for the table.
At the bottom of the dialog box you can see a list of additional columns not present in the form.
For any column, you can set a static value and that will be set by the workflow.
On the right side of the dialog box, the Form Assistant gives you the ability to set or append dynamic values
from the context of the current row. This includes values from related rows that can be accessed from the N:1
(many-to-one) relationships for the table.
The options available in the Form Assistant depend on the column you have selected in the form. When you
set a dynamic value, you will see a yellow placeholder known as a ‘slug’ that shows where the dynamic data will
be included. If you want to remove the value, just select the slug and delete it. For text columns, you can use a
combination of static and dynamic data.
With dynamic values, you don’t know for certain that a column or related table has the value you want to set.
You can actually set a number of columns to try to set the value and sort them in order using the green arrows.
If the first column doesn’t have data, the second column will be tried and so on. If none of the columns has data,
you can specify a default value to be used.

Setting conditions for background workflow actions


The actions that you will apply often depend on conditions. Background workflow processes provide several
ways to set conditions and create branching logic to get the results you want. You can check values of the row
that the background workflow process is running against, any of the rows linked to that row with an N:1
relationship, or values within the process itself.

C O N DIT IO N T Y P E DESC RIP T IO N

Check Condition A logical "if <condition> then" statement.

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.

In the "if <condition> then" statement, you can use the


following operators: Equals , Does Not Equal, Contains
Data , Does Not Contain Data , Under and Not Under .

Note: The Under and Not Under are hierarchical


operators. They can only be used on the tables that have a
hierarchical relationship defined. If you’re trying to use these
operators on the tables that don’t have the hierarchical
relationship defined, you’ll see the error message: “You’re
using a hierarchical operator on a table that doesn’t have a
hierarchical relationship defined. Either make the table
hierarchical (by marking a relationship as hierarchical) or use
a different operator.”

For more information about hierarchical relationships, see


Define and query hierarchically related data. A screenshot
that follows the table is an example of the definition of the
background workflow process that uses the Under and Not
Under hierarchical operators.
C O N DIT IO N T Y P E DESC RIP T IO N

Conditional Branch A logical "else-if-then" statement. The editor uses the text
“Otherwise, if <condition> then:”

Select a check condition you have previously defined and


you can add a conditional branch to define additional steps
when the check condition returns false.

Default Action A logical "else" statement. The editor uses the text
“Otherwise:”

Select a check condition, conditional branch, wait condition,


or parallel wait branch that you have previously defined and
you can use a default action to define steps for all cases that
do not match the criteria defined in condition or branch
elements.

Wait Condition Enables a background workflow to pause itself until the


criteria defined by the condition have been met. The
background workflow starts again automatically when the
criteria in the wait condition have been met.

Parallel Wait Branch Defines an alternative wait condition for a background


workflow with a corresponding set of additional steps that
are performed only when the initial criterion is met. You can
use parallel wait branches to create time limits in your
background workflow logic. They help prevent the
background workflow from waiting indefinitely until the
criteria defined in a wait condition have been met.

Custom Step Developers can create custom background workflow steps


that define conditions. There are no custom steps available
by default.

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.

Monitoring background workflows


Background workflows generate System Job rows to track their status. You can access information about these
system jobs in several places within the application:
Settings > System Jobs
This will include all types of system jobs. You will need to filter rows to those where System Job Type is
Workflow .
From the background workflow process
Open the background workflow definition and go to the Process Session tab. This will show only the
system jobs for this background workflow.
From the row
You can edit the table form so that the navigation will include the Background Processes relationship.
This will show all the system jobs that have been started in the context of the row.

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.

Actions on running background workflows


While a background workflow is running, you have options to Cancel , Pause , or Postpone the workflow. If you
have previously paused a workflow, you can Resume it.

Status of background workflow processes


When you view a list of background workflow processes, any individual process can have one of the following
State and Status Reason values:

STAT E STAT US REA SO N

Ready Waiting for Resources

Suspended Waiting
STAT E STAT US REA SO N

Locked In Progress

Pausing

Canceling

Completed Succeeded

Failed

Canceled

Deleting process log rows


If your organization uses background workflows or business process flows that run frequently, the amount of
process log rows can become large enough to cause performance issues as well as consume significant
amounts of storage. To delete process log rows not removed sufficiently by one of the standard bulk row
deletion jobs, you can use the bulk delete system jobs feature to create a custom bulk row deletion job.
1. Go to Settings > Data Management > Bulk Row Deletion .
2. From the Bulk Row Deletion area, select New .
3. On the Bulk Deletion Wizard start page, select Next .
4. In the Look for list, select System Jobs .
5. The following conditions are used to create a bulk row deletion job to delete process log rows:
System Job Type Equals Workflow. This targets background workflow rows.
Status Equals Completed. Only completed workflows are valid to run the job against.
Status Reason Equals Succeeded. Delete successful, canceled, and failed jobs.
Completed On Older than X Days 30. Use the Completed On column to only delete background
workflow process log rows that are older than 30 days.
6. Select Next .
7. Set the frequency that your bulk delete job will run. You can schedule your job to run at set intervals or
create a one-time bulk deletion job Using the Immediately option. In this example, a recurring job is set to
run on May 21, 2018, and every 30 days thereafter.

Using the Immediately option


Notice that you have the option of performing an immediate synchronous bulk delete of the rows by selecting
the Immediately option. This delete is performed with direct SQL Server execution rather than passing each
row through the delete event pipeline, which can reduce the impact to system performance. This is a good
option if you want to quickly clean up the extra background workflow rows instead of the bulk delete job
waiting in the asynchronous queue for processing.
The Immediately option is enabled when the following conditions are true:
Bulk delete job is for the System Jobs table.
The search criteria has the condition System Job Type Equals Workflow.
The user creating the bulk delete job has global depth for the delete privilege on the AsyncOperation table.
The System Administrator security role has this privilege.
The synchronous bulk delete will only delete AsyncOperation rows in the completed state. A maximum of 1
million rows are processed for each invocation. You will need to execute the job multiple times if your
environment has more than 1 million rows to remove.

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.

Avoid infinite loops


It’s possible to create logic in a background workflow that initiates an infinite loop, which consumes server
resources and affects performance. The typical situation where an infinite loop might occur is if you have a
background workflow configured to start when an column is updated and then updates that column in the logic
of the workflow. The update action triggers the same background workflow that updates the row and triggers
the background workflow again and again.
The workflows you create include logic to detect and stop infinite loops. If a background workflow process is run
more than a certain number of times on a specific row in a short period of time, the process fails with the
following error: This workflow job was canceled because the workflow that star ted it included an
infinite loop. Correct the workflow logic and tr y again. The limit of times is 16.

Use background workflow templates


If you have workflows that are similar and you anticipate creating more workflows that follow the same pattern,
save your background workflow as a workflow template. This way, the next time you need to create a similar
workflow, use the template to create the background workflow and avoid entering all the conditions and actions
from scratch.
In the Create Process dialog box, choose New process from an existing template (select from list) .

Use child workflows


If you apply the same logic in different workflows or in conditional branches, define that logic as a child
workflow so you don’t have to replicate that logic manually in each background workflow or conditional branch.
This helps make your workflows easier to maintain. Instead of examining many workflows that might apply the
same logic, you can just update one workflow.

Automatically delete completed background workflow jobs


For background (asynchronous) workflows, we recommend selecting the Automatically delete completed
workflow jobs (to save disk space) option in the background workflow definition. Selecting this check box
allows the system to delete background workflow logs for successful executions to save space. Notice that logs
from failed background workflow executions will always be saved for troubleshooting.
Limit the number of workflows that update the same table
Running more than one background workflow that updates the same table can cause resource lock issues.
Imagine several workflows running where every opportunity update triggers an update to the associated
account. Multiple instances of these workflows running and attempting to update the same account row at the
same time can result in resource locking issues. Background workflow failures occur and an error message, such
as SQL Timeout: Cannot obtain lock on resource resource name , is recorded.

Use Notes to keep track of changes


When you edit workflows you should use the Notes tab and type what you did and why. This allows others to
understand the changes you made.

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

This topic compares Power Automate capabilities with classic workflow.


Power Automate has significant advantages over the classic background workflow model; you should consider
using Power Automate to automate your processes instead of classic workflow.
Create flows instead of classic Microsoft Dataverse workflows to build new automation processes. Additionally,
you should review your existing classic background workflow processes and consider replacing them with flows.

Feature capability comparison


This table summarizes a comparison between Power Automate and classic workflows capabilities.
We are continuously adding new capabilities to Power Automate. We'll update information in this table as Power
Automate gains capabilities; check back often! For information about upcoming capabilities that will help you
replace classic background workflows with flows, see What's new and planned for Power Automate.

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

Modeling Conditional branching Yes Yes

Looping Yes No

Wait conditions on columns No Yes

Parallel branch Yes No

Out-of-the-box connectors Yes No


to external systems (trigger
and perform actions in
external services)

Composition Dynamic content Yes Yes

Access to pre-image of No Yes


event data

Run child workflows Yes Yes

Run Microsoft Dataverse Yes Yes


actions (including custom)

Run custom background No Yes


workflow activities

Group steps to run in a Yes (changesets) No


transaction
Approval workflows Yes No

Execution Trigger on column changes Yes Yes

Trigger conditionally on No No
column values (For example,
on a certain date in a date
column)

Trigger on multiple Yes Yes


Dataverse table events

Run on-demand Yes Yes

Run-as scopes Yes Yes


(for example, organization,
business unit, user)

Run on a schedule Yes No

Run synchronously (real- No Yes


time)

History Auditing Yes Yes

Run analytics Yes No

Authoring and portability Solution support Yes Yes

Modern designer Yes No

AI-assisted authoring Yes No

Example scenario: Replace a background workflow with a cloud flow


Imagine a sales scenario where you have put together a quotation for a customer and now you need to request
approval from your management team before you send the quotation to the customer. With classic workflows,
this isn't easy and most solutions to this require a developer to write custom background workflow activities to
retrieve quote line items.
With flows, this scenario is easier to build, as demonstrated in the walkthrough later that covers some of the
Power Automate capabilities. These capabilities include:
Creating a cloud flow that runs on demand.
Getting a list of rows that are related to a Dataverse table.
Looping over a list of rows.
Sending approval requests.
To allow the sales person to trigger the approval request on demand:
1. Sign in to Power Automate and create a cloud flow in a solution.
2. From the list of triggers, select Microsoft Dataverse – When a row is selected , and then select
Quotes as the table.
This trigger allows a cloud flow to run on-demand on a row or set of rows.
3. With the trigger configured, add actions to run in the flow. This provides the approver with the summary
detail that they need to identify the quoted items and values. Begin by adding the Microsoft Dataverse
– List rows action. The goal is to get the individual items from a Quote, so set the Table name to Quote
lines . To ensure the list contains only those quote line items that belong to the Quote for which the flow
was triggered, we’ll specify an OData style filter criterion. In the Filter Quer y box, type _quoteid_value
eq and then select Quote from the list of dynamic values that appear.
4. Because we want to summarize quote line items for the approval, add the Initialize variable action. Set
Name to Quote line summar y , and Type to String (from the drop-down list), and leave Value empty.
5. Add the Append to string variable action and then select the Quote line summar y variable we
created earlier. In the Value box, select Quantity , Name , Price Per Unit , Extended amount , and
Manual discount from the list of dynamic values. The Power Automate designer identifies that these
values are from a list of quote line items, and adds this action in an Apply to each loop to ensure
information from each line item is added to this summary.
6. To request approval on the quote summary we’ve created, add the Approval – Star t and wait for an
approval action. Select an Approval type (for example, Approve/Reject – First to respond ), give the
approval request a Title (for example, the name of the quote for which approval is being requested,
picked from the list of dynamic values), and enter the email address for the person who needs to review
and approve the quote in the Assigned to box. In the Details box, add the Quote line summar y
variable, along with any other information that might be relevant using the dynamic value picker (for
example, Total Amount ).
7. To determine what happens once an approval is accepted or rejected, add the Condition action. Select
Outcome from the list of dynamic values from the first field in the condition, contains from the drop-
down list in the second field, and enter Approve in the third field of the condition. Finally, add actions
based on the outcome of the approval (for example, send a notification email).

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.

Create a task flow


1. Make sure that you have the System Administrator, or System Customizer security role or equivalent
permissions. The Manager, Vice President, or CEO-Business Manager, security roles can also create mobile
task flows.
2. Open solution explorer and select Processes .
3. On the Actions toolbar, select New .
4. In the Create Process dialog box, complete the required fields:
Enter a process name.
In the Categor y list, select Business Process Flow .
In the Table list, select the table you want.
5. Select the Run process as a task flow (Mobile online) option.
6. Select OK .
The task flow designer opens in a new window.

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.

Differences between workflows and dialogs


The following table provides information about the differences between Dataverse workflows and dialogs.

W O RK F LO W S DIA LO GS

Can be either started by a user or can be automated. Must be started by a user.

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.

Feature capability comparison


This table lists the set of dialog capabilities and the equivalent capabilities in business process flows and canvas
apps.

C A PA B IL IT Y IN B USIN ESS P RO C ESS


DIA LO G C A PA B IL IT Y F LO W S? C A PA B IL IT Y IN C A N VA S A P P S?

Page Yes Yes


(business process stage) (app screen)

Prompt only No Yes


(labels)

Prompt and response Yes Yes


(table columns only) (labels and input fields)

Input arguments Limited Yes


(steps in business process stage) (query string parameters)

Variables No Yes

Query variables No Yes

Conditional branching logic Yes Yes


(navigate to any screen within app)

Reuse No Yes
(launch as a child dialog) (navigate to any screen within app,
launch a different app in a new
window)

Run workflows on start/end Yes No


(use a cloud flow instead)

Run workflows on input Yes No


(use a cloud flow instead)

Run workflows on page transition Yes No


(use a cloud flow instead)

Start using a URL No Yes


C A PA B IL IT Y IN B USIN ESS P RO C ESS
DIA LO G C A PA B IL IT Y F LO W S? C A PA B IL IT Y IN C A N VA S A P P S?

Session logging Yes No

SDK support Yes Yes

Additional capabilities with business process flows


Process analytics (views, charts, and time spent in a stage)
Custom controls
Additional capabilities with canvas apps
App analytics (app usage & performance)
Multi-table page composition
Run flows
Data connectors (standard and custom)
Launch as a stand-alone app
Configurable layout

Choosing between a business process flow or canvas app


When you choose your dialog replacement, it is important to account for the user experience you want to
deliver. Also keep in mind, almost any dialog can be modeled using a canvas app.
Business process flows are best suited to replace dialogs that model processes providing guidance across an
overarching workstream that requires collaboration across groups of individuals and Dynamics 365 app context.
For example, quote review and routing.
Alternatively, canvas apps can be used to replace dialogs that model prescriptive tasks such as a call script for
lead prospecting or to simplify the user experience for other tasks, such as updating an opportunity. Notice that
these scenarios may even benefit from having a stand-alone canvas app.

Dialog replacement using business process flow scenario


Imagine you have a dialog that, over a series of pages, requests key pieces of information from the user,
generates a quote, sends an email to reviewers to accept or reject the quote, before emailing it to the customer.
This type of process is modeled more effectively using a business process flow.
To replace the dialog, you begin by identifying the key stages in the process. These might include a Prepare
Content stage to ensure all the products are listed and discounts are applied, a Generate Quote stage to create
the quote and review it for accuracy of format, a Primary Review stage to send the quote for review and
approval, a Secondary Review stage to review the quote under certain circumstances and finally, a Deliver Quote
stage to send the quote to the customer.
Next, identify the key steps that users must follow in the process. For instance, the Prepare Content stage might
contain a simple true or false step for the user to double check the products to be quoted, a mandatory lookup
step to select a price list, and a numeric step to enter a discount before moving on to the next stage. The
Generate Quote stage might have an action step to create a quote based on all the information previously
captured in the Prepare Content stage and its related Dynamics 365 row. The Primary Review and Secondary
Review stages might have several true or false steps to guide quote review, along with a required step to capture
the approval status, and ensure the process can only be moved to the next stage once approval is received.
Configure column level security on this step to make sure that only authorized reviewers can provide approval
on the quote. Additionally, one can add a workflow to the Primary Review and Secondary Review stages, such
that on enter, an email notification is sent to all reviewers.
Finally, configure your business process flow stages and steps, along with the conditional logic to guide the
process flow. For this example, you might add a conditional branch following the Primary Review stage, such
that, if a step indicates the need for a second level of review, the next stage in the process is the Secondary
Review stage, else, it’s the Deliver Quote stage.
To make this business process flow available to users, ensure the right users have privileges to the business
process flow and then activate it.
For more information about how to create a business process flow, see Tutorial: Create a business process flow
to standardize processes.

Dialog replacement using canvas app scenario


Suppose you have a dialog, which follows a call script that guides sales reps through cold calling leads. This
process can easily be captured using a canvas app.
Begin with connecting to the data sources you’ll need to read and write data. In this example, a connection to
Dynamics 365 is used for lead, account, and contact information.
Begin by identifying the number of screens needed. For this example, you may decide to have five screens.
Screen 1. To select a lead from a list to call.
Screen 2. For introductions, checking availability for a conversation, and scheduling a call-back at a later date.
Screen 3. For determining BANT (budget, authority, need, and timeline).
Screen 4. To capture next steps and schedule follow-up calls.
Screen 5. Thank the lead for their time at the end of the call.
Next, build each screen. In the first screen, build a gallery of leads that need to be called. In the second, use labels
to title the screen and provide the call script, while using controls like radio buttons to capture whether it is a
good time for the person to talk. If it is, use conditional logic to enable a button to navigate to the next screen
and if not, reveal a script on the same screen to attempt to schedule a call back with the customer. Similarly,
define your call script across subsequent screens.
Finally, define navigation across screens. In this example, in addition to navigating through the screens
sequentially, you might want to navigate the user from the second screen to the last screen (the end of the script
thanking the lead for their time) if the lead is not interested in having a conversation.
To make this app available to users, publish the app. Consider how such a scenario might be transformed
through the availability of a standalone app that provides call scripts and supports quick data entry.
Imagine you want to embed this experience in Dynamics 365 Sales. To do this, begin with creating an iframe on
a Dynamics 365 Sales form. Next, navigate to the Apps section from the Power Apps menu, select the app you
just published, copy the web link under the Details tab and paste it as the URL for the iframe.
Taking this a step further, suppose you’d like for this app to be available right within the lead main form, and be
in the context of the lead so that the app doesn’t require the user to select a lead in the first screen. To pass
relevant information to the app, you simply modify the iframe URL to append a query string containing this
information, such as lead or account Ids, using JavaScript that runs on a certain event, such as on form load.
Next, update the app to remove the first screen (for lead selection) and instead access the values passed to the
app via the query string using the Param function.

Dialog replacement FAQ


Are dependencies on canvas apps be tracked?
Dependencies on canvas apps are tracked in the same way as dependencies in Dynamics 365 apps.
Can I launch a canvas app as a popup from a button in the command bar?
Yes. To do this, simply set the target URL to that of your canvas app, obtained from the app's Details section
as described earlier.
Can workflows be called from a canvas app?
This is not supported. We recommend using a cloud flow instead. More information: Introducing button
flows with user input
Can I automatically convert dialogs to business process flows or canvas apps?
There is no automated way to convert dialogs to business process flows or canvas apps.

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.

Power Automate for enterprise developers


As an enterprise developer, empower your organization to build robust tailored solutions on Power Automate:
Build custom connectors : Develop custom connectors to connect to your organization's data and web
services through Power Automate. Learn more
Build Azure Functions : Craft Azure Functions to extend apps with custom server-side logic. Learn more
Embed Power Automate : Embed Power Automate directly into your website experiences to create
integrated solutions, surfacing workflows or processes where people in your organization already do
their work. Learn more

Power Automate for ISVs and Microsoft partners


As a Microsoft partner or Independent Software Vendor (ISV), accelerate customer adoption by extending your
products to integrate with your customers' data and business processes, and add and customize workflows to
automate business processes as part of your application. After you have completed the below seven steps, your
application will have the ability to leverage a robust cloud-scale workflow engine that can connect to 200+
different services.

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?

Development 5. Add application logic to If you want to automatically deploy


programmatically deploy flows your pre-built flows for your
customers

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

Distribution 7. List your solution on Microsoft Recommended to increase the visibility


AppSource of your ISV solution

1. Connecting to your APIs OR Enabling customers to connect to your APIs


As an ISV, you often have proprietary data that you would like customers to access through your flows. You can
expose access to any of your data through a custom connector. Learn more
Once created, there are two ways to make the connector available to your customers:
The connector can be deployed into the customer’s tenant via REST APIs or PowerShell.
To make the custom connector publicly available for all users, you can submit your connector for
certification. Learn more
2. Authentication
To call REST APIs and embed authenticated UI, your application needs to use Azure AD federated single sign-on
to authenticate end users and customers. Go here for information on how to enable AAD federated SSO. We do
not have support for unauthenticated access, or access with identity providers other than Azure AD.
3. Embedding UI components
Embed Power Automate within your app to enable deep, in-context integration between your app and all the
other services that Power Automate supports. Learn more
4. Create and publish flow templates
Once you have a connector, you should publish templates that demonstrate how to use your service. These
templates will serve as examples that users can use to learn and then extend to their own unique workflows.
Learn more
5. Deployment
To give end users access to flows that they can use automatically, deploy the flows into the Azure AD tenant of
the user. Use a deployment package that you deploy using our REST APIs or PowerShell. Learn more
6. Licensing
If your customers already have either Office 365 or Dynamics 365, and these licenses are associated with the
identities that users log in with Azure AD, there are no additional licensing requirements for them to use
standard connectors. Your users will need one of the Power Automate licenses to use premium and custom
connectors. If your customers do not use Office 365 or Dynamics 365, then you must acquire use rights on their
behalf for Power Automate, so that they are licensed to leverage those embedded components in your
application.
We offer the Microsoft Cloud Solution Provider program to acquire licenses on behalf of your customers. There
are two different pricing plans available for Power Automate, which you should check for plan and feature
details.
7. List on AppSource
Once you have integrated Power Automate into your application, you can list it on AppSource. With AppSource
you can generate new leads for your business by building an app and publishing it to AppSource for new
customers to test-drive. Learn more
Custom connectors in Power Automate
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.

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

Use the unauthenticated widget


To use the unauthenticated templates widget, embed it directly into the host application using an iframe. You
don't need the JS SDK or an access token.
Show templates for your scenarios
To start, add this code to show the Power Automate templates on your website:

<iframe src="https://flow.microsoft.com/{locale}/widgets/templates/?q={search term}


&pagesize={number of templates}&destination={destination}&category={category}"></iframe>

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.

category Filters to the given template category.

parameters.{name} Additional context to pass into the flow.

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
&parameters.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&parameters.listName=myCoolList"></iframe>

Use the authenticated flow widgets


The following table shows the list of Power Automate widgets that support the full experience within the widget
using user authentication access token. You will need to use Power Automate's JavaScript Software Developer Kit
(JS SDK) to embed the widgets and provide the required user access token.

W IDGET T Y P E SUP P O RT ED F EAT URE

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.

flowCreation Creates a cloud flow from a template Id that the host


application provides.

runtime Triggers a manual or hybrid-trigger flow that the host


application provides.

approvalCenter Embeds approval requests and sent approvals.

templates Shows a list of templates. The user chooses one to create a


new flow.

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.

var sdk = new MsFlowSdk({


hostName:'https://flow.microsoft.com',
locale:'en-US'
});

NAME REQ UIRED/ O P T IO N A L DESC RIP T IO N

hostName Optional Power Automate host name, for


example, https://flow.microsoft.com

locale Optional Client locale for the widget (defaults to


en-Us if not specified)

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:

<div id="flowDiv" class="flowContainer"></div>

Then, initialize the Power Automate widget with the JS SDK renderWidget() method. Be sure to provide the
widget type and corresponding settings.

var widget = sdk.renderWidget('<widgettype>', {


container: 'flowDiv',
flowsSettings: {},
templatesSettings: {},
approvalCenterSettings: {},
widgetStyleSettings: {}
});

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>

These are the parameters for renderWidget() :

PA RA M ET ER REQ UIRED/ O P T IO N A L DESC RIP T IO N

container Required Id of a DIV element on the host page


where the widget will be embedded.

environmentId Optional Widgets need an environment Id. If


you don't provide an Id, a default
environment is used.

flowsSettings Optional Power Automate settings object

templateSettings Optional Template settings object

approvalCenterSettings Optional Approval settings object

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;
};

PA RA M ET ER REQ UIRED/ O P T IO N A L DESC RIP T IO N

createFromBlankTemplateId Required Use the template's GUID when the


user selects the Create from blank
button on the Flow widget

flowsFilter Optional The Power Automate widget applies


the provided filter when listing flows.
For example, show flows that reference
a specific SharePoint site.
flowsFilter: "operations/any(operation:
operation/sharepoint.site eq
'https://microsoft.sharepoint.com/teams/ProcessSimple'
)"

tab Optional Defaults the active tab to show in the


Power Automate widget.
For example,
tab:'sharedFlows' displays the
Team tab
and tab:'myFlows' Displays the My
flows tab.

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;
};

PA RA M ET ER REQ UIRED/ O P T IO N A L DESC RIP T IO N


PA RA M ET ER REQ UIRED/ O P T IO N A L DESC RIP T IO N

defaultParams Optional Design time parameters to use when


creating a cloud flow from a template,
for example:
defaultParams: {'parameters.sharepoint.site':
'https://microsoft.sharepoint.com/teams/ProcessSimple',
'parameters.sharepoint.list': 'b3a5baa8-fe94-44ca-a6f0-
270d9f821668' }

destination Optional Valid values are 'new' or 'details'. When


set to 'details', a detail page is shown
when creating a cloud flow from a
template.

pageSize Optional Number of templates to display.


Default size = 6

searchTerm Optional Display templates that match the


provided search term

templateCategory Optional Display templates in a specific category

ApprovalCenterSettings
Applies to ApprovalCenter widgets.

approvalCenterSettings?: {
approvalsFilter?: string;
tab?: string;but
autoNavigateToDetails?: boolean;
showSimpleEmptyPage? boolean;
hideLink?: boolean
};

PA RA M ET ER REQ UIRED/ O P T IO N A L DESC RIP T IO N

hideLink Optional When set to true , the widget hides


the received and the sent approval
links

autoNavigateToDetails Optional When set to true , the widget


automatically opens the approval
details when only one approval exists

approvalsFilter Optional The approval widget will apply the


specified approval filter when listing
the approvals, for example: The
approval widget will apply the specified
approval filter when listing the
approvals, for example:
approvalsFilter: 'properties/itemlink eq
\'https://microsoft.sharepoint.com/teams/ProcessSimple/_layouts/15/list
PageType=4&ListId=737e30a6-5bc4-4e9c-bcdc-
d34c5c57d938&ID=3&ContentTypeID=0x010010B708969A9C16408696FD23801531C6\

approvalsFilter:
'properties/itemlinkencoded eq
\'{Your base64 encoded item link
url} \''

tab Optional Default active tab to show in the Flow


widget.
Valid values : 'receivedApprovals',
'sentApprovals'

showSimpleEmptyPage Optional Shows an empty page when there are


no approvals

hideInfoPaneCloseButton Optional Hides the info-pane Close button (or


the host already has a Close button)

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");
});

Supported events by widget type


W IDGET EVEN T DETA IL S

WIDGET_READY Widget loaded successfully

WIDGET_RENDERED Widget loaded and UI rendering is complete

GET_ACCESS_TOKEN Widget request for embed user-access token

GET_STRINGS Allows host to override a set of UI strings shown in the


widget

Runtime widget
W IDGET EVEN T DETA IL S DATA

RUN_FLOW_STARTED Triggered and the flow run was started

RUN_FLOW_COMPLETED Flow run triggered successfully

RUN_FLOW_DONE_BUTTON_CLICKED User selected Done button on flow run

RUN_FLOW_CANCEL_BUTTON_CLICKED User selected Cancel button on flow


run

FLOW_CREATION_SUCCEEDED The flow was created successfully { flowUrl: string, flowId:


string, fromTemplate: string }

WIDGET_CLOSE Fired when the host should close the


widget

Flow Creation widget


W IDGET EVEN T DETA IL S DATA

FLOW_CREATION_FAILED Flow creation failed

WIDGET_CLOSE Fired when host should close the


widget

TEMPLATE_LOAD_FAILED The template failed to load

FLOW_CREATION_SUCCEEDED The flow was created successfully { flowUrl: string, flowId:


string,fromTemplate?: string }

Approval widget
W IDGET EVEN T DETA IL S

RECEIVED_APPROVAL_STATUS_CHANGED Received approval status changed

SENT_APPROVAL_STATUS_CHANGED Sent approval status changed

GET_STRINGS event lets you customize text for some of the UI elements shown in the widget. The following
strings can be customized:

ST RIN G K EY USE IN T H E W IDGET

FLOW_CREATION_CREATE_BUTTON Text displayed on the create flow button in both flow


creation and runtime widget

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

INVOKE_FLOW_HEADER Header to use when invoking a cloud flow in the runtime


widget

INVOKE_FLOW_RUN_FLOW_BUTTON Text displayed on the button used to invoke/run a cloud flow


in the runtime widget

Example
Call widgetDoneCallback passing a JSON object with key-value pairs of string key and text to override the
default value.

widget.listen("GET_STRINGS", function(requestParam, widgetDoneCallback) {


widgetDoneCallback(null, {
"FLOW_CREATION_HEADER": "<string override would go here>",
"INVOKE_FLOW_RUN_FLOW_BUTTON": "<string override would go here>"
});
});

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

widget.notify('triggerFlow', { flowName: flowName, implicitData:implicitData });

Runtime widget
W IDGET A C T IO N DETA IL S PA RA M ET ER IN T ERFA C E

triggerFlow Triggers a cloud flow run { flowName: string,


implicitData?: string }

triggerFlowByTemplate Triggers a cloud flow run by template { templateId: string,


implicitData?: string,
designTimeParameters?:
Record<string, any> }

getTriggerSchema Gets trigger schema for a cloud flow { flowName: string, }

closeWidget Cancels any pending activity and raises


a WIDGET_CLOSE event

Flow Creation widget


W IDGET A C T IO N DETA IL S PA RA M ET ER IN T ERFA C E

createFlowFromTemplate Creates a cloud flow for the selected { templateName: string,


template designTimeParameters?:
Record<string, any> }

createFlowFromTemplateDefinition Creates a cloud flow for the selected { templateDefinition: string }


template definition

closeWidget Cancels any pending activity and raises


a WIDGET_CLOSE event

Approval widget
W IDGET A C T IO N DETA IL S PA RA M ET ER IN T ERFA C E

closeInfoPane Closes the info-pane displaying N/A


approval details

Configuring your client application


You will need to configure your client application with Flow Service Scopes (Delegated Permissions). If the Azure
Active Directory (AAD) app used for the widget integration uses a 'code grant' authorization flow, the AAD app
needs to be preconfigured with delegated permissions that are supported by Power Automate. This provides
delegated permissions that let the application:
Manage approvals
Read approvals
Read activities
Manage flows
Read flows
Follow these steps to select one or more delegated permissions:
1. Go to https://portal.azure.com
2. Select Azure Active Director y .
3. Select App registrations under Manage .
4. Enter the third-party application to be configured for Flow service scopes.

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:

> npm install > node server.js

5. Open the browser and then enter http://localhost:30662


6. Select the Sign in button to authenticate to AAD and acquire a cloud flow access token.
7. The Access Token text box contains the access token.

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

bg-bg Bulgarian (Bulgaria)

ca-es Catalan (Catalan)

cs-cz Czech (Czech Republic)

da-dk Danish (Denmark)

de-de German (Germany)

el-gr Greek (Greece)

en-Us English (United States)

es-es Spanish (Castilian)

et-ee Estonian (Estonia)

eu-es Basque (Basque)

fi-fi Finnish (Finland)

fr-fr French (France)

gl-es Galician (Galician)

hi-HU Hungarian (Hungary)


LO C A L E L A N GUA GE

hi-in Hindi (India)

hr-hr Croatian (Croatia)

id-Id Indonesian (Indonesia)

it-It Italian (Italy)

jp-Jp Japanese (Japan)

kk-kz Kazakh (Kazakhstan)

ko-kr Korean (Korea)

lt-LT Lithuanian (Lithuania)

lv-lv Latvian (Latvia)

ms-my Malay (Malaysia)

nb-no Norwegian (Bokmål)

nl-nl Dutch (Netherlands)

pl-pl Polish (Poland)

pt-br Portuguese (Brazil)

pt-pt Portuguese (Portugal)

ro-ro Romanian (Romania)

ru-ru Russian (Russia)

sk-sk Slovak (Slovakia)

sl-si Slovenian (Slovenia)

sr-cyrl-rs Serbian (Cyrillic, Serbia)

sr-latn-rs Serbian (Latin, Serbia)

sv-se Swedish (Sweden)

th-th Thai (Thailand)

tr-tr Turkish (Turkey)

uk-ua Ukrainian (Ukraine)

vi-vn Vietnamese (Viet Nam)


Let customers test drive your flows on AppSource
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.

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.

What is a Test Drive solution?


A Test Drive solution enables your customers to try out a real app without installing any applications. Customers
just sign into AppSource.com using their Azure Active Directory (AAD) account and run the app in a web
browser. Without Test Drive, customers can only read about your app or watch a video that describes it. With
Test Drive, customers get a better idea of what your solution is and what functionality your app has. And they
have the experience of actually using the app. Customers won't be able to look under the hood to see how your
app is built, so your intellectual property is protected. We collect and share lead information with you to help
you grow your business.

How do I build a Test Drive solution?


Building an app for a Test Drive solution is just like building any app, but you need to use a data source that the
user can be granted access to as a read-only user. Using a data source that's already set up will mean there is
zero friction for them to try it out. The full solution that you ultimately distribute to customers will include
writable data, but read-only data works well for a Test Drive solution.
Embed flow into your product
Once you have a data source that you can grant the user read-only access to, you can embed Power Automate
into your application. Read more about embedding here. You will likely want to use the search functionality to
highlight templates that are unique to your application. For example, if your application creates data in
Dynamics 365, you can highlight a Dynamics 365 template that pulls data and then sends an email to the user.

How do I list my Test Drive solution on AppSource.com?


Now that your app is ready, it's time to publish it to AppSource.com. In order to start this process, please
complete the application form on flow.microsoft.com. Once you apply you will receive an email with instructions
on how to submit your app to be published on AppSource.com.
Work with business process flows using code
1/15/2022 • 15 minutes to read • Edit Online

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

Prerequisites for business process flow


Custom tables and tables that have updated UI forms can participate in the business process flow. The updated
UI tables have the IsAIRUpdated property set to true .
To enable a table for the business process flow, set the IsBusinessProcessEnabled property to true .

IMPORTANT
Enabling a table for business process flow is a one way process. You can’t reverse it.

Define business process flow


Use the visual business process flow designer to define a business process flow. More information: Create a
business process flow
By default, a business process flow row is created in the Draft state.
A business process flow definition is stored in the workflow table, and the stage information for the business
process flow is stored in the processstage table.

Activate business process flow


Before you can use the process flow, you have to activate it. To activate it, you must have the
prvActivateBusinessProcessFlow privilege for the Workflow table. Use the UpdateRequest message to set the
state of the Workflow table row to Activated . More information: Perform specialized operations using Update
NOTE
You can also use the business process flow designer to activate a business process flow.

Business process flow table


Once you activate a business process flow definition by changing the state of the corresponding Workflow table
row or by using the business process flow designer, a custom table with the following name is automatically
created to store the activated business process flow instances: "<activesolutionprefix>_<uniquename>", where
the uniquename is derived from the name you specify.
For example, if you specified "My Custom BPF" as the name of the business process flow definition and are
using the default publisher (new) for your active solution, the name of the custom table created for storing
process instances will be "new_mycustombpf".
If the uniquename value isn't available for a business process flow definition, for example if the business process
flow was imported as part of solution from an earlier version, the default name of the custom table will be "
\<activesolutionprefix>_bpf_<GUID_BPF_Definition> :

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:

Using the Web API : Use the following request:


Request

GET [Organization URI]/api/data/v9.0/workflows?$filter=name eq 'My Custom BPF'&$select=uniquename


HTTP/1.1

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:

QueryExpression query = new QueryExpression


{
EntityName = "workflow",
ColumnSet = new ColumnSet("uniquename"),
Criteria = new FilterExpression
{
Conditions =
{
new ConditionExpression
{
ColumnName = "name",
Operator = ConditionOperator.Equal,
Values = { "My Custom BPF" }
}
}
}
};
Workflow Bpf = (Workflow)_serviceProxy.RetrieveMultiple(query).Entities[0];

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:

GET [Organization URI]/api/data/v9.0/EntityDefinitions?


$select=SchemaName,LogicalName,DisplayName&$filter=IsBPFEntity eq true HTTP/1.1

Manage security for business process flows


The custom table that is automatically created on activating a business process flow to store business process
flow instances adheres to the standard security model as for any other custom table in Microsoft Dataverse. This
implies that privileges granted on these tables define the runtime permissions for users for business process
flows.
The custom business process flow table has organization scope. The regular create, retrieve, update and delete
privileges on this table define the permission users would have based on their assigned roles. By default, when
the business process flow custom table is created, only System Administrator and System Customizer
security roles are granted access to it, and you must explicitly grant permissions to the new business process
flow table (for example, My Custom BPF ) for other security roles as required.
Create, retrieve, update, and delete business process flow table rows
(process instances)
The custom table that is automatically created on activating a business process flow definition stores all the
process instances for the business process flow definition. The custom table supports the standard
programmatic creation and management of rows (process instances) using Web API and CRM 2011 endpoint.

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.

Create a business process flow table row (process instance )


Create a business process flow table row (process instance) programmatically if you want to switch to another
business process flow for a table row without using the UI.
To create a business process flow table row, you need to specify the following values:
Associate the business process flow table row to a primary table row by setting the single-valued
navigation property using the @odata.bind annotation. To find out the navigation-property name that
points to the primary table row for your business process flow definition, use the CSDL $metadata
document.
Associate the business process flow table row to a valid stage specified in the business process flow
definition by setting the single-valued navigation property using the @odata.bind annotation. To find out
the navigation-property name (typically activestageid ) that points to the stage row for your business
process flow definition, use the CSDL $metadata document.
Also, you can retrieve information about all the stages for a business process flow definition by using the
following Web API request assuming that the ID of your business process flow definition is 2669927e-
8ad6-4f95-8a9a-f1008af6956f:
Request

GET [Organization URI]/api/data/v9.0/processstages?$select=stagename&$filter=processid/workflowid eq


2669927e-8ad6-4f95-8a9a-f1008af6956f HTTP/1.1

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

POST [Organization URI]/api/data/v9.0/new_mycustombpfs HTTP/1.1


Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json

{
"[email protected]": "/accounts(a176be9e-9a68-e711-80e7-00155d41e206)",
"[email protected]": "/processstages(9a9185f5-b75b-4bbb-9c2b-a6626683b99b)"
}

Response

HTTP/1.1 204 No Content


OData-Version: 4.0
OData-EntityId: [Organization URI]/api/data/v9.0/new_mycustombpfs(cc3f721b-026e-e811-80ff-00155d513100)

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).

POST [Organization URI]/api/data/v9.0/new_mycustombpfs HTTP/1.1


Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json

{
"[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"
}

Update a business process flow table row (process instance )


You can update a process instance to move to next or previous stage, abandon a process instance, reactivate a
process instance, or finish a process instance.
Stage navigation
To navigate to a different stage, you need to update a process instance row to change its active stage ID and
accordingly update the traversed path. Note that you must only move to the next or previous stage while
updating a business process flow instance.
To perform stage navigation, you will need the ID of the business process flow instance that you want to update.
To retrieve all the instances of your business process flow, see Retrieve all the rows (instances) for a business
process flow table earlier.
Assuming the ID of the process instance you want to update is dc2ab599-306d-e811-80ff-00155d513100, use
the following request to update the active stage from S1 to S2:
PATCH [Organization URI]/api/data/v9.0/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0

{
"[email protected]": "/processstages(19a11fc0-3398-4214-8522-cb2a97f66e4b)",
"traversedpath": "9a9185f5-b75b-4bbb-9c2b-a6626683b99b,19a11fc0-3398-4214-8522-cb2a97f66e4b"
}

Change the state of a process instance: Abort, Reactivate, or Finish


A process instance can have one of the following states: Active , Finished , or Abor ted . The state is determined
by the following columns on the process instance row:
statecode : Displays the status of the process instance.

VA L UE L A B EL

0 Active

1 Inactive

statuscode : Displays information about status of the process instance.

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:

PATCH [Organization URI]/api/data/v9.0/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1


Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0

{
"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.

PATCH [Organization URI]/api/data/v9.0/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1


Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0

{
"[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)"
}

Delete a business process flow table row (process instance )


Use the following Web API request:
Request

DELETE [Organization URI]/api/data/v9.0/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1

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.

Use RetrieveProcessInstances and RetrieveActivePath messages


Use the RetrieveProcessInstances message (RetrieveActivePath Function or RetrieveProcessInstancesRequest)
to retrieve all the business process flow instances for a table row across all business process definitions. The
business process flow instances returned for a table are ordered based on the modifiedon column for the
instance. For example, the most recently modified business process flow instance will be the first row in the
returned collection. The most recently modified business process flow instance is the one that is active on the UI
for a table row.
Each business process flow instance row returned for a table row as a result of using the
RetrieveProcessInstances message stores the ID of the active stage in the processstageid column that can be
used to find the active stage, and then move to the previous or next stage. To do so, you first need to find the
active path of a business process flow instance and the stages available in the process flow instance using the
RetrieveActivePath message (RetrieveActivePath Function or RetrieveActivePathRequest).

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.

Apply business process flow while creating a table row


This section provides information about the default behavior for applying business process flows automatically
to new table rows created in Dataverse, and how you can override it to apply a business process flow of your
choice for new table rows.
By default, for a table that has multiple business process flows defined for it, the system applies a business
process flow to the new table row using the following multi-step logic:
1. Identify all business process flows applicable to the new table row based on the Workflow.Primar yEntity
column of the business process flow definition rows.
2. Identify the business process flow definitions that the current user has access to. For information about how
access to a business process flow is determined and managed, see Manage security for business process
flows earlier in this topic.
3. All business process flow definitions in the system are subject to a global order per table. The order of the
business process flow is stored in the Workflow.ProcessOrder column. The business process flow
definitions for a table are sorted based on this order, and the one with the least order value is picked.
4. Finally, if the table row is created from a business app (app module), one more level of filtering is applied to
pick the business process flow to be applied automatically to the new table row. When working in an app,
users can access only relevant tables, business process flows, views and forms that they have access to by
virtue of the security roles assigned to the business app.
If the business app does not contain any business process flow then business process flow is applied
as explained until step 3.
If the business app has one or more business process flows then only the business process flows
present in the app would be applicable. In this case, when the user is working within a business app
context, the list of business process flows from step 3 are filtered further to the ones that are part of
the business app that are present inside the app module, and are sorted based on the process order.
If no business process flow is available in a business app for the table or one that the user has access
to then no business process flow is applied for the new table row.
You can override the default logic of business process flows getting applied automatically to new table rows. To
do so, set the ProcessId column of the table to one of the following values while creating a new table row:
Set to Guid.Empty to skip setting a business process flow for new table rows. You might want to do that if
you are bulk creating table rows, but don't want business process flow to to be applied to them.
Set it to a specific business process flow table (as a table reference). In this case, the system will apply the
specified business process flow instead of the default logic.
If you do not set a value for the ProcessId column while creating a new table row, the system will apply the
default logic as explained earlier.

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.

Legacy process-related columns in tables


The legacy process-related columns (such as ProcessId , StageId , and TraversedPath ) on tables enabled for
business process flows are already deprecated. Manipulating these legacy process related columns for target
table rows does not guarantee consistency of the business process flow state, and is not a supported scenario.
The recommended way is to use the columns of the business process flow table as explained earlier in the
section Create, retrieve, update, and delete business process flow table rows (process instances)
The only exception to this is programmatically modifying the ProcessId column while creating a table row to
override the default application of the business process flow to the new row as explained in the previous section:
Apply business process flow while creating a table row.
Client-side programmability support for business process flows
There is a client-side object you can use to interact with business process flows in your form scripts. Business
process flows trigger client-side events every time a process is either applied to a row, the stage is changed, or
its status is changed to Active , Finished , or Aborted . More information: formContext.data.process (Client API
reference)

Maximum number of processes, stages, and steps


Per table, the default value for the maximum number of activated business process flows is 10. You can specify a
different value by using the Organization.MaximumActiveBusinessProcessFlowsAllowedPerEntity column. However,
if the value is greater than 10, you may see a decrease in your system’s performance when you switch processes
or open a row that has an assigned business process flow. This may be especially noticeable if processes span
multiple tables.
The following settings aren’t customizable:
The maximum number of stages per table in the process is 30.
The maximum number of steps in each stage is 30.
The maximum number of tables that can participate in the process flow is 5.
Sample: Work with business process flows
1/15/2022 • 3 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.

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.

What this sample does


1. Creates a sample Lead row. This automatically creates an instance of the "Lead To Opportunity Sales
Process" business process flow for the Lead row.
2. Converts the Lead row to an Opportunity row.
3. Retrieves the business process flow instances associated with the "Opportunity" row using the
RetrieveProcessInstances message. The first row in the returned collection is the active business process
flow instance for the opportunity row, which is "Lead To Opportunity Sales Process" in this case.
4. Retrieves the active path and the process stages for the "Lead To Opportunity Sales Process" instance
using the RetrieveActivePath message.
5. Retrieves the currently active stage for the "Lead To Opportunity Sales Process" instance, and prompts the
user whether to move to the next stage. On confirmation to move, sets the next stage in the active path as
the active stage for the "Lead To Opportunity Sales Process" instance.
6. Finally, prompts the user whether to delete the rows created during the sample run.
Here is the output of the sample:
Run the sample
1. Download the WorkWithBPF Visual Studio sample project, and extract it to a folder on your computer.
2. Locate the WorkWithBPF.sln file in your extracted folder, and open it in Visual Studio.
3. The sample project uses NuGet packages that must be restored before running the sample. Ensure that
automatic restore of NuGet packages is enabled in Visual Studio. More information: Enabling and
disabling NuGet package restore
Alternatively, select Project > Manage NuGet Packages , and select Restore to manually restore the
packages used in the sample.
4. Press F5 or select Debug > Star t Debugging .
5. If you have not previously run one of the samples before, you’ll need to enter information to run the
code, otherwise enter the number for one of the instances you have previously set up.

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 domain\username Type your Microsoft account.

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.

Signing up for Power Automate


What is Power Automate?
Power Automate is a public cloud service to help individuals and teams to set up automated workflows between
their favorite apps and services to synchronize, get notifications, collect data, and more.
How can I sign up for Power Automate?
Just go to flow.microsoft.com, select Tr y free on the top right-side of the screen, and then provide your
information to complete the sign-up process.
Sign up for Power Automate includes more details.
What is the Power Automate free license?
The Power Automate Free license is used only for tracking purposes. Enabling or disabling it has no effect on a
user's ability to create flows. If you disable the Power Automate Free license, it becomes enabled again when a
user logs in. This is the expected behavior.
Can I block another person from signing up for Power Automate?
Power Automate is a fully public cloud service, and everyone in the world can sign up and use it to automate
their day-to-day tasks. To use Power Automate there is no requirements that users have or use an Office 365
account. Because of this, there’s no mechanism at this time for you to block another person from using Power
Automate (as everyone in the world can, irrespective of their email address).
However, if a person signs up for Power Automate, and you choose to not support them inside of your
organization, they can in no way incur costs to your company. When an individual signs up for Power Automate,
the relationship is between that individual and Microsoft, which is like many other cloud services from Microsoft
such as Bing, OneDrive, or Outlook.com. An individual's use of Power Automate does not in any way imply that
the service is provided by your organization.
Finally, if your company wishes to restrict the use of organization-only data inside of Power Automate, that is
possible through Data loss prevention (DLP) policies.
How can people gain access to the paid features of Power Automate?
Individuals can gain access to the paid features of Power Automate in three different ways:
1. They can individually sign up for a Power Automate Trial license for 90 days at no cost.
2. You can assign a Power Automate license to them within the Microsoft 365 admin center.
3. The user has been assigned a Microsoft 365 and Dynamics 365 plans that includes access to Power
Automate. See the Power Automate pricing page for the list of Office 365 and Dynamics 365 plans that
include Power Automate capabilities.
Can I block another person from using the paid features of Power Automate?
Any individual can try out the paid features of Power Automate for 90 days, and incur no costs. However, you
can fully manage the assignment of the perpetual paid licenses inside of your organization through the Office
365 admin portal.
As with the free offerings, if an individual chooses to sign up for the trial that is a direct relationship between the
individual and Microsoft, not necessarily endorsed by your company.

Administration of Power Automate


Why has the Power Automate icon appeared in the Office 365 app launcher?
As announced in August, Power Automate is now a fundamental part of the Office 365 suite. Three months after
this announcement Power Automate was enabled as a service as a part of all existing Office 365 SKU's. As users
everywhere in the world can now use Power Automate, it has appeared in the app launcher for them.
See the following section if you'd like to remove the Power Automate tile from the app launcher by default.
How do I remove Power Automate from the app launcher for my organization?
If a user was assigned a Power Automate license, you can take the following steps to remove the license for that
user, which will remove the Power Automate icon from the app launcher:
1. Go to the Office 365 Admin Portal.
2. In the left navigation bar, select Users > Active Users .
3. Find the user for whom you want to remove the license, and then select their name.
4. On the user details pane, select the Licenses and Apps tab, and then uncheck the license for Power
Automate.
5. At the bottom of the pane, select Save changes .
Bulk removal of licenses is also possible through PowerShell. See Remove licenses from user accounts with
Office 365 PowerShell for a detailed example. Finally, further guidance about bulk removal of services within a
license can be found at Disable access to services with Office 365 PowerShell.
Removing of the Power Automate license or service for a user in your organization will result in the removal of
the Power Automate icon from the following locations for that user:

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.

How can I restrict my users' ability to access my organization's business data?


Power Automate allows you to create data zones for business and non-business data, as shown below. Once
these data loss prevention policies are implemented, users are prevented from designing or running Power
Automate that combine business and non-business data. For more details, See Data loss prevention (DLP)
policies.

Power Automate RPA license


How can I apply unattended RPA licenses to my flow
Follow these steps to apply unattended RPA licenses to your flows.
1. The tenant admin must purchase or get trial a version of the unattended RPA add-on capacity for the
tenant. The tenant admin can do this from the Microsoft 365 admin portal. Just search the purchase
services page for the add-on.
2. The environment admin must assign the available (paid or trial) unattended add-on capacities to a
specific environment.

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.

What are the prerequisites for using RPA?


An environment that has Dataverse enabled.
You must have a work or school account. You cannot start a trial with a personal account.
The admin needs a paid or trial attended plan or a per flow plan before they can turn on to start an
unattended trial.

How can I check which license I am currently using?


A user can press CTRL+ALT+A from Power Automate to check their license status.

NOTE
There's no user interface available to check license status.

Can trials be disabled for a tenant?


Yes. Tenant admins can use PowerShell to disable all trials activations for a tenant.
How to start an unattended trial
1. Select Purchase ser vices in the Microsoft 365 admin center, and then select Add-ons .

2. Select Power Automate unattended RPA add-on Trial .


3. Select Get free trial .

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.

2. Select Resources > Capacity > Manage .


3. Select the environment to which you want to assign the unattended RPA licenses, assign the capacity, and
then select Save .
TIP
You will need to assign add-on capacity to each environment that needs to run RPA unattended.

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.

Where can I find out what pricing plans are available?


See the pricing page.

Where can I find out what my plan is?


See this subscription page.

How do I switch plans?


1. Sign into Power Automate.
2. In the top right of the screen select ? > Pricing , and then select the plan to which you want to switch.
How do I know how much I've used?
1. If you're on a free plan or a trial plan, sign into Power Automate.
2. Select the gear icon in the top right of the screen.

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.

What happens if my usage exceeds the limits?


Power Automate throttles your flow runs.

Where can I find more information regarding the usage limits?


On the pricing page, see the FAQ section.
The limits and config page.

What happens if I try to execute runs too frequently?


Your plan determines how often your flows run. For example, your flows may run every 15 minutes if you're on
the free plan. If a cloud flow is triggered less than 15 minutes after its last run, it's queued until 15 minutes have
elapsed.

What counts as a run?


Whenever a cloud flow is triggered, whether by an automatic trigger or by manually starting it, this is
considered a run. Checks for new data don't count as runs.

Are there differences between Microsoft Accounts and work or


school accounts for billing?
Yes. If you sign in with a Microsoft Account (such as an account that ends with @outlook.com or @gmail.com),
you can use only the free plan. To take advantage of the features in the paid plan, sign in with a work or school
email address.

I'm trying to upgrade, but I'm told my account isn't eligible.


To upgrade, use a work or school account, or create an Office 365 trial account.

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.

Other limits and caveats


Each account may have as many as:
15 custom connectors.
20 connections per API and 100 connections total.
Certain external connectors, such as Twitter, implement connection throttling to control quality of service.
Your flows fail when throttling is in effect. If your flows are failing, review the details of the run that failed in
the flow's run history.

Licenses that can submit support tickets in Power Automate


If you have one of the following licenses, you can submit a support ticket in Power Automate
Power Automate per flow plan
Power Automate per user plan
Power Automate per user with Attended RPA plan
PowerApps per user plan
Dynamics Enterprise plan
Dynamics Professional plan
The admin center
1/15/2022 • 2 minutes to read • Edit Online

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.

Access the admin center


Browse to https://admin.powerplatform.microsoft.com/.

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

management.azure.com https Access to the Azure Resource Manager.

login.microsoft.com https Access to authentication and


login.windows.net authorization endpoints.
login.microsoftonline.com
secure.aadcdn.microsoftonline-p.com

graph.microsoft.com https Access to Microsoft graph - for getting


graph.windows.net user information such as a profile
photo.

*.azure-apim.net https Access to the Runtime for Connectors.

*.flow.microsoft.com https Access to the Power Automate site.

*.powerapps.com https Access to the Power Apps site.


DO M A IN S P ROTO C O L S USES

*.azureedge.net https Access to the Power Automate CDN.

nps.onyx.azure.net https Access to NPS (Net Promoter Score).

webshell.suite.office.com https Access to Office for header and search.


Please see the Office 365 urls and
ranges for more details.

*.dynamics.com https Access to Dataverse tables

Approval email delivery


Please see the approvals email delivery article for details about approvals email routing.

Desktop flows services required for runtime


The following table lists endpoint data requirements for connectivity from a user's machine for desktop flows
runs.

EN DP O IN T T Y P E DO M A IN S P ROTO C O L S USES

Worldwide endpoints ocsp.digicert.com http Access to the CRL server for


ocsp.msocsp.com the public cloud.
mscrl.microsoft.com Needed when connecting
crl3.digicert.com through the on-premises
crl4.digicert.com data gateway.

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.

21Vianet operated crl.digicert.cn http Access to the CRL servers


endpoints ocsp.digicert.cn for 21Vianet operated
cloud.
Needed when connecting
through the on-premises
data gateway.

All endpoints msedgedriver.azureedge.net https Access to UI Flows


chromedriver.storage.googl WebDriver downloaders.
eapis.com

Worldwide endpoints *.servicebus.windows.net https Listens on Service Bus Relay


over TCP.
Needed for new machine
connectivity.

U.S. Goverment endpoints *.servicebus.usgovcloudapi. https Listens on Service Bus Relay


net for US government cloud.
Needed for new machine
connectivity.
View desktop flows analytics in the Power Platform
admin center
1/15/2022 • 2 minutes to read • Edit Online

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.

What's a data loss prevention policy?


An organization's data is critical to its success. Its data needs to be readily available for decision-making, but it
needs to be protected so that it isn't shared with audiences that shouldn't have access to it. To protect this data,
Power Automate provides you with the ability to create and enforce policies that define which connectors can
access and share business data. The policies that define how data can be shared are referred to as data loss
prevention (DLP) policies.
To learn more about protecting your data, see Data loss prevention policies in the Microsoft Power Platform
admin guide.

IMPORTANT
Administrators control data loss prevention policies. Contact your administrator if a data loss prevention policy is blocking
your flows from running.

Data loss prevention for desktop flows (preview)


IMPORTANT
Data loss prevention for desktop flows is a preview feature and it's subject to change.

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.

REGIO N DAT E AVA IL A B L E

Canada 2021/11/1

Switzerland, Brazil 2021/11/30

Asia, UK, Australia, Japan 2021/12/6

Europe 2022/02/17
REGIO N DAT E AVA IL A B L E

US(NAM) 2022/02/17

Government Community Cloud (GCC), Government 2022/2/17


Community Cloud - High (GCC High), Department of
Defense (DoD), China regions

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.

Create a data loss prevention policy with desktop flows restrictions

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.

Why Intune support is important


Organizations are looking for more control over the data that resides on employee mobile devices.
Organizations might want to restrict how that data moves to the device and ensure the data is removed, should
the employee leave the organization.

What is Microsoft Application Management (MAM)


MAM allows organizations to create policies that govern how apps are used within a tenant. This includes
enforcing app data encryption, limiting the ability to copy or extract data to only approved applications, or
enforcing a PIN on a device.
Prerequisites
An Intune app protection policy.
An Azure Active Directory (Azure AD) group.
Company Portal. One key benefit of using MAM is that devices don't need to be enrolled in Intune MAM. All
that's required is the Company Portal, which is available from the App Store and the Google Play store.
Version 2.31.0 of the Power Automate mobile app for iOS, Android, or Windows Phone.

Create an app protection policy, assign apps to the policy, define


settings, and add users to an Azure AD group
For the Power Automate mobile app to be managed, you must:
1. Create an app protection policy.
2. Assign the Power Automate mobile app to the app protection policy.
3. Assign the policy settings. For example, you might assign the policy to require a PIN to access the mobile
device that runs the Power Automate mobile app.
4. Apply the app protection policy to a specific Azure AD group.
5. Add all users to which the app protection policy applies to the Azure AD group.
Follow these steps to create an app protection policy that requires Power Automate mobile app users to enter a
PIN before they can access the app.

Test the app protection policy


After you've created the app protection policy and assigned users to the Azure AD group, it's time to use the
Power Automate mobile app and confirm the policy works.
To confirm the policy works, follow these steps:
1. Install the Power Automate mobile app on a device whose platform matches one of the platforms you
defined in the app protection policy.
2. Sign in to the mobile app with an account that's in the Azure AD group that restricts use of the mobile app to
users who have a PIN.
You'll then be prompted to:
1. Install the Company Portal.
2. Set your PIN if you don't already have a PIN that meets the app protection policy's criteria.

Learn more
Learn to create an app protection policy.
Learn all about data groups
1/15/2022 • 2 minutes to read • Edit Online

What is a data group?


Data groups are a simple way to categorize services within a data loss prevention (DLP) policy. The two data
groups available are the Business data only group and the No business data allowed group. Organizations
are free to determine which services are placed into a particular data group. A good way to categorize services
is to place them in groups, based on the impact to the organization. By default, all services are placed into the
No business data allowed data group. You manage the services in a data group when you create or modify
the properties of a DLP policy from the admin center.
Visit the Microsoft Power Platform documentation to learn more about data groups and data loss prevention
policies.

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.

Responding to DSRs for Power Automate customer data


The GDPR gives rights to people (known in the GDPR as data subjects) to manage the personal data that has
been collected by an employer or other type of agency or organization (known as the data controller or just
controller). Personal data is defined very broadly under the GDPR as any data that relates to an identified or
identifiable natural person. The GDPR gives data subjects specific rights to their personal data; these rights
include obtaining copies of personal data, requesting corrections to it, restricting the processing of it, deleting it,
or receiving it in an electronic format so it can be moved to another controller. A formal request by a data
subject to a controller to take an action on their personal data is called a Data Subject Rights (DSR) Request.
This article discusses how to use Microsoft's products, services and administrative tools to help controllers find
and act on personal data when responding to DSRs. Specifically, this article includes how to find, access, and act
on personal data that reside in Microsoft's cloud. Here’s a quick overview of the processes outlined in this guide:
1. Discover: Use search and discovery tools to more easily find customer data that may be the subject of a
DSR. Once potentially responsive documents are collected, you can perform one or more of the DSR
actions described in the following steps to respond to the request. Alternatively, you may determine that
the request doesn't meet your organization’s guidelines for responding to DSRs. Power Automate DSR
Discovery documentation
2. Access: Retrieve personal data that resides in the Microsoft cloud and, if requested, make a copy of it that
can be available to the data subject.
3. Rectify: Make changes or implement other requested actions on the personal data, where applicable.
If a data subject asks you to rectify their personal data that resides in your organization, you and your
organization must determine if it’s appropriate to honor the request. Rectifying the data may include
taking actions such as editing, redacting, or removing personal data.
You can use Azure Active Directory to manage Power Automate users' identities. Enterprise customers
can manage DSR rectify requests, including limited editing features, per the nature of a given Microsoft
service. As a data processor, Microsoft doesn't offer the ability to correct system-generated logs because
these logs reflect factual activities and constitute a the history of all events within Microsoft services.
Learn more about DSR.
4. Restrict: Restrict the processing of personal data, either by removing licenses for various online services
or turning off the desired services where possible. You can also remove data from the Microsoft cloud
and retain it on-premises or at another location.
Data subjects may request that you restrict processing of their personal data. Microsoft provides
application programming interfaces (APIs) and user interfaces (UIs) for this purpose. These interfaces
allow the enterprise customer’s tenant administrator to manage such DSRs through a combination of
data export and data deletion. A customer may (1) export an electronic copy of the personal data of the
user, including account(s), system-generated logs, and associated logs, followed with (2) deletion of the
account and associated data residing within Microsoft systems.
5. Delete: Permanently remove personal data that resides in Microsoft's cloud. Learn more about deleting
personal data.
6. Export: Provide an electronic copy (in a machine-readable format) of personal data to the data subject.
Each section in this article outlines the technical procedures that a data controller organization can take to
respond to a DSR for personal data in Microsoft's cloud. Learn more about exporting 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.

RESO URC ES C O N TA IN IN G P ERSO N A L DATA P URP O SE

System-generated logs Telemetry that captures system events and history.

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

Activity feed Provides a recap of flow activities, including run status,


failures, and notifications.

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

Flow permissions Flows can be shared and re-assigned to other users.


Permissions lists exist for all flows. Learn more

User details Details, which are not seen by user, that support flow
execution.

Connections Used by connectors and allow for connectivity to APIs,


systems, databases, etc. Learn more

Connection permissions Permissions for a specific connection. Learn more

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

Gateway Gateways are on-premises data services that can be installed


by a user to transfer data quickly and securely between
Power Automate and a data source that isn’t in the cloud.
Learn more
RESO URC ES C O N TA IN IN G P ERSO N A L DATA P URP O SE

Gateway permissions Gateways can be shared with users within an organization.


Learn more
Responding to GDPR Data Subject Export Requests
for Power Automate
1/15/2022 • 4 minutes to read • Edit Online

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.

Manage Export requests


The right of data portability allows a data subject to request a copy of their personal data in an electronic format
(that’s a “structured, commonly used, machine readable, and interoperable format”) that may be transmitted to
another data controller.
Power Automate offers the following experiences to find or export personal data for a specific user:
Website access: sign into the Power Apps admin center, or the Power Platform admin center.
PowerShell access: Power Apps Admin PowerShell cmdlets.

C USTO M ER DATA W EB SIT E A C C ESS P O W ERSH EL L A C C ESS

System-generated logs Office 365 Service Trust Portal

Run history Power Automate Maker Portal

Flows Power Automate Maker Portal

Flow permissions Power Automate Maker Portal and


Power Automate admin center

User details Power Apps cmdlets

Connections Power Automate Maker Portal Power Apps cmdlets

Connection permissions Power Automate Maker Portal Power Apps cmdlets

Custom connectors Power Automate Maker Portal Power Apps cmdlets

Custom connector permissions Power Automate Maker Portal Power Apps cmdlets

Gateway Power Automate Maker Portal On-premises Data Gateway PowerShell


cmdlets

Gateway permissions Power Automate Maker Portal On-premises Data Gateway PowerShell
cmdlets

Export a cloud flow


Either an end user or an administrator, who has granted themselves access to the flow, can export the flow by
following these steps:
1. Sign into Power Automate.
2. Select the My flows link, and then select the flow to export.
3. Select … More , and then select Expor t .

4. Select Package (.zip) .


Your flow will now be available as a zipped package. For more information, see the blog post about how to
export and import a cloud flow.

Export run history


Run history includes a list of all executions that have occurred for a cloud flow. This data includes the flow’s
status, start time, duration, and input/output data for triggers and actions.
Either an end user or an administrator, who has been granted access to the flow through the Power Automate
admin center, can follow these steps to export this data:
1. Sign into Power Automate.
2. Select the My flows link, and then select the flow for which you want to export the run history.
3. In the RUN HISTORY pane, select See all .

4. Select Download CSV .


The run history is downloaded as a .csv file so that you can open it in Microsoft Excel or a text editor and further
analyze the results.

Export a user's activity feed


In Power Automate, the activity feed shows a user’s history of activities, failures and notifications. Any user can
view their activity feed by following these steps:
1. Sign into Power Automate, select the bell icon near the upper-right corner, and then select Show all
activity .

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

#Retrieves all connections for the user


Add-PowerAppsAccount
$userId = "7822bb68-7c24-49ce-90ce-1ec8deab99a7"
Get-AdminConnection -CreateBy $userId | ConvertTo-Json |Out-File -FilePath "UserConnections.txt"

Export a list of a user’s connection permissions


A user can export the connection role assignments for all connection that they have access to via the Get-
ConnectionRoleAssignment function in the Power Apps PowerShell cmdlets.

Add-PowerAppsAccount
Get-ConnectionRoleAssignment | ConvertTo-Json | Out-File -FilePath "ConnectionPermissions.txt"

Power Apps Admin PowerShell cmdlets

Add-PowerAppsAccount

#Retrieves all connection permissions for the specified user


Add-PowerAppsAccount
$userId = "7822bb68-7c24-49ce-90ce-1ec8deab99a7"
Get-AdminConnectionRoleAssignment -PrincipalObjectId $userId | ConvertTo-Json | Out-File -FilePath
"ConnectionPermissions.txt"

Export a user’s custom connectors


Custom connectors supplement the out of box connectors and allow for connectivity to other APIs, SaaS, and
custom-developed systems. You can transfer ownership of a custom connector or delete it.
Follow these steps to export a list of customer connectors:
1. Navigate to Power Automate.
2. Select the settings gear icon.
3. Select Custom Connectors .
4. Copy and paste the list of custom connectors into a text editor such as Microsoft Word.

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"

Power Apps Admin PowerShell cmdlets


Add-PowerAppsAccount

#Retrieves all custom connectors for user


Add-PowerAppsAccount
$userId = "7822bb68-7c24-49ce-90ce-1ec8deab99a7"
Get-AdminConnector -CreatedBy $userId | ConvertTo-Json | Out-File -FilePath "UserCustomConnectors.txt"

Export a user’s custom connector permissions


A user can export all custom connector permissions they have created via the Get-ConnectorRoleAssignment
function in the Power Apps PowerShell cmdlets.

Add-PowerAppsAccount
Get-ConnectorRoleAssignment | ConvertTo-Json | Out-File -FilePath "CustomConnectorPermissions.txt"

Power Apps Admin PowerShell cmdlets

Add-PowerAppsAccount

#Retrieves all connection permissions for the specified user


Add-PowerAppsAccount
$userId = "7822bb68-7c24-49ce-90ce-1ec8deab99a7"
Get-AdminConnectorRoleAssignment -PrincipalObjectId $userId | ConvertTo-Json | Out-File -FilePath
"CustomConnectorPermissions.txt"

Export approval history


Power Automate Approvals History captures the history of approvals that have been received or sent for a user.
Any user can view their approval history by:
1. Signing into Power Automate, selecting Approvals , and then selecting Histor y .

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 .

Export User Details


User details provide a linkage between a user and a specific tenant. An administrator can export this information
by calling the Get-AdminFlowUserDetails cmdlet and passing in the Object ID for the user.
Power Apps Admin PowerShell cmdlets

Add-PowerAppsAccount

Get-AdminFlowUserDetails -UserId 1b6759b9-bbea-43b6-9f3e-1af6206e0e80

Export Gateway Settings


Responding to Data Subject Export Requests for On-Premise Data Gateways can be found here.
Responding to GDPR Data Subject Delete Requests
for Power Automate
1/15/2022 • 9 minutes to read • Edit Online

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:

A UTO M AT IC A L LY DEL ET ED W H EN T H E USER IS DEL ET ED


REQ UIRES M A N UA L REVIEW A N D DEL ET IO N F RO M A Z URE A C T IVE DIREC TO RY

Environment* System-generated logs

Environment permissions** Run history

Flows Activity Feed

Flow permissions Gateway

User details Gateway permissions

Connections*

Connection permissions

Custom connector*

Custom connector permissions

*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

System-generated logs Office 365 Service Trust


Portal

Environment Power Automate admin Power Apps cmdlets


center

Environment permissions* Power Automate admin Power Apps cmdlets


center

Run history Deleted through 28 day


retention policy

Activity feed Deleted through 28 day


retention policy

User jobs

Flows Power Automate Maker


Portal**

Flow permissions Power Automate Maker


Portal

User details Power Apps cmdlets

Connections Power Automate Maker


Portal

Connection permissions Power Automate Maker


Portal

Custom connector Power Automate Maker


Portal

Custom connector Power Automate Maker


permissions Portal

Approval History Microsoft Power Apps


Maker Portal*

*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.

Manage Delete requests


The steps below describe how administrative functions exist to serve delete requests for GDPR. These steps
should be performed in the order outlined below.

IMPORTANT
To avoid data corruption, follow these steps in order.

List and re-assign flows


These steps copy existing flows for a departing user. If you assign new ownership to the copies, these flows can
continue to support existing business processes. Copying these flows is important to delete personal identifier
linkages to the departing user and new connections must be established for the flow to connect with other APIs
and SaaS applications.
1. Sign into the Power Platform admin center, and then select the environment that contains flows that the
deleted user owns.

2. Select Resources , > Flows , and then select the title for the flow that you want to reassign.

3. Select Manage sharing .

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 .

7. Configure connections as required, and then select Continue .


8. Provide a new name, and then select Save .

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.

Delete approval history from Power Automate


Approval data for Power Automate is stored within the current or previous version of Microsoft Dataverse.
Within an approval, personal information exists in the form of approval assignments and comments included in
an approval response. Administrators can access that data by following these steps:
1. Sign into PowerApps.
2. Select Data , and then select Tables .
3. Select the ellipsis (…) for the Flow Approval table, and then open the data in Microsoft Excel.
4. In Microsoft Excel, search, filter, and then delete approval data as required.
Please see Executing DSRs against Microsoft Dataverse Customer Data, for additional guidance on how to
respond to DSRs for users who use Microsoft Dataverse.

Delete connections created by a user


Connections are used in conjunction with connectors to establish connectivity with other APIs and SaaS systems.
Connections include references to the user who created them and as a result, can be deleted to remove any
references to the user.
Power Apps Maker PowerShell cmdlets
A user can delete all of their connections by using the Remove-Connection function from the Power Apps Maker
PowerShell cmdlets:
Add-PowerAppsAccount

#Retrieves all connections for the calling user and deletes them
Get-AdminPowerAppConnection | Remove-Connection

Power Apps Admin PowerShell cmdlets

Add-PowerAppsAccount

$deleteDsrUserId = "7822bb68-7c24-49ce-90ce-1ec8deab99a7"
#Retrieves all connections for the DSR user and deletes them
Get-AdminPowerAppConnection -CreatedBy $deleteDsrUserId | Remove-AdminConnection

Delete the user’s permissions to shared connections


Power Apps Maker PowerShell cmdlets
A user can delete all of their connection role assignments for shared connections Remove-
ConnectionRoleAssignment function in the Power Apps Maker PowerShell cmdlets:

Add-PowerAppsAccount

#Retrieves all connection role assignments for the calling users and deletes them
Get-ConnectionRoleAssignment | Remove-ConnectionRoleAssignment

Power Apps Admin PowerShell cmdlets

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.

Delete custom connectors created by the user


Custom Connectors supplement the existing out of box connectors and allow for connectivity to other APIs,
SaaS and custom-developed systems. Custom Connectors do include references to the user who created them
and as a result, can be deleted to remove any references to the user.
Power Apps Maker PowerShell cmdlets
A user can delete all of their custom connectors the Remove-Connector function in the Power Apps Maker
PowerShell cmdlets:
Add-PowerAppsAccount

#Retrieves all custom connectors for the calling user and deletes them
Get-Connector -FilterNonCustomConnectors | Remove-Connector

Power Apps Admin PowerShell cmdlets

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

Delete the user’s permissions to shared custom connectors


Power Apps Maker PowerShell cmdlets
A user can delete all of their connector role assignments for shared custom connector with the Remove-
ConnectorRoleAssignment function in the Power Apps Maker PowerShell cmdlets:

Add-PowerAppsAccount

#Retrieves all connector role assignments for the calling users and deletes them
Get-ConnectorRoleAssignment | Remove-ConnectorRoleAssignment

Power Apps Admin PowerShell cmdlets

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.

Delete or reassign all environments created by the user


As an admin you have two decisions to make when processing a DSR delete request for a user for each of the
environments that has been created by the user:
1. If you determine that the environment is not being used by anyone else in your organization then you can
choose to delete the environment
2. If you determine that the environment is still required, then you can choose to not delete the environment
and add yourself (or another user in your organization) as an Environment Admin.

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. -->

Delete the user’s permissions to all other environments


Users can be assigned permissions (such as Environment Admin, Environment Maker, etc.) in an environment,
which is stored in the Power Automate service as a “role assignment.”
With the introduction of Microsoft Dataverse, if a database is created within the environment, these “role
assignments” are stored as records within Microsoft Dataverse.
For more information on removing a user's permission in an environment, navigate to Using environments
within Power Automate.

Delete Gateway Settings


Responding to Data Subject Delete Requests for On-Premise Data Gateways can be found here.

Delete User Details


User details provide a linkage between a user and a specific tenant. Before running this command, ensure that
all flows for this user have been re-assigned and/or deleted. Once that has been completed, an administrator
can delete user details by calling the Remove-AdminFlowUserDetails cmdlet and passing in the Object ID for
the user.
Power Apps Admin PowerShell cmdlets

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.

Delete the user from Azure Active Directory


Once the above steps have been completed, the final step is to delete the user’s account for Azure Active
Directory by following the steps outlined in the Azure Data Subject Request GDPR documentation that can be
found on the Office 365 Service Trust Portal.

Delete the user from Unmanaged Tenant


In the event you are a member of an unmanaged tenant, you need perform an Account close action from the
Work and School Privacy portal.
To determine whether or not you are a user of a managed or unmanaged tenant, perform the following actions:
1. Open the following URL in a browser, making sure to replace your email address in the
URL:https://login.microsoftonline.com/common/userrealm/[email protected]?api-version=2.1.
2. If you are a member of an unmanaged tenant then you will see an "IsViral": true in the response.
{
"Login": "[email protected]",
"DomainName": "unmanagedcontoso.com",
"IsViral": true ,
}
3. Otherwise, you belong to a managed tenant.
Respond to GDPR Data Subject Rights (DSRs)
requests
1/15/2022 • 2 minutes to read • Edit Online

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.

Respond to DSRs for Power Automate customer data


A data subject's formal request to a controller to take an action on their personal data is called a Data Subject
Rights (DSR) request. GDPR defines personal data as any data that relates to an identified or identifiable
natural person . The GDPR gives people (known as data subjects) rights to manage the personal data that's
collected by an employer, agency, or organization (known as the data controller or the controller). These rights
include:
Obtaining copies of personal data.
Requesting corrections to personal data.
Restricting processing of personal data.
Deleting personal data.
Receiving personal data in an electronic format so that it can be moved to another controller.
Microsoft provides products, services, and tools to help controllers find and act on personal data when
responding to DSRs requests for data that lives in the cloud.
Here’s an overview of the processes outlined in this guide:
1. Discover : Use search and discovery tools to easily find customer data that may be the subject of a DSR
request. If you determine that the documents you collect meet your controller guidelines for taking
action, you can perform one or more of the DSR actions described in the following steps. Learn more in
the Power Automate DSR Discovery documentation for Microsoft Accounts. Alternatively, you may
determine that the request doesn’t meet your controller guidelines for responding to DSR requests.
2. Access : Retrieve personal data that resides in the Microsoft cloud and, if requested, make a copy of it so
that can be available to the data subject.
3. Rectify : Make changes or implement other requested actions on the personal data, where applicable.
4. Restrict : Restrict the processing of personal data, either by removing licenses for various online services
or turning off the desired services where possible. You can also remove data from the Microsoft cloud
and retain it on-premises or at another location.
5. Delete : Permanently remove personal data that resides in Microsoft's cloud. Learn more about deleting
personal data for Microsoft Accounts. Learn more about closing a Microsoft Account.
6. Expor t : Provide an electronic copy (in a machine-readable format) of personal data. Learn more about
exporting personal data for Microsoft Accounts.
Respond to GDPR Data Subject Discovery Requests
1/15/2022 • 2 minutes to read • Edit Online

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).

RESO URC E P URP O SE

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.

Flows The workflow logic for a flow.

Connections Used by connectors and allow connectivity to APIs, systems,


databases, and more. Learn more about connections.
Respond to GDPR Data Subject Export Requests for
Power Automate
1/15/2022 • 2 minutes to read • Edit Online

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.

Manage export requests


The right of data portability allows data subjects to request a copy of their personal data in an electronic format
(that’s a “structured, commonly used, machine readable, and interoperable format”) that may be transmitted to
another data controller.
Use the Microsoft privacy dashboard, or Power Automate to find or export personal data for a specific user.

P ERSO N A L DATA LO C AT IO N

Product and service activity Microsoft privacy dashboard

Flows Power Automate maker portal

Run history Power Automate maker portal

Activity Feed Power Automate maker portal

Connections Power Automate maker portal

Export product and service activity


1. Sign into the Microsoft privacy dashboard using your Microsoft Account (MSA).
2. Select Activity histor y .

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.

Export a cloud flow


An end user who has access to a cloud flow, can export the flow by following these steps:
1. Sign into Power Automate.
2. Select the My flows , and then select the flow to export.
3. Select … More , and then select Expor t .

4. Select Package (.zip) .


Your flow will now be available as a zipped package. For more information, see the blog post about how to
export and import a cloud flow.

Export run history


Run history includes a list of all runs for a cloud flow. This data includes the flow’s status, start time, duration,
and input/output data for triggers and actions.
An end user who has access to the flow can follow these steps to export this data:
1. Sign into Power Automate.
2. Select the My flows link, and then select the flow for which you want to export the run history.
3. In the RUN HISTORY pane, select See all .

4. Select Download CSV .

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.

Export a user's activity feed


In Power Automate, the activity feed shows a user’s history of activities, failures and notifications. Users can view
their activity feed by following these steps:
1. Sign into Power Automate, select the bell icon near the upper-right corner, and then select Show all
activity .
2. In the Activity screen, copy the results, and then paste them into a text 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 text editor such as Microsoft Word.
Respond to GDPR Data Subject Delete Requests
1/15/2022 • 2 minutes to read • Edit Online

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.

REQ UIRES T H E M SA USER TO REVIEW A N D DEL ET E A UTO M AT IC A L LY DEL ET ED

Product and service activity Run history

Flows Activity Feed

Connections

Power Automate offers the following experiences to help users find, review, or change personal data and
resources that aren't automatically deleted:

Manage Delete requests


The steps below describe how to self-serve delete requests for GDPR.
Delete Product and service activity
1. Sign into the Microsoft Privacy Dashboard with your MSA.
2. Select the Activity histor y link.

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:

RESO URC ES C O N TA IN IN G P ERSO N A L DATA

Product and service activity

Run history

Flows

Activity Feed

User details

Connections

Account Close requests


These steps describe how to self-serve Account Close requests for GDPR.
1. Sign into the Microsoft Account Close Portal using your Microsoft Account, and then select Next .

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.

About Power Automate US Government environments and plans


Power Automate US Government plans are monthly subscriptions and it can be licensed to an unlimited number
of users.
The Power Automate GCC environment is compliant with the Federal requirements for cloud services, including
FedRAMP High, and DoD DISA IL2. It is also compliant with the criminal justice systems (CJI data types)
requirements.
In addition to the features and capabilities of Power Automate, organizations that use Power Automate US
Government benefit from the following unique features:
Your organization's customer content is physically separated from customer content in commercial
offering of Power Automate.
Your organization's customer content is stored within the United States.
Access to your organization's customer content is restricted to screened Microsoft personnel.
Power Automate US Government complies with all certifications and accreditations that US Public Sector
customers require.
Beginning September 2019, eligible customers can choose to deploy Power Automate US Government to the
GCC High environment, which enables single sign-on and seamless integration with Microsoft Office 365 GCC
High deployments.
Microsoft has designed the platform and our operational procedures to meet the requirements aligning with the
DISA SRG IL4 compliance framework. We anticipate the US Department of Defense contractor customer base
and other Federal agencies currently leveraging Office 365 GCC High to use the Power Automate US
Government GCC High deployment option. This option enables and requires the customer 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, as documented and required by their
contracts with the US Department of Defense. A Provisional Authority to Operate has been granted by DISA.
Beginning April, 2021, eligible customers may now choose to deploy Power Automate US Government to the
"DoD" environment, which enables single sign-on and seamless integration with Microsoft 365 DoD
deployments. Microsoft has designed the platform and operational procedures in accordance with the DISA SRG
IL5 compliance framework. DISA has granted a Provisional Authority to Operate.
Customer eligibility
Power Automate US Government is available to (1) US federal, state, local, tribal, and territorial government
entities, and (2) other entities, which handle data that is subject to government regulations and requirements
and where use of Power Automate US Government is appropriate to meet these requirements, subject to
validation of eligibility. Microsoft's validation of eligibility includes confirmation of handling data subject to
International Traffic in Arms Regulations (ITAR), law enforcement data subject to the FBI's Criminal Justice
Information Services (CJIS) Policy, or other government-regulated or controlled data. Validation may require
sponsorship by a government entity with specific requirements for the handling of data.
Entities with questions about eligibility for Power Automate US Government should consult their account team.
Microsoft re-validates eligibility when it renews customer contracts for Power Automate US Government.

NOTE
Power Automate US Government DoD is only available to DoD entities.

Power Automate US Government plans


Access to Power Automate US Government plans is restricted to the offerings described in the following section;
each plan is offered as a monthly subscription and can be licensed to an unlimited number of users:
Power Automate per flow plan for Government
Power Automate per user plan for Government
In addition to the standalone plans, Microsoft 365 US Government and Dynamics 365 US Government
plans also include the Power Apps and Power Automate capabilities, allowing customers to extend and
customize Microsoft 365 and customer engagement apps (Dynamics 365 Sales, Dynamics 365 Customer
Service, Dynamics 365 Field Service, and Dynamics 365 Project Service Automation).
Additional information and details regarding the differences in functionality between these groups of licenses
are described in more detail here: Power Automate licensing information.
Power Automate US Government is available through the Volume Licensing and Cloud Solution Provider
purchasing channels. The Cloud Solution Provider program is not currently available for GCC High customers.

Differences between customer data and customer content


Customer data, as defined in the Online Service Terms, means all data, including all text, sound, video, or image
files, and software that are provided to Microsoft by, or on behalf of, customers through the use of an Online
Service.
Customer content refers to a specific subset of customer data that has been directly created by users, such as
content stored in databases through entries in the Dataverse entities (for example, contact information). Content
is generally considered confidential information, and in normal service operations, is not sent through the
Internet without encryption.
For more information on how Power Automate protects customer data, see the Microsoft Online Services Trust
Center.

Data segregation for Government Community Cloud


When provisioned as part of Power Automate US Government, the Power Automate service is offered in
accordance with the National Institute of Standards and Technology (NIST) Special Publication 800-145.
In addition to the logical separation of customer content at the application layer, the Power Automate
Government service provides your organization with a secondary layer of physical segregation for customer
content by using infrastructure that is separate from the infrastructure used for commercial Power Automate
customers. This includes using Azure services in Azure’s Government Cloud. To learn more, see Azure
Government.

Customer content located within the United States


Power Automate US Government runs in datacenters physically located in the United States and stores customer
content at rest in datacenters physically located only in the United States.

Restricted data access by administrators


Access to Power Automate US Government customer content by Microsoft administrators is restricted to
personnel who are US citizens. These personnel undergo background investigations in accordance with relevant
government standards.
Power Automate support and service engineering staff do not have standing access to customer content hosted
in Power Automate US Government. Any staff who requests temporary permission elevation, which would grant
access to customer content must first have passed the following background checks.

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 1 DESC RIP T IO N

U.S. citizenship Verification of U.S. citizenship

Employment history check Verification of seven (7) year employment history

Education verification Verification of highest degree attained

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

Fingerprinting check Fingerprint background check against FBI databases

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).

Certifications and accreditations


Power Automate US Government is designed to support the Federal Risk and Authorization Management
Program (FedRAMP) accreditation at a High Impact level. This program infers alignment to DoD DISA IL2.
FedRAMP artifacts are available for review by federal customers who are required to comply with FedRAMP.
Federal agencies can peruse these artifacts in support of their review to grant an Authority to Operate (ATO).

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.

Power Automate US Government and other Microsoft services


Power Automate US Government includes several features that allow users to connect to, and integrate with,
other Microsoft enterprise service offerings such as Office 365 US Government, Dynamics 365 US Government,
and Power Apps US Government.
Power Automate US Government runs within Microsoft datacenters in a manner consistent with a multi-tenant,
public cloud deployment model; however, client applications including, but not limited to the web-user client,
Power Automate mobile application (when available), and any third-party client application that connects to
Power Automate US Government, are not part of Power Automate US Government's accreditation boundary.
Government customers are responsible for managing them.
Power Automate US Government leverages the Office 365 customer administrator UI for customer
administration and billing.
Power Automate US Government maintains the actual resources, information flow, and data management, while
relying on Office 365 to provide the visual styles that are presented to the customer administrator through their
management console. For purposes of FedRAMP ATO inheritance, Power Automate US Government leverages
Azure (including Azure for Government and Azure DoD) ATOs for infrastructure and platform services,
respectively.
If you adopt the use of Active Directory Federation Services (AD FS) 2.0 and set up policies to help ensure your
users connect to the services through single sign-on, any customer content that is temporarily cached will be
located in the United States.

Power Automate US Government and third-party services


Power Automate US Government provides the ability to integrate third-party applications into the service
through Connectors. These third-party applications and services might involve storing, transmitting, and
processing your organization’s customer data on third-party systems that are outside of the Power Automate
US Government infrastructure and therefore are not covered by the Power Automate US Government
compliance and data protection commitments.

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.

Configure mobile clients


Here are the steps that you must take to sign in with the Power Automate mobile client. Currently, only the iOS
version of the mobile client supports connecting to GCC environments.
1. On the sign-in page, select the gear icon in the lower-right corner.
2. Select Region settings .
3. Select GCC: US Government GCC
4. Select OK.
5. On the sign-in page, select Sign in .
The mobile application will now use the US Government Cloud.

Power Automate US Government and Azure Services


The Power Automate US Government services are deployed to Microsoft Azure Government. Azure Active
Directory (Azure AD) is not part of the Power Automate US Government accreditation boundary, but takes a
reliance on a customer’s Azure AD tenant for customer tenant and identity functions, including authentication,
federated authentication, and licensing.
When a user of an organization employing ADFS attempts to access Power Automate US Government, the user
is redirected to a login page hosted on the organization’s ADFS server.
The user provides credentials to their organization's ADFS server. The organization's ADFS server attempts to
authenticate the credentials using the organization’s Active Directory infrastructure.
If authentication is successful, the organization’s ADFS server issues a SAML (Security Assertion Markup
Language) ticket that contains information about the user’s identity and group membership.
The customer’s ADFS server signs this ticket using one half of an asymmetric key pair and then it sends the
ticket to Azure AD via encrypted TLS. Azure AD validates the signature using the other half of the asymmetric
key pair and then grants access based on the ticket.
The user's identity and group membership information remain encrypted in Azure AD. In other words, only
limited user-identifiable information is stored in Azure AD.
You can find full details of the Azure AD security architecture and control implementation in the Azure SSP.
The Azure AD account management services are hosted on physical servers managed by the Microsoft Global
Foundation Services (GFS). Network access to these servers is controlled by GFS-managed network devices
using rules set by Azure. Users do not interact directly with Azure AD.

Power Automate US Government service URLs


You use a different set of URLs to access Power Automate US Government environments, as shown in the
following table. The table includes the commercial URLs too for contextual reference, in case they are more
readily familiar to you.

C O M M ERC IA L VERSIO N US GO VERN M EN T VERSIO N

https://flow.microsoft.com https://gov.flow.microsoft.us (GCC),


https://high.flow.microsoft.us (GCC High), and
https://flow.appsplatform.us (DoD)

https://admin.powerplatform.microsoft.com/ https://gcc.admin.powerplatform.microsoft.us/ (GCC),


https://high.admin.powerplatform.microsoft.us/ (GCC High),
and https://admin.appsplatform.us (DoD)

https://flow.microsoft.com/connectors https://gov.flow.microsoft.us/connectors (GCC),


https://high.flow.microsoft.us/connectors (GCC High),
https://flow.appsplatform.us/connectors/ (DoD)

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.

Connectivity between Power Automate US Government and Public


Azure Cloud services
Azure is distributed among multiple clouds. By default, tenants are allowed to open firewall rules to a cloud-
specific instance, but cross-cloud networking is different and requires opening specific firewall rules to
communicate between services. If you are a Power Automate customer and you have existing SQL instances in
azure public cloud, which you need to access, you must open specific firewall ports in SQL to the Azure
Government Cloud IP space for the following datacenters:
USGov Virginia
USGov Texas
US DoD East
US DoD Central
Refer to the Azure IP Ranges and Service Tags – US Government Cloud document, focusing attention on
AzureCloud.usgovtexas, and AzureCloud.usgovvirginia, and/or US DoD East, and US DoD Central as noted
previously in this article. Also note that these are the IP ranges required for your end-users to have access to the
service URLs.

On-premises Data Gateway configuration


Install an on-premises data gateway to transfer data quickly and securely between a canvas app that's built in
Power Automate and a data source that isn't in the cloud. Examples include on-premises SQL Server databases
or on-premises SharePoint sites.
If your organization (tenant) has configured and successfully connected the nn-premises data gateway for
PowerBI US Government, then the process your organization followed to enable that also enables on-premises
connectivity for Power Automate.
Formerly, US Government customers needed to contact support before configuring their first on-premises data
gateway, because support would need to give permission to the tenant to allow gateway use. This is no longer
necessary. If you encounter any issues configuring or using the on-premises data gateway, you may contact
support for assistance.

Power Automate US Government feature limitations


Some of the features available in the commercial version of Flow are not available in Flow US Government
customers. The Power Automate team is actively working on making these features available to US Government
customers and will update this article when these features become available.
AI Builder is not yet available in DoD tenants.
Approvals are available, subject to the following:
There is no actionable approval support. Approval emails will contain links to the Power Automate
approvals center for users to respond.
There is no markdown support for approval email.
Approvals are not available in DoD tenants.
Submitting Templates
Connectors – The most popular connectors in use in our commercial service (based on usage telemetry)
have been published; if there is a connector available in the commercial offering that you do not see
deployed, contact support and we will review your request.

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.

More information about Microsoft Power Platform regions


Overview of Power Platform regions
Azure geographies

Region mappings for Power Automate and gateways


The region where the gateway is installed must map to your Power Automate region. Cross geographic
boundaries aren't supported.
Here's the mapping information:

P O W ER P L AT F O RM REGIO N GAT EWAY REGIO N

Asia East Asia, Southeast Asia

Australia Australia East, Australia Southeast

Canada Canada Central, Canada East

Europe North Europe, West Europe

France France Central, France South

India Central India, South India, West India

Japan Japan East, Japan West

South America Brazil South

Switzerland Switzerland North

United Kingdom UK South, UK West

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

Frequently asked questions


What region should I use?
It's a good idea to create your flow in an environment that's in the region closest to your customers. When the
datacenters that host your environment are closer to the people accessing the information, you're likely to see
better performance.
How can I find out the region where my flow is deployed?
Administrators can identify the region by signing in to the Power Platform admin center. The Environments tab
lists all existing environments and their regions.
Is Power Automate available in national clouds?
Yes. Learn more.
What outbound IP addresses are used in each region?
See Limits and configuration.
Limits for automated, scheduled, and instant flows
1/15/2022 • 12 minutes to read • Edit Online

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

High - Power Automate per flow plan

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.

Flow definition limits


Here are the limits for a single flow definition:
NAME L IM IT N OT ES

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.

Switch scope cases limit 25

Variables per workflow 250

Name for action or trigger 80 characters

Characters per expression 8,192

Length of description 256 characters

Maximum size for 16,000 characters


trackedProperties

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.

Duration and retention limits


Duration limits
Duration limits for a single flow run:

NAME L IM IT N OT ES

Run duration 30 days Run duration is calculated by using a


run's start time. Includes flows with
pending steps like approvals. After 30
days, any pending steps time-out.

Run retention in storage 30 days Run retention is calculated by using a


run's start time.

Minimum recurrence interval 60 seconds

Maximum recurrence interval 500 days

Minimum postpone interval 5 seconds for Low, 1 second for all


others

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

Flows with errors 14 days A cloud flow that has a trigger or


actions which fail continuously will be
turned off. Fix your trigger or actions
and turn on the flow.

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.

Consistently throttled flows 14 days A cloud flow that is consistently


throttled for 14 days will be turned off.
The flow creator will get an email when
the flow starts throttling and when the
flow is turned off. For enterprise
scenarios, we recommend you buy a
standalone Power Automate license
listed in Pricing article to get higher
action limits. You can turn your cloud
flows back on anytime.

Concurrency, looping, and debatching limits


Here are the limits for a single flow run:

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.

Until iterations - Default: 60


- Maximum: 5,000

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.

Action request limits


There are limits to the number of actions a cloud flow can run. These runs are counted for all types of actions,
including connector actions, HTTP actions, and built-in actions from initializing variables to a simple compose
action. Both succeeded and failed actions count towards these limits. Additionally, retries and additional requests
from pagination count as action runs. You can see the number of actions your flow has run by selecting
Analytics from the flow details page and looking at the Actions tab.
NAME T RA N SIT IO N P ERIO D L IM IT N OT ES

Actions per 5 minutes 100,000 Distribute the workload across more


than one flow as necessary.

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.

Runtime endpoint request limits


The runtime endpoint is the direct access URL for a given flow. It starts with something like:
https://prod-00.westus.logic.azure.com:443/ .

NAME L IM IT N OT ES

Concurrent inbound calls ~1,000 You can reduce the number of


concurrent requests or reduce the
duration as necessary.

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.

Content throughput limits


The content throughput limits refer to the amount of data that is read from or written to the run history of the
cloud flow.

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

Outbound synchronous request 120 seconds Examples of outbound requests


(2 minutes) include calls made by HTTP triggers.
Tip : For longer running operations,
use an asynchronous polling pattern
or an until loop. To work around
timeout limits when you call another
flow that has a callable endpoint, you
can use the built-in action instead,
which you can find in the connector
picker under Built-in .

Outbound asynchronous request Configurable up to 30 days

Inbound request 120 seconds Examples of inbound requests include


(2 minutes) calls received by request triggers and
webhook triggers.
Note : For the original caller to get the
response, all steps in the response
must finish within the limit unless you
call another flow as a child flow.
NOTE
If you test a cloud flow that runs for longer than 10 minutes, you may get a timeout message in Power Automate, even
though the flow continues to run in the background. If this happens, reopen the view to receive the current status.

Message size
NAME L IM IT N OT ES

Message size 100 MB To work around this limit, consider


allowing chunking under the action
content transfer settings. However,
some connectors and APIs might not
support chunking or even the default
limit.

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

Expression evaluation limit 131,072 characters The @concat() , @base64() ,


@string() expressions can't be
longer than this limit.

Request URL character limit 16,384 characters

Retry policy
Default retry policy

P ERF O RM A N C E P RO F IL E DESC RIP T IO N

Low This policy sends up to two retries at exponentially


increasing intervals, which scale by 5 minutes up to an
interval of approximately 10 minutes for the last retry.

Medium, High This policy sends up to eight retries at exponentially


increasing intervals, which scale by 7 seconds up to an
interval of approximately 15 minutes for the last retry.

Retry setting limits


To change the default settings, use the retry policy parameter. Here are the limits for the retry settings.

NAME L IM IT

Retry attempts 90

Retry maximum delay 1 day

Retry minimum delay 5 seconds

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.

Custom connector limits


Here are the limits for custom connectors that you can create from web APIs.

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.

Compose HTTP requests


To get started creating requests, you'll need to first construct the URL. The format for the base URL of the Power
Automate Web API is: https://{Organization ID}.{Regional Subdomain}.dynamics.com/api/data/v9.1/ . The two
parameters are:
The Organization ID is a unique name for the environment that stores your flows.
The Regional Subdomain depends on the location of your environment.
To get these two parameters.
1. Go to the Power Platform admin center.
2. Select the environment you use to build your flows.

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:

P RO P ERT Y N A M E DESC RIP T IO N

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.

workflowidunique The unique identifier for this installation of the flow.

workflowid The unique identifier for a cloud flow across all imports.

createdon The date when the flow was created.

_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

modifiedon The last time the flow was updated.

ismanaged Indicates if the flow was installed via a managed solution.

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.

type Indicates if the flow is a running flow, or a template that can


be used to create additional flows. 1 - flow, 2 - activation or
3 - template.

description The user-provided description of the flow.

clientdata A string-encoded JSON of an object that contains the


connectionReferences and the definition of the flow.

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:

GET https://org00000000.crm0.dynamics.com/api/data/v9.1/workflows?$filter=category eq 5 and statecode eq 1


Accept: application/json
Authorization: Bearer ey...

Create a cloud flow


Call POST on the workflows collection to create a cloud flow. The required properties for automated, instant,
and scheduled flows are: category, name, type, primaryentity, and clientdata. Use none for the primaryentity for
these types of flows.
You can also provide a description and statecode.
POST https://org00000000.crm0.dynamics.com/api/data/v9.1/workflows
Accept: application/json
Authorization: Bearer ey...
Content-type: application/json
{
"category": 5,
"statecode": 0,
"name": "Sample flow name",
"type": 1,
"description": "This flow reads some data from Dataverse.",
"primaryentity":"none",
"clientdata": "{\"properties\":{\"connectionReferences\":{\"shared_commondataservice\":
{\"connectionName\":\"shared-commondataser-00000000-0000-0000-0000-
000000000004\",\"source\":\"Invoker\",\"id\":\"/providers/Microsoft.Power
Apps/apis/shared_commondataservice\"}},\"definition\":{\"$schema\":
\"https:\/\/fanyv88.com:443\/https\/schema.management.azure.com\/providers\/Microsoft.Logic\/schemas\/2016-06-
01\/workflowdefinition.json#\",\"contentVersion\": \"1.0.0.0\",\"parameters\": {\"$connections\":
{\"defaultValue\": {},\"type\": \"Object\"},\"$authentication\": {\"defaultValue\": {},\"type\":
\"SecureObject\"}},\"triggers\": {\"Recurrence\": {\"recurrence\": {\"frequency\": \"Minute\",\"interval\":
1},\"type\": \"Recurrence\"}},\"actions\": {\"List_records\": {\"runAfter\": {},\"metadata\":
{\"flowSystemMetadata\": {\"swaggerOperationId\": \"GetItems_V2\"}},\"type\": \"ApiConnection\",\"inputs\":
{\"host\": {\"api\": {\"runtimeUrl\": \"https:\/\/fanyv88.com:443\/https\/firstrelease-001.azure-
apim.net\/apim\/commondataservice\"},\"connection\": {\"name\": \"@parameters('$connections')
['shared_commondataservice']['connectionId']\"}},\"method\": \"get\",\"path\":
\"\/v2\/datasets\/@{encodeURIComponent(encodeURIComponent('default.cds'))}\/tables\/@{encodeURIComponent(enc
odeURIComponent('accounts'))}\/items\",\"queries\": {\"$top\": 1},\"authentication\":
\"@parameters('$authentication')\"}}},\"outputs\": {}}},\"schemaVersion\":\"1.0.0.0\"}"
}

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:

P RO P ERT Y N A M E DESC RIP T IO N

connectionName Identifies the connection. You can see the connectionName


by going to the Connections page and then copying it
from the URL of the connection.

source Either Embedded or Invoker . Invoker is only valid for


instant flows (those where a user selects a button to run the
flow), and indicates that the end user will provide the
connection. In this case the connectionName is only used at
design time. If the connection is Embedded , that means the
connectionName you specify is always used.

id The identifier of the connector. The id always starts with


/providers/Microsoft.PowerApps/apis/ and then has the
connector name, which you can copy from the URL of the
connection or by selecting the connector from the
Connectors page.

Once you execute the POST request, you'll receive the OData-EntityId header, which will contain the
workflowid for your new flow.

Update a cloud flow


You can call PATCH on the workflow to update, turn on, or turn off a cloud flow. Use the workflowid property to
make these calls. For example, you can update the description and the owner of the flow with the following 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
{
"description" : "This flow will ensure consistency across systems.",
"[email protected]": "systemusers(00000000-0000-0000-0000-000000000005)"
}

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 a cloud flow


Delete a cloud flow with a simple DELETE call:

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 all users with whom a cloud flow is shared


Listing the users with access uses a function in Dataverse. This function takes a single parameter of Target :

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"
}
}
]
}

Share or unshare a cloud flow


You can share a cloud flow using the GrantAccess action.

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:

NAME DESC RIP T IO N

None No access.

ReadAccess The right to read the flow.

WriteAccess The right to update the flow.

DeleteAccess The right to delete the flow.

ShareAccess The right to share the flow.

AssignAccess The right to change the owner of the flow.

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"
}
}

RevokeAccess removes all permissions granted in the AccessMask .

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
}

ExportSolution returns a base 64-encoded string in the ExportSoutionFile property.

{
"@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.

P RO P ERT Y N A M E DESC RIP T IO N

OverwriteUnmanagedCustomizations If there are existing instances of these flows in Dataverse,


this flag needs to be set to true to import them.
Otherwise they will not be overwritten.

PublishWorkflows Indicates if classic Dataverse workflows will be activated on


import. This setting doesn't apply to other types of flows.
P RO P ERT Y N A M E DESC RIP T IO N

ImportJobId Provides a new, unique GUID to track the import job.

CustomizationFile A base 64-encoded zip file that contains the 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

The following terms are commonly used in Power Automate.

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

Register and watch our recorded sessions on-demand.


Automate Your Software for Digital Transformation
by Rob Koplowitz and Charles Lamanna
Register and watch now
Automate Workflows with Microsoft Power Automate
by Jon Levesque
Register and watch now
Explore the Total Economic Impact of Microsoft Power Automate
by Stephanie Whitaker and Jonathan Lipsitz
Register and watch now
Real-World Examples of Microsoft Power Automate in Action
by Jon Levesque and Matthew Weston
Register and watch now
Coca-Cola’s Journey with Robotic Process Automation in Microsoft Power Automate
by Lokeshwar Reddy Vangala and Pranav Rastogi
Register and watch now
Automate Time-Consuming Tasks with Robotic Process Automation
by Stephanie Whitaker, Nicolas Pouhaer, and Yiannis Mavridis
Register and watch now
Improve workflow efficiency with Process Advisor in Power Automate
by Mrigankka Fotedar and Glendyll Fabe
Register and watch now
Automation 101 with Power Automate
by Amina Bouabdallah, Priya Kodukula, and Jonathan Kendall
Register and watch now
Automate Document Processing with AI Builder
by Gwenael Bego and Joe Fernandez
Register and watch now
T-Mobile Developer Demos RPA with Power Automate
by Brian Hodel and Pranav Rastogi
Register and watch now
Mechanics video with Xerox - migrating and growing business with Power Automate
by Debraj Ghosh, Stefan Buffner, and Shivani Agarwal
Register and watch now
Automate Mundane Tasks with Robotic Process Automation on Windows 11
by John Anastasopoulos and Stephanie Whitaker
Register and watch now
See also
More Power Automate webinars
Power Apps webinars

You might also like