Title: How to use a Work queue in Power Automate - DEV Community
Open Graph Title: How to use a Work queue in Power Automate
X Title: How to use a Work queue in Power Automate
Description: I've already spoke about how powerful a workqueue in Power Automate is here, and this was before... Tagged with powerautomate, powerplatform, lowcode, rpa.
Open Graph Description: I've already spoke about how powerful a workqueue in Power Automate is here, and this was before...
X Description: I've already spoke about how powerful a workqueue in Power Automate is here, and this was before...
Keywords:
Opengraph URL: https://dev.to/wyattdave/how-to-use-a-workqueue-in-power-automate-1o9a
Domain: dev.to
{"@context":"http://schema.org","@type":"Article","mainEntityOfPage":{"@type":"WebPage","@id":"https://dev.to/wyattdave/how-to-use-a-workqueue-in-power-automate-1o9a"},"url":"https://dev.to/wyattdave/how-to-use-a-workqueue-in-power-automate-1o9a","image":["https://media2.dev.to/dynamic/image/width=1080,height=1080,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs70rskfl544igk0rcrwn.png","https://media2.dev.to/dynamic/image/width=1280,height=720,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs70rskfl544igk0rcrwn.png","https://media2.dev.to/dynamic/image/width=1600,height=900,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs70rskfl544igk0rcrwn.png"],"publisher":{"@context":"http://schema.org","@type":"Organization","name":"DEV Community","logo":{"@context":"http://schema.org","@type":"ImageObject","url":"https://media2.dev.to/dynamic/image/width=192,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png","width":"192","height":"192"}},"headline":"How to use a Work queue in Power Automate","author":{"@context":"http://schema.org","@type":"Person","url":"https://dev.to/wyattdave","name":"david wyatt"},"datePublished":"2023-11-13T07:08:56Z","dateModified":"2025-08-27T12:55:27Z","mainEntity":{"@type":"DiscussionForumPosting","@id":"#article-discussion-1651361","headline":"How to use a Work queue in Power Automate","text":"\u003cp\u003eI've already spoke about how powerful a workqueue in Power Automate is \u003ca href=\"https://dev.to/wyattdave/power-automate-the-power-of-a-workqueue-4j1k\"\u003ehere\u003c/a\u003e, and this was before Microsoft released the functionality in the Power Platform. I was using custom tables/lists, but now Microsoft has prebuilt those tables for you, with some added sparkle.\u003c/p\u003e\n\n\u003cp\u003eBut now its in general release I thought I would share how to use a workqueue in Power Automate, it is more aimed at Desktop flows (like other RPA tools, e.g Blue Prism, as you have limited resources that need to be managed), but that doesn't mean you can't or shouldn't use them in your cloud flows.\u003c/p\u003e\n\n\u003col\u003e\n\u003cli\u003eSetup\u003c/li\u003e\n\u003cli\u003eHow to use\u003c/li\u003e\n\u003cli\u003eTrigger\u003c/li\u003e\n\u003cli\u003eFlow Action\u003c/li\u003e\n\u003cli\u003eDelete\u003c/li\u003e\n\u003cli\u003eExample\u003c/li\u003e\n\u003c/ol\u003e\n\n\n\u003chr\u003e\n\n\u003ch2\u003e\n \u003ca name=\"1-setup\" href=\"#1-setup\"\u003e\n \u003c/a\u003e\n 1. Setup\n\u003c/h2\u003e\n\n\u003cp\u003eA couple of things to know, Workqueues require a premium license, and each queue needs to be setup.\u003c/p\u003e\n\n\u003cp\u003eThe workqueue will be either under Monitor (old) or in the left menu. If it isn't there you can use this url:\u003c/p\u003e\n\n\u003cp\u003e\u003ccode\u003ehttps://make.powerautomate.com/environments/{your environment ID}/monitor/work-queues\u003c/code\u003e\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxts6adso3kx07qdz85gp.png\" class=\"article-body-image-wrapper\"\u003e\u003cimg src=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxts6adso3kx07qdz85gp.png\" alt=\"work queue\" loading=\"lazy\" width=\"800\" height=\"371\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eWe then create the workqueue (it can be used for one process or if you are brave multiple), additionally you can set an auto time out for items (that way the expire and wont be used any more, though I have never found a reason for this yet).\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F10y3sywgd7h2i5obnt6j.png\" class=\"article-body-image-wrapper\"\u003e\u003cimg src=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F10y3sywgd7h2i5obnt6j.png\" alt=\"create workqueue\" loading=\"lazy\" width=\"413\" height=\"409\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eYou now have your own workqueue, and best of all its own dashboard. This is one of the best benefits to Power Automate workqueues, from one screen you can see how your automation is performing. You can also share the workqueue so others can view the dashboard. \u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr1un9j2yyw1adfgy3f7m.png\" class=\"article-body-image-wrapper\"\u003e\u003cimg src=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr1un9j2yyw1adfgy3f7m.png\" alt=\"dashboard\" loading=\"lazy\" width=\"800\" height=\"381\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eThe Advanced Details shows the guid (workqueue id) and key for the workqueue, these will be needed to process the workqueue.\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsviv4tsc5t0e6ngd03as.png\" class=\"article-body-image-wrapper\"\u003e\u003cimg src=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsviv4tsc5t0e6ngd03as.png\" alt=\"advanced details\" loading=\"lazy\" width=\"410\" height=\"556\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eOn top of viewing you can also edit the workqueue, so you can add items, delete them, and edit them. It can become a kind of control room for human in the loop actions if you need. e.g. items could be stacked up, when enough are ready a operator could log in, view all the ready items, categorise them and then release them to be processed by the next flow. This is one of the most powerful things the Power Automate Workqueue function adds, as you could replicate it all yourself with your own Dataverse table or SharePoint list, but you wont get the control room (without maybe a custom app).\u003c/p\u003e\n\n\u003ch2\u003e\n \u003ca name=\"2-how-to-use\" href=\"#2-how-to-use\"\u003e\n \u003c/a\u003e\n 2. How to use\n\u003c/h2\u003e\n\n\u003cp\u003eThe workqueue has a few predefined fields you can use:\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxsdort7ako28os3ei5ms.png\" class=\"article-body-image-wrapper\"\u003e\u003cimg src=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxsdort7ako28os3ei5ms.png\" alt=\"fields\" loading=\"lazy\" width=\"279\" height=\"498\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003eName - I use as plane text key, it doesn't have to be unique but should help dashboard users track e.g email subject\u003c/li\u003e\n\u003cli\u003ePriority - Low/Medium/Heigh, self explanatory but useful when you filter your queue\u003c/li\u003e\n\u003cli\u003eUnique Id or reference - this does need to be unique and I use to link to other systems e.g. Email message id\u003c/li\u003e\n\u003cli\u003eExpiration date - date \u0026amp; time when you want to auto stop processing the item\u003c/li\u003e\n\u003cli\u003eInput - this is any data you may want to use throughout the process, I recommend creating a JSON that you then parse\u003c/li\u003e\n\u003cli\u003eProcessing notes - these are your tags, tags are used to identify where in the process the item is and helps trigger the next step\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eExample of input for email\u003cbr\u003e\n\u003c/p\u003e\n\n\u003cdiv class=\"highlight js-code-highlight\"\u003e\n\u003cpre class=\"highlight plaintext\"\u003e\u003ccode\u003e{\n \"from\":{emailAddress},\n \"attachment link\":{sharepoint url},\n \"body\":{emailBody}\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cdiv class=\"highlight__panel js-actions-panel\"\u003e\n\u003cdiv class=\"highlight__panel-action js-fullscreen-code-action\"\u003e\n \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"\u003e\u003ctitle\u003eEnter fullscreen mode\u003c/title\u003e\n \u003cpath d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\n \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"\u003e\u003ctitle\u003eExit fullscreen mode\u003c/title\u003e\n \u003cpath d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\n\u003cp\u003eExample of Processing note tags for email\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003eExcel\u003c/li\u003e\n\u003cli\u003eWord\u003c/li\u003e\n\u003cli\u003ePDF\u003c/li\u003e\n\u003cli\u003eRequestApproval\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2\u003e\n \u003ca name=\"3-trigger\" href=\"#3-trigger\"\u003e\n \u003c/a\u003e\n 3. Trigger\n\u003c/h2\u003e\n\n\u003cp\u003eTo trigger our flows from the workqueue we are going to use the \u003ccode\u003eWhen a row is added, modified or deleted\u003c/code\u003e action.\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd310mw9h506e4u9x8ydh.png\" class=\"article-body-image-wrapper\"\u003e\u003cimg src=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd310mw9h506e4u9x8ydh.png\" alt=\"trigger action\" loading=\"lazy\" width=\"504\" height=\"194\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eOur first flow should be change type created, all future flows Modified. To ensure that our flows run at the right time we need to set trigger conditions. The conditions should in general include 3 conditions:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003eWorkqueue ID (so we only run on right queue as the tables are shared, this is from our Advanced Details)\u003c/li\u003e\n\u003cli\u003eStatus code (e.g so wont run if on Hold)\u003c/li\u003e\n\u003cli\u003eProcessing notes (uses the tag so runs right flow)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003ee.g.\u003cbr\u003e\n\u003c/p\u003e\n\n\u003cdiv class=\"highlight js-code-highlight\"\u003e\n\u003cpre class=\"highlight plaintext\"\u003e\u003ccode\u003e@and(\n equals(triggerOutputs()?['body/processingresult'],'excel')\n,\n equals(triggerOutputs()?['body/statuscode'],1)\n,\n equals(triggerOutputs()?['body/_workqueueid_value'],parameters('workqueueID (workqueue)'))\n)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cdiv class=\"highlight__panel js-actions-panel\"\u003e\n\u003cdiv class=\"highlight__panel-action js-fullscreen-code-action\"\u003e\n \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"\u003e\u003ctitle\u003eEnter fullscreen mode\u003c/title\u003e\n \u003cpath d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\n \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"\u003e\u003ctitle\u003eExit fullscreen mode\u003c/title\u003e\n \u003cpath d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\n\u003ch2\u003e\n \u003ca name=\"4-flow-action\" href=\"#4-flow-action\"\u003e\n \u003c/a\u003e\n 4. Flow Action\n\u003c/h2\u003e\n\n\u003cp\u003eOnce triggered we need to complete the action and update the item so that it can trigger the next flow/call Human in the Loop. Inline with trigger, we are using our standard Dataverse actions, this time \u003ccode\u003eUpdate a row\u003c/code\u003e.\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88xsqbpth87e77y5waan.png\" class=\"article-body-image-wrapper\"\u003e\u003cimg src=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88xsqbpth87e77y5waan.png\" alt=\"update row\" loading=\"lazy\" width=\"510\" height=\"807\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eWe use \u003ccode\u003etriggerOutputs()?['body/workqueueitemid']\u003c/code\u003e as our Row ID, and the update our Processing Result with the next tag, and if needed the Status \u0026amp; Status Reason.\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk1h0jzhle41agyv185it.png\" class=\"article-body-image-wrapper\"\u003e\u003cimg src=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk1h0jzhle41agyv185it.png\" alt=\"status drop\" loading=\"lazy\" width=\"485\" height=\"332\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fawrxk2msqt7oy861va34.png\" class=\"article-body-image-wrapper\"\u003e\u003cimg src=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fawrxk2msqt7oy861va34.png\" alt=\"status reason drop\" loading=\"lazy\" width=\"471\" height=\"354\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eTo get our input data we use a simple \u003ccode\u003eParse JSON\u003c/code\u003e\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2hich1clvmy84r8e7uvq.png\" class=\"article-body-image-wrapper\"\u003e\u003cimg src=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2hich1clvmy84r8e7uvq.png\" alt=\"parse json\" loading=\"lazy\" width=\"497\" height=\"287\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eYou can update the data if need, just update the input field, though for best practice I try not too.\u003c/p\u003e\n\n\u003ch2\u003e\n \u003ca name=\"5-delete\" href=\"#5-delete\"\u003e\n \u003c/a\u003e\n 5. Delete\n\u003c/h2\u003e\n\n\u003cp\u003eIf we are processing a lot of items we can end up with a lot of data (and Dataverse is not cheap), so our workqueue should not be used as a data repository. If you need to record the information save it in a SharePoint list, SQL database, or another Dataverse table if you have lots of money 😎.\u003c/p\u003e\n\n\u003cp\u003eThere are 2 ways to keep you queue tidy, delete each item when done, or clear the whole queue at the end of the process.\u003c/p\u003e\n\n\u003cp\u003eDeleting one item at a time we just use the standard Dataverse \u003ccode\u003eDelete a row\u003c/code\u003eaction.\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpffl78f931ep5gpuyn1x.png\" class=\"article-body-image-wrapper\"\u003e\u003cimg src=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpffl78f931ep5gpuyn1x.png\" alt=\"delete item\" loading=\"lazy\" width=\"508\" height=\"171\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eTo do the whole queue could be more complicated, luckily Microsoft has your back with the Dataverse \u003ccode\u003ePerform a bound action\u003c/code\u003e action.\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F41qlmn690xbh4s56szbx.png\" class=\"article-body-image-wrapper\"\u003e\u003cimg src=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F41qlmn690xbh4s56szbx.png\" alt=\"cear work queue action\" loading=\"lazy\" width=\"497\" height=\"159\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eJust select the 'Work Queues item' table, ClearWorkQueue action, and use the workqueue id from the advanced details.\u003c/p\u003e\n\n\u003ch2\u003e\n \u003ca name=\"6-example\" href=\"#6-example\"\u003e\n \u003c/a\u003e\n 6. Example\n\u003c/h2\u003e\n\n\u003cp\u003eSo when can/should we use a workqueue, I definitely recommend for large complex processes with lots of child flows. I also think anything with lots of Human in the Loop steps is a great use case. The other is related conditions.\u003c/p\u003e\n\n\u003cp\u003eA simple example would be:\u003c/p\u003e\n\n\u003cp\u003eWe have a flow that can only run when 2 reports are received. They can come at anytime and in any order (so no cheating and running on the second report).\u003c/p\u003e\n\n\u003cp\u003eWe have 2 flows, one that is triggered by emails. If the attachment is not valid it creates an item in the workqueue and sets Hold so a Human in the Loop can check. If they find it is the right report, with something like the wrong file name, they can update the item so that it continues in the process.\u003c/p\u003e\n\n\u003cp\u003eNext it checks to see if there are any queued items, if yes they update it, else it creates a new item.\u003c/p\u003e\n\n\u003cp\u003eThe reports are added as tags, the second flow only runs when the Process Notes contains both of the reports.\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp377hjzcok3kq6wjf0m8.png\" class=\"article-body-image-wrapper\"\u003e\u003cimg src=\"https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp377hjzcok3kq6wjf0m8.png\" alt=\" \" loading=\"lazy\" width=\"800\" height=\"717\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eThis is a very basic example, and there are other ways to do it, but having the functionality built in, and easy to scale (more reports, more steps) is really useful.\u003c/p\u003e\n\n\u003cp\u003eOverall workqueues may be best for Desktop flows (there because you have limited resources, you can use additional actions like 'get next item' and load balance those resources), but they are still very useful for cloud flows.\u003c/p\u003e\n\n\n\u003chr\u003e\n\n\u003cp\u003e\u003cstrong\u003eFurther Reading\u003c/strong\u003e\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://powerautomate.microsoft.com/en-ca/blog/microsoft-power-automate-work-queues-are-generally-available/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://powerautomate.microsoft.com/en-ca/blog/microsoft-power-automate-work-queues-are-generally-available/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/en-us/power-automate/desktop-flows/actions-reference/workqueues\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://learn.microsoft.com/en-us/power-automate/desktop-flows/actions-reference/workqueues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n","author":{"@type":"Person","name":"david wyatt","url":"https://dev.to/wyattdave"},"datePublished":"2023-11-13T07:08:56Z","dateModified":"2025-08-27T12:55:27Z","url":"https://dev.to/wyattdave/how-to-use-a-workqueue-in-power-automate-1o9a","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":35}],"comment":[{"@type":"Comment","@id":"#comment-1106954","text":"\u003cp\u003eWhat are some of the benefits of using the power Automate workqueue vs building your own in SharePoint? Beyond the obvious row limitations which can be overcome with proper indexing. \u003c/p\u003e\n\n\u003cp\u003eJust wondering why pay for premium here if not needed\u003c/p\u003e\n\n","author":{"@type":"Person","name":"Rob Rising","url":"https://dev.to/robotrising"},"datePublished":"2023-11-20T14:15:48Z","dateModified":"2023-11-20T14:15:48Z","url":"https://dev.to/robotrising/comment/2apd4","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":2}],"comment":[{"@type":"Comment","@id":"#comment-1106983","text":"\u003cp\u003eIt's a good question, the real benefits I see are:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003eIt's built in to the platform (so no need to make it)\u003c/li\u003e\n\u003cli\u003eEasier alm \u003c/li\u003e\n\u003cli\u003e\u003cp\u003eThe control room - it can be shared really easily \u003cbr\u003e\nBut there are some negatives\u003c/p\u003e\u003c/li\u003e\n\u003cli\u003e\u003cp\u003eProcess rules (can't move from hold to in progress etc)\u003c/p\u003e\u003c/li\u003e\n\u003cli\u003e\u003cp\u003eLimited fields\u003c/p\u003e\u003c/li\u003e\n\u003cli\u003e\u003cp\u003eBuggy (doesn't always update in control room\u003c/p\u003e\u003c/li\u003e\n\u003cli\u003e\u003cp\u003ePremium as you said \u003c/p\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eI still have SharePoint workqueue and in no rush to move, but I do think built in ones are the future \u003c/p\u003e\n\n","author":{"@type":"Person","name":"david wyatt","url":"https://dev.to/wyattdave"},"datePublished":"2023-11-20T15:03:07Z","dateModified":"2023-11-20T15:03:07Z","url":"https://dev.to/wyattdave/comment/2ape7","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":2}],"parentItem":{"@type":"Comment","@id":"#comment-1106954"}}]}]}}
| og:type | article |
| og:site_name | DEV Community |
| twitter:creator | @wyattDaveDev |
| twitter:card | summary_large_image |
| twitter:widgets:new-embed-design | on |
| og:image | https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s70rskfl544igk0rcrwn.png |
| twitter:image:src | https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s70rskfl544igk0rcrwn.png |
| last-updated | 2026-02-20 10:27:56 UTC |
| user-signed-in | false |
| head-cached-at | 1771583276 |
| environment | production |
| search-script | https://assets.dev.to/assets/Search-6e1dc0f4262843117fad18fce2ccf6c60738a44a3039e0f679cf98fb2e045948.js |
| apple-mobile-web-app-title | dev.to |
| application-name | dev.to |
| theme-color | #000000 |
| forem:name | DEV Community |
| forem:logo | https://media2.dev.to/dynamic/image/width=512,height=,fit=scale-down,gravity=auto,format=auto/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png |
| forem:domain | dev.to |
Links:
Viewport: width=device-width, initial-scale=1.0, viewport-fit=cover
Robots: max-snippet:-1, max-image-preview:large, max-video-preview:-1