From 2019fd7e28503907d4812fb0278bda0d01ca0b36 Mon Sep 17 00:00:00 2001 From: QuentinSele <48315710+QuentinSele@users.noreply.github.com> Date: Mon, 13 Jan 2025 17:06:51 +0100 Subject: [PATCH 01/24] Update automation-center-overview.md --- articles/automation-center-overview.md | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/articles/automation-center-overview.md b/articles/automation-center-overview.md index d237b13f1..5f390a3e3 100644 --- a/articles/automation-center-overview.md +++ b/articles/automation-center-overview.md @@ -21,11 +21,10 @@ search.audienceType: The automation center provides comprehensive monitoring and troubleshooting experiences for your automation processes across Power Automate, catering to various personas involved in automation. Whether you're a maker, an operator, a Center of Excellence (CoE) team member, or a business analyst, the automation center serves as a centralized hub to monitor and manage automation activity within your environment. With its user friendly interface and dashboard, the automation center enables you to gain a holistic view of all automation related data, including recommendations, execution logs, performance metrics, and an integrated copilot. -:::image type="content" source="media/automation-center/automation-center-overview.png" alt-text="Screenshot of a copilot experience as part of desktop flow activity page." lightbox="media/automation-center/automation-center-overview.png"::: ## Data and visualization strategy -The information displayed on the [**Overview**](#overview-tab) and [**Runs (Preview)**](#runs-tab-preview) pages is based on cloud and desktop flow run data that is stored in Microsoft Dataverse. These pages are designed to provide you with a top-level view of your flow run activities, including child cloud or desktop flow runs associated with a particular top-level flow. This approach enables you to monitor the entire automation from start to end. It allows you to determine whether the overall automation succeeded or failed, providing data on the total of the runs, among many other metrics. +The information displayed on the [**Overview**](#overview-tab) and [**Runs**](#runs-tab) pages is based on cloud and desktop flow run data that is stored in Microsoft Dataverse. These pages are designed to provide you with a top-level view of your flow run activities, including child cloud or desktop flow runs associated with a particular top-level flow. This approach enables you to monitor the entire automation from start to end. It allows you to determine whether the overall automation succeeded or failed, providing data on the total of the runs, among many other metrics. > [!NOTE] > @@ -34,7 +33,7 @@ The information displayed on the [**Overview**](#overview-tab) and [**Runs (Prev > - Recommendations are a premium feature, which require a [Managed Environment](/power-platform/admin/managed-environment-enable). > - When you navigate between tabs, the tab keeps the active filtering selection. Select **Clear filters** to reset the applied filters. > - Desktop flow related activities like desktop flow runs and work queues etc. have always been available in Dataverse, however cloud flow run history has only recently been introduced in Dataverse. [Learn more](dataverse/cloud-flow-run-metadata.md). -> - Cloud flow run history shown on the overview and runs tab (preview) might take up to an hour to be available in Dataverse and the automation center. +> - Cloud flow run history shown on the overview and runs tab might take up to an hour to be available in Dataverse and the automation center. > - By default, visualizations are based on top-level cloud flow runs only. By using filters, you can also see visualizations for child flows. ## Required permissions @@ -61,14 +60,12 @@ Here are the main tables used in the Automation Center: This tab provides an end-to-end automation health view within the environment and is based on top-level flow reporting. The [Recommendations](#recommendations) section of this tab provides actionable insights to your automation estate. You can prioritize and address the most important issues and recommendations, based on their potential impact. -:::image type="content" source="media/automation-center/automation-center-overview-tab.png" alt-text="Screenshot of the overview page in automation center." lightbox="media/automation-center/automation-center-overviewGA.png"::: | Visual | Description | | --- | --- | | **Recommendations** | List of automation health, compliance, best practice insights, and actionable recommendations. | -### Activity (preview) - +### Activity | Visual | Description | | --- | --- | | **Top-level flows** | Number of top-level flows that had one or more runs based on selected filters. Gives an overall automation health indication and helps identify which top-level runs are failing the most. | @@ -82,7 +79,7 @@ This tab provides an end-to-end automation health view within the environment an The recommendations section offers both proactive and reactive insights, along with suggestions concerning various elements of your automation landscape. Suggestions might include addressing sudden automation failures, work queues at risk of not meeting their service level agreement (SLA) targets, and unused machines or machine groups in the environment. These recommendations can help you identify areas for improvement and take appropriate action based on their effect. For more information, see [automation center recommendations](automation-center-recommendations.md). -## Copilot (preview) +## Copilot Copilot is designed to assist with the analysis of automation activity, work queue performance, and to provide answers to common questions about Power Automate capabilities (generative answers). For example, users can ask about the number of flows that ran yesterday, which queue items are put on hold, or how to analyze activity with Copilot. In response, Copilot generates outputs that provide insights and answers to the questions asked. For more information, see [Use Copilot to analyze automation activity and ask product questions](automation-center-copilot.md). @@ -90,10 +87,9 @@ Copilot is designed to assist with the analysis of automation activity, work que > > - This capability is powered by [Azure OpenAI Service](/azure/cognitive-services/openai/overview). > - Copilot is a new technology that is still being developed. It is optimized for use with English language and has limited support with other languages. As such, parts of it might appear in English rather than your preferred language. -> - During initial preview, you must have an environment in the United States region to use this feature. If you don’t have access to an environment that's based in the United States, you can ask your administrator to [create a new environment in Power Platform admin center and select United States](/power-platform/admin/create-environment#create-an-environment-in-the-power-platform-admin-center) as its region. -> - Read the [responsible AI FAQs for Copilot in automation center (preview)](faqs-copilot-automation-center.md) to learn more about this new copilot experience. +> - Read the [responsible AI FAQs for Copilot in automation center](faqs-copilot-automation-center.md) to learn more about this new copilot experience. -## Runs tab (preview) +## Runs tab This tab presents a consolidated view of cloud and desktop flow run data displayed in a hierarchical list view. The data is organized based on top-level flows. If a cloud flow has one or more child flows (supporting both cloud and desktop children). This view is useful in scenarios where individual flow session runs succeeded, but other dependent runs failed, ultimately resulting in the top-level flow's failure. By displaying these runs in connection to their parent, we're enhancing automation monitoring and efficient root cause analysis of exceptions. @@ -126,14 +122,14 @@ The following are current limitations of the automation center and its underlyin - Cloud flow-based filtering only lists cloud flows that exist within a solution in the current environment. - Only runs for solution-based cloud flows are available in the automation center. -- During initial preview, visibility of flows and their run history in automation center requires you to be the owner (coownership isn't sufficient) of the flows or to have environment wide access to the relevant data in the environment. The main Dataverse tables that power the data shown in the automation center are: +- Visibility of flows and their run history in automation center requires you to be the owner (coownership isn't sufficient) of the flows or to have environment wide access to the relevant data in the environment. The main Dataverse tables that power the data shown in the automation center are: - `workflow`: Solution-aware cloud flow and desktop flows - `flowrun`: [Cloud flow run history](/power-automate/dataverse/cloud-flow-run-metadata) - `flowsession`: Desktop flow run history - `flowevent`: Recommendations and notifications - `workqueue`: Work queues - `workqueueitem`: Work queue items -- Child cloud and desktop flow runs are shown under **Runs (Preview)**. +- Child cloud and desktop flow runs are shown under **Runs**. - Top-level desktop flow runs aren't supported yet (for local attended or API-based scenarios) - Co-owned or shared flows aren't supported yet (users don't see runs of flows that are shared with them). - Users with broader access to run data (such as admins or members of the CoE team) might see *Unknown flow* as flow names. This name might appear if the corresponding cloud flow isn't explicitly shared with the user or the flow was deleted in the meantime. @@ -141,8 +137,7 @@ The following are current limitations of the automation center and its underlyin - If there's a visual showing "*Too many results*," try to adjust your filter to limit the amount of data that is being returned. - If you see Dataverse or cloud flow run-specific notifications, check the underlying [cloud flow run history documentation](dataverse/cloud-flow-run-metadata.md) to learn more. - Older cloud flow run history might be missing for the selected date range filter. Missing run history might be due to your current environment's [time to live](/power-automate/dataverse/cloud-flow-run-metadata#storage-use-for-flowrun-records) (TTL) configuration, which is set to retain cloud flow runs for *n-days* only. -- Cloud flow run history in Dataverse is a preview feature as well, and comes with its own set of [known limitations](dataverse/cloud-flow-run-metadata.md#known-limitations) that might affect the data shown in the automation center. - + ## Related information - [Recommendations within automation center](automation-center-recommendations.md) From f17036425d0c4724adcf1f87addd0a2977e9aabf Mon Sep 17 00:00:00 2001 From: QuentinSele <48315710+QuentinSele@users.noreply.github.com> Date: Mon, 13 Jan 2025 17:10:14 +0100 Subject: [PATCH 02/24] Update automation-center-copilot.md --- articles/automation-center-copilot.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/articles/automation-center-copilot.md b/articles/automation-center-copilot.md index 467540558..3405634ba 100644 --- a/articles/automation-center-copilot.md +++ b/articles/automation-center-copilot.md @@ -1,5 +1,5 @@ --- -title: Use Copilot in automation center (preview) +title: Use Copilot in automation center description: Use Copilot to analyze flow runs, work queues, and ask general product questions in natural language. ms.topic: conceptual ms.date: 05/20/2024 @@ -15,8 +15,7 @@ search.audienceType: - flowmaker - enduser --- -# Use Copilot to analyze automation activity and ask product questions (preview) - +# Use Copilot to analyze automation activity and ask product questions [!INCLUDE [cc-beta-prerelease-disclaimer](includes/cc-beta-prerelease-disclaimer.md)] Understanding automation activity and performance are key to achieving operational excellence and reliability goals, regardless of the size of the automation estate, team, or role within the organization. To reach those goals requires advanced and dynamic monitoring capabilities that provide you with valuable insights that highlight areas of success and identify potential bottlenecks, trends and areas for improvement. Having more detailed insights allows you to make informed decisions that optimize your automation processes, leading to increased efficiency and effectiveness. @@ -25,17 +24,14 @@ Understanding automation activity and performance are key to achieving operation > [!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 capability is powered by [Azure OpenAI Service](/azure/cognitive-services/openai/overview). > - Copilot is a new technology that is still being developed. It is optimized for use with English language and has limited support with other languages. As such, parts of it might appear in English rather than your preferred language. -> - Read the [responsible AI FAQs for Copilot in automation center (preview)](faqs-copilot-automation-center.md) to learn more about this new Copilot experience. +> - Read the [responsible AI FAQs for Copilot in automation center](faqs-copilot-automation-center.md) to learn more about this new Copilot experience. > - More FAQs: [Responsible AI FAQs for Power Automate](responsible-ai-overview.md), [FAQ for Copilot data security and privacy in Microsoft Power Platform](/power-platform/faqs-copilot-data-security-privacy) ## Prerequisites - A work or school account with access to a Power Automate [environment](/power-platform/admin/create-environment#create-an-environment-in-the-power-platform-admin-center) located in the United States. -- During initial preview, you must have an environment in the United States region to use this feature. If you don’t have access to an environment based in the United States, you can ask your administrator to [create a new environment in Power Platform admin center and select United States](/power-platform/admin/create-environment#create-an-environment-in-the-power-platform-admin-center) as its region. - Check [known limitations](#known-issues-and-limitations) for more information. ## How does it work? @@ -53,7 +49,7 @@ The first three skills in the above table translate natural language queries (qu ### Copilot skill selector -When Copilot opens (per session) the first time, the "cloud flow" skill is preselected. You can modify the skill by choosing the dropdown next to the phrase **Questions about** and selecting your preferred skill. During the initial preview phase, the conversation history is reset each time you change the skill. +When Copilot opens (per session) the first time, the "cloud flow" skill is preselected. You can modify the skill by choosing the dropdown next to the phrase **Questions about** and selecting your preferred skill. The conversation history is reset each time you change the skill. :::image type="content" source="media/automation-center/copilot-skill-chooser.png" alt-text="Screenshot of an experience in Copilot where users can select from a list of skills." lightbox="media/automation-center/copilot-skill-chooser.png"::: @@ -283,8 +279,8 @@ The following list contains known limitations of Copilot in automation center. ## Related information - [Get started with Copilot in cloud flows](get-started-with-copilot.md) -- [FAQs for Copilot in automation center (preview)](faqs-copilot-automation-center.md) -- [FAQ for Copilot in desktop flow activity (preview)](faqs-copilot-automation-activity.md) +- [FAQs for Copilot in automation center](faqs-copilot-automation-center.md) +- [FAQ for Copilot in desktop flow activity](faqs-copilot-automation-activity.md) - [FAQ for Copilot in cloud flows](faqs-copilot.md) - [FAQ for Copilot in Power Automate Process Mining](faqs-copilot-in-process-mining.md) - [FAQ for Copilot data security and privacy in Microsoft Power Platform](/power-platform/faqs-copilot-data-security-privacy) From c210e1d40c6592592c2eb48795caebd6845ce773 Mon Sep 17 00:00:00 2001 From: QuentinSele <48315710+QuentinSele@users.noreply.github.com> Date: Mon, 13 Jan 2025 17:11:06 +0100 Subject: [PATCH 03/24] Update faqs-copilot-automation-activity.md --- articles/faqs-copilot-automation-activity.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/articles/faqs-copilot-automation-activity.md b/articles/faqs-copilot-automation-activity.md index d8b3d3aa9..7bfe3b73a 100644 --- a/articles/faqs-copilot-automation-activity.md +++ b/articles/faqs-copilot-automation-activity.md @@ -1,5 +1,5 @@ --- -title: FAQ for Copilot in desktop flow activity (preview) +title: FAQ for Copilot in desktop flow activity description: This FAQ discusses Copilot used in desktop flow activity and the key considerations for making use of this technology responsibly. ms.date: 09/10/2024 ms.custom: @@ -13,8 +13,7 @@ contributors: ms.collection: bap-ai-copilot --- -# FAQ for Copilot in desktop flow activity (preview) - +# FAQ for Copilot in desktop flow activity Copilot in desktop flow activity enables administrators, CoE teams, business users, and makers to easily retrieve information about past flow runs by asking questions in natural language. For example, users can ask about the number of flows that ran yesterday, which machine ran the most flows, or how many flows are currently queued. In response, Copilot generates outputs that provide insights and answers to the questions asked. ## What can Copilot in desktop flow activity do? @@ -39,7 +38,7 @@ Effective and responsible use of Copilot in desktop flow activity can be achieve ## Related information -- [Use Copilot to analyze desktop flow activity (preview)](./desktop-flows/use-copilot-to-analyze-desktopflow-activity.md) +- [Use Copilot to analyze desktop flow activity](./desktop-flows/use-copilot-to-analyze-desktopflow-activity.md) - [Get started with Copilot in cloud flows (preview)](get-started-with-copilot.md) - [FAQ for Copilot in cloud flows](faqs-copilot.md) - [FAQ for Copilot in Power Automate Process Mining](faqs-copilot-in-process-mining.md) From bf26bba19290a58f565d009de2abdc1c142d2c6c Mon Sep 17 00:00:00 2001 From: QuentinSele <48315710+QuentinSele@users.noreply.github.com> Date: Mon, 13 Jan 2025 17:11:56 +0100 Subject: [PATCH 04/24] Update faqs-copilot-automation-center.md --- articles/faqs-copilot-automation-center.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/articles/faqs-copilot-automation-center.md b/articles/faqs-copilot-automation-center.md index de2d5c012..7c02f3ae7 100644 --- a/articles/faqs-copilot-automation-center.md +++ b/articles/faqs-copilot-automation-center.md @@ -1,6 +1,6 @@ --- -title: FAQ for Copilot in automation center (preview) -description: This FAQ discusses Copilot in automation center (preview) and the key considerations for making use of this technology responsibly. +title: FAQ for Copilot in automation center +description: This FAQ discusses Copilot in automation center and the key considerations for making use of this technology responsibly. ms.date: 09/10/2024 ms.custom: - responsible-ai-faqs @@ -13,7 +13,7 @@ contributors: ms.collection: bap-ai-copilot --- -# FAQ for Copilot in automation center (preview) +# FAQ for Copilot in automation center Copilot in automation center enables makers, business analysts, and members of the CoE team to easily retrieve information about past flow runs, work queue performance, and general Power Automate product features (referred to as generative answers) by asking questions in natural language. For example, users can ask about the number of flows that ran yesterday, which machine ran the most flows, or how many flows are currently queued. In response, Copilot generates outputs that provide insights and answers to the questions asked. @@ -60,14 +60,13 @@ One of the limitations of Copilot in automation center is that it currently only ## What are the limitations of Copilot in automation center's generative answers? How can users minimize the impact of Copilot's generative answers's limitations when using the system? -- This feature is currently in preview for environments located in the United States and only supports English. - The generative answers capability can only answer to product related features. It can't answer general questions or anything unrelated to the product. - There's a limit of 200 characters to describe the question. ## Related information -- [Use Copilot in automation center (preview)](automation-center-copilot.md) -- [Use Copilot to analyze desktop flow activity (preview)](./desktop-flows/use-copilot-to-analyze-desktopflow-activity.md) +- [Use Copilot in automation center](automation-center-copilot.md) +- [Use Copilot to analyze desktop flow activity](./desktop-flows/use-copilot-to-analyze-desktopflow-activity.md) - [Get started with Copilot in cloud flows (preview)](get-started-with-copilot.md) - [FAQ for Copilot in cloud flows](faqs-copilot.md) - [FAQ for Copilot in Power Automate Process Mining](faqs-copilot-in-process-mining.md) From 1f922f9202e7980fdb4806ffa8b1bc33e731e6be Mon Sep 17 00:00:00 2001 From: QuentinSele <48315710+QuentinSele@users.noreply.github.com> Date: Mon, 13 Jan 2025 17:13:10 +0100 Subject: [PATCH 05/24] Update use-copilot-to-analyze-desktopflow-activity.md --- .../use-copilot-to-analyze-desktopflow-activity.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/articles/desktop-flows/use-copilot-to-analyze-desktopflow-activity.md b/articles/desktop-flows/use-copilot-to-analyze-desktopflow-activity.md index 7fc1acb4a..6fde5650b 100644 --- a/articles/desktop-flows/use-copilot-to-analyze-desktopflow-activity.md +++ b/articles/desktop-flows/use-copilot-to-analyze-desktopflow-activity.md @@ -1,5 +1,5 @@ --- -title: Use copilot to analyze desktop flow activity (preview) +title: Use copilot to analyze desktop flow activity description: Use copilot to analyze flow runs, errors, machines and more by asking questions in natural language. ms.topic: conceptual ms.date: 08/29/2024 @@ -14,7 +14,7 @@ search.audienceType: - flowmaker - enduser --- -# Use copilot to analyze desktop flow activity (preview) +# Use copilot to analyze desktop flow activity [This article is prerelease documentation and is subject to change.] @@ -22,7 +22,6 @@ Understanding automation performance is key to achieving operational excellence :::image type="content" source="media/analyze-automation-activity-copilot/copilot-overview.png" alt-text="Screenshot of a copilot experience as part of desktop flow activity page." lightbox="media/analyze-automation-activity-copilot/copilot-overview.png"::: -[!INCLUDE[cc_preview_features_definition](../includes/cc-preview-features-definition.md)] The latest advancements in AI provide us with unprecedented opportunities to explore new automation health monitoring use-cases that could include anything from simple data exploration to anomaly detection, smart recommendations, and even self-healing bots. @@ -32,13 +31,12 @@ With copilot now able to analyze desktop flow activity we're taking the first st > > - This capability is powered by [Azure OpenAI Service](/azure/cognitive-services/openai/overview). > - Copilot is a new technology that is still being developed. It is optimized for use with English language and has limited support with other languages. As such, parts of it might appear in English rather than your preferred language. -> - Read the [responsible AI FAQs for copilot in desktop flow activity (preview)](../faqs-copilot-automation-activity.md) to learn more about this new copilot experience. +> - Read the [responsible AI FAQs for copilot in desktop flow activity](../faqs-copilot-automation-activity.md) to learn more about this new copilot experience. > - More FAQs: [Responsible AI FAQs for Power Automate](../responsible-ai-overview.md),[FAQ for copilot data security and privacy in Microsoft Power Platform](/power-platform/faqs-copilot-data-security-privacy) ## Prerequisites - A work or school account with access to a Power Automate [environment](/power-platform/admin/create-environment#create-an-environment-in-the-power-platform-admin-center) that's based in the United States. -- During initial preview, you must have an environment in the United States region to use this feature. If you don’t have access to an environment that's based in the United States, you can ask your administrator to [create a new environment in Power Platform admin center and select United States](/power-platform/admin/create-environment#create-an-environment-in-the-power-platform-admin-center) as its region. - Check [known limitations](#known-issues-and-limitations) for more information. ## How does it work? @@ -201,7 +199,7 @@ The following list contains known limitations of the copilot in desktop flow act ## Related information - [Get started with Copilot in cloud flows (preview)](../get-started-with-copilot.md) -- [FAQ for Copilot in desktop flow activity (preview)](../faqs-copilot-automation-activity.md) +- [FAQ for Copilot in desktop flow activity](../faqs-copilot-automation-activity.md) - [FAQ for Copilot in cloud flows](../faqs-copilot.md) - [FAQ for Copilot in Power Automate Process Mining](../faqs-copilot-in-process-mining.md) - [FAQ for Copilot data security and privacy in Microsoft Power Platform](/power-platform/faqs-copilot-data-security-privacy) From e8f41e54f943011d252490a2423b26e151af9fd8 Mon Sep 17 00:00:00 2001 From: Yiannis Mavridis <99273971+yiannismavridis@users.noreply.github.com> Date: Tue, 14 Jan 2025 17:00:30 +0200 Subject: [PATCH 06/24] Update flowcontrol.md --- articles/desktop-flows/actions-reference/flowcontrol.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/articles/desktop-flows/actions-reference/flowcontrol.md b/articles/desktop-flows/actions-reference/flowcontrol.md index b8255467e..9ecbb1155 100644 --- a/articles/desktop-flows/actions-reference/flowcontrol.md +++ b/articles/desktop-flows/actions-reference/flowcontrol.md @@ -4,7 +4,7 @@ description: Learn about the available flow control actions in desktop flows. author: mattp123 ms.subservice: desktop-flow ms.topic: reference -ms.date: 08/27/2024 +ms.date: 01/20/2025 ms.author: matp ms.reviewer: matp contributors: @@ -168,6 +168,7 @@ Marks the beginning of a block to handle actions errors. |Argument|Optional|Accepts|Default Value|Description| |-----|-----|-----|-----|-----| |Name|No|[Text value](../variable-data-types.md#text-value)||The name of the Exception Block for Visual purposes only.| +|Retry policy|N/A|None, Fixed, Exponential|None|The rules based on which retries are performed. Delays are estimated in seconds.| |Capture unexpected logic errors|N/A|[Boolean value](../variable-data-types.md#boolean-value)|False|Expand the scope of error handling, also capturing logical errors in the flow, for example, dividing a number by zero or trying to access an item from an out of bounds position.| ### Variables produced From 1a7422e63e35e002c15a1ec38a93229581044d59 Mon Sep 17 00:00:00 2001 From: Yiannis Mavridis <99273971+yiannismavridis@users.noreply.github.com> Date: Tue, 14 Jan 2025 17:49:17 +0200 Subject: [PATCH 07/24] Update errors.md --- articles/desktop-flows/errors.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/articles/desktop-flows/errors.md b/articles/desktop-flows/errors.md index 08e02b85d..0b3a77b27 100644 --- a/articles/desktop-flows/errors.md +++ b/articles/desktop-flows/errors.md @@ -101,9 +101,12 @@ If different errors require different error handling functionality, select **Adv Some scenarios may require you to implement the same error-handling functionality for several actions in your desktop flows. -Instead of configuring each action separately, you can deploy the **On block error** action and configure error-handling for all the actions inside the block. +Instead of configuring each action separately, you can deploy the **On block error** action and configure a common error handling behavior for all the actions inside the block. -This action offers almost the same options as the **On error** settings of single actions but also allows you to capture unexpected logic errors, such as trying to access a list item from an out-of-bounds position. +This action offers the same options as the **On error** settings of single actions but also allows you to capture unexpected logic errors, such as trying to access a list item from an out-of-bounds position. Additional options include providing a name for this block, and selecting to continue the flow run at the beginning or the end of the block, after an error occurs. + +> [!NOTE] +> If a retry policy is set and an error occurs, retrying will take place from the beginning of the block. :::image type="content" source="media/errors/on-block-error-action.png" alt-text="Screenshot of the On block error action."::: From 64bb4bd0089f2d43e029ffe33e81eacd08c76883 Mon Sep 17 00:00:00 2001 From: Yiannis Mavridis <99273971+yiannismavridis@users.noreply.github.com> Date: Wed, 15 Jan 2025 12:35:42 +0200 Subject: [PATCH 08/24] Update web.md --- .../desktop-flows/actions-reference/web.md | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/articles/desktop-flows/actions-reference/web.md b/articles/desktop-flows/actions-reference/web.md index 2f8dc697f..1364867fa 100644 --- a/articles/desktop-flows/actions-reference/web.md +++ b/articles/desktop-flows/actions-reference/web.md @@ -4,7 +4,7 @@ description: See all the available HTTP actions. author: jpapadimitriou ms.subservice: desktop-flow ms.topic: reference -ms.date: 12/04/2024 +ms.date: 01/20/2025 ms.author: nimoutzo ms.reviewer: gtrantzas contributors: @@ -116,6 +116,7 @@ Invokes a method from a SOAP web service. |HTTP Authentication|N/A|[Boolean value](../variable-data-types.md#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](../variable-data-types.md#text-value)||The user name for the web server |Password|No|Direct encrypted input or [Text value](../variable-data-types.md#text-value)||The password for the web server +|Trim whitespaces|N/A|[Boolean value](../variable-data-types.md#boolean-value)|True|Enable this to trim the whitespaces at the end of the request body of the web service response| ### Request Builder Parameters @@ -148,7 +149,7 @@ Invokes a method from a SOAP web service. ## Invoke web service -Invokes a web service by sending data and retrieves the response from the web service. +Invokes a web service by sending data and stored the response text. ### Input parameters @@ -157,9 +158,12 @@ Invokes a web service by sending data and retrieves the response from the web se |URL|No|[Text value](../variable-data-types.md#text-value)||The web service's URL| |Method|N/A|GET, POST, CONNECT, HEAD, PUT, DELETE, OPTIONS, TRACE, PATCH|GET|The HTTP method to be used to invoke the web service| |Accept|Yes|[Text value](../variable-data-types.md#text-value)|application/xml|The acceptable content type for the response of the web service| -|Content type|Yes|[Text value](../variable-data-types.md#text-value)|application/xml|The content type of the request that will be sent to the web service| |Custom headers|Yes|[Text value](../variable-data-types.md#text-value)||The custom headers to be included in the request that will be sent to the web service| +|Upload attachments|N/A|[Boolean value](../variable-data-types.md#boolean-value)|False|Specify whether the web service will include files to upload| +|Content type|Yes|[Text value](../variable-data-types.md#text-value)|application/xml|The content type of the request that will be sent to the web service| |Request body|Yes|[Text value](../variable-data-types.md#text-value)||The body of the request that will be sent to the web service| +|Attachments|N/A|Attachments|No attachments selected|Select the attachments that will be added to the web request. You can only choose one of the two attachment types (File or Binary).| +|Attach|N/A|File, Binary|File|The type of the attachments that will be sent by the web service| |Save response|N/A|Get text into variable (for web pages), Save to disk (for files)|Get text into variable (for web pages)|Specify how the returned data will be saved| |File name|N/A|Keep original file name (specify only destination folder), Specify full path (destination folder + custom file name)|Keep original file name (specify only destination folder)|Specify whether to keep the original file name of the downloaded file or specify a new name| |Destination folder|No|[Folder](../variable-data-types.md#files-and-folders)||The folder where the file returned by the web service will be saved| @@ -175,6 +179,17 @@ Invokes a web service by sending data and retrieves the response from the web se |HTTP Authentication|N/A|[Boolean value](../variable-data-types.md#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](../variable-data-types.md#text-value)||The user name for the web server| |Password|No|Direct encrypted input or [Text value](../variable-data-types.md#text-value)||The password for the web server| +|Trim whitespaces|N/A|[Boolean value](../variable-data-types.md#boolean-value)|True|Enable this to trim the whitespaces at the end of the request body of the web service response| + +### Attachments Parameters + +Configures the attachments to be added to the web service request. The attachments option is only available for POST and PUT requests, and only when the 'Upload attachments' toggle parameter is enabled. + +|Argument|Accepts|Description| +|-----|-----|-----| +|Name|[Text value](../variable-data-types.md#text-value)|The name of the attachment +|Attachment|[File](../variable-data-types.md#files-and-folders)|The file to be attached +|Type|File, Name|The attachment type ### Variables produced From 140b28f8154390323bfa5d70a2360bc0f0655b7d Mon Sep 17 00:00:00 2001 From: Yiannis Mavridis <99273971+yiannismavridis@users.noreply.github.com> Date: Wed, 15 Jan 2025 15:35:28 +0200 Subject: [PATCH 09/24] Add files via upload --- ...top-flow-action-with-parallel-run-toggle.png | Bin 0 -> 37202 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 articles/desktop-flows/actions-reference/media/runflow/run-desktop-flow-action-with-parallel-run-toggle.png diff --git a/articles/desktop-flows/actions-reference/media/runflow/run-desktop-flow-action-with-parallel-run-toggle.png b/articles/desktop-flows/actions-reference/media/runflow/run-desktop-flow-action-with-parallel-run-toggle.png new file mode 100644 index 0000000000000000000000000000000000000000..3a6ec8dc4ae9dc04cf4592e7a282a24e117d2998 GIT binary patch literal 37202 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 Date: Wed, 15 Jan 2025 16:18:35 +0200 Subject: [PATCH 10/24] Update runflow.md --- .../desktop-flows/actions-reference/runflow.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/articles/desktop-flows/actions-reference/runflow.md b/articles/desktop-flows/actions-reference/runflow.md index 26fb22f5c..73437d7fe 100644 --- a/articles/desktop-flows/actions-reference/runflow.md +++ b/articles/desktop-flows/actions-reference/runflow.md @@ -4,7 +4,7 @@ description: See how to use the Run desktop flow actions. author: mattp123 ms.subservice: desktop-flow ms.topic: reference -ms.date: 03/14/2024 +ms.date: 01/20/2025 ms.author: pefelesk ms.reviewer: matp contributors: @@ -20,6 +20,14 @@ search.audienceType: 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. +You can also disable the toggle property 'Wait for flow to complete', which is enabled by default. If disabled, the invoked desktop flow runs concurrently with the parent flow. This is useful primarily for certain scenarios, where unexpected popups in the target application could block the parent flow. By running a child flow in parallel, you can monitor and manage these popups, ensuring the parent flow continues smoothly. This improvement provides a workaround given the current concurrency policy, which only allows one flow per machine at a time. + +>[!IMPORTANT] +> +> - Only one parallel flow is allowed to run at this time. If a second child flow is set to run in parallel, an error will occur during runtime. +> - If a child flow is set to run in parallel, its output variables are ignored. In this case, the 'Run desktop flow' action's produced variables are not shown in the action modal. +> - Child flows are not allowed to run another child flow in parallel. A parallel flow run is only allowed, if invoked directly from the parent (root) flow. + To find more information about how to use the **Run desktop flow** action, go to [Run desktop flow from other desktop flows](../how-to/run-desktop-flow-action.md). >[!NOTE] @@ -28,7 +36,7 @@ To find more information about how to use the **Run desktop flow** action, go to > - 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. -:::image type="content" source="media/runflow/run-desktop-flow-action.png" alt-text="Screenshot of the Run desktop flow action."::: +:::image type="content" source="media/runflow/run-desktop-flow-action-with-parallel-run-toggle.png" alt-text="Screenshot of the Run desktop flow action."::: ## Run desktop flow @@ -39,6 +47,7 @@ Runs a desktop flow that can receive input variables and might produce output va |Argument|Optional|Accepts|Default Value|Description| |-----|-----|-----|-----|-----| |Desktop flow|No|Desktop flow||Select the desktop flow to run from within this flow. The called flow always runs in the same Windows session as the parent flow.| +|Wait for flow to complete|N/A|[Boolean value](../variable-data-types.md#boolean-value)|True|If enabled, this desktop flow waits for the invoked desktop flow to complete, before resuming its run. The invoked desktop flow's output variables become normally available to the current flow. If disabled, the invoked desktop flow runs concurrently. Its output variables are ignored in this case.| ### Variables produced @@ -49,5 +58,6 @@ This action produces the output variables of the selected flow. |Exception|Description| |-----|-----| |Run desktop flow failed|Indicates a problem while running the desktop flow| +|Desktop flow timed out|Indicates that the desktop flow timed out before it completed its run| [!INCLUDE[footer-include](../../includes/footer-banner.md)] From 3835567e4ea9fbcc397dc62054939dc55d4ec616 Mon Sep 17 00:00:00 2001 From: Yiannis Mavridis <99273971+yiannismavridis@users.noreply.github.com> Date: Thu, 16 Jan 2025 12:19:49 +0200 Subject: [PATCH 11/24] Add files via upload --- ...top-flow-action-with-parallel-run-toggle.png | Bin 0 -> 37202 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 articles/desktop-flows/how-to/media/run-desktop-flow-action/run-desktop-flow-action-with-parallel-run-toggle.png diff --git a/articles/desktop-flows/how-to/media/run-desktop-flow-action/run-desktop-flow-action-with-parallel-run-toggle.png b/articles/desktop-flows/how-to/media/run-desktop-flow-action/run-desktop-flow-action-with-parallel-run-toggle.png new file mode 100644 index 0000000000000000000000000000000000000000..3a6ec8dc4ae9dc04cf4592e7a282a24e117d2998 GIT binary patch literal 37202 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 Date: Thu, 16 Jan 2025 12:32:21 +0200 Subject: [PATCH 12/24] Update run-desktop-flow-action.md --- .../desktop-flows/how-to/run-desktop-flow-action.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/articles/desktop-flows/how-to/run-desktop-flow-action.md b/articles/desktop-flows/how-to/run-desktop-flow-action.md index 3e35e1cd7..8244f86f6 100644 --- a/articles/desktop-flows/how-to/run-desktop-flow-action.md +++ b/articles/desktop-flows/how-to/run-desktop-flow-action.md @@ -5,7 +5,7 @@ author: mattp123 ms.subservice: desktop-flow ms.topic: how-to -ms.date: 11/10/2022 +ms.date: 01/20/2025 ms.author: matp ms.reviewer: matp contributors: @@ -27,11 +27,16 @@ To use the action, add it to the workspace and select the desktop flow you want ![Screenshot of the available desktop flows in the Run desktop flow action.](media/run-desktop-flow-action/run-desktop-flow-action.png) -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. +When the action runs, depending on the state of the 'Wait for flow to complete' toggle, the parent flow can either be paused until the called desktop flow completes, or they can run in parallel. If the called flow contains input variables, you'll be prompted to populate them. Likewise, if the called flow has output variables, the action will return their values in the parent flow, so long as the parent flow remains paused. If the child flow runs in parallel, no output variables are produced. + +>[!IMPORTANT] +> +> - Only one parallel flow is allowed to run at this time. If a second child flow is set to run in parallel, an error will occur during runtime. +> - Child flows are not allowed to run another child flow in parallel. A parallel flow run is only allowed, if invoked directly from the parent (root) flow. > [!NOTE] > You can find more information regarding input and output variables in [Input and output variables](../manage-variables.md#input-and-output-variables). -![Screenshot of the Run desktop flow action.](media/run-desktop-flow-action/run-desktop-flow-action-produced-variables.png) +![Screenshot of the Run desktop flow action.](media/run-desktop-flow-action/run-desktop-flow-action-with-parallel-run-toggle.png) -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. +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 150 dependent flows. If a dependent flow is missing or the parent flow has more than 150 dependencies, the flow won't run. From 30ab35954a750117098784215609220318f56a77 Mon Sep 17 00:00:00 2001 From: Yiannis Mavridis <99273971+yiannismavridis@users.noreply.github.com> Date: Thu, 16 Jan 2025 13:37:56 +0200 Subject: [PATCH 13/24] Update manage-variables.md --- articles/desktop-flows/manage-variables.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/articles/desktop-flows/manage-variables.md b/articles/desktop-flows/manage-variables.md index bea7ca6c7..b10fb2432 100644 --- a/articles/desktop-flows/manage-variables.md +++ b/articles/desktop-flows/manage-variables.md @@ -4,7 +4,7 @@ description: See how to manage variables and the variables pane author: mattp123 ms.subservice: desktop-flow ms.topic: conceptual -ms.date: 10/29/2024 +ms.date: 01/20/2025 ms.author: dbekirop ms.reviewer: matp contributors: @@ -57,7 +57,7 @@ To rename a desktop flow variable, right-click on its name and select **Rename** ## Input and output variables -Power Automate enables data exchange between cloud and desktop flows through the input and output variables, allowing you to expand automation capabilities +Power Automate enables data exchange between cloud and desktop flows through the input and output variables, allowing you to expand automation capabilities. Input and output variables also accommodate passing information between desktop flows, through the 'Run desktop flow' action. Additionally, you can use input variables to set values manually when the flows are triggered through the console. @@ -74,9 +74,10 @@ To create an input variable: 1. When the **New input variable** dialog appears, populate the following fields: - **Variable name**: The name of the variable in the desktop flow. - - **Data type**: The type of the variable: [text](variable-data-types.md#text-value), [number](variable-data-types.md#numeric-value), [boolean](variable-data-types.md#boolean-value), [custom object](variable-data-types.md#custom-object), [list](variable-data-types.md#list) or [datatable](variable-data-types.md#datatable). + - **Data type**: The type of the variable: [text](variable-data-types.md#text-value), [number](variable-data-types.md#numeric-value), [boolean](variable-data-types.md#boolean-value), [custom object](variable-data-types.md#custom-object), [list](variable-data-types.md#list), [datatable](variable-data-types.md#datatable) or [instance](variable-data-types#instances). - **Default value**: The default value when the flow runs through the flow designer or console. When you create a custom object, list, or datatable input variable, Power Automate allows you to construct the default value through a visual or JSON editor. ![Screenshot of a custom object input variable in the visual editor.](media\input-output-variables\custom-object-input-variable.png) + - **Data subtype**: The exact type of the instance (available only when **Instance** is previously selected as data type): Excel, Word or Outlook. - **External name**: The external name is the name that appears in the cloud flow designer and the flow inputs dialog when calling the flow from the console. - **Description**: The description of the variable that appears in the cloud and desktop flow designer while calling the flow. - **Mark as sensitive**: Defines whether to mark the variable as sensitive or not. You can find information regarding sensitive variables in [Sensitive variables](#sensitive-variables). @@ -85,6 +86,9 @@ To create an input variable: > [!NOTE] > The **Variable name**, **Data type**, and **External name** fields are required to create an input variable. + > [!NOTE] + > Input variables of instance type (Excel, Word or Outlook) don't support default values. Flows with such inputs can run through the 'Run desktop flow' action of another desktop flow, or through the designer for testing or debugging. In designer runs, instance input variables can be temporarily initialized by being used as the produced variables of the respective Launch or Attach actions. + > [!IMPORTANT] > If you choose an existing flow variable name for a new input variable, Power Automate will prompt you to confirm the merging of the two variables. Unintentional merging may affect the functionality of your flow and cause errors. Also, you can't use the name of an existing input or output variable. @@ -105,7 +109,8 @@ To create an output variable: 1. When the **New output variable** dialog appears, populate the following fields: - **Variable name**: The name of the variable in the desktop flow. - - **Data type**: The type of the variable: [text](variable-data-types.md#text-value), [number](variable-data-types.md#numeric-value), [boolean](variable-data-types.md#boolean-value), [custom object](variable-data-types.md#custom-object), [list](variable-data-types.md#list) or [datatable](variable-data-types.md#datatable). + - **Data type**: The type of the variable: [text](variable-data-types.md#text-value), [number](variable-data-types.md#numeric-value), [boolean](variable-data-types.md#boolean-value), [custom object](variable-data-types.md#custom-object), [list](variable-data-types.md#list), [datatable](variable-data-types.md#datatable) or [instance](variable-data-types#instances). + - **Data subtype**: The exact type of the instance (available only when **Instance** is previously selected as data type): Excel, Word or Outlook. - **External name**: The external name is the name that appears in the cloud flow designer. - **Description**: The description of the variable that appears in the cloud or desktop flow designer while calling the flow. - **Mark as sensitive**: Defines whether to mark the variable as sensitive or not. You can find information regarding sensitive variables in [Sensitive variables](#sensitive-variables). From 4c79ae8f6582ee3fb0452a97a299afcf40f32acc Mon Sep 17 00:00:00 2001 From: DanaMartens Date: Thu, 16 Jan 2025 14:26:02 -0600 Subject: [PATCH 14/24] small changes --- .../desktop-flows/actions-reference/runflow.md | 12 ++++++------ articles/desktop-flows/actions-reference/web.md | 17 +++++++++-------- articles/desktop-flows/errors.md | 4 ++-- .../how-to/run-desktop-flow-action.md | 8 ++++---- articles/desktop-flows/manage-variables.md | 12 ++++++------ 5 files changed, 27 insertions(+), 26 deletions(-) diff --git a/articles/desktop-flows/actions-reference/runflow.md b/articles/desktop-flows/actions-reference/runflow.md index 73437d7fe..fb8f70198 100644 --- a/articles/desktop-flows/actions-reference/runflow.md +++ b/articles/desktop-flows/actions-reference/runflow.md @@ -20,13 +20,13 @@ search.audienceType: 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. -You can also disable the toggle property 'Wait for flow to complete', which is enabled by default. If disabled, the invoked desktop flow runs concurrently with the parent flow. This is useful primarily for certain scenarios, where unexpected popups in the target application could block the parent flow. By running a child flow in parallel, you can monitor and manage these popups, ensuring the parent flow continues smoothly. This improvement provides a workaround given the current concurrency policy, which only allows one flow per machine at a time. +You can disable the toggle property 'Wait for flow to complete', which is enabled by default. If disabled, the invoked desktop flow runs concurrently with the parent flow. This configuration is useful for scenarios where unexpected popups in the target application block the parent flow. By running a child flow in parallel, you can monitor and manage these popups, ensuring the parent flow continues smoothly. This improvement provides a workaround given the current concurrency policy, which allows only one flow per machine at a time. >[!IMPORTANT] > -> - Only one parallel flow is allowed to run at this time. If a second child flow is set to run in parallel, an error will occur during runtime. -> - If a child flow is set to run in parallel, its output variables are ignored. In this case, the 'Run desktop flow' action's produced variables are not shown in the action modal. -> - Child flows are not allowed to run another child flow in parallel. A parallel flow run is only allowed, if invoked directly from the parent (root) flow. +> - Only one parallel flow can run at this time. If a second child flow runs in parallel, an error occurs during runtime. +> - If a child flow runs in parallel, its output variables are ignored. The variables produced from the 'Run desktop flow' actions aren't shown in the action modal. +> - Child flows can't run another child flow in parallel. A parallel flow run is allowed only if invoked directly from the parent (root) flow. To find more information about how to use the **Run desktop flow** action, go to [Run desktop flow from other desktop flows](../how-to/run-desktop-flow-action.md). @@ -47,7 +47,7 @@ Runs a desktop flow that can receive input variables and might produce output va |Argument|Optional|Accepts|Default Value|Description| |-----|-----|-----|-----|-----| |Desktop flow|No|Desktop flow||Select the desktop flow to run from within this flow. The called flow always runs in the same Windows session as the parent flow.| -|Wait for flow to complete|N/A|[Boolean value](../variable-data-types.md#boolean-value)|True|If enabled, this desktop flow waits for the invoked desktop flow to complete, before resuming its run. The invoked desktop flow's output variables become normally available to the current flow. If disabled, the invoked desktop flow runs concurrently. Its output variables are ignored in this case.| +|Wait for flow to complete|N/A|[Boolean value](../variable-data-types.md#boolean-value)|True|If enabled, this desktop flow waits for the invoked desktop flow to complete before resuming. The invoked desktop flow's output variables are available to the current flow. If disabled, the invoked desktop flow runs concurrently, and its output variables are ignored.| ### Variables produced @@ -58,6 +58,6 @@ This action produces the output variables of the selected flow. |Exception|Description| |-----|-----| |Run desktop flow failed|Indicates a problem while running the desktop flow| -|Desktop flow timed out|Indicates that the desktop flow timed out before it completed its run| +|Desktop flow timed out|Indicates that the desktop flow timed out before completing its run| [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/articles/desktop-flows/actions-reference/web.md b/articles/desktop-flows/actions-reference/web.md index 1364867fa..831f11d66 100644 --- a/articles/desktop-flows/actions-reference/web.md +++ b/articles/desktop-flows/actions-reference/web.md @@ -116,18 +116,18 @@ Invokes a method from a SOAP web service. |HTTP Authentication|N/A|[Boolean value](../variable-data-types.md#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](../variable-data-types.md#text-value)||The user name for the web server |Password|No|Direct encrypted input or [Text value](../variable-data-types.md#text-value)||The password for the web server -|Trim whitespaces|N/A|[Boolean value](../variable-data-types.md#boolean-value)|True|Enable this to trim the whitespaces at the end of the request body of the web service response| +|Trim whitespaces|N/A|[Boolean value](../variable-data-types.md#boolean-value)|True|Enable this option to trim the whitespace at the end of the request body of the web service response| ### Request Builder Parameters |Argument|Accepts|Description| |-----|-----|-----| -|WSDL|[File](../variable-data-types.md#files-and-folders)|The Web Services Description Language (WSDL) document to build the request with -|Service|[Text value](../variable-data-types.md#text-value)|The service to invoke -|Port|[Text value](../variable-data-types.md#text-value)|The port to invoke the service -|SOAP version|[Text value](../variable-data-types.md#text-value)|The version of the SOAP service -|Operation|[Text value](../variable-data-types.md#text-value)|The operation to invoke the service -|Request envelope|[Text value](../variable-data-types.md#text-value)|The envelope to send in the request to invoke the service +|WSDL|[File](../variable-data-types.md#files-and-folders)|The Web Services Description Language (WSDL) document to build the request with| +|Service|[Text value](../variable-data-types.md#text-value)|The service to invoke| +|Port|[Text value](../variable-data-types.md#text-value)|The port to invoke the service| +|SOAP version|[Text value](../variable-data-types.md#text-value)|The version of the SOAP service| +|Operation|[Text value](../variable-data-types.md#text-value)|The operation to invoke the service| +|Request envelope|[Text value](../variable-data-types.md#text-value)|The envelope to send in the request to invoke the service| ### Variables produced @@ -149,7 +149,7 @@ Invokes a method from a SOAP web service. ## Invoke web service -Invokes a web service by sending data and stored the response text. +Invokes a web service by sending data and stores the response text. ### Input parameters @@ -209,6 +209,7 @@ Configures the attachments to be added to the web service request. The attachmen |Invalid header in custom headers|Indicates that some custom headers were invalid| ### Known issues + - NTLM Authentication is currently not supported for web requests in Power Automate for desktop. [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/articles/desktop-flows/errors.md b/articles/desktop-flows/errors.md index 0b3a77b27..8e7317188 100644 --- a/articles/desktop-flows/errors.md +++ b/articles/desktop-flows/errors.md @@ -101,9 +101,9 @@ If different errors require different error handling functionality, select **Adv Some scenarios may require you to implement the same error-handling functionality for several actions in your desktop flows. -Instead of configuring each action separately, you can deploy the **On block error** action and configure a common error handling behavior for all the actions inside the block. +Instead of configuring each action separately, deploy the **On block error** action and configure a common error handling behavior for all the actions inside the block. -This action offers the same options as the **On error** settings of single actions but also allows you to capture unexpected logic errors, such as trying to access a list item from an out-of-bounds position. Additional options include providing a name for this block, and selecting to continue the flow run at the beginning or the end of the block, after an error occurs. +This action offers the same options as the **On error** settings of single actions but also lets you capture unexpected logic errors, such as trying to access a list item from an out-of-bounds position. Other options include providing a name for this block and selecting to continue the flow run at the beginning or the end of the block after an error occurs. > [!NOTE] > If a retry policy is set and an error occurs, retrying will take place from the beginning of the block. diff --git a/articles/desktop-flows/how-to/run-desktop-flow-action.md b/articles/desktop-flows/how-to/run-desktop-flow-action.md index 8244f86f6..6588189e0 100644 --- a/articles/desktop-flows/how-to/run-desktop-flow-action.md +++ b/articles/desktop-flows/how-to/run-desktop-flow-action.md @@ -27,16 +27,16 @@ To use the action, add it to the workspace and select the desktop flow you want ![Screenshot of the available desktop flows in the Run desktop flow action.](media/run-desktop-flow-action/run-desktop-flow-action.png) -When the action runs, depending on the state of the 'Wait for flow to complete' toggle, the parent flow can either be paused until the called desktop flow completes, or they can run in parallel. If the called flow contains input variables, you'll be prompted to populate them. Likewise, if the called flow has output variables, the action will return their values in the parent flow, so long as the parent flow remains paused. If the child flow runs in parallel, no output variables are produced. +When the action runs, depending on the state of the 'Wait for flow to complete' toggle, the parent flow either pauses until the called desktop flow completes or runs in parallel. If the called flow contains input variables, you're prompted to populate them. Likewise, if the called flow has output variables, the action returns their values in the parent flow, as long as the parent flow remains paused. If the child flow runs in parallel, no output variables are produced. >[!IMPORTANT] > -> - Only one parallel flow is allowed to run at this time. If a second child flow is set to run in parallel, an error will occur during runtime. -> - Child flows are not allowed to run another child flow in parallel. A parallel flow run is only allowed, if invoked directly from the parent (root) flow. +> - Only one parallel flow is allowed to run at this time. If a second child flow is set to run in parallel, an error occurs during runtime. +> - Child flows aren't allowed to run another child flow in parallel. A parallel flow run is only allowed, if invoked directly from the parent (root) flow. > [!NOTE] > You can find more information regarding input and output variables in [Input and output variables](../manage-variables.md#input-and-output-variables). ![Screenshot of the Run desktop flow action.](media/run-desktop-flow-action/run-desktop-flow-action-with-parallel-run-toggle.png) -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 150 dependent flows. If a dependent flow is missing or the parent flow has more than 150 dependencies, the flow won't run. +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 150 dependent flows. If a dependent flow is missing or the parent flow has more than 150 dependencies, the flow doesn't run. diff --git a/articles/desktop-flows/manage-variables.md b/articles/desktop-flows/manage-variables.md index b10fb2432..d939a0603 100644 --- a/articles/desktop-flows/manage-variables.md +++ b/articles/desktop-flows/manage-variables.md @@ -57,7 +57,7 @@ To rename a desktop flow variable, right-click on its name and select **Rename** ## Input and output variables -Power Automate enables data exchange between cloud and desktop flows through the input and output variables, allowing you to expand automation capabilities. Input and output variables also accommodate passing information between desktop flows, through the 'Run desktop flow' action. +Power Automate lets you exchange data between cloud and desktop flows using input and output variables, expanding automation capabilities. Input and output variables also let you pass information between desktop flows through the 'Run desktop flow' action. Additionally, you can use input variables to set values manually when the flows are triggered through the console. @@ -74,10 +74,10 @@ To create an input variable: 1. When the **New input variable** dialog appears, populate the following fields: - **Variable name**: The name of the variable in the desktop flow. - - **Data type**: The type of the variable: [text](variable-data-types.md#text-value), [number](variable-data-types.md#numeric-value), [boolean](variable-data-types.md#boolean-value), [custom object](variable-data-types.md#custom-object), [list](variable-data-types.md#list), [datatable](variable-data-types.md#datatable) or [instance](variable-data-types#instances). + - **Data type**: The type of the variable: [text](variable-data-types.md#text-value), [number](variable-data-types.md#numeric-value), [boolean](variable-data-types.md#boolean-value), [custom object](variable-data-types.md#custom-object), [list](variable-data-types.md#list), [datatable](variable-data-types.md#datatable), or [instance](variable-data-types#instances). - **Default value**: The default value when the flow runs through the flow designer or console. When you create a custom object, list, or datatable input variable, Power Automate allows you to construct the default value through a visual or JSON editor. ![Screenshot of a custom object input variable in the visual editor.](media\input-output-variables\custom-object-input-variable.png) - - **Data subtype**: The exact type of the instance (available only when **Instance** is previously selected as data type): Excel, Word or Outlook. + - **Data subtype**: The exact type of the instance (available only when **Instance** is previously selected as data type): Excel, Word, or Outlook. - **External name**: The external name is the name that appears in the cloud flow designer and the flow inputs dialog when calling the flow from the console. - **Description**: The description of the variable that appears in the cloud and desktop flow designer while calling the flow. - **Mark as sensitive**: Defines whether to mark the variable as sensitive or not. You can find information regarding sensitive variables in [Sensitive variables](#sensitive-variables). @@ -87,7 +87,7 @@ To create an input variable: > The **Variable name**, **Data type**, and **External name** fields are required to create an input variable. > [!NOTE] - > Input variables of instance type (Excel, Word or Outlook) don't support default values. Flows with such inputs can run through the 'Run desktop flow' action of another desktop flow, or through the designer for testing or debugging. In designer runs, instance input variables can be temporarily initialized by being used as the produced variables of the respective Launch or Attach actions. + > Input variables of instance type (Excel, Word, or Outlook) don't support default values. Flows with these inputs can run through the 'Run desktop flow' action of another desktop flow or through the designer for testing or debugging. In designer runs, instance input variables can be temporarily initialized by using them as the produced variables of the respective Launch or Attach actions. > [!IMPORTANT] > If you choose an existing flow variable name for a new input variable, Power Automate will prompt you to confirm the merging of the two variables. Unintentional merging may affect the functionality of your flow and cause errors. Also, you can't use the name of an existing input or output variable. @@ -109,8 +109,8 @@ To create an output variable: 1. When the **New output variable** dialog appears, populate the following fields: - **Variable name**: The name of the variable in the desktop flow. - - **Data type**: The type of the variable: [text](variable-data-types.md#text-value), [number](variable-data-types.md#numeric-value), [boolean](variable-data-types.md#boolean-value), [custom object](variable-data-types.md#custom-object), [list](variable-data-types.md#list), [datatable](variable-data-types.md#datatable) or [instance](variable-data-types#instances). - - **Data subtype**: The exact type of the instance (available only when **Instance** is previously selected as data type): Excel, Word or Outlook. + - **Data type**: The type of the variable: [text](variable-data-types.md#text-value), [number](variable-data-types.md#numeric-value), [boolean](variable-data-types.md#boolean-value), [custom object](variable-data-types.md#custom-object), [list](variable-data-types.md#list), [datatable](variable-data-types.md#datatable), or [instance](variable-data-types#instances). + - **Data subtype**: The exact type of the instance (available only when **Instance** is previously selected as data type): Excel, Word, or Outlook. - **External name**: The external name is the name that appears in the cloud flow designer. - **Description**: The description of the variable that appears in the cloud or desktop flow designer while calling the flow. - **Mark as sensitive**: Defines whether to mark the variable as sensitive or not. You can find information regarding sensitive variables in [Sensitive variables](#sensitive-variables). From f313cd3870d678fab9c0695ad46682fccbfa6e29 Mon Sep 17 00:00:00 2001 From: DanaMartens Date: Thu, 16 Jan 2025 14:37:47 -0600 Subject: [PATCH 15/24] fix links --- articles/desktop-flows/manage-variables.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/articles/desktop-flows/manage-variables.md b/articles/desktop-flows/manage-variables.md index d939a0603..f0e64a778 100644 --- a/articles/desktop-flows/manage-variables.md +++ b/articles/desktop-flows/manage-variables.md @@ -74,7 +74,7 @@ To create an input variable: 1. When the **New input variable** dialog appears, populate the following fields: - **Variable name**: The name of the variable in the desktop flow. - - **Data type**: The type of the variable: [text](variable-data-types.md#text-value), [number](variable-data-types.md#numeric-value), [boolean](variable-data-types.md#boolean-value), [custom object](variable-data-types.md#custom-object), [list](variable-data-types.md#list), [datatable](variable-data-types.md#datatable), or [instance](variable-data-types#instances). + - **Data type**: The type of the variable: [text](variable-data-types.md#text-value), [number](variable-data-types.md#numeric-value), [boolean](variable-data-types.md#boolean-value), [custom object](variable-data-types.md#custom-object), [list](variable-data-types.md#list), [datatable](variable-data-types.md#datatable), or [instance](variable-data-types.md#instances). - **Default value**: The default value when the flow runs through the flow designer or console. When you create a custom object, list, or datatable input variable, Power Automate allows you to construct the default value through a visual or JSON editor. ![Screenshot of a custom object input variable in the visual editor.](media\input-output-variables\custom-object-input-variable.png) - **Data subtype**: The exact type of the instance (available only when **Instance** is previously selected as data type): Excel, Word, or Outlook. @@ -109,7 +109,7 @@ To create an output variable: 1. When the **New output variable** dialog appears, populate the following fields: - **Variable name**: The name of the variable in the desktop flow. - - **Data type**: The type of the variable: [text](variable-data-types.md#text-value), [number](variable-data-types.md#numeric-value), [boolean](variable-data-types.md#boolean-value), [custom object](variable-data-types.md#custom-object), [list](variable-data-types.md#list), [datatable](variable-data-types.md#datatable), or [instance](variable-data-types#instances). + - **Data type**: The type of the variable: [text](variable-data-types.md#text-value), [number](variable-data-types.md#numeric-value), [boolean](variable-data-types.md#boolean-value), [custom object](variable-data-types.md#custom-object), [list](variable-data-types.md#list), [datatable](variable-data-types.md#datatable), or [instance](variable-data-types.md#instances). - **Data subtype**: The exact type of the instance (available only when **Instance** is previously selected as data type): Excel, Word, or Outlook. - **External name**: The external name is the name that appears in the cloud flow designer. - **Description**: The description of the variable that appears in the cloud or desktop flow designer while calling the flow. From 3f31f5e61e3f038fab3a0682f90bc4129c339e0f Mon Sep 17 00:00:00 2001 From: Yiannis Mavridis <99273971+yiannismavridis@users.noreply.github.com> Date: Tue, 21 Jan 2025 18:39:21 +0200 Subject: [PATCH 16/24] Update errors.md --- articles/desktop-flows/errors.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/articles/desktop-flows/errors.md b/articles/desktop-flows/errors.md index 8e7317188..876e00867 100644 --- a/articles/desktop-flows/errors.md +++ b/articles/desktop-flows/errors.md @@ -4,7 +4,7 @@ description: See how to handle errors and warnings in your desktop flows author: mattp123 ms.subservice: desktop-flow ms.topic: conceptual -ms.date: 04/13/2023 +ms.date: 01/20/2025 ms.author: iomavrid ms.reviewer: matp contributors: @@ -103,10 +103,14 @@ Some scenarios may require you to implement the same error-handling functionalit Instead of configuring each action separately, deploy the **On block error** action and configure a common error handling behavior for all the actions inside the block. -This action offers the same options as the **On error** settings of single actions but also lets you capture unexpected logic errors, such as trying to access a list item from an out-of-bounds position. Other options include providing a name for this block and selecting to continue the flow run at the beginning or the end of the block after an error occurs. +This action offers the same options as the **On error** settings of single actions but also lets you capture unexpected logic errors, such as trying to access a list item from an out-of-bounds position. Other options include providing a name for this block, as well as selecting to continue the flow run from the beginning or the end of the block, after an error occurs. > [!NOTE] > If a retry policy is set and an error occurs, retrying will take place from the beginning of the block. +> +> If all block retries fail, then the actions specified in block's 'Exception handling mode' will apply. +> +> Individual error handling/retries from actions within the error block take precedence from block error retries. :::image type="content" source="media/errors/on-block-error-action.png" alt-text="Screenshot of the On block error action."::: From d9f9830492556ad2acd371d86d8f1237b3d23a0b Mon Sep 17 00:00:00 2001 From: DanaMartens Date: Tue, 21 Jan 2025 16:57:58 -0600 Subject: [PATCH 17/24] small changes --- articles/automation-center-copilot.md | 25 +++++++++--------- articles/automation-center-overview.md | 17 ++++++------ ...copilot-to-analyze-desktopflow-activity.md | 26 +++++++++---------- articles/faqs-copilot-automation-activity.md | 7 ++--- articles/faqs-copilot-automation-center.md | 6 ++--- 5 files changed, 39 insertions(+), 42 deletions(-) diff --git a/articles/automation-center-copilot.md b/articles/automation-center-copilot.md index 3405634ba..f1bf8dfa8 100644 --- a/articles/automation-center-copilot.md +++ b/articles/automation-center-copilot.md @@ -2,7 +2,7 @@ title: Use Copilot in automation center description: Use Copilot to analyze flow runs, work queues, and ask general product questions in natural language. ms.topic: conceptual -ms.date: 05/20/2024 +ms.date: 01/21/2025 ms.author: appapaio ms.reviewer: dmartens contributors: @@ -15,8 +15,7 @@ search.audienceType: - flowmaker - enduser --- -# Use Copilot to analyze automation activity and ask product questions -[!INCLUDE [cc-beta-prerelease-disclaimer](includes/cc-beta-prerelease-disclaimer.md)] +# Use Copilot to analyze automation activity and ask product questions Understanding automation activity and performance are key to achieving operational excellence and reliability goals, regardless of the size of the automation estate, team, or role within the organization. To reach those goals requires advanced and dynamic monitoring capabilities that provide you with valuable insights that highlight areas of success and identify potential bottlenecks, trends and areas for improvement. Having more detailed insights allows you to make informed decisions that optimize your automation processes, leading to increased efficiency and effectiveness. @@ -25,7 +24,7 @@ Understanding automation activity and performance are key to achieving operation > [!IMPORTANT] > > - This capability is powered by [Azure OpenAI Service](/azure/cognitive-services/openai/overview). -> - Copilot is a new technology that is still being developed. It is optimized for use with English language and has limited support with other languages. As such, parts of it might appear in English rather than your preferred language. +> - Copilot is a new technology that is still being developed. It's optimized for use with English language and has limited support with other languages. As such, parts of it might appear in English rather than your preferred language. > - Read the [responsible AI FAQs for Copilot in automation center](faqs-copilot-automation-center.md) to learn more about this new Copilot experience. > - More FAQs: [Responsible AI FAQs for Power Automate](responsible-ai-overview.md), [FAQ for Copilot data security and privacy in Microsoft Power Platform](/power-platform/faqs-copilot-data-security-privacy) @@ -45,7 +44,7 @@ Copilot in automation center is able to answer questions about the following fou | 3 | Work queue data | Work queue items statuses, service level agreement (SLA) attainment, processor counts. | | 4 | Documentation (generative answers) | General Power Automate feature questions such as *how to analyze activity with Copilot*. | -The first three skills in the above table translate natural language queries (questions) entered by users into Microsoft Dataverse [FetchXML](/power-apps/developer/data-platform/use-fetchxml-construct-query) query syntax. This translation allows users to easily retrieve information about their automation data by asking questions in natural language. Additionally, Copilot determines the most suitable output visualization, such as a table, pie chart, bar chart, or line chart, to effectively present the insights and information to the user. +The first three skills in the prior table translate natural language queries (questions) entered by users into Microsoft Dataverse [FetchXML](/power-apps/developer/data-platform/use-fetchxml-construct-query) query syntax. This translation allows users to easily retrieve information about their automation data by asking questions in natural language. Additionally, Copilot determines the most suitable output visualization, such as a table, pie chart, bar chart, or line chart, to effectively present the insights and information to the user. ### Copilot skill selector @@ -66,12 +65,12 @@ Microsoft Dataverse [FetchXML](/power-apps/developer/data-platform/use-fetchxml- ## Prompt best-practices - Be specific: - - The more specific you are with your prompt, the better the AI understands and responds. - - If the AI isn't producing the desired output, don't worry. Try again by adjusting your prompt. + - The more specific you are with your prompt, the better the AI understands and responds. + - If the AI isn't producing the desired output, don't worry. Try again by adjusting your prompt. - Experiment with prompts: - - If you're not getting the results you were expecting, try rephrasing your prompt or provide more context. + - If you're not getting the results you were expecting, try rephrasing your prompt or provide more context. - Provide feedback: - - If the AI produced great or unsatisfactory responses, let us know by selecting the thumbs up or down with an option to provide more feedback via the **Tell Microsoft what you liked about this feature** link that appears underneath. + - If the AI produced great or unsatisfactory responses, let us know by selecting the thumbs up or down with an option to provide more feedback via the **Tell Microsoft what you liked about this feature** link that appears underneath. ## Prompt examples @@ -81,7 +80,7 @@ This section provides example prompts you can use as a starter prompt for your o > [!NOTE] > -> [Cloud flow run history in Dataverse](dataverse/cloud-flow-run-metadata.md), which is built on the new [Elastic Table](/power-apps/maker/data-platform/create-edit-elastic-tables) feature, has different known limitations for querying and aggregating data compared to the desktop flow run history. These differences may impact the responses from Copilot. You can find out more about these known limitation [here](/power-apps/maker/data-platform/create-edit-elastic-tables#features-currently-not-supported-with-elastic-tables). +> [Cloud flow run history in Dataverse](dataverse/cloud-flow-run-metadata.md), which is built on the new [Elastic Table](/power-apps/maker/data-platform/create-edit-elastic-tables) feature, has different known limitations for querying and aggregating data compared to the desktop flow run history. These differences might impact the responses from Copilot. You can find out more about these known limitations [here](/power-apps/maker/data-platform/create-edit-elastic-tables#features-currently-not-supported-with-elastic-tables). - How many runs last month were triggered by another cloud flow? - Who initiated flow runs during the last month? @@ -129,8 +128,8 @@ In the context of AI, *multi-turn* prompts allow you to have an ongoing conversa > [!NOTE] > -> - Generative answers (documentation skill) does not support multi-turn conversations yet. -> - When engaging in a multi-turn conversation, Copilot keeps track of the ten most recent questions only. This means that Copilot starts clearing the prompts that were entered first and only keeps the latest ten. To improve response quality, we suggest limiting your follow-up questions or more frequently restart the chat. For more information, see [Clear previous prompt context to start over](#clear-previous-prompt-context-to-start-over). +> - Generative answers (documentation skill) doesn't support multi-turn conversations yet. +> - When engaging in a multi-turn conversation, Copilot keeps track of the 10 most recent questions only. This means that Copilot starts clearing the prompts that were entered first and only keeps the latest 10. To improve response quality, we suggest limiting your follow-up questions or more frequently restart the chat. For more information, see [Clear previous prompt context to start over](#clear-previous-prompt-context-to-start-over). #### Example @@ -271,7 +270,7 @@ The following list contains known limitations of Copilot in automation center. - Copilot is a new technology that is still being developed. It's optimized for use with English language and support with other languages is limited. As such, parts of it might appear in English rather than your preferred language. - Copilot is currently only available in Dataverse environments based in the United States. - Copilot might return wrong or incomplete data and FetchXML queries. -- Copilot is initially only capable to answer questions about desktop flow activity, cloud flow activity, work queues and general product feature questions of Power Automate. +- Copilot is initially only capable to answer questions about desktop flow activity, cloud flow activity, work queues, and general product feature questions of Power Automate. - In multi-turn conversations, Copilot keeps context of the last 10 question only. If you encounter wrong or incomplete results, consider [resetting the conversation](#clear-previous-prompt-context-to-start-over). - Multi-turn conversations aren't supported for generative answers (documentation skill). - For queries that return large result-sets, Copilot might not be able return or render the result. diff --git a/articles/automation-center-overview.md b/articles/automation-center-overview.md index 5f390a3e3..ffb9da384 100644 --- a/articles/automation-center-overview.md +++ b/articles/automation-center-overview.md @@ -2,7 +2,7 @@ title: Explore Power Automate's automation center description: Explore the comprehensive monitoring and troubleshooting experiences offered by Power Automate's Automation Center, a hub for managing automation activity. ms.topic: conceptual -ms.date: 11/18/2024 +ms.date: 01/21/2025 ms.author: quseleba ms.reviewer: dmartens contributors: @@ -21,7 +21,6 @@ search.audienceType: The automation center provides comprehensive monitoring and troubleshooting experiences for your automation processes across Power Automate, catering to various personas involved in automation. Whether you're a maker, an operator, a Center of Excellence (CoE) team member, or a business analyst, the automation center serves as a centralized hub to monitor and manage automation activity within your environment. With its user friendly interface and dashboard, the automation center enables you to gain a holistic view of all automation related data, including recommendations, execution logs, performance metrics, and an integrated copilot. - ## Data and visualization strategy The information displayed on the [**Overview**](#overview-tab) and [**Runs**](#runs-tab) pages is based on cloud and desktop flow run data that is stored in Microsoft Dataverse. These pages are designed to provide you with a top-level view of your flow run activities, including child cloud or desktop flow runs associated with a particular top-level flow. This approach enables you to monitor the entire automation from start to end. It allows you to determine whether the overall automation succeeded or failed, providing data on the total of the runs, among many other metrics. @@ -29,8 +28,8 @@ The information displayed on the [**Overview**](#overview-tab) and [**Runs**](#r > [!NOTE] > > - Some filters might not be available for some tabs because of the nature of the presented data. -> - Data under the **Work queues** tab is a premium feature, which require a Power Automate Premium license. -> - Recommendations are a premium feature, which require a [Managed Environment](/power-platform/admin/managed-environment-enable). +> - Data under the **Work queues** tab is a premium feature, which requires a Power Automate Premium license. +> - Recommendations is a premium feature, which requires a [Managed Environment](/power-platform/admin/managed-environment-enable). > - When you navigate between tabs, the tab keeps the active filtering selection. Select **Clear filters** to reset the applied filters. > - Desktop flow related activities like desktop flow runs and work queues etc. have always been available in Dataverse, however cloud flow run history has only recently been introduced in Dataverse. [Learn more](dataverse/cloud-flow-run-metadata.md). > - Cloud flow run history shown on the overview and runs tab might take up to an hour to be available in Dataverse and the automation center. @@ -60,12 +59,12 @@ Here are the main tables used in the Automation Center: This tab provides an end-to-end automation health view within the environment and is based on top-level flow reporting. The [Recommendations](#recommendations) section of this tab provides actionable insights to your automation estate. You can prioritize and address the most important issues and recommendations, based on their potential impact. - | Visual | Description | | --- | --- | | **Recommendations** | List of automation health, compliance, best practice insights, and actionable recommendations. | -### Activity +### Activity + | Visual | Description | | --- | --- | | **Top-level flows** | Number of top-level flows that had one or more runs based on selected filters. Gives an overall automation health indication and helps identify which top-level runs are failing the most. | @@ -79,14 +78,14 @@ This tab provides an end-to-end automation health view within the environment an The recommendations section offers both proactive and reactive insights, along with suggestions concerning various elements of your automation landscape. Suggestions might include addressing sudden automation failures, work queues at risk of not meeting their service level agreement (SLA) targets, and unused machines or machine groups in the environment. These recommendations can help you identify areas for improvement and take appropriate action based on their effect. For more information, see [automation center recommendations](automation-center-recommendations.md). -## Copilot +## Copilot Copilot is designed to assist with the analysis of automation activity, work queue performance, and to provide answers to common questions about Power Automate capabilities (generative answers). For example, users can ask about the number of flows that ran yesterday, which queue items are put on hold, or how to analyze activity with Copilot. In response, Copilot generates outputs that provide insights and answers to the questions asked. For more information, see [Use Copilot to analyze automation activity and ask product questions](automation-center-copilot.md). > [!IMPORTANT] > > - This capability is powered by [Azure OpenAI Service](/azure/cognitive-services/openai/overview). -> - Copilot is a new technology that is still being developed. It is optimized for use with English language and has limited support with other languages. As such, parts of it might appear in English rather than your preferred language. +> - Copilot is a new technology that is still being developed. It's optimized for use with English language and has limited support with other languages. As such, parts of it might appear in English rather than your preferred language. > - Read the [responsible AI FAQs for Copilot in automation center](faqs-copilot-automation-center.md) to learn more about this new copilot experience. ## Runs tab @@ -114,7 +113,7 @@ This tab provides metrics to monitor the health status of work queue items, incl | **Top work queues by error frequency** | Shows the top five work queues with the highest number of items in error state. | > [!NOTE] -> If you filter work queue items by a specific item status, such as "Business exception," any matching item that has already expired won't be considered in the results. This is due to the fact that expired items are deemed unprocessable unless their expiration date is extended first, which takes precedence over lower-level exception type searches. +> If you filter work queue items by a specific item status, such as "Business exception," any matching item that has already expired isn't considered in the results. This is because expired items are deemed unprocessable unless their expiration date is extended first, which takes precedence over lower-level exception type searches. ## Known limitations diff --git a/articles/desktop-flows/use-copilot-to-analyze-desktopflow-activity.md b/articles/desktop-flows/use-copilot-to-analyze-desktopflow-activity.md index 6fde5650b..2b5feef74 100644 --- a/articles/desktop-flows/use-copilot-to-analyze-desktopflow-activity.md +++ b/articles/desktop-flows/use-copilot-to-analyze-desktopflow-activity.md @@ -1,8 +1,8 @@ --- title: Use copilot to analyze desktop flow activity -description: Use copilot to analyze flow runs, errors, machines and more by asking questions in natural language. +description: Use copilot to analyze flow runs, errors, machines, and more by asking questions in natural language. ms.topic: conceptual -ms.date: 08/29/2024 +ms.date: 01/21/2025 ms.author: appapaio ms.reviewer: contributors: @@ -18,11 +18,10 @@ search.audienceType: [This article is prerelease documentation and is subject to change.] -Understanding automation performance is key to achieving operational excellence and reliability goals, regardless of the size of the automation estate, team or role within the organization. To reach those goals requires advanced and dynamic monitoring capabilities that provide you with valuable insights that highlight areas of success and identify potential bottlenecks, trends and areas for improvement. Having more detailed insights allows you to make informed decisions that optimize your automation processes, leading to increased efficiency and effectiveness. +Understanding automation performance is key to achieving operational excellence and reliability goals, regardless of the size of the automation estate, team, or role within the organization. To reach those goals requires advanced and dynamic monitoring capabilities that provide you with valuable insights that highlight areas of success and identify potential bottlenecks, trends and areas for improvement. Having more detailed insights allows you to make informed decisions that optimize your automation processes, leading to increased efficiency and effectiveness. :::image type="content" source="media/analyze-automation-activity-copilot/copilot-overview.png" alt-text="Screenshot of a copilot experience as part of desktop flow activity page." lightbox="media/analyze-automation-activity-copilot/copilot-overview.png"::: - The latest advancements in AI provide us with unprecedented opportunities to explore new automation health monitoring use-cases that could include anything from simple data exploration to anomaly detection, smart recommendations, and even self-healing bots. With copilot now able to analyze desktop flow activity we're taking the first step in a new direction, allowing you to democratize access to insights by asking copilot desktop flow activity-specific questions using natural language. @@ -30,7 +29,7 @@ With copilot now able to analyze desktop flow activity we're taking the first st > [!IMPORTANT] > > - This capability is powered by [Azure OpenAI Service](/azure/cognitive-services/openai/overview). -> - Copilot is a new technology that is still being developed. It is optimized for use with English language and has limited support with other languages. As such, parts of it might appear in English rather than your preferred language. +> - Copilot is a new technology that is still being developed. It's optimized for use with English language and has limited support with other languages. As such, parts of it might appear in English rather than your preferred language. > - Read the [responsible AI FAQs for copilot in desktop flow activity](../faqs-copilot-automation-activity.md) to learn more about this new copilot experience. > - More FAQs: [Responsible AI FAQs for Power Automate](../responsible-ai-overview.md),[FAQ for copilot data security and privacy in Microsoft Power Platform](/power-platform/faqs-copilot-data-security-privacy) @@ -41,17 +40,17 @@ With copilot now able to analyze desktop flow activity we're taking the first st ## How does it work? -This copilot experience is powered by the [Azure Open AI](/azure/ai-services/openai/overview) service and is capable of translating user prompts into valid [Dataverse FetchXML queries](#what-are-fetchxml-queries). Initially, these queries are focused on and optimized for desktop flow activity, such as runs, flows, errors, and machines. +This copilot experience is powered by the [Azure OpenAI](/azure/ai-services/openai/overview) service and is capable of translating user prompts into valid [Dataverse FetchXML queries](#what-are-fetchxml-queries). Initially, these queries are focused on and optimized for desktop flow activity, such as runs, flows, errors, and machines. ### High-level process 1. Once the user inputs a valid prompt, copilot generates a valid [FetchXML](#what-are-fetchxml-queries) query based on the input. -2. If the generated FetchXML is valid, the query is then executed against the Dataverse backend under the current user's security context to retrieve matching data. This ensures that users only see data that they're already authorized to access. -3. Copilot then determines the most suitable output visualization, such as a table, pie chart, bar chart, or line chart, to effectively present the insights and data to the user. +1. If the generated FetchXML is valid, the query is then executed against the Dataverse backend under the current user's security context to retrieve matching data. This ensures that users only see data that they're already authorized to access. +1. Copilot then determines the most suitable output visualization, such as a table, pie chart, bar chart, or line chart, to effectively present the insights and data to the user. ### What are FetchXML queries? -Microsoft Dataverse [FetchXML](/power-apps/developer/data-platform/use-fetchxml-construct-query) is a language used for retrieving data from a Dataverse database. It's designed to be easy to create, use and understand. For example, you might want to ask Dataverse to give you a list of all flow runs for a specific flow. The FetchXML query is the way you phrase that question so the database understands it and can give you the right results. +Microsoft Dataverse [FetchXML](/power-apps/developer/data-platform/use-fetchxml-construct-query) is a language used for retrieving data from a Dataverse database. It's designed to be easy to create, use, and understand. For example, you might want to ask Dataverse to give you a list of all flow runs for a specific flow. The FetchXML query is the way you phrase that question so the database understands it and can give you the right results. ## Prompting best-practices @@ -92,7 +91,7 @@ Examples of prompts that can be used as starter prompt for your own use-cases ar In the context of AI, *multi-turn* prompts allow you to have an ongoing conversation with the copilot, where it remembers the context of the previous messages in the conversation. It's not just answering one-off questions; it's engaging in a dialogue with you, where each response is based on what's been said before. > [!NOTE] -> When engaging in a multi-turn conversations, note that copilot keeps track of the five most recent questions only. This means that copilot starts clearing the prompts that were entered first and only keeps the latest five. To improve response quality, we suggest limiting your follow-up questions to four and then restart the chat. More information: [Clearing previous prompt context to start over](#clearing-previous-prompt-context-to-start-over). +> When engaging in a multi-turn conversation, copilot keeps track of the five most recent questions only. This means that copilot starts clearing the prompts that were entered first and only keeps the latest five. To improve response quality, we suggest limiting your follow-up questions to four and then restart the chat. More information: [Clearing previous prompt context to start over](#clearing-previous-prompt-context-to-start-over). #### Example @@ -179,11 +178,11 @@ This table shows default responses that are returned when the copilot is unable | **Copilot reply** | **Details** |-------------------------|-------------------------| | *Sorry, something went wrong. Please try again.* | Indicates that an unexpected error occurred. Rephrase your question and try again. | -| *Sorry, I couldn’t understand your question. Please rephrase it and try again. I’m able to answer questions that are about the data on this page. For more examples of prompts that you can ask the copilot, you can visit the [prompt example section](#prompt-examples) on our [documentation page](#use-copilot-to-analyze-desktop-flow-activity-preview).* | Indicates that your question couldn't be translated into a valid FetchXML query. Rephrase your question and try again. | +| *Sorry, I couldn’t understand your question. Please rephrase it and try again. I’m able to answer questions that are about the data on this page. For more examples of prompts that you can ask the copilot, you can visit the [prompt example section](#prompt-examples) on our [documentation page](#use-copilot-to-analyze-desktop-flow-activity).* | Indicates that your question couldn't be translated into a valid FetchXML query. Rephrase your question and try again. | | *Sorry, Copilot is at capacity and temporarily unavailable — please try again in a little while.* | Indicates there are resource constraints on the backend. Retry your question after a short time. | | *Sorry, your message contains potentially harmful content. Please ensure your input is appropriate and try again.* | Indicates that your question might include potentially harmful content and has been blocked by the backend service. Remove any potentially harmful content from your question and try again. | -| *Sorry, I was not able to generate a valid answer based on your question. Please rephrase it and try again. I’m able to answer questions that are about the data on this page. For more examples of prompts that you can ask the copilot, you can visit the [prompt example section](#prompt-examples) on our [documentation page](#use-copilot-to-analyze-desktop-flow-activity-preview).* | Indicates that the generated FetchXML is invalid or that the query failed when copilot tried to execute it. Rephrase your question and try again. | -| *Sorry, your search includes too many results. Please refine your query and try again. For examples on how to limit search results returned by the copilot, visit our [documentation page](#use-copilot-to-analyze-desktop-flow-activity-preview).* | Indicates that the filter(s) applied to your query exceed current aggregation [limits in FetchXML](/power-apps/developer/data-platform/use-fetchxml-aggregation#limitations). Add more appropriate filters such as asking for *yesterday's* or *last month's* data to your query to ensure that it returns data within those limits. | +| *Sorry, I was not able to generate a valid answer based on your question. Please rephrase it and try again. I’m able to answer questions that are about the data on this page. For more examples of prompts that you can ask the copilot, you can visit the [prompt example section](#prompt-examples) on our [documentation page](#use-copilot-to-analyze-desktop-flow-activity).* | Indicates that the generated FetchXML is invalid or that the query failed when copilot tried to execute it. Rephrase your question and try again. | +| *Sorry, your search includes too many results. Please refine your query and try again. For examples on how to limit search results returned by the copilot, visit our [documentation page](#use-copilot-to-analyze-desktop-flow-activity).* | Indicates that the filter(s) applied to your query exceed current aggregation [limits in FetchXML](/power-apps/developer/data-platform/use-fetchxml-aggregation#limitations). Add more appropriate filters such as asking for *yesterday's* or *last month's* data to your query to ensure that it returns data within those limits. | ## Known issues and limitations @@ -205,4 +204,3 @@ The following list contains known limitations of the copilot in desktop flow act - [FAQ for Copilot data security and privacy in Microsoft Power Platform](/power-platform/faqs-copilot-data-security-privacy) [!INCLUDE[footer-include](../includes/footer-banner.md)] - diff --git a/articles/faqs-copilot-automation-activity.md b/articles/faqs-copilot-automation-activity.md index 7bfe3b73a..30f41847c 100644 --- a/articles/faqs-copilot-automation-activity.md +++ b/articles/faqs-copilot-automation-activity.md @@ -1,7 +1,7 @@ --- title: FAQ for Copilot in desktop flow activity description: This FAQ discusses Copilot used in desktop flow activity and the key considerations for making use of this technology responsibly. -ms.date: 09/10/2024 +ms.date: 01/21/2025 ms.custom: - responsible-ai-faqs ms.topic: article @@ -13,7 +13,8 @@ contributors: ms.collection: bap-ai-copilot --- -# FAQ for Copilot in desktop flow activity +# FAQ for Copilot in desktop flow activity + Copilot in desktop flow activity enables administrators, CoE teams, business users, and makers to easily retrieve information about past flow runs by asking questions in natural language. For example, users can ask about the number of flows that ran yesterday, which machine ran the most flows, or how many flows are currently queued. In response, Copilot generates outputs that provide insights and answers to the questions asked. ## What can Copilot in desktop flow activity do? @@ -39,7 +40,7 @@ Effective and responsible use of Copilot in desktop flow activity can be achieve ## Related information - [Use Copilot to analyze desktop flow activity](./desktop-flows/use-copilot-to-analyze-desktopflow-activity.md) -- [Get started with Copilot in cloud flows (preview)](get-started-with-copilot.md) +- [Get started with Copilot in cloud flows](get-started-with-copilot.md) - [FAQ for Copilot in cloud flows](faqs-copilot.md) - [FAQ for Copilot in Power Automate Process Mining](faqs-copilot-in-process-mining.md) - [FAQ for Copilot data security and privacy in Microsoft Power Platform](/power-platform/faqs-copilot-data-security-privacy) diff --git a/articles/faqs-copilot-automation-center.md b/articles/faqs-copilot-automation-center.md index 7c02f3ae7..9c7b914ef 100644 --- a/articles/faqs-copilot-automation-center.md +++ b/articles/faqs-copilot-automation-center.md @@ -1,7 +1,7 @@ --- title: FAQ for Copilot in automation center description: This FAQ discusses Copilot in automation center and the key considerations for making use of this technology responsibly. -ms.date: 09/10/2024 +ms.date: 01/21/2025 ms.custom: - responsible-ai-faqs ms.topic: article @@ -13,7 +13,7 @@ contributors: ms.collection: bap-ai-copilot --- -# FAQ for Copilot in automation center +# FAQ for Copilot in automation center Copilot in automation center enables makers, business analysts, and members of the CoE team to easily retrieve information about past flow runs, work queue performance, and general Power Automate product features (referred to as generative answers) by asking questions in natural language. For example, users can ask about the number of flows that ran yesterday, which machine ran the most flows, or how many flows are currently queued. In response, Copilot generates outputs that provide insights and answers to the questions asked. @@ -67,7 +67,7 @@ One of the limitations of Copilot in automation center is that it currently only - [Use Copilot in automation center](automation-center-copilot.md) - [Use Copilot to analyze desktop flow activity](./desktop-flows/use-copilot-to-analyze-desktopflow-activity.md) -- [Get started with Copilot in cloud flows (preview)](get-started-with-copilot.md) +- [Get started with Copilot in cloud flows](get-started-with-copilot.md) - [FAQ for Copilot in cloud flows](faqs-copilot.md) - [FAQ for Copilot in Power Automate Process Mining](faqs-copilot-in-process-mining.md) - [FAQ for Copilot data security and privacy in Microsoft Power Platform](/power-platform/faqs-copilot-data-security-privacy) From 7a41c9cc5067e7421aec00d16a789af0e3457847 Mon Sep 17 00:00:00 2001 From: DanaMartens Date: Tue, 21 Jan 2025 17:26:46 -0600 Subject: [PATCH 18/24] fix link --- articles/copilot-overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/articles/copilot-overview.md b/articles/copilot-overview.md index b152d58f3..193352bfd 100644 --- a/articles/copilot-overview.md +++ b/articles/copilot-overview.md @@ -51,8 +51,8 @@ Copilot in desktop flows allows you to analyze desktop flow activity. With this Copilot in automation center enables makers, business analysts, and members of the Center of Excellence team to easily retrieve information about past flow runs, work queue performance, and general product features. You can get this information by asking questions in natural language. -- [Copilot](automation-center-overview.md#copilot-preview) -- [Use Copilot to analyze automation activity and ask product questions (preview)](automation-center-copilot.md) +- [Copilot](automation-center-overview.md#copilot) +- [Use Copilot to analyze automation activity and ask product questions](automation-center-copilot.md) ## Enable or disable Copilot in Power Automate From 3a9f71abba3c9a2b9c477c97274d229f79f1f93a Mon Sep 17 00:00:00 2001 From: Yiannis Mavridis <99273971+yiannismavridis@users.noreply.github.com> Date: Wed, 22 Jan 2025 18:37:37 +0200 Subject: [PATCH 19/24] Update copilot-in-power-automate-for-desktop.md --- articles/desktop-flows/copilot-in-power-automate-for-desktop.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/articles/desktop-flows/copilot-in-power-automate-for-desktop.md b/articles/desktop-flows/copilot-in-power-automate-for-desktop.md index cf9b79001..7ab045772 100644 --- a/articles/desktop-flows/copilot-in-power-automate-for-desktop.md +++ b/articles/desktop-flows/copilot-in-power-automate-for-desktop.md @@ -110,7 +110,7 @@ From Copilot’s side panel, make sure the generative answers skill is selected In the Copilot pane, ask any product related questions or use one of the proposed prompts to get you started. The answer generated contains a link to the documentation page to refer you to additional information. Make sure you always review AI-generated content. -## Use Copilot to summarize actions and subflows +## Use Copilot to summarize actions and subflows (preview) The Summarize actions & subflows Copilot skill helps you quickly understand desktop flows by generating concise summaries for specific actions, multiple actions, or entire subflows. This skill lets you troubleshoot and maintain flows more efficiently, saving time and simplifying the process of understanding and optimizing your automation. From d1b8fcadac81418d89acd607d99b58e21d08b76e Mon Sep 17 00:00:00 2001 From: DanaMartens Date: Wed, 22 Jan 2025 10:49:47 -0600 Subject: [PATCH 20/24] TOC update --- articles/TOC.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/articles/TOC.yml b/articles/TOC.yml index 7d19cc800..feeb5382b 100644 --- a/articles/TOC.yml +++ b/articles/TOC.yml @@ -443,10 +443,10 @@ href: ./desktop-flows/create-azurekeyvault-credential.md - name: CyberArk credentials href: ./desktop-flows/create-cyberark-credential.md - - name: Machine mapping (preview) - href: ./desktop-flows/create-machine-mapping.md - name: Certificate-based authentication (preview) href: ./desktop-flows/configure-certificate-based-auth.md + - name: Machine mapping (preview) + href: ./desktop-flows/create-machine-mapping.md - name: Create desktop flow connections href: ./desktop-flows/desktop-flow-connections.md - name: Allowlist tenants for connect with sign-in connections From b7703651dea7bd32c1a0b97e3873687ba6c3a8b8 Mon Sep 17 00:00:00 2001 From: DanaMartens Date: Wed, 22 Jan 2025 11:11:33 -0600 Subject: [PATCH 21/24] update preview note about regions --- articles/automation-center-overview.md | 2 +- articles/desktop-flows/create-machine-mapping.md | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/articles/automation-center-overview.md b/articles/automation-center-overview.md index ffb9da384..ebecad910 100644 --- a/articles/automation-center-overview.md +++ b/articles/automation-center-overview.md @@ -90,7 +90,7 @@ Copilot is designed to assist with the analysis of automation activity, work que ## Runs tab -This tab presents a consolidated view of cloud and desktop flow run data displayed in a hierarchical list view. The data is organized based on top-level flows. If a cloud flow has one or more child flows (supporting both cloud and desktop children). This view is useful in scenarios where individual flow session runs succeeded, but other dependent runs failed, ultimately resulting in the top-level flow's failure. By displaying these runs in connection to their parent, we're enhancing automation monitoring and efficient root cause analysis of exceptions. +This tab presents a consolidated view of cloud and desktop flow run data displayed in a hierarchical list view. The data is organized based on top-level flows. This view is useful in scenarios where individual flow session runs succeeded, but other dependent runs failed, ultimately resulting in the top-level flow's failure. By displaying these runs in connection to their parent, we're enhancing automation monitoring and efficient root cause analysis of exceptions. ## Work queues tab diff --git a/articles/desktop-flows/create-machine-mapping.md b/articles/desktop-flows/create-machine-mapping.md index 5d065d9df..537dc79e1 100644 --- a/articles/desktop-flows/create-machine-mapping.md +++ b/articles/desktop-flows/create-machine-mapping.md @@ -24,7 +24,11 @@ ms.custom: This feature lets you map user account credentials to your robotic process automation (RPA) machines. -[!INCLUDE [preview-note](~/../shared-content/shared/preview-includes/preview-note-pp.md)] +> [!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 feature is gradually rolling out across regions and might not be available in your region. ## How a machine mapping works From f0ca849071889d0e7fde8885da03850a620434d8 Mon Sep 17 00:00:00 2001 From: Yiannis Mavridis <99273971+yiannismavridis@users.noreply.github.com> Date: Wed, 22 Jan 2025 19:24:14 +0200 Subject: [PATCH 22/24] Fix typo in 'Run desktop flow' action --- articles/desktop-flows/actions-reference/runflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/articles/desktop-flows/actions-reference/runflow.md b/articles/desktop-flows/actions-reference/runflow.md index fb8f70198..922fbdb4e 100644 --- a/articles/desktop-flows/actions-reference/runflow.md +++ b/articles/desktop-flows/actions-reference/runflow.md @@ -25,7 +25,7 @@ You can disable the toggle property 'Wait for flow to complete', which is enable >[!IMPORTANT] > > - Only one parallel flow can run at this time. If a second child flow runs in parallel, an error occurs during runtime. -> - If a child flow runs in parallel, its output variables are ignored. The variables produced from the 'Run desktop flow' actions aren't shown in the action modal. +> - If a child flow runs in parallel, its output variables are ignored. The variables produced from the 'Run desktop flow' action aren't shown in the action modal. > - Child flows can't run another child flow in parallel. A parallel flow run is allowed only if invoked directly from the parent (root) flow. To find more information about how to use the **Run desktop flow** action, go to [Run desktop flow from other desktop flows](../how-to/run-desktop-flow-action.md). From c08e52df8c46d4a18bd3f0134a23d551bd6ec07f Mon Sep 17 00:00:00 2001 From: Yiannis Mavridis <99273971+yiannismavridis@users.noreply.github.com> Date: Wed, 22 Jan 2025 20:12:39 +0200 Subject: [PATCH 23/24] Update troubleshooter.md --- articles/desktop-flows/troubleshooter.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/articles/desktop-flows/troubleshooter.md b/articles/desktop-flows/troubleshooter.md index 49e8b4b03..34e84e30c 100644 --- a/articles/desktop-flows/troubleshooter.md +++ b/articles/desktop-flows/troubleshooter.md @@ -4,7 +4,7 @@ description: Troubleshooter application for Power Automate for desktop. author: YiannisMavridis ms.subservice: desktop-flow ms.topic: troubleshooting -ms.date: 08/27/2024 +ms.date: 01/22/2025 ms.author: iomavrid ms.reviewer: matp contributors: @@ -25,9 +25,11 @@ The troubleshooter in Power Automate for desktop is a component that allows you The troubleshooter includes four categories of diagnostics: * connectivity +* Dataverse * UI/Web automation * picture-in-picture * installation issues +* connectivity for cloud runtime The troubleshooter also hosts the functionality that puts Power Automate in an improved diagnostics state for troubleshooting purposes. @@ -72,6 +74,14 @@ After a category is checked for issues end to end, there’s always the option t :::image type="content" source="media/troubleshooter/error-dialog-with-troubleshooter-link.png" alt-text="Connection error detected dialog with troubleshooter link" border="false"::: +## Dataverse issues + +This category detects potential issues around Dataverse that may affect Power Automate for desktop: + +* **Provisioning**: This step checks if the user can have a Dataverse database provisioned in the selected environment. +* **Permissions**: This step check if the user has the required permissions to access the selected environment. +* **Required endpoints**: This step checks whether the required endpoints for the respective policies are normally accessible. + ## Installation issues This category diagnoses and troubleshoots potential issues around four different installation types that might be associated to Power Automate for desktop: From fef07f52db3c6bca5c2fc6d6622924eef978882f Mon Sep 17 00:00:00 2001 From: DanaMartens Date: Wed, 22 Jan 2025 12:48:03 -0600 Subject: [PATCH 24/24] small changes --- articles/desktop-flows/troubleshooter.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/articles/desktop-flows/troubleshooter.md b/articles/desktop-flows/troubleshooter.md index 34e84e30c..f8ce7b004 100644 --- a/articles/desktop-flows/troubleshooter.md +++ b/articles/desktop-flows/troubleshooter.md @@ -22,7 +22,7 @@ The troubleshooter in Power Automate for desktop is a component that allows you :::image type="content" source="media/troubleshooter/troubleshooter-window-four-categories.png" alt-text="Troubleshooter main screen" border="false"::: -The troubleshooter includes four categories of diagnostics: +The troubleshooter includes six categories of diagnostics: * connectivity * Dataverse @@ -76,11 +76,11 @@ After a category is checked for issues end to end, there’s always the option t ## Dataverse issues -This category detects potential issues around Dataverse that may affect Power Automate for desktop: +This category detects potential issues around Dataverse that might affect Power Automate for desktop: -* **Provisioning**: This step checks if the user can have a Dataverse database provisioned in the selected environment. -* **Permissions**: This step check if the user has the required permissions to access the selected environment. -* **Required endpoints**: This step checks whether the required endpoints for the respective policies are normally accessible. +* **Provisioning**: This step checks whether the user can provision a Dataverse database in the selected environment. +* **Permissions**: This step checks whether the user has the required permissions to access the selected environment. +* **Required endpoints**: This step checks whether the required endpoints for the respective policies are accessible. ## Installation issues