見出し画像

[Power Automate]リマインド業務の自動化

10月頭に「え、なにこれ便利じゃん」ってことに気が付いたMicrosoftのPower  Automateですが手数が多めの処理が無事ローンチしたのでやり方を書いておこうと思います!(一部修正したいところがあるが)

Microsoft Power  Automateって、なに!?みたいなところはぐぐってください。ノーコードのRPAって感じです。


私がやりたかったこと

今回やりたかったことは「定期会議の開催日 n日前にリマインドを自動送付」という仕事です。

地味に面倒&絶対発生する仕事に「リマインド業務」があります。「この日までに〇〇してねー!」みたいなあれですね。

outlook標準機能を使って「定期的に同一メールを送る」ということはできますが、月次、週次のリマインド業務はおおよそ「いつまでに、何を」という日時指定がキモなので、本文中を可変にできない上記だと色々と使い勝手が悪いです。

超簡単にやるなら、n日前に自分でトリガーを引いて、作成したメールを送付…とか色々とやり方はあるのですが、「何も考えずに完全自動化したい」がゴールだったので、「n日前になったことをPower Automateが判断して、メールを出す。かつそのメールの中身はその時々にあった情報に変更されている」を目指しました。

送付したいメールのイメージ

【リマインド】mm月経営会議 開催日時及び資料締切日

各位
mm月経営会議のお知らせです。
資料提出日と格納先をご連絡いたします。

■開催日時
yyyy/mm/dd (days)

■資料提出期限
yyyy/mm/dd (days)  hh:mm

■提出先
格納フォルダ:yymmdd会議フォルダ

お忙しいところ恐縮ですが、ご対応お願いいたします。

どうってことないメールですが、地味に面倒です。勝手に送付してくれ!!!そして、yymmddhhmm系の情報を可変にしたい!実際に作成したフローを見ていきましょう。

実際のフローチャート

作成したチャートは4つです。


0. 情報元のデータベースを作ろう!

まず、下準備としてExcelで可変にしたい情報を持ったDBを作ります。ここでは月次での経営会議があった場合で記載しています。

会議名 / リマインド日 / 資料提出日 / 曜日1 / 会議開催日付 / 曜日2 / 資料格納先 の情報を記載しています。

画像10

Power Automateは日本語列名だと列名指定にひと手間かける必要があるので、適当な英数列名を付与するのがオススメです。

ちなみに会議開催日付よりn日前にリマインドメールを送付…ということだけなら、Power Automate側に判断させることも可能です。

ただ、会社業務上、土日にリマインドが飛ぶのは避けたい。そしてそのために営業日の判定処理を入れるより、元のDBに持たせたほうが楽だと判断して「リマインド日付」と「会議開催日付」をそれぞれ持つ構成にしています。
※上のExcelはサンプルなので土日が入ったままになってます。かしこ。

また開催によって提出先フォルダが異なるため、この情報(シェアポイントのURL)もDBに持たせています。

Power AutomateではExcel情報をDB処理する場合はテーブルに変換する必要があるので、変換範囲を選んで、挿入>テーブルで変換し、シェアポイントやドライブなど任意の場所に格納してください。

1. トリガーのセット

まず、リマインド送付のトリガーをセットします。

毎日8時に「今日がリマインドを出す日かどうか?」を判断させたいので、Recurrenceというタイマー機能をトリガーとしてセットします。

画像2

間隔/頻度/設定時刻など、走らせたい時間を好きにセットします。

2. 変数のセット

今日がリマインド発信日なのか?を判断させるために、比較演算子の元ネタを作ります。

ここでは「formatDateTime(utcNow(),'yyyy/M/d')」を利用して、「今日の日付を取得し、yyyy/M/d の形式で出力する」を指定しています。Mが大文字なのは、Power Automateの規則です。

画像3

取得結果はこんな感じです。ちゃんと欲しい情報が取れていますね!

画像8

3. DBから必要情報を取得

0で作成したDBから任意の情報を取ってきてほしいので、その処理です。

対象のDBをシェアポイントに置いているので、その場所とファイルを指定した上で、フィルタークエリの機能を使って手順2 で取ってきた「今日の日付」を Remind列の日付と比較します。

ポイントは変数を ’ ’ シングルクオーテーションでくくること!これがないとエラーになります。

画像4

日付がイコール(eq)だった場合に、処理が走る…という判断をここでやらせているわけです。

10月会議のリマインドの場合は、2のフローで取得した「2021/10/1」という日付がDB側にある「Remind列の2021/10/1」と一致したら、この行の情報を抜く、という処理になります。

画像7

4. メールの送付

メール送付自体は超簡単です。本文中の「可変」にしたい場所に「列名」を置いてあげれば10月なら10月、1月なら1月の情報がインプットされたメールが飛びます。

value で、フロー3で抜いたDB情報の全部を取ってきてね!とお願いしています。

画像9

で、可変にしたいところをそれぞれ埋め込んであげればOK。

画像10

格納フォルダの指定のみひと手間かかります。

html形式で直接ぶちこみます。

飛ばしたいフォルダのURLが月によって変わるので、以下のように設定してあげます。90年代の人間ならだれでもかける<a href="任意のURL">任意のテキスト</a>です。

画像6

テストを回してみて、無事に処理が走って手元に可変になっているメールが届けばOK!

画像9

おまけ:差出人を共有メールにしておく

事務局・PMO業務や、サポート業務の時に「作業の俗人化」を避けるために、Outolookで共有メールアドレスを作成することは多々あると思います。

メールの送信の「詳細オプション」を開くと「差出人」を指定できるので、ここに共有メールアドレスを指定しておけば、発信元が個人に紐づくこともなくなります。

画像11

やったぜ!自動化!

これでもう何も考えず、設定した日付にかってにリマインドメールが飛ぶようになりました!!!月次、週次、日時(は、ちょっと別の方法を考えますが)など、すべてExcelで表さえつくってしまえば自動化できるので、ToDoで「リマインド送付」とか設定する必要がなくなります~!いえーい!

その他、この「任意の条件で抽出し、対象へメールを送付」という業務は地味にいろいろな場所に転がっているのでPower Automateなどを利用してせっせと自動化していきましょう。

小さな自動化がんばろう!

嬉しい感想をいただいたので…がんばろう。

画像12

ここから先は

0字

2021年記事全集です。更新は今後ありません。コロナ真っ最中だったため、家の話やホテルの話などが多めです。

ありがとうございます。『あなたの課金は、私の課金』を標語に経済をまわしていきましょう。