【Power Automate(MS Flow)の使い方事例】有給申請を自動化しよう!
Microsoft Flowというものをご存知でしょうか。
office製品のうちのひとつで、ブラウザ上で自動ワークフローを作成・管理できるツールです。
※詳しくは前回の記事:【初めてのMicrosoft Flowの使い方】承認フローを作成するをご参照ください!初歩的な操作方法や機能等を紹介しているので、当記事を読む前に前回の記事を読むことをおすすめします。
皆さんの働く会社には、単純な入力・操作を、決まりきった順番で何度も繰り返すような流れ作業がありませんか?このMicrosoft Flowというツールを導入すれば、そんな毎日のルーチンワークを無料で自動化・効率化することができるんです。
実際に、当社ではMicrosoft Flowを導入して一定の業務を自動化しています。今回は、その中のひとつである「休暇取得フロー」というシステムを抜粋して、設計方法を一からご紹介します!
この記事の目次
休暇取得フローとは?
ここでいう「休暇取得フロー」とは、「申請者が休暇を申請してから、それが受理されるまでの一連の処理手続き」を自動化したものを指します。おおまかな流れは以下のようになります。
簡単に分類すると、この5段階に分けられます。なんとなくイメージは掴めたでしょうか?
「休暇申請者」はフォームを投稿するだけ、「承認者」はメールを確認して承認または拒否の選択をするだけで、あとは全て自動でできてしまいます。
実際の画面を図に表すと以下のようになります。
このように一度システムを導入してしまえば、
・申請書を作成する
・印刷した申請書を上司に提出して承認印をもらう
・勤怠データに情報を入力する
・受理された申請書を指定されたファイルに綴じる
・ファイルを鍵のかかった引き出しに保管する
といった手作業がすべてデジタル上でできてしまいます。そのうえ紙を使わないのでコスト削減につながりますし、セキュリティ的にも利用権限を設定すれば問題なく、鍵の管理も必要ありません。
ワークフローの流れ
完成イメージは、下記の図のようになります。
少し難しいかもしれませんが、これから3記事に分けて順に説明していくので、現時点ではなんとなくイメージが掴めれば問題ありません。当記事では、「休暇取得申請フォームに投稿」してから、「1次承認者に承認or拒否される」までの部分を説明していきます。
ワークフロー設計の準備をする
【今回用意するもの】
- Microsoftアカウント
- office365(SharePoint,Outlook)
- 各SharePointリスト(後述)
- 休暇申請フォーム(後述)
- TrelloやSlackといった社内に通達するためのツール
(当社では1次承認者、2次承認者それぞれ1名ずつの計2名で運用しています。)
リスト名 | 必要な項目(内容) | 用途 |
休暇取得申請【1次承認待ち】 | ・タイトル(受信日時)
・本文(申請内容) ・送信者(メールアドレス) |
休暇が申請されてから1次承認者に承認/拒否されるまでの間休暇申請が格納されるリスト。 |
休暇取得申請【2次承認待ち】 | ・タイトル(受信日時)
・本文(申請内容) ・送信者(メールアドレス) |
1次承認者に承認されてから2次承認者に承認/拒否されるまでの間休暇申請が格納されるリスト。 |
休暇取得申請【承認】 | ・タイトル(受信日時)
・本文(申請内容) ・送信者(メールアドレス) |
1次承認者と2次承認者に承認された休暇申請が格納されるリスト。 |
休暇取得申請【差戻し】 | ・タイトル(受信日時)
・本文(申請内容) ・コメント※ ・送信者(メールアドレス) |
1次承認者または2次承認者に拒否された休暇申請が格納されるリスト。
※拒否する場合、承認者はその理由をコメント欄に記入する必要がある。 |
休暇取得リスト【○○(個人名)】 | ・タイトル(受信日時)
・本文(申請内容) ・分類(休暇/欠勤) |
承認済みの休暇申請を個人ごとに振り分けたリスト。管理者とリストの持ち主のみ閲覧できる。 |
社員リスト | ・氏名
・メールアドレス |
フォームズ社員の氏名とメールアドレスが格納されているリスト。休暇申請を個人リストに振り分ける際に使用する。 |
「送信者」はメールの差出人、つまり、フォームに入力されたメールアドレスのことです。個人を区別するために使用されます。(個人リストに送信者の列がないのは、区別する必要がないためです)
休暇申請用フォームを作っておく
休暇申請フォームサンプル(当社で実際に使っているフォームのコピーです)
今回作成するワークフローでは、このフォームに入力されたメールアドレスで個人(社員)を特定します。投稿通知メール設定の差出人を必ず「メールアドレスの入力値」に設定してください。
これらは当記事内で使用するツールの一覧ですので、実際に導入する際は会社や組織の都合に合わせて対応してください。
それでは、ワークフローを設計していきましょう!
休暇申請フローを設計する
今回使用するテンプレートは、「Outlook メールを受信したときに SharePoint リストに追加する」と「新しいアイテムが追加されたときに承認を開始する」の二つです。
テンプレートの探し方については前回の記事を参照してください。
下記のURLをクリックすると、Microsoft Flowへアクセスできます。
https://japan.flow.microsoft.com/ja-jp/
ひとつめのワークフローについて説明します。
これは、「休暇申請フォームの投稿があったとき(=メールを受信したとき)」に「投稿データを指定した場所に保存する(=SharePointリストに追加する)」ワークフローです。
フローチャートに表すと、下記の図のようになります。
それぞれのステップをテンプレート画面に当てはめると、下記の図のようになります。
今回必要なステップは、①のトリガーと②の「Create item(=SharePointにアイテムを作成する)」ところまでなので、③と④のステップは必要ありません。使用しない部分は削除します。
各ステップの右端に表示されている、点が3つ並んでいるマーク(・・・)をクリックして「削除」を選択します。
③と④のステップを削除しました。これからは細かい設定をしていきます。
①をクリックして入力画面を開き、「フォルダー」に任意のフォルダーを指定します。今回は受信トレイに新着メールがあったときに処理を開始したいので、「受信トレイ」を指定しました。
「受信トレイ」と指定しただけだと、受信トレイに送られてくるすべてのメールに対してフローが実行されてしまいます。そのため、メールの選定をするために条件を設定します。
「詳細オプション」をクリックします。
休暇申請フォームの投稿通知メールに対してのみフローを実行したいので、「件名フィルター」に先ほど作成した休暇申請フォームのフォームIDを指定します(デフォルトでは投稿通知メールの件名にフォームIDが含まれているため)。
これで①のトリガーの設定は完了です。
次に②の設定をしていきます。②の部分をクリックすると、下記の図のような入力画面が表示されます。
(*マークがついている項目は入力必須項目です)
「サイトのアドレス」と「リスト名」を指定すると、「タイトル」、「本文」、「送信者」、「コンテンツタイプID」の入力欄が表示されます。この「タイトル」以下の項目は、指定したリストによって変動します。
今回指定したリスト「休暇取得申請【1次承認待ち】」は、「タイトル(受信日時)」、「本文」、「送信者」の3つの項目で構成されているので、Microsoft Flowの作成画面にも同様に表示されます。
Microsoft Flowにある「タイトル」とは、SharePointリストを見たとき一番左にある列のことです。(今回の例でいくと、「受信日時」が「タイトル」に該当します)
SharePoint側でタイトルに該当する列名を変更しても、Microsoft Flowでは一律で「タイトル」と表示されます。
今回はこのような設定にしました。
※現在(2019/11/11)、「差出人」パラメーターが表示されないバグが一部で発生しております。
送信者項目に入力する値は「@{triggerBody()?[‘From’]}」で代用できます。(赤字の部分をコピーして送信者項目に貼り付けてください)
①でトリガーとなったメールの受信日時、本文、差出人メールアドレスを、SharePointの1次承認待ちリストにそのまま持っていきます。
ここで1次承認待ちリストに追加されたアイテムが、次のフローのトリガーとなります。
次のフローに進む前に、ワークフローと各ステップの名前を変更しておきましょう。後になって編集するときや、第三者がワークフローを見たときに流れが分かりやすくなります。
最後に必ず保存をして、次のフローに進みましょう。
新しいアイテムが追加されたときに承認を開始する
ふたつめのワークフローについて説明します。
これは、「(SharePointの1次承認待ちリストに)新しいアイテムが追加されたとき」、「承認者に承認依頼メールを送信する(=承認を開始する)」ワークフローです。
フローチャートに表すと、以下のようになります。
それぞれのステップをテンプレート画面に当てはめると、下記の図のようになります。
⑥~⑧のステップは使わないので削除しましょう。①~③の空欄を埋めると以下のようになります。
※前回の記事と同じ流れなので詳しい説明は割愛しています。
※③の条件分岐について※
※環境により、「Response」パラメータでは正常に動作しないとのご指摘を頂きました。その場合は「Outcome」パラメータを使用してください。貴重なご意見誠にありがとうございます。(2020/04/07 追記)
“環境により”と記載しましたが、有志の方からの情報提供により条件が判明しました。承認者が単一である場合は「Response」のままで問題ありません。承認者を複数設定したい場合は「Outcome」を使用してください。手順はこちらを参照してください。貴重なご意見誠にありがとうございます。
(2020/04/10 追記)
次に、④、⑤について説明します。
ここでは、④「はいの場合(承認されたときに実行する処理)」と⑤「いいえの場合(拒否されたときに実行する処理)」の2通りの処理が必要です。
④、⑤には既にOutlookのアクションが設定されていますが、今回は使わないので削除します。削除手順はステップの削除手順と同じです。
(削除後の画面)
では、順番に作成していきましょう。
はいの場合に必要な処理は、
・2次承認待ちリストに承認済み休暇申請アイテムを追加する
・1次承認待ちリストの承認済み休暇申請アイテムを削除する
のふたつです。
・2次承認待ちリストに承認済み休暇申請アイテムを追加する
新しいステップを作るには、「アクションの追加」を使用します。
赤枠の部分をクリックすると、アクション選択画面が表示されます。
検索ボックスに「SharePoint」と入力すると、SharePoint関連のアクション一覧が表示されるので、「項目の作成」をクリックします。
「項目の作成」ステップの「サイトのアドレス」、「リスト名」を指定すると、自動的に「タイトル」以下の入力欄が表示されます。今回は1次承認待ちリストのアイテムをそのまま2次承認待ちリストに持っていくだけなので、項目名と同じパラメーターを選択しましょう。
ここで指定するリスト「休暇取得申請【2次承認待ち】」は1次承認待ちリストと同じ項目で構成されていますが、データをやりとりする相手が違います。(ひとつめのワークフローではOutlookからSharePointへのデータ受け渡しであったのに対し、このワークフローではSharePointからSharePointへの受け渡しになります)
・1次承認待ちリストの承認済み休暇申請アイテムを削除する
先ほどと同様に「アクションの追加」から「項目の削除」を選択します。
「ID」入力欄をクリックすると、IDのパラメーターがふたつ出てきます。下の「When a new item is created(トリガー)」のIDを指定しましょう。ここでいう「ID」とは削除するアイテムを識別するためのものです。今回削除したいアイテムは「承認済みの休暇申請」なので1次承認待ちリストのIDを使用します。
「項目の作成」IDを選ぶと、直前のステップで作成した2次承認待ちリストのアイテムが削除されてしまうので注意してください。
以上が承認された場合の処理です。次に拒否された場合の処理について説明します。
はいの場合に必要な処理は、
・差戻しリストに拒否された休暇申請アイテムを追加する
・1次承認待ちリストの承認済み休暇申請アイテムを削除する
・休暇申請者に差戻し通知メールを送信する
のみっつです。
・差戻しリストに拒否された休暇申請アイテムを追加する
・1次承認待ちリストの承認済み休暇申請アイテムを削除する
最初のふたつは承認されたときとほぼ同じですが、差戻しリストには「コメント」項目があります。承認プロセス(紫のアイコン)の「Comments」を挿入します。
この「コメント」とは、承認/拒否の結果と同時にコメントを送信できる機能のことです。「承認」または「拒否」のボタンを押したとき、自動的にテキストボックスが下部に表示されます。
使い方の一例として、当社では、申請を承認する場合はコメント未入力、拒否する場合はその理由をコメント欄に入力する、といった形にしています。
・休暇申請者に差戻し通知メールを送信する
「アクションの追加」から、検索ボックスに「Outlook」と入力し、「メールの送信」を選択します。
「宛先」には「送信者」を指定します。この「送信者」には、休暇申請フォームの投稿者(投稿通知メールの差出人)のメールアドレスが格納されています。「項目の作成2」と「When a new item is created」それぞれに「送信者」パラメーターがありますが、どちらも同じメールアドレスなので、どちらを選んでも構いません。
「件名」と「本文」を設定します。
最後に、ワークフローと各ステップの名前を変更しましょう。
【変更前】
【変更後】
以上でワークフローは完成です。作成し終わったら必ず保存をしておきましょう。
次回は、1次承認フローに変数やループなどの少し難しい処理を加えた2次承認フローについて説明します。