Please enable JavaScript.
Coggle requires JavaScript to display documents.
Actions and concepts in Power Automate, (Apply to each, Do until, Switch,…
-
- Purpose: This action is used to loop through each individual item within an array. An array is like a list of items (e.g., results from a "List rows" action in Dataverse).
- When to Use: Whenever you need to process multiple records or items that come from a list.
- 💡 Tip to Remember: "Apply logic to EACH row."
- Purpose: This action creates a loop that repeats actions until a specified condition becomes true.
- When to Use: When you need a loop that continues executing steps but has a clear break condition based on data or state.
- 💡 Tip to Remember: "DO it UNTIL it’s done."
- Purpose: This action branches your flow's logic based on matching different possible values of a single variable or expression (similar to a switch-case statement in programming).
- When to Use: When you want to handle multiple distinct outcomes or values that a single variable might have, guiding the flow down different paths accordingly.
- 💡 Tip to Remember: "Switch case based on value."
- Purpose: This is the classic If-else branching action, allowing your flow to take one path if a condition is true, and another if it's false.
- When to Use: When you're checking a simple Yes/No scenario, comparing statuses, or evaluating if specific values are met.
- 💡 Tip to Remember: "IF something THEN do X."
- Purpose: This action groups a set of related actions logically within your flow. It's a visual container.
- When to Use: For better organization, visual clarity, and error handling (you can configure error handling at the Scope level).
- 💡 Tip to Remember: "SCOPE = Section (Group)."
- Purpose: This action allows you to end a flow run immediately. You can set its status (succeeded, failed, canceled).
- When to Use: When a certain condition means the flow should stop early, either successfully or due to an error that doesn't require further actions.
- 💡 Tip to Remember: "TERMINATE = End Now."
- Purpose: This advanced setting on an action controls whether that action runs based on the result of the previous action (e.g., "run only if previous succeeded," "run if previous has failed," "run if previous skipped").
- When to Use: When managing specific failure, success, or skip logic within your flow to build robust error handling paths.
- 💡 Tip to Remember: "RUN AFTER result check."
- Purpose: This action creates a new variable in your flow and assigns it a specific data type (e.g., String, Integer, Boolean, Array, Object) before it can be used.
- When to Use: Always use this as the very first step before you attempt to read from or set the value of a new variable.
- 💡 Tip to Remember: "Init = Start."
- Purpose: This action changes the value of a variable that has already been initialized.
- When to Use: Inside loops, conditions, or any point in the flow where you need to update a variable's content.
- 💡 Tip to Remember: "Set = Change."
- Purpose: This action increases a numeric variable's value by a specific amount (default is 1).
- When to Use: Commonly used in counters within loops or to track progress.
- 💡 Tip to Remember: "++ like coding."
- Purpose: This action decreases a numeric variable's value by a specific amount (default is 1).
- When to Use: For countdowns or controlling loops where you need to reduce a value.
- 💡 Tip to Remember: "-- like coding."
- Purpose: This action allows you to store a static value, evaluate an expression, or combine dynamic content without causing side effects. It's often used as a temporary holding place for data you're building.
- When to Use: To hold interim values, merge strings (e.g., building a dynamic email subject), or construct dynamic content before using it in another action.
- 💡 Tip to Remember: "Compose = Combine."
- Purpose: This action combines an array (list) of strings into a single string, using a specified separator.
- When to Use: For example, when you have a list of email addresses in an array and you want to join them into a single string separated by commas for the "To" field of an email.
- 💡 Tip to Remember: "JOIN with commas."
- Purpose: This action transforms or reshapes an array of objects. You can pick specific fields, rename them, or project data into a new structure.
- When to Use: After you get a list of rows (e.g., from "List rows" in Dataverse) and you only need a subset of their columns, or you want to rename columns for easier use in later actions.
- 💡 Tip to Remember: "SELECT fields like SQL."
- Purpose: This action filters an array (list) of items based on a specified condition.
- When to Use: To reduce a list to only the items that match your criteria before further processing.
- 💡 Tip to Remember: "FILTER before use."
- Purpose: This action converts an array of objects into a formatted CSV (Comma Separated Values) table.
- When to Use: Useful before sending tabular data by email, saving it to a file, or preparing it for export to another system.
- 💡 Tip to Remember: "CSV for files/emails."
- Purpose: This action converts an array of objects into a formatted HTML table.
- When to Use: For including nicely formatted tabular data directly within the body of an HTML email.
- 💡 Tip to Remember: "HTML for emails."
- Purpose: This action is used to loop through each individual item within an array. An array is like a list of items (e.g., results from a "List rows" action in Dataverse).
- When to Use: Whenever you need to process multiple records or items that come from a list.
- 💡 Tip to Remember: "Apply logic to EACH row."
- Purpose: This action creates a loop that repeats actions until a specified condition becomes true.
- When to Use: When you need a loop that continues executing steps but has a clear break condition based on data or state.
- 💡 Tip to Remember: "DO it UNTIL it’s done."
- Purpose: This action branches your flow's logic based on matching different possible values of a single variable or expression (similar to a switch-case statement in programming).
- When to Use: When you want to handle multiple distinct outcomes or values that a single variable might have, guiding the flow down different paths accordingly.
- 💡 Tip to Remember: "Switch case based on value."
- Purpose: This is the classic If-else branching action, allowing your flow to take one path if a condition is true, and another if it's false.
- When to Use: When you're checking a simple Yes/No scenario, comparing statuses, or evaluating if specific values are met.
- 💡 Tip to Remember: "IF something THEN do X."
- Purpose: This action groups a set of related actions logically within your flow. It's a visual container.
- When to Use: For better organization, visual clarity, and error handling (you can configure error handling at the Scope level).
- 💡 Tip to Remember: "SCOPE = Section (Group)."
- Purpose: This action allows you to end a flow run immediately. You can set its status (succeeded, failed, canceled).
- When to Use: When a certain condition means the flow should stop early, either successfully or due to an error that doesn't require further actions.
- 💡 Tip to Remember: "TERMINATE = End Now."
- Purpose: This advanced setting on an action controls whether that action runs based on the result of the previous action (e.g., "run only if previous succeeded," "run if previous has failed," "run if previous skipped").
- When to Use: When managing specific failure, success, or skip logic within your flow to build robust error handling paths.
- 💡 Tip to Remember: "RUN AFTER result check."
- Purpose: This action creates a new variable in your flow and assigns it a specific data type (e.g., String, Integer, Boolean, Array, Object) before it can be used.
- When to Use: Always use this as the very first step before you attempt to read from or set the value of a new variable.
- 💡 Tip to Remember: "Init = Start."
- Purpose: This action changes the value of a variable that has already been initialized.
- When to Use: Inside loops, conditions, or any point in the flow where you need to update a variable's content.
- 💡 Tip to Remember: "Set = Change."
- Purpose: This action increases a numeric variable's value by a specific amount (default is 1).
- When to Use: Commonly used in counters within loops or to track progress.
- 💡 Tip to Remember: "++ like coding."
- Purpose: This action decreases a numeric variable's value by a specific amount (default is 1).
- When to Use: For countdowns or controlling loops where you need to reduce a value.
- 💡 Tip to Remember: "-- like coding."
- Purpose: This action allows you to store a static value, evaluate an expression, or combine dynamic content without causing side effects. It's often used as a temporary holding place for data you're building.
- When to Use: To hold interim values, merge strings (e.g., building a dynamic email subject), or construct dynamic content before using it in another action.
- 💡 Tip to Remember: "Compose = Combine."
- Purpose: This action combines an array (list) of strings into a single string, using a specified separator.
- When to Use: For example, when you have a list of email addresses in an array and you want to join them into a single string separated by commas for the "To" field of an email.
- 💡 Tip to Remember: "JOIN with commas."
- Purpose: This action transforms or reshapes an array of objects. You can pick specific fields, rename them, or project data into a new structure.
- When to Use: After you get a list of rows (e.g., from "List rows" in Dataverse) and you only need a subset of their columns, or you want to rename columns for easier use in later actions.
- 💡 Tip to Remember: "SELECT fields like SQL."
- Purpose: This action filters an array (list) of items based on a specified condition.
- When to Use: To reduce a list to only the items that match your criteria before further processing.
- 💡 Tip to Remember: "FILTER before use."
- Purpose: This action converts an array of objects into a formatted CSV (Comma Separated Values) table.
- When to Use: Useful before sending tabular data by email, saving it to a file, or preparing it for export to another system.
- 💡 Tip to Remember: "CSV for files/emails."
- Purpose: This action converts an array of objects into a formatted HTML table.
- When to Use: For including nicely formatted tabular data directly within the body of an HTML email.
- 💡 Tip to Remember: "HTML for emails."
- Purpose: Concatenates (joins) multiple strings or arrays together.
-
- Purpose: Gets the number of items in an array or the number of characters in a string.
-
- Purpose: Compares two values to see if they are the same.
-
- Purpose: Checks if a string or array contains a specific value or substring.
- 💡 Tip: "Like IN keyword."
- Purpose: Formats a date/time value into a readable string with a specified format.
-
- Purpose: Returns the first non-null (or non-empty) value from a list of inputs.
-
- Purpose: Breaks a string into an array of substrings based on a specified delimiter (e.g., splitting a sentence into words).
- 💡 Tip: "Break string into pieces."
- Purpose: Retrieves multiple rows (records) from a Dataverse table based on filters or queries.
- 💡 Tip: "Get all (filtered) contacts/products etc."
- Purpose: Retrieves a single record from Dataverse using its unique GUID (Globally Unique Identifier).
- 💡 Tip: "Fetch one item by ID."
- Purpose: Adds a new record into a specified Dataverse table.
-
- Purpose: Modifies an existing record in a Dataverse table.
- 💡 Tip: "Change existing record."
- Purpose: Removes a record from a Dataverse table.
- 💡 Tip: "Remove record (with care!)."
- Relate rows / Unrelate rows
- Purpose: Handles the creation or removal of relationships between records in Dataverse (e.g., associating an opportunity with an account).
- 💡 Tip: "Link/Unlink related data. PL-200 exam often tests this."
- Purpose: Concatenates (joins) multiple strings or arrays together.
-
- Purpose: Gets the number of items in an array or the number of characters in a string.
-
- Purpose: Compares two values to see if they are the same.
-
- Purpose: Checks if a string or array contains a specific value or substring.
- 💡 Tip: "Like IN keyword."
- Purpose: Formats a date/time value into a readable string with a specified format.
-
- Purpose: Returns the first non-null (or non-empty) value from a list of inputs.
-
- Purpose: Breaks a string into an array of substrings based on a specified delimiter (e.g., splitting a sentence into words).
- 💡 Tip: "Break string into pieces."
- Purpose: Retrieves multiple rows (records) from a Dataverse table based on filters or queries.
- 💡 Tip: "Get all (filtered) contacts/products etc."
- Purpose: Retrieves a single record from Dataverse using its unique GUID (Globally Unique Identifier).
- 💡 Tip: "Fetch one item by ID."
- Purpose: Adds a new record into a specified Dataverse table.
-
- Purpose: Modifies an existing record in a Dataverse table.
- 💡 Tip: "Change existing record."
- Purpose: Removes a record from a Dataverse table.
- 💡 Tip: "Remove record (with care!)."
- Relate rows / Unrelate rows
- Purpose: Handles the creation or removal of relationships between records in Dataverse (e.g., associating an opportunity with an account).
- 💡 Tip: "Link/Unlink related data. PL-200 exam often tests this."
- Scenario: Process all results from a "List rows" action.
- Best Action(s): Use Apply to each.
- Scenario: Keep a count of rows processed or errors encountered.
- Best Action(s): Use Initialize variable (numeric) + Increment variable.
- Scenario: Build a full name string from separate "first name" and "last name" fields.
- Best Action(s): Use Compose action with the
concat() expression.
- Scenario: Send a formatted email containing data in a table.
- Best Action(s): Use Create HTML table action + Send an email (V2) action.
- Scenario: Check if a contact’s email address contains "@gmail.com".
- Best Action(s): Use a Condition action with the
contains() expression.
- Scenario: Convert an array of record data into a file for download.
- Best Action(s): Use Create CSV table action.
- Scenario: Process all results from a "List rows" action.
- Best Action(s): Use Apply to each.
- Scenario: Keep a count of rows processed or errors encountered.
- Best Action(s): Use Initialize variable (numeric) + Increment variable.
- Scenario: Build a full name string from separate "first name" and "last name" fields.
- Best Action(s): Use Compose action with the
concat() expression.
- Scenario: Send a formatted email containing data in a table.
- Best Action(s): Use Create HTML table action + Send an email (V2) action.
- Scenario: Check if a contact’s email address contains "@gmail.com".
- Best Action(s): Use a Condition action with the
contains() expression.
- Scenario: Convert an array of record data into a file for download.
- Best Action(s): Use Create CSV table action.
Here’s a comprehensive breakdown of commonly used actions and concepts in Power Automate, aligned with PL-200 topics, presented in a non-table format for better understanding and retention.
-
-
This guide covers key actions for looping, variables, data operations, expressions, and Dataverse interactions, along with tips for exam clarity.
-
-
-
-
-
-
-
-
- Loops: Always use
Apply to each for processing results from actions like List rows.
- Variables:
Initialize a variable first, then use Set, Increment, or Decrement to change its value.
- Concatenation: Use
Compose with concat() for multiple strings, or Join for combining arrays of strings.
- Branching: Use
Condition for simple If-else (Yes/No), or Switch for multiple possible values.
- Transforming Arrays: Use
Select to reshape or pick specific fields, and Filter array to trim down lists based on conditions.
- Creating Tables for Email: Use
Create HTML table for well-formatted tables directly in email bodies (versus CSV for attachments).
-
-
-
Here’s a comprehensive breakdown of commonly used actions and concepts in Power Automate, aligned with PL-200 topics, presented in a non-table format for better understanding and retention.
-
-
This guide covers key actions for looping, variables, data operations, expressions, and Dataverse interactions, along with tips for exam clarity.
-
-
-
-
-
-
-
-
- Loops: Always use
Apply to each for processing results from actions like List rows.
- Variables:
Initialize a variable first, then use Set, Increment, or Decrement to change its value.
- Concatenation: Use
Compose with concat() for multiple strings, or Join for combining arrays of strings.
- Branching: Use
Condition for simple If-else (Yes/No), or Switch for multiple possible values.
- Transforming Arrays: Use
Select to reshape or pick specific fields, and Filter array to trim down lists based on conditions.
- Creating Tables for Email: Use
Create HTML table for well-formatted tables directly in email bodies (versus CSV for attachments).
-
-
-
-
-
Picture a list of invoices. A flow pulls them with List rows. Inside Apply to each you send a reminder email for every invoice. Use it whenever your trigger/previous step outputs an array and you must touch every item.
-
A help‑desk ticket must stay “Pending” until the customer replies. In the loop you check status every hour, then exit when Status = Responded. Use when you can’t predict how many checks you need.
-
An order can be “New”, “Packed”, “Shipped”, or “Cancelled”. In one Switch block you handle four branches: send label, create manifest, email refund, etc. Use when one variable decides several distinct paths.
-
“If Total > $500 then require manager approval.” Classic yes/no branching; you’ll use it constantly.
-
You group five related steps that build a quote. Collapsing them in a Scope keeps the flow readable and lets you set run‑after for the whole bundle. Think “folder” inside your flow.
-
You start Counter = 0, then inside a loop increment it every time you find an overdue task. At the end you Set a flag “OverdueFound = true” if Counter > 0. Always initialize first.
-
You build concat(FirstName,' ',LastName) once, store it in Compose, and reuse it later without re‑typing the expression. Treat Compose as a scratch‑pad.
-
After getting an array of email addresses, you Join with “;” to make a distribution list string.
-
You reshape List‑rows output into { ID:id, Email:primaryemail } before passing to another system. Select = “projection” in SQL terms.
-
You keep only tasks where Priority = “High” before acting. Better to filter early and shorten looping time.
-
You turn an array of rows into an HTML table, drop it straight into the body of an email. Great for rich reporting.
-
Your trigger returns all Contacts in London. Remember to use Select columns and Filter rows to keep payload small.