Robotic Crowd

Robotic Crowd

未対応の最新メールを通知

Author: Junji Kambara 241 views

この記事では、未対応のメールがあった際に、Slack通知する方法について紹介します

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

  • 条件に該当するGmailを取得
  • 該当メールがあることをSlackに通知する
※記事としてはGmail,Slackを扱いますがOutlook,Chatworkも流れとしては同じ内容で実施可能です

 ワークフローの設定例

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

件名に、「RoboticCrowdについて」が含まれているメールで、未対応のものが直近1週間以内にあればSlackに通知する。

※このワークフローは、メールの受信をトリガーにして自動実行されるものではありませんがスケジュール実行で10分起きに設定すると比較的近い形式で実行することができます

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

今回行う最終確認分のメール取得にはパッケージストアにある「便利アクション」を利用します
※パッケージは初回利用時弊社側で設定が必要となりますので、右下のチャットより利用を希望する旨ご連絡いただけますと幸いです

まずは、ワークフローを格納するプロジェクトでパッケージを開き、「便利アクション」をクリックします

その後インストールボタンを押すと格納されているカスタムアクションが利用可能になります

今回はインストールしたカスタムアクションの中から「指定のIDより前にあるデータを取得」を利用します

利用方法はワークフロー作成後、「カスタムアクションを実行」をドラッグアンドドロップし、「指定のIDより前にあるデータを取得」を選択します

直近1週間以内のメールを取得するには、変数に保存で1週間前の時間を取得し、「Gmailを取得」アクションに設定します

1週間前の時間を取得する際はGettimeアクションなどで日付を指定する形式でも可能ですが、厳密に実行より1週間前の時間を指定する場合はUnix時間という形式を使います(1週間前を1時間前、1日前などに変更したい場合はこちらを参考にsubtract(1,”weeks”)の箇所を修正ください)


Gmailの検索方法は下記を、Outlookは
こちらを参照ください

https://support.google.com/mail/answer/7190?hl=ja

データストアのページを開き、データを追加をクリック、変数名と値を設定します

「データを取得する」アクションを入れ、登録した変数を設定し、カスタムアクションに紐付けます

 

カスタムアクション設定後、「各要素について繰り返す」を追加し、繰り返すリストにカスタムアクションのアウトプットを連携し、要素を格納する変数名にmail_dataと入力します

その後、「各要素について繰り返す」の中にSlackでメッセージを送信」「データを保存する」を追加し、チャンネル名の指定やメッセージを記載します

このように設定することで、該当のメールがある場合は全て通知を行い、「データを保存する」で通知したメールのIDをデータに保存し、変数の内容を最後のメールIDに更新し続けることで、以後通知を行わないようにします

# 変数に保存 7日前の日時取得
+store_value_1:
action>: StoreValue
key: search_date
value: ${moment().subtract(1, 'weeks').unix()}

# Gmailを取得 直近一週間、指定の件名のメールを取得
+gmail_get_1:
action>: GmailGet
query: 'subject:RoboticCrowdについて  after:${search_date} '
provider: ''
limit: 10
meta:
display:

# データを取得する
+data_store_get_1:
action>: DataStoreGet
key: last_mail

# カスタムアクションを実行
+call_custom_action_1:
action>: CallCustomAction
id: ''
params: ''
meta:
interface:
params:
output: Anything
pickers:

# 各要素について繰り返す
+for_each_1:
for_each>:
mail_data: +call_custom_action_1
_do:

# Slackでメッセージを送信
+send_slack_message_1:
action>: SendSlackMessage
provider: ''
channel: ''
text: '新着メールあり(${mail_data.subject})'
send_select: false
response_message: false
meta:
display:

# データを保存する
+data_store_save_1:
action>: DataStoreSave
key: last_mail
value: ${mail_data.id}
<Googleworkspace>GoogleWorkspace/グーグルワークスペース <ChatWork>チャットワーク <Slack>スラック Outlook アウトルック      

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