メインコンテンツへスキップ
見出し画像

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

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

    え、めっちゃ恥ずかしいんだけど、Power Automate めっちゃべんりやんけ…。自動化するためにちょっと調べなきゃなーっていうの全部既存機能であったわ……

    — ぱぴこ (@inucococo) October 11, 2021

    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
     
     
    noteではお買い物したものの記録や、好きなものについて、率直にしたためます。インターネットで大っぴらにはできない生活やお金、持ち物のリアルタイムな素直な気持ちと動きを書く場所です。