Let's POWER Automate

From no-code to low-code

Menu
  • Expressions
  • Filters
  • General
  • Application specific solutions
    • Dataverse
    • Excel
    • Forms
    • Outlook
    • Planner
    • Power Apps
    • SharePoint
    • Teams
  • Triggers
  • Ready to use solutions
    • Approval Process Solution
    • Task Delegation App
    • The Ultimate Power Automate expressions cheat sheet
    • Power Automate HTTP requests to SharePoint cheat sheet
    • Power Automate HTTP requests to Graph API cheat sheet
  • ABOUT ME
  • Get help with your flow
  • POWER PLATFORM SERVICES
Menu

Add button to start Power Automate flow from SharePoint list

Posted on January 11, 2023May 7, 2023 by Tom

“I’d like to make triggering a Power Automate flow as simple as possible for the users, is there a way to add e.g. a button to start a flow directly from the list view?”


If you use manually started flows, they’re probably started on an item or a document. Users select the item/document, click on the 3 dots -> Automate -> run a flow. But having even these 3 clicks might be confusing for some users, especially if they don’t use flows very often. There must be an easier, more direct way to start a flow!

And there is one, by adding a button directly to the view!

Important note: this approach can be used only for flows located on the Default Power Platform environment, if you use a different environment you’ll need a different approach.

Use JSON formatting to add the button

There’re many possibilities when using JSON to format a SharePoint column. The older posts showed you how to calculate with today’s date or build a hyperlink, this time it’ll show you how to build a button to start a flow.

Since the button will be in a column, it’s a good start to create one, e.g. a Single line of text column ‘StartFlow’.

Click on the column name and navigate through ‘Column settings’ to ‘Format this column’…

…into the ‘Advanced mode’. That’s where all the magic happens.

The JSON below will add the most basic button in that column.

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
  "elmType": "button",
  "txtContent": "Start flow",
  "customRowAction": {
    "action": "executeFlow",
    "actionParams": "{\"id\": \"2c5dfcb2-aa4e-4cfd-9baf-2485225b1fa4\"}"
  }
}

But there’re two parts to modify, one that’s optional and one that’s mandatory to change.

The optional one is the wording on the button in the “txtContent” parameter. You can replace it with a few words on the specific flow, or keep just “Start flow” in there.

Power Automate list start flow button

The second part, the one that’s mandatory to change, is the flow id. You must tell the button what flow it should start, and that’s done by the flow unique id.

Power Automate list start flow button

Open the flow details page and check the url, this id is between the /flows/ and /details part.

Power Automate list start flow button

Copy/paste it into the JSON and save it.

And that’s it, you just created a button that’ll start a flow on a single click.

Summary

When using manually started flows, you might want to make the process as simple as possible for the users. While it’s possible to start Power Automate flow from the item/document context menu, it’s much easier to add a button to the list. Users go to the list, click a single button, and the flow will do the rest. And since it’s done using JSON formatting, you can extend it by other functionality, e.g. hide it once the flow is started, but that’s a topic for another post.


🚀 Master Power Automate

Join 2,100+ professionals getting actionable Power Automate tutorials, solutions, cheat sheets & tips every week.

No spam. Unsubscribe anytime.

28 thoughts on “Add button to start Power Automate flow from SharePoint list”

  1. Fernando says:
    January 17, 2023 at 11:21 am

    Super! Thanks a lot! However, I’m struggling with my usecase… I’d like to make actionParams dynamic in function of the row (based on the Title, for example). How could I do it?

    Thanks in advance!

    Reply
    1. Tom says:
      January 26, 2023 at 2:58 pm

      Hello Frenando,
      I never did that and I can’t tell if it’ll work, but I’d try to use the IF condition for the parameters, e.g.
      “action”: “=if([$Title] == ‘Title1’, ‘executeFlow’, ‘setValue’)”

      Reply
      1. prabhudeva says:
        May 1, 2024 at 9:28 am

        Where should give this formula

        Reply
  2. Melissa says:
    February 7, 2023 at 9:45 am

    Hi,
    Thanks for great article! I would like to trigger a PA flow from a SharePoint list/document library that is not connected to a single item as above case, instead the flow involves all the items in the library. Is that possible?

    Reply
    1. Tom says:
      February 9, 2023 at 10:12 pm

      Hello Melissa,
      the only solution I can think of is to create a manually started flow that’ll get all the items and add a button somewhere (https://tomriha.com/how-to-build-a-link-to-start-manual-power-automate-flow/). All the available flow triggers in ribbon/context menu expect that the flow will run on a specific item.

      Reply
  3. Craig says:
    March 22, 2023 at 7:55 pm

    With this method, if you’re using multiple libraries and want to call the same flow, are you able to pass values/parameters when the button is clicked?

    Reply
    1. Tom says:
      April 2, 2023 at 11:46 am

      Hello Craig,
      no, this approach is possible only for flows started ‘On selected file/item’ where the list/library is hardcoded in the trigger action.

      Reply
  4. Weylin says:
    March 28, 2023 at 2:49 am

    I really like this functionality, especially for approvals on items. But is there any way to create a pop-up prior to running the flow which could take some user input? The PowerAutomate mobile app is probably the best case for this but would like an option on a desktop to launch a flow, prompt the user for some input like “assignee” and “notes” then launch the flow.

    A PowerApp could certainly do this, but wondering if there is an easier way.

    Reply
    1. Tom says:
      April 9, 2023 at 1:09 pm

      Hello Weylin,
      the button will only start the flow, it doesn’t pass any information. You could use a separate link to start the flow as explained here: https://tomriha.com/how-to-build-a-link-to-start-manual-power-automate-flow/, although I’m still not sure about the user friendliness of such solution.

      Reply
  5. Dave Scott says:
    April 21, 2023 at 1:53 pm

    My question on this is something that’s really puzzling me.
    I have a button that has been working nicely – however, I then migrated my flow to another environment, and connected it to run on a service account. When I copied and pasted the GUID of the new flow into the JSON of the list column settings, the button stopped working.
    (Pretty sure it’s not a typo error, as I pasted the original GUID on back in again and it worked. The fault has since been replicated many times)

    Reply
    1. Tom says:
      May 7, 2023 at 2:22 pm

      Hello Dave,
      this solution works only on the Default environment, that’s a limitation of all the ‘For selected…’ flow triggers. If the flow should exist in a different environment you’ll have to use a workaround e.g. as explained here: https://tomriha.com/run-for-selected-item-flow-from-non-default-environment-power-automate/

      Reply
  6. Zak says:
    July 26, 2023 at 12:52 pm

    Hi Dave, Firstly thanks for this, it’s a great guide and works nicely, I am having trouble getting it to work when I create a site page and add the list view as a webpart, from the sitepage it does not work… is there a way to make it wrok from Sitepages/webparts?

    Reply
    1. Zak says:
      July 26, 2023 at 12:53 pm

      Hi Tom it should read!

      Reply
      1. Tom says:
        August 13, 2023 at 9:26 pm

        Hello Zak,
        I just tried to add a list view on a page and it works fine, are you using the correct view? And is your flow located in the Default Environment? If not you’ll need a workaround as explained here: https://tomriha.com/run-for-selected-item-flow-from-non-default-environment-power-automate/

        Reply
  7. Ieuan says:
    September 12, 2023 at 10:37 am

    This is a great guide and is almost exactly what i needed to implement my solution. Except my intended default view is in a Board style and i suspect the majority of users will be adding and editing the list items via the form, rather than directly in the row. When i implememnt the above the button does not display on the form as it appears as a text box. Is there an easy way to get the button to also appear on the form?

    I’m sure this could be done via a custom form via PowerApps but at this stage i’m looking to avooid this.

    Reply
    1. Tom says:
      September 30, 2023 at 10:26 pm

      Hello leuan,
      I’m not sure whether such button will work on the form, in my use case users always click the button from the list view after they create/save the item.

      Reply
  8. adam says:
    September 14, 2023 at 1:30 pm

    Hi Tom,

    This is working great, however when i click the button, i get a popup on the right where i have to click ‘Run Flow’ (so having to click 2 buttons for the flow to trigger), so it is not doing it on a single click which would be what i would want my users to experience. Any ideas

    Reply
    1. Tom says:
      September 30, 2023 at 10:29 pm

      Hello adam,
      for a single click you can use this solution: https://tomriha.com/run-for-selected-item-flow-from-non-default-environment-power-automate/

      Reply
  9. James says:
    October 23, 2023 at 7:31 am

    Thanks for that, just what I wanted 👍🏻

    Is there a way to only have the button show for new list items? I have a list of approved expense claims, when the accounts team check the list it would be really helpful if the button (which runs a flow to create a PDF from the list row details) only showed next to the new entries. Or at least have the button change colour once clicked so they can easily see which rows have already been processed.

    Reply
    1. Tom says:
      November 19, 2023 at 1:49 pm

      Hello James,
      you can add styling to the button to show it only under specific conditions, referencing values in other columns, e.g. some status column: https://tomriha.com/hide-button-in-sharepoint-list-after-power-automate-flow-started/

      Reply
  10. Pak says:
    March 5, 2024 at 12:59 am

    I created a flow under my login. I created a sharepoin that links to the flow with the button. When I login to the sharepoint, click on the link – it runs perfect. When another user logins to the SharePoint, click on the link – no action and no error, as if the button is not doing anything.

    Reply
    1. Tom says:
      April 17, 2024 at 10:07 pm

      Hello Pak,
      you might need to add the other users in the flow ‘Run only users’ settings.

      Reply
  11. Ricardo says:
    September 13, 2024 at 3:57 pm

    super super thanks! that was awesome

    Reply
  12. Pingback: Preuve d’approbation dans un flux Power Automate | KTNN SharePoint
  13. SG says:
    February 17, 2025 at 12:45 pm

    I’m getting an error while pressing the button stated that: Flow cannot be installed.

    Reply
    1. Tom says:
      February 22, 2025 at 7:25 pm

      Hello SG,
      I’ve never seen the error, but I’d check if the flow is on the Default environment, maybe you need to use a workaround: https://tomriha.com/run-for-selected-item-flow-from-non-default-environment-power-automate/

      Reply
  14. Yaroslav says:
    February 18, 2025 at 1:31 pm

    Hi!

    I really appreciate your guidance—it’s amazing!

    However, I’m struggling with my use case. I have a JSON code snippet for formatting a column in SharePoint Lists to trigger a Flow. What I need is to execute a different Flow for each item in my list.

    How can I modify the JSON code so that the Flow ID (the only changing parameter) is dynamically retrieved from another column in the list (e.g., a column named “Flow ID”)?

    I’ve tried various approaches, such as [$Flow ID] and @[‘Flow ID’], but none of them seem to work. 😔 I’m starting to think that retrieving data from an item might not be possible in this case, but I would really like to find a way to make it work.

    Is there any possible solution for this?

    Thank you very much in advance!
    Best regards,

    Reply
    1. Tom says:
      February 22, 2025 at 7:22 pm

      Hello Yaroslav,
      I never used it this way, but it seems it can’t handle dynamic flow id. Although based on a quick google search it should handle a condition where you could define various flows based on another column, e.g.
      =if([$Status]==’Ready for approval’,'{\”id\”: \”958b409c-c6ff-49e6-92cc-a53f102121e5\”}’,if([$Status]==’Ready for re-approval’,'{\”id\”: \”e97581e1-6ef8-4b3d-8e4b-26ec24744a03\”}))

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

🚀 Master Power Automate

Join 2,100+ professionals getting actionable Power Automate tutorials, solutions, cheat sheets & tips every week.

No spam. Unsubscribe anytime.

Still exchanging emails to get things approved?

Get the Approval Process solution and the Task Delegation App to skip the hard part and deploy an automated, fully functional approval solution on a SharePoint list in minutes! And then the next one, and the next one...

Approval Template Preview ✨ Learn more ✨

Turn ideas into flows with ease!

Grab the complete Power Automate Cheat Sheet Bundle—everything you need to master expressions, SharePoint HTTP calls, and Graph API in Power Automate.

Cheat Sheet Bundle Preview ✨ Get the Cheat Sheets

Didn't find what you were looking for?
Need to adjust a solution to fit your needs?
Or would you just like to get an assistance from somebody with thousands of hours of experience with Power Automate?

Power Automate blogs worth visiting

Damien Bird
Dennis (Expiscornovus)
Paul Murana

©2025 Let's POWER Automate | Theme by SuperbThemes