
【超入門!】Power AutomateでGmailに特定の文字が含まれたメールが届いたらSlack通知をする
こんにちは、GO株式会社 IT戦略部の白井(@yunmarurun)です。
今回は超入門講座として、初めてPower Automateを触る方でも作れる簡単なSlack通知を作成していきます。最後に同じ内容をCopilotに依頼して、ちゃんと作れるか検証してみました!
これは(だいたい)毎週くらいの頻度で私が主催している部内の「ぷち勉強会」でお話した内容です。ぷち勉強会は年始くらいから始めたのですが、いろんなメンバーがせっかくいるのにみんなの話が聞けないなんて、もったいない!と思い、みんなに気軽に話してもらう機会を作ろうというコンセプトのもとに実施しています。いろんなところからやってきた情シスの話を聞ける福利厚生最高〜 😍
お題:Power AutomateでSlack通知をする

目標:Power AutomateからSlack通知を送信できるようになる!
なにする?:メール本文に「ほげほげ」が含まれていたら、メールをSlack通知する
これができると何が嬉しいの?:このフロー自体に、というよりはこれをきっかけに情シスじゃないユーザの方でも、自由に好きなものをシュッと作れるようになるところにポイントがあると考えています!ので、あくまでも入り口の題材として用意しています
設計

お題を達成するには、以下のような順番でフローを完成させる必要があります。
1. Gmailが私に届いたら
2. 条件:本文 contains ほげほげ
3. Trueのとき:Slackでメッセージ投稿
Falseのとき:終了
4. 全部終了
準備するもの
Power Automateが利用できるライセンス
Slack通知先のチャンネル
ちゃんとそのチャンネルに自分が参加していることを確認!
フローを作成する

まずはトリガーの種類を選択します。トリガーは何をきっかけにそのフローが動くか?を定義するものです。「自動化したクラウドフロー」は、指定されたアクションをきっかけにフローを動かすことができます。

今回はGmailに届いたメールをきっかけにするので、「Gmail」と検索して、「新しいメールが届いたとき」を選択します。これは種類によっては「プレミアム」なものがあるので、気をつけてください!(プレミアムはプレミアムなライセンスが必要!詳しくは公式ドキュメントをご参照ください)

Power Automateから他のシステムに連携する場合は、接続が必要です!
接続するアカウントは必ずしも今利用しているアカウントでなくても大丈夫です。(Gmailにログインするアカウントは、Power Automateのログインで使用しているアカウントとイコールである必要はありません!)
ここまでで、トリガーの設定は完了です!ここから具体的な処理に移ります。

コントロールには、条件分けやくり返し処理などがあります。

ここは最初の手順で説明した「条件:本文 contains ほげほげ」の部分です。過去に別のアクションで扱ったことのある値を「変数」のような形で引っ張ってくることができます!ので、こちらを利用します。(あら便利)

今回は「本文」を利用します。

少し脱線しますが、Power Automateの内部で扱われるデータは、JSON形式になっています。なので複数個のデータが送信されたりしても、配列として扱って、繰り返し処理をかけたりもできるんですね〜便利だな〜。(今回はやりません)

「条件:本文 contains ほげほげ」になるように設定していきます。

「Slackにメッセージ投稿」の中でチャンネル名を設定するのですが、パブリックチャンネルがぶわーーーっと表示されて、自分で作ったものが表示されなかったり、検索しても「検索に一致する値がありません。」となることがほとんどなので、「カスタム値」として設定してしまいます。

詳細パラメータでは、表示されるボット名やボットのアイコンを変更することができます!ご自身のSlack環境にあるお気に入りの絵文字をつかってください。

終了アクションは入れてなくても全然動きます。

こちらで完成です!!!!!!!!!!めちゃ簡単でしたね!!!!!!!
テストする
それでは早速テストしていきます。

過去に実行した履歴があると、「自動」も選べるようになります。今回は初めての実行なので、「手動」のみ選択可能です。

5分おきのトリガー???何も聞いてないんだが????と思った方もいらっしゃると思いますが、実は「新しいメールが届いたとき」のトリガーには
「項目を確認する頻度」が設定できます。何も触らないままにしておくと5分おきになっているようです。

Copilotに作ってもらえばいいんじゃね?
そうなんです、このくらいのフローならCopilotさんに作ってもらえるのでは!ということでやってみました。
「Gmail で受け取ったメールに、「ほげほげ」という文字列が含まれていた場合に、Slackでメッセージを投稿する」と記載します。

できてしまった。私のスライドと時間返してくれ。

実際にそのまま「作成」を押してみると、少しだけ意図とずれていることがわかります。でもほとんど正しい。しゅごい。

実は初めはCopilotさんに「Gmail で受け取ったメールに、「ほげほげ」という文字列が含まれていた場合に、特定のSlackチャンネルへ通知する」とお願いしていたのですが、どうしてもTeamsで通知しようとするので、Slackのアクションの名称に近くなるように記載を修正したところ、しっかりSlackのアクションが選択されました。
まとめ
Copilotの進化がすごいので、なんとなくPower Automateの仕組みを理解できていれば、ほとんどCopilotにお任せできそうですね!これをきっかけにPower Automateにチャレンジしてみよう!ちょっと社内の教育に使ってみようという方がいれば嬉しいです。
※掲載内容は2024年5月28日現在の内容です。