2022年6月のアップデートによって、URL経由でPower Automate for desktop(PAD)のフローを実行できるようになりました(バージョン 2.21 以降)。
Desktop flows can now be triggered via an external link
Premium users that are signed into Power Automate for desktop can now trigger a desktop flow through its console run URL. With this new feature, users can run desktop flows outside the console and without opening it at all.
https://powerautomate.microsoft.com/en-us/blog/power-automate-for-desktop-june-2022-update/ より
ただし実行するには有償ライセンスが必要で(試用版は可)、広く使われている無償のMicrosoft アカウント環境では実行できません。
フローを実行するURLの形式
URLからフローを実行するには、下記のように「ms-powerautomate:」URIスキームで環境IDやフロー名、フローIDを指定する必要があります。
フロー名を指定
ms-powerautomate:/console/flow/run?workflowName=(フロー名)
フローIDを指定
ms-powerautomate:/console/flow/run?workflowId=(フローID)
環境IDとフロー名を指定
ms-powerautomate:/console/flow/run?environmentId=(環境ID)&workflowName=(フロー名)
環境IDとフローIDを指定
ms-powerautomate:/console/flow/run?environmentId=(環境ID)&workflowId=(フローID)
たとえば環境IDが「XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX」、フロー名が「リンクから実行するフロー」のフローを実行する場合、指定するURLは下記のようになります。
ms-powerautomate:/console/flow/run?environmentId=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&workflowName=%e3%83%aa%e3%83%b3%e3%82%af%e3%81%8b%e3%82%89%e5%ae%9f%e8%a1%8c%e3%81%99%e3%82%8b%e3%83%95%e3%83%ad%e3%83%bc
上記の通りフロー名はURLエンコードして指定します。
例の上2つのように環境IDを指定しない場合は、コンソールで選択中の環境で実行されます。
また、URLで指定した環境とは別の環境がコンソールで開かれている場合、自動的に環境が切り替わるはずなのですが、私が試した限りでは下図のエラーが発生し、上手く実行できませんでした。
URL経由でフローを実行する際は、あらかじめコンソールで実行する環境を開いておいた方が無難だと思います。
環境IDやフローIDの調べ方
環境IDやフローIDはPower Automateからフローを開けば、アドレスから取得できます。
2022/7/5 追記:
フローIDやフロー名、環境IDを取得して実行用URLを生成する簡単なスクリプトを作成しました。
フロー実行時の確認ダイアログを非表示にする
URLからフローを実行する際、標準では下記のように確認のダイアログが表示されます。
PADの設定にある「URL を使用してフローを呼び出すときに確認のダイアログを表示する」オプションをオフにすることで、このダイアログを非表示にできます。
もしくは下記レジストリの値を設定することでも表示・非表示を指定できますが、私が試した限りでは一度コンソールを再起動しないと反映されませんでした。
(「EnableAskBeforeRunningAFlowExternally」の値が「0」でダイアログ非表示、「1」で表示)
[HKEY_CURRENT_USER\Software\Microsoft\Power Automate Desktop] "EnableAskBeforeRunningAFlowExternally"=dword:00000000
URLからフローを実行できるようになったことで、ショートカットやブラウザー、コマンドプロンプト等からも簡単にフローを呼び出せるようになりました。
有償ライセンスが必要にはなりますが、スクリプトから実行したりタスクスケジューラから実行したりと、活用できる場面は多いので非常に有用な機能だと思います。
この記事へのコメントはありません。