Robotic Crowd

Robotic Crowd

未読メールをSlackに通知する

Author: Asao Nakamura 288 views

この記事では、条件に該当する未読メール(Gmail)があった際に、Slackに通知する方法について紹介します。

【できるようになること】

  • 条件に該当するGmailを取得
  • 未読メールがあることをSlackに通知する
  • 条件分岐の設定

 ワークフロー設定例

今回は以下のケースを想定したワークフロー例を作成します。

件名に、「RoboticCrowdについて」が含まれている「未読」メールがあれば、Slackに通知する。

※このワークフローは、メールの受信をトリガーにして自動実行されるものではありません。

※コネクション登録済みの方はスキップしてください

ワークフロー設定の前に、利用するコネクションを登録する必要があります。
詳細な方法は以下をご参照ください。

今回は件名に「RoboticCrowdについて」と含まれている未読メールを取得します。

  • 「GmailGet」アクションをドラッグ&ドロップで設定します。
  • 検索クエリを入力します。
    今回は、件名に「RoboticCrowdについて」と含まれている未読メールを抽出するため、クエリは下記のように設定します。
is:unread subject:RoboticCrowdについて
  • プロバイダIDパラメータの右横にある「プロバイダIDを選択」をクリックします。
  • 連携済みのGmail for Google WorkspaceのプロバイダIDを選択します。

[関連記事]

GmailGetの結果を3.の条件式内で利用するためには、GmailGetの実行結果を変数に保存する必要があります。

  • GmailGetの後に、「StoreValue」アクションを設定します。
  • 変数名に、「mail」と入力します。
  • 値には、GmailGetの実行結果を紐つけます。
  • IF(条件分岐)をStoreValueアクションの次に設定します。
  • 条件式:${mail.length != 0}
 
今回の条件式について

GmailGetの実行結果は、配列(リスト)の形で出力されます。
この配列(変数mail)内に要素数がある(= 要素が0ではない、length != 0)場合にSlackに通知することが目的となるため、条件式は${mail.length != 0}となります

[関連記事]

  • 条件分岐の間に「Text」アクションをドラッグ&ドロップします。
  • 送信する文面を記載します。
件名に「RoboticCrowdについて」を含む
未読メールがあります。
 
※本文内にGmailへのリンク(https://mail.google.com/mail)を入れると便利な場合があります。お好みでご設定ください。
  • 「SendSlackMessage」アクションをTextアクションの次に設定します。
  • プロバイダIDを選択します。
  • チャンネル名パラメータ右横のSlackアイコンをクリックして、送信するチャンネルを選択します。
  • メッセージには、Textアクションの実行結果を紐つけます。
 

このワークフローは、メールの受信により自動実行されるものではありません。
ただ、スケジュール(定期実行)登録により、任意の時間帯に実行させることは可能です。


例えば、1時間おきや10分おき、金曜日の17時のみなど、特定のタイミングでこのワークフローを実行させることができます。

詳細な方法については、以下記事をご参照ください。

未読メールがあった場合は、以下のようにSlackに通知されます

# Gmailを取得
+gmail_get_1:
  action>: GmailGet
  query: 'is:unread subject:RoboticCrowdについて'
  provider: ''
  limit: 10
  meta:
    display:

# 変数に保存(受信メール)
+store_value_1:
  action>: StoreValue
  key: mail
  value: +gmail_get_1

# 真のとき
+if_1:
  if>: ${mail.length != 0}
  _do:

    # テキストを作成
    +text_2:
      action>: Text
      text: "件名に「RoboticCrowdについて」を含む\n未読メールがあります"

    # Slackでメッセージを送信
    +send_slack_message_1:
      action>: SendSlackMessage
      provider: ''
      channel: ''
      text: +text_2
      send_select: false
      response_message: false
      meta:
        display:
【ここに入れる】

このページは役に立ちましたか?