【Power Automateではじめる業務の完全自動化】実務直結のノウハウが満載! 本連載では、企業へのMicrosoft 365の導入や活用支援を手がける著者・太田浩史氏による、Power Automateを使った業務自動化のノウハウを提供します。

第4章|身近な業務に役立つフローで効率化
LESSON 15

Formsを利用した簡易ワークフロー

さまざまな業務で応用できる承認ワークフローは、多くの人がPower Automateで作成してみたいフローの1つでしょう。手軽に利用できるFormsと、フローの承認アクションを組み合わせて、入力フォームを備えた簡易なワークフローを作成してみましょう。

上司の承認が伴う業務を自動化する

今回は、多くの企業に同様の業務が存在し、上司から承認をもらうだけとプロセスが単純で、業務の流れもイメージもしやすい「有給休暇の取得申請」を例にフローを作成します。このように承認を得る必要のある業務は、メールが利用されているものも多くあります。しかし、承認に必要な項目をメールに書き忘れたり、上司も数多く届くメールから承認が必要なメールを見落としてしまったりなど、課題もあります。Power Automateを利用することで、こうした業務を改善できます。申請者は、Formsのフォームによって申請に必要な内容の抜け漏れを防ぐことができます。上司も、Teamsで承認依頼を一覧で確認できるようになり、承認忘れを防ぐことができます。

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsに申請フォームを作成

フローを作成する前に、以下のフォームを作成しておきましょう。メールの問題点は、申請者が本文に申請内容を一から書かなければならず、必要な項目の抜け漏れが発生してしまうことにありました。そこでFormsを利用し、申請に必要な項目を設問として用意することで、必要な内容を忘れることなくより簡単に入力できるようにします。Formsで作成する申請フォームは、スマートフォンからも開いて入力することができ、外出先や移動中などでも利用できて便利です。

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

ここもポイント!回答形式の種類や必須入力の設定は適切に行う

設問作成時に、選択肢や日付などの種類を適切に選ぶことで、フロー実行時に意図しない値が入力されることを避けられます。また、必須入力に設定することで、値が空であることを避けられます。

さらに上達!Teamsの共有フォームをPower Automateで利用する方法

Formsのトリガーやアクションなどで、Teamsのチームのチャネルにタブで作成した「共有フォーム」を選択できないという質問がよくあります。たしかに、トリガーやアクションの設定のドロップダウンからは選択できませんが、[カスタム項目の追加]を利用して共有フォームを指定することができます。カスタム値として指定するには、 作成されたフォームを一意に特定するためのフォームIDが必要です。フォームIDの値は、回答フォームを開くためのURLに埋め込まれています。以下の手順で表示される回答用のURLをコピーします。このURLは、次のようになっており、「?id=」よりあとの部分が必要なフォームIDです。このフォームIDをコピーして、Formsのトリガーやアクションに設定します。

フォームの回答用のURLをコピーする

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

取得したフォームIDをPower Automateで利用する

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

フローに承認アクションを追加する

LESSON 10の「Formsがトリガーのフローを作成」「Formsトリガー利用時のコツ」を参考にFormsをトリガーとしたフローを作成し、[応答の詳細を取得する]アクションの設定までを終えておきましょう。次に、このフローに承認のための[開始して承認を待機]アクションを加えます。

[承認の種類]を選択すると、アクションの追加設定項目が表示されます。[タイトル]には、承認者が見てひと目で依頼内容が分かるものにします。[担当者]には、承認者となるユーザーのメールアドレスを指定しますが、複数のユーザーを割り当てることができます。今回は、承認の種類として「すべてのユーザーの承認が必須」のものを選択しました。この場合、[担当者]に入力されたユーザー全員から承認を受ける必要があり、誰か一人でも「拒否」した場合には、申請が却下されます。ほかには、承認者が申請内容を把握できるように、[詳細]にFormsで作成した申請書に入力された内容を入れます。ここまでフローの作成を進めたら、一度保存してテスト実行してみましょう。申請書のフォームから申請を送信すると、承認者へメールやTeamsの通知で承認依頼が届くはずです。

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

[開始して承認を待機]アクション

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

[承認/拒否-すべてのユーザーの承認が必須]を選択
「有給休暇取得申請」と入力
承認者となるユーザーのメールアドレスを入力
1行目に「種類:」と入力し、動的なコンテンツから[取得する休暇の種類を選択してください]を選択
2行目に「予定日:」と入力し、動的なコンテンツから[休暇取得予定日を入力してください]を選択
3行目に「理由:」と入力し、動的なコンテンツから[理由を入力してください]を選択
4行目に「補足:」と入力し、動的なコンテンツから[補足があれば入力してください]を選択
動的なコンテンツから[Responders' Email]を選択

フローをテスト実行する

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

ここもポイント![要求元]には[Responders' Email]を指定する

[開始して承認を待機]アクションの詳細オプションの[要求元]を設定せずにフローを実行すると、承認依頼に記載される[要求者]は常にフローの作成者になります。本来は、申請フォームから申請を行ったユーザーが承認の[要求者]として表示されるべきです。この問題を解決するために、[要求元]にFormsコネクタの[応答の詳細を取得する]アクションから出力される[Responders' Email]を指定します。この動的なコンテンツは、Formsのフォームに回答を送信したユーザーのメールアドレスになっています。

こうした設定の必要性は、作成したフローの動作確認を注意深く行うことで気が付きます。動作確認は実際の利用シーンを想定し、それに近い状況で行いましょう。今回のような承認を含むフローの場合は、まわりの同僚などに声を掛けて、自分以外の数人に申請を行ってもらうようにします。そうすることで、フローの設定漏れや間違いに気付きやすくなります。

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

承認結果を利用して条件分岐を行う

[開始して承認を待機]アクションの下に[条件]アクションを追加し、承認結果に応じて処理が分かれるようにします。Power Automateの承認アクションは、条件分岐とセットで利用することがほとんどです。承認者による承認が終わると、[開始して承認を待機]アクションからは、承認結果が[結果]という値で出力され、動的なコンテンツとして利用できます。これには、承認結果が「Approve」または「Reject」の値で入っているため、承認した場合の動作と却下された場合の動作をそれぞれ作ることができます。

[条件]アクションを追加し、設定の左の値には[開始して承認を待機]アクションから出力される[結果]を指定します。さらに右の値には、直接「Approve」とテキスト入力します。真ん中の選択肢は、右と左の値を比較する方法を選択するもので、[次の値に等しい]を選びます。これによって、承認の結果が「Approve」の場合には、条件の[はいの場合]のアクションが実行されるようになります。

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

[条件]アクション

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

「値の選択」に動的なコンテンツの[開始して承認を待機]から[結果]を選択
[次の値に等しい]を選択
「値の選択」に「Approve」と入力

承認結果に応じてメールを送る

今回は、承認の結果を申請者にメールで知らせます。[はいの場合]と[いいえの場合]の中に、[Office 365 Outlook]コネクタの[メールの送信(V2)]アクションを追加します。[宛先]には、[Responders' Email]を指定します。あとは、承認結果が分かりやすいように、[件名]や[本文]にそれぞれ文言を指定しましょう。

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

[メールの送信(V2)]アクション

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

[応答の詳細を取得する]アクションの動的なコンテンツから[Responders' Email]を選択
申請が承認されたことが分かる件名をテキストで入力
メールの本文を入力。フォームに回答した結果が分かるように[応答の詳細を取得する]アクションの動的なコンテンツを使う

[メールの送信(V2)]アクション

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

[応答の詳細を取得する]アクションの動的なコンテンツから[Responders' Email]を選択 Email]を選択
申請が却下されたことが分かる件名をテキストで入力
メールの本文を入力。フォームに回答した結果が分かるように[応答の詳細を取得する]アクションの動的なコンテンツを使う

「〇〇様」のようにメールに申請者名を入力する

さらにメールの冒頭には、「〇〇様」のように申請者の名前を入れてみましょう。しかし、ここまでの手順で取得できている動的なコンテンツには、そうした申請者の名前がありません。メールに名前を追加するには、[Office 365 Users]コネクタの[ユーザープロフィールの取得(V2)]アクションを利用して、事前にユーザー情報を取得しておく必要があります。

このアクションを、[開始して承認を待機]アクションの上に挿入したら[ユーザー(UPN)]に[Responders' Email]を指定します。これによって、申請フォームで申請を行ったユーザーのMicrosoft 365に登録されているユーザー情報を取得できます。送信するメールの[本文]を編集し、[ユーザープロフィールの取得(V2)]アクションの動的なコンテンツから[表示名]を本文の最初に入れましょう。

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

フローをテスト実行する

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

ここもポイント! メールの送信元を自分以外のアドレスにするには

こうしたワークフローを作成し利用する場合、メールの送信元がワークフローであることを明確にするため、自分以外のアドレスから送信させたいという要望がよくあります。こうした要望に応えるには、Exchange Onlineで作成できる「共有メールボックス」を利用する方法があります。Power Automateで共有メールボックスを利用できる、[Office 365 Outlook]コネクタの[共有メールボックスからメールを送信する(V2)]アクションが用意されています。アクションの設定の[元のメールボックスのアドレス]に、共有メールボックスのメールアドレスを設定するのがポイントです。Exchange Onlineに対する共有メールボックスの作成は、Microsoft 365の管理者などしか行えません。必要な場合には、IT部門に相談してみるのが良いでしょう。

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

Formsを利用した簡易ワークフロー|Power Automateではじめる業務の完全自動化

関連記事