こんにちは、blueです。
・Formsでアンケート依頼をした後、回答できていない人にリマインドメールを送りたい
といったことはないでしょうか?
今回は日程調整アンケートにおけるリマインドメールの自動化について説明します。
FormsとPower Automateを使えば、アンケートに答えていない人だけにメールを送ることが可能になります。
Formsでアンケート確認をされているような会社にとっては有効な方法となりますのでぜひ勉強していってください。
ちなみにこの記事はよう@非IT企業のコーポレートITさんの以下動画と記事を見させていただいたうえで作成しています。これを見るだけで作成可能なのでぜひこちらもご覧ください。
Power Automateを一から触る方にお勧めの書籍です。Power Automateって何?というところから操作方法まで詳しく説明してくれています。これ一冊で多くの自動化が可能になります。
今回のフロー
今回のフローは以下の2つとなります。
- Formsのアンケートに入力したら、ExcelのListのStatusに○がつく
- 定時になったらStatusが○になっていない人に対してメールを送る
図にすると以下になります。
- Formsのアンケートに入力したら、ExcelのListのStatusに〇がつく

- 定時になったら、Statusが○になっていない人に対してメールを送る

必要なものはFormsとExcel(とPower Automate)になります。
次から詳しく説明します。
事前準備
まずはFormsとExcelを作成します。
アンケート用のFormsを作成
以下の内容でアンケートを作成します。
(作成の仕方がわからない方は以下をどうぞ。簡単に、詳しく書かれています)
- タイトル・・・忘年会調整アンケート
- フォームの説明・・・2022年度の忘年会幹事のblueです。アンケートにご協力願います
- 質問・・・選択肢(複数回答)1.出席可能な日にちについてチェックを入れてください
- オプション1・・・12月25日
- オプション2・・・12月26日
- オプション3・・・12月27日 以下続く

回答履歴をまとめるExcelを作成
以下の内容でファイルを作成します。
- ファイル名・・・忘年会日程調整アンケート_回答結果.xlsx
- E-mail列・・・ユーザーのメールアドレスをあらかじめ設定
- UserName列・・・ユーザーの表示名をあらかじめ設定
- Status列・・・対象ユーザーがアンケートに回答した際に「○」がつけられる
- Remind列・・・リマインド通知を送信した日時が格納される
- テーブル化しておく テーブル名は「remind」
- OneDriveあるいはSharepointのドキュメントライブラリに保存しておく

ファイルが欲しい方はこちらをどうぞ
これでFormsとExcelの準備は完了です。
アンケート回答履歴の記録
ここからはPower Automateを使った自動化について説明します。
詳しい手順は以下になります。
- Formsに入力されたらPower Automateを起動する
- Formsの情報を取得する
- ExcelのE-mailと一致する行を取得し、Status列に○を入力する
以降で説明します。
Formsに入力されたらPower Automateを起動する
1. Power Automateを立ち上げ、「作成」–「自動化したクラウドフロー」の順にクリックする

2. 自動化したクラウドフローを構築する 画面では「スキップ」をクリックする

3. 検索窓に「Forms」と入力し、トリガーの「新しい応答が送信されるとき」をクリックする

4. フォームIDにて対象Formsを選択する(ここではFormsで作成した名前が表示されます)。

5. 「新しいステップ」をクリックする

Formsの情報を取得する
1. 検索窓に「Forms」を入力し、Microsoft Formsのアクション「応答の詳細を取得する」をクリックする

2. フォームIDを選択(先ほどと一緒)し、応答IDには動的なコンテンツの作成とし、「新しい応答が送信される時」の「応答ID」を選択する

この応答IDは先ほどのトリガーによって生成されたものです。
Power Automateではトリガーやアクションによって生成されたコンテンツを利用しながらフローを作成していきます。
ExcelのE-mailと一致する行を取得し、Status列に○を入力する
1. 検索窓に「Excel」と入力し、「Excel Online(Business)」のアクションの「行の更新」をクリックする

2. 「行の更新」に以下の情報を入力する
- 場所:Excelデータの格納場所を選択(SharepointやOneDriveの名称になります)
- ドキュメンドライブラリ:上記と同様(上記内のドキュメントライブラリの名称になります)
- ファイル:対象のファイルを選択(上記が選択できていれば自動的にファイルの一覧が表示されます)
- テーブル:対象データのテーブルを選択(Excelのテーブル名になります)
- キー列:E-mailを選択
- キー値:Responders’ Emailを選択
- Status:○と入力
キー値については動的なコンテンツとして、先ほどの「応答の詳細を取得する」アクションで取得した「Responders Email」を選択します。

保存する
1. Power Automateの上部にあるフローの名称を任意の名前に変更する(ここでは「220829_アンケート回答履歴の記録」としています)。「保存」をクリックする

テスト実行する
1. Power Automateの右上の「テスト」をクリックする

2. フローのテストウィンドウで「手動」を選択し、「テスト」をクリックする

この状態でFormsでアンケート回答を行います。
なおテストによる回答方法は以下2通りあります。
- 「プレビュー」をクリックして回答する
- 「回答を収集」に記載されているURLをコピーして、ブラウザに入力し、回答する。
(「URLを短縮」にチェックを入れるとアドレスが短くなるので便利です)

どちらでもよいですが、回答後ExcelのStatusに○がついていればOKです。

次からリマインド用のフローの作成を行います。
リマインドメールの送付
詳しい手順は以下になります。
- 定刻になったらPower Automateを起動する
- 現在時刻を取得する
- Status列が○でない人のメールアドレスを取得する
- 各々にメールを送信する
- Remind列に送信日時を記載する
以降で説明します。
定刻になったらPower Automateを起動する
1. 先ほどと同様 Power Automateを立ち上げ、「作成」–「自動化したクラウドフロー」の順にクリックする

2. 自動化したクラウドフローを構築する 画面では「スキップ」をクリックする

3. 検索窓に「繰り返し」と入力し、スケジュールのトリガーの「繰り返し」をクリックする

4. 「繰り返し」に以下の情報を入力する(ここでは毎週水曜日と金曜日の朝9時としています)
- 間隔:1
- 頻度:週
- タイムゾーン:(UTC+9:00)大阪、札幌、東京
- 開始時刻:任意(ここでは2022-08-30T06:00:00Zとしています)
- 指定曜日:水曜日と金曜日を選択
- 設定時刻、分:9時
ここで開始時刻の書き方には注意が必要です。月日時分秒はすべて2桁になります。
入力中もマウスオーバーすると例が表示されるので参考にしてください。

現在時刻を取得する
この項目はリマインド時刻を入力する際に必要となります。
1. 検索窓に「日時」と入力し、日時のアクションの「現在の時刻」をクリックする

選択すると以下の表示が出ます。特に操作は必要ありません。

2. 検索窓に「日時」と入力し、日時のアクションの「タイムゾーンの変換」をクリックする

3. 「タイムゾーンの変換」に以下の情報を入力する(ここでは毎週水曜日と金曜日の朝9時としています)
- 基本時間:現在の時刻(先ほどの「現在の時刻」アクションで取得した動的コンテンツになります)
- 変換元のタイムゾーン:(UTC)協定世界時
- 変換先のタイムゾーン:(UTC+9:00)大阪、札幌、東京
- 書式設定文字列:並べ替え可能な日時パターン・2009-06-15T13:45:39[s]

Power Automateで取得した時刻は協定世界時となります。日本時間に都度変換する必要があるので注意ください。
Status列が○でない人のメールアドレスを取得する
1. Excelの「表内に存在する行を一覧表示」を選択する

2. 「表内に存在する行を一覧表示」に以下の情報を入力する(ここでは毎週水曜日と金曜日の朝9時としています)
- 場所~テーブル:先ほどのExcelのファイル場所と同じ
- フィルタークエリ:Status ne ‘○’と入力

「表内に存在する行を一覧表示」ではExcelのテーブル情報をすべて取ってくることができます。
ただすべてとなると情報量が重くなるので、列に対してフィルターをかけるフィルタークエリというものを使って必要な情報だけを取ってくるようにしています。
これでアンケートに回答していない人のテーブル情報が取得できました。
各々にメールを送信する
次はアンケートに回答していない人それぞれに対してメールを送付していきます
1. 検索窓に「Apply」と入力し、コントロールのアクションの「Apply to each」をクリックする

2. 「以前の手順から出力を選択」では「表内に存在する行を一覧表示」の「value」を選択する

このvalueには先ほど取得したアンケート未回答の方一覧が入っています。
3. 検索窓に「Outlook」と入力し、Office 365 Outlookのアクションの「メールの送信(V2)」をクリックする

4. 「メールの送信(V2)」に以下の情報を入力する
- 宛先:E-mail
- 件名:任意(ここでは【リマインド】忘年会日程調整アンケート
- 本文:UserNameさん あとは任意

ここでは先ほど取得したvalueの一人一人の情報を入力しています。
E-mailとUserNameはあらかじめExcelに入力していた文字列です。
Remind列に送信日時を記載する
最後にリマインドメールを送った日時を記載します。送付履歴になります。
1. Apply to each内で「アクションの追加」をクリックする

2.Excelにて「行の更新」をクリックする

3. 「行の更新」に以下の情報を入力する
- 場所~テーブル:先ほどのExcelのファイル場所と同じ
- キー列:E-mail
- キー値:「表内に存在する行を一覧表示」の「E-mail」を選択
- Remind:「タイムゾーンの変換」の「変換後の時刻」を選択


ここまでくると多くの動的なコンテンツが生成されていると思います。
ただ名称が一緒でも生成された箇所が違うと内容は異なります。動的なコンテンツを選択する場合はアクション、トリガーに合ったものを選択するようにしてください。
保存する
1. Power Automateの上部にあるフローの名称を任意の名前に変更する(ここでは「220830_リマインドメール送付」としています)。「保存」をクリックする

メール送付をしたい人のStatusの○を外して先ほどと同様テスト実行を行うと・・・

「Remind列」にメール送付時刻が表示されるとともに相手にメールが届くようになります。
以降は定時になったら自動的にStatusを確認し、リマインドメールを送るようになります。
今回のまとめ
今回はFormsとPower Automateを使った日程調整アンケートでのリマインドメールの自動化について説明しました。
Power AutomateはFormsだけでなく色々なアプリと連携した自動化が可能になっています。以下の書籍が参考になりますのでこちらも参考にしてください。
Power Automateを一から触る方にお勧めの書籍です。Power Automateって何?というところから操作方法まで詳しく説明してくれています。これ一冊で多くの自動化が可能になります。
コメント