この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
はじめに
PowerAutomate(flow)とはアプリケーションを連携してタスクを自動化できるツールです。
テンプレートも用意されておりオブジェクトの組み立てが中心なので、ノンコーディングで直感的に作成が可能です。
例えば、業務でメールを利用していると、毎日膨大な量のやりとりで大事なお客様からのメールを見落としてしまったり、整理に時間がかかったりといったこと、皆さん経験あるかなと思います。問合せを受けること、内容をチームメンバーで共有すること、そういった毎日のルーチンワークをできるだけ機械的なものに置き換えることを考えてみませんか?今回は、PowerAutomateテンプレートをヒントにメールの情報収集と自動化の活用を考えていきたいと思います。
構想:利用シーンとやりたいことを整理する
まずは以下のように、自動化したいことや利用シーンを考えて、実際にテンプレートを見ながら実現できるかどうかを見ていきます。
利用シーン例:
顧客からの問合せメールをExcelへ自動転記して課題管理表作成のベースに活用する。
メールで受ける障害情報等をExcelで一覧化して確認漏れを防止する。
作成したExcelをTeamsでメンバー共有する。 など
やりたいことの例(自動化したいこと):
件名などのある一定条件のメールを受信したらファイル出力
・Excelに書き込む
・SharePointリストに書き込む など
Teams共有
・Excelに書き込まれたらTeamsチャネルにメンションでコメントする
・ExcelをTeamsチャネルにタブ表示させる
参考テンプレート(自動化のヒント):
[Outlookメールを受信したときにSharePointリストに追加する]
対象のテンプレートを選択し接続先を確認後、[続行] をクリックするとフローのサンプルが確認できます。どうやって作成するかのイメージとして参考に見てみましょう。
実装:Outlookメールを受信したときにExcelに書き込む
今回はある条件のメールを受信したらExcelに書き込む動きを実装してみます。
【作成が必要なもの】
Input:Outlook(メールを事前に振り分けておく)
Control:PowerAutomate (flow)
Output:Excel、SharePointリストなど(空の入れ物=表を作っておく)
Excel
書き込み用のExcelファイルを新規で作成します。今回はメールからの情報を書き込むテーブルを事前に作成します。
メールからどういった情報が取れるかという項目についてはフローテンプレート上の [新しいメールが届いたとき] の取得値を確認してください。
- Excelで件名、本文、といったヘッダ項目を決めた後、[ホーム] – [テーブルとして書式設定] でスタイルを選択し、[先頭行をテーブルの見出しとして使用する] にチェックを入れOKをクリックします。
- [テーブルデザイン] – [テーブル名] を設定します。
- Excelファイルを任意の場所に保存します。今回はSharePointサイト上のドキュメントライブラリに配置します。
※ 出力先にSharePointリストを作成したい際には以下をご参照ください。
[Share Point Online カスタムリストの作成]
https://cloudsteady.jp/post/16097/
Outlook
テンプレートの[新しいメールが届いたとき]トリガーを確認すると件名や差出人でフィルタが可能ですが、現在の仕様では、件名はテキストボックス内の文字列による部分一致条件のみです。
例えば以下の条件はトリガーのみでは設定できません。
・件名に「aaa」が含まれるもしくは件名に「bbb」が含まれるといったOR指定
・送信者が「@test.co.jp」の場合といったドメインのみでの指定(xxx@test.co.jp, zzz@test.co.jp を対象とする)
詳細なフィルタをしたい場合はフロー上で制御する場合、トリガーの後に分岐条件を入れるといった方法となります。
今回はOutlook側であらかじめフィルタをかけたフォルダを作成してメール条件を指定する方法とします。
PowerAutomate (flow)
制御部分を生成します。
- Power Automate 管理画面を表示します。
- [マイフロー] – [+新規] – [自動-一から作成] をクリックします。
- 作成するフロー名を入力し、フローのトリガーでメールと入力します。トリガーの候補が表示されるので、作成したいトリガーを選択します。今回は [新しいメールが届いたとき(V3)] を選択し [作成] をクリックします。
- トリガーの条件を指定します。今回はOutlookで事前に作成したフォルダをを指定します。
- 次にアクションを指定します。[新しいステップ]をクリックします。
- アクションでExcelを選択し、[表に行を追加]をクリックします。
- 事前に配置したExcelの場所、ファイル名、テーブル名、メールからセットしたい項目を指定します。
各項目はトリガーとなるメールからの情報 [新しいメールが届いたとき] の項目をセットします。 - フローを保存し、実際にメールを送信するとExcelへの書き込みを確認できます。
※ 添付ファイル名をセットした場合、1メールにつき複数添付ファイルとなるケースを想定して、繰り返し文が自動挿入されます。添付ありなしを制御するためには分岐のコントロール追加が必要です。
※ 受信日時の変換は以下をご参照ください。
[flowで時刻を日本時間に変換したい]
https://cloudsteady.jp/post/4861/
Teams共有
ExcelをTeamsチャネルにタブ表示させる方法は以下をご参照ください。
・表示させたいTeamsチャネルやチーム内のファイルタブにあるファイルの場合
[Teams チーム内の情報共有にSharePointリストのタブ表示を活用する]
https://cloudsteady.jp/post/16097/
・Teamsチャネルとは別のSharePointサイト等に配置したファイルの場合
[Teamsタブに別のSharePointサイトのExcelファイルを表示させたい]
https://cloudsteady.jp/post/25140/
動作確認
今回はOutlook側で件名に【障害】もしくは【テスト】が含まれる場合、テストフォルダに移動するよう振り分けルールを設定しています。
接続ユーザー宛てにメールを送信すると、Excelに書き込まれたことを確認できました。
PowerAutomateを使った自動化ツールの作成いかがでしたでしょうか。是非色々試していただき office365をより活用していただけたら幸いです。