Do Power Automate and SharePoint Work Well Together?
SharePoint and Power Automate offer a huge amount of potential for workplace automation when used in combination. SharePoint, a versatile platform for collaboration and information management, offers a rich canvas for organizations to manage documents, data, and processes. Power Automate, on the other hand, is as a powerful tool enabling users to create automated workflows between their favorite apps and services to synchronize files, get notifications, collect data, and more. Working together, they form a powerful duo that can automate routine tasks direct from your data, simplify complex processes, and drive productivity.
However, as organizations evolve and their Application Lifecycle Management (ALM) for Power Platform tools such as Power Automate matures, the need to run automated flows in various environments—such as development, test, and production—becomes critical.
The ability to launch Power Automate flows directly from a SharePoint list using the "Integrate" menu is a feature that many have come to rely on for its simplicity and directness. This integration is seamless within the "Default" Power Platform environment - providing a straightforward path for users to connect their SharePoint lists to automated workflows that perform tasks with minimal fuss.
It is especially useful (and the topic of this post) when you select a List item from a SharePoint list and want to perform an automated action instantly with the data (like send an email with the contents of the list in to a group, or trigger a folder creation process).
What happens If Your Flows Need to Move Beyond the Boundaries of the Default Environment?
As your organization grows and your processes become more complex, the necessity to manage and move flows across multiple environments—each serving a distinct purpose in the development and deployment cycle—becomes of greater importance.
This scenario poses a unique challenge: the straightforward integration of instant flows and specifically selected list items that is available in the 'Default' environment is not supported in non-Default environments. This is a known limitation of SharePoint.
(click here for the full article)
This blog post aims to give you an alternative. A method to maintain the ability to launch Power Automate flows that perhaps live in Production or a Test Environment directly from any List item in your SharePoint sites.
What's Needed To Run A Flow Directly From A Selected List Item In SharePoint?
You wont need any additional tools or services to do this (although I did enlist some help from ChatGPT to resolve an error I encountered. More on that as you read on)
What you will need is a willingness to experiment with JSON. If you are a non-developer, don't be put off by this. All you need is cut and paste and a few clicks of a mouse. It genuinely isn't too complex.
What you see below is what we use in our Collab365 Events Solution to automate most of the process we need. All from the submission of a Form.
First up, lets set out the broad method:
Step 1: Add a column or more to your list where you will surface a button. This button will trigger your flow when pressed for the item you are pressing the button for.
Step 2: Make the button look a little appealing so people don't go hunting for the Integrate menu.
Step 3: Hook your Button to your flow. There are 2 ways. 1) if you have moved a flow manually to a new environment. 2) If you use Solutions. We will cover both.
Note: You are not going to be removing the Integrate menu per-se. You are just giving the option to do exactly the same process but from a button instead of a finding the flow in a drop down menu called Integrate for each item.
Join 11,000+ in the Collab365 Academy
Master Microsoft 365, Power Apps, Power Automate, Power BI, SharePoint with Exclusive Access to 450+ Hours of Expert Training and a Wealth of Resources!
Create A Column In The SharePoint List You Want to Automate
First up, create the columns to house the actions relating to your flow. Here I have created 2 because I want to either "Approve" or "Reject" an event submission.
After clicking the "+" Icon highlighted above, I created my columns as Calculated Columns because using this type means that if someone goes to Edit a row in a SharePoint list, this column will NOT appear. Therefore they will not edit what we are about to configure by mistake.
Add The Column Formatting To Generate a Button
This is where a little JSON is going to be used. Don't worry however, you can get this from plenty of examples out there. Or you can ask ChatGPT/Copilot to create it for you). The prompt we used was
"create the JSON for a button to be embedded in a SharePoint List Column and make sure the button calls a Power Automate flow."
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "button",
"customRowAction": {
"action": "executeFlow",
"actionParams": "{\"id\":\"v1/ddadabc3-74e7-e647-a887-d54bebea26a6/16946751-28fa-4c6f-8200- c57896d29a9c\"}"
},
"attributes": {
"class": "ms-fontColor-themePrimary ms-fontColor-themeDarker--hover",
"title": "Approve"
},
"style": {
"border": "1px solid #4CAF50",
"background-color": "#4CAF50",
"color": "white",
"cursor": "pointer",
"border-radius": "2px",
"padding": "5px 10px"
},
"children": [
{
"elmType": "span",
"attributes": {
"iconName": "Flow"
},
"style": {
"padding-right": "6px",
"font-size": "14px"
}
},
{
"elmType": "span",
"txtContent": "Approve",
"style": {
"vertical-align": "middle"
}
}
A note: I did not like the format of the button when I embedded this into my column so asked for some support from ChatGPT to introduce a button. It really helped in that sense by explaining exactly what needed to change.
This is where you place the JSON and have you already spotted the Red and Blue Buttons that are the result?
Trigger The Correct Power Automate Flow Using It's ID
To ensure the correct flow is triggered, you'll note in the JSON snippet, there is this section:
"actionParams": "{\"id\":\"v1/ddadabc3-73e7-e637-a885-e54bebea26a6/16946751-28fa-4c6f-8200-c57896d29a9c\"}"
This is the part that calls your flow. The part you need to replace is in bold.
To get yours, if its in a Solution, head to that Solution. Navigate to the Flow itself and see Details. Click Export Flow and notice the Get Flow Identifier option. This is the same for a standalone flow, only you don't need to head to the Solution first.
Pop your ID in and you are done! Give yours a test and let us know in the Academy how you got on.