【GAS】Gmailに来た問い合わせをチャットワークに通知してかつタスク追加する

★気に入ったらシェアをお願いします!

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

Google Apps Scriptを使って問い合わせメールをスプレッドシートに記録したり集計したりといったシステムを作っています。

前回はこちらの記事。

【GAS】新たな問い合わせメールをGmailで取得しスプレッドシートに随時追加する
Gmailの未読メールを取得する方法、メールを既読にする方法などを活用して、Google Apps Scriptで問い合わせメールを都度スプレッドシートに追加していく方法についてお伝えします。

Gmailから問い合わせメールを都度スプレッドシートに追加する方法でした。

今回はこのシステムをチャットワークと連携させて

  • 問い合わせメールの通知をチャットワークに送る
  • 問い合わせメール対応のタスクを立てる

という二つの機能を追加していきたいと思います。

前回のおさらい

まず前回作成したGmailから問い合わせメールを検索抽出して、スプレッドシートに追加するスクリプトのおさらいです。

コメントを見て頂ければだいたいわからなくもないですが、流れとしては

  1. Gmailから未読の問い合わせメールのスレッドを抽出する
  2. 抽出したすべてのメッセージについて
    1. 各メールから日時、送信元、件名、本文抜粋を取り出して配列に格納
    2. メッセージを既読にする
  3. スプレッドシートの最後尾に配列の内容を書き出す

となっています。

問い合わせをチャットワークに通知しつつタスクを立てる

スプレッドシートに追加するメッセージ一つ一つについて、チャットワークへ通知をしてタスクを追加していけばよいですね。

スクリプトとしては20~22行目の間に

  • チャットワークへ送るメッセージを生成
  • そのメッセージをチャットワークに送る
  • チャットワークへ立てるタスクを生成
  • そのタスクをチャットワークで立てる

という処理を入れればOKです。

チャットワークにメッセージを送る

まずチャットワークにメッセージを送る部分について考えます。

以下記事で作成した、sendMessageという関数を少しカスタマイズして流用します。

【GAS】チャットワークのメッセージを取り出す関数とメッセージを送る関数
Google Apps Scriptを活用してチャットワークにおみくじチャットを作成しています。今回はチャットワークからメッセージを取り出す、メッセージを送る処理を関数化して全体のコードをスッキリさせます。

関数はこちらです。

メッセージ本文を成形して引数bodyとして渡すと、ROOM_IDで指定したグループチャットに送信します。

  • グループチャットのルームID:ROOM_ID
  • チャットワークAPIトークン:CW_TOKEN

はタスクを立てる処理でも使うので、関数の外で定数として別途宣言をしておきます。

チャットワークに送るメッセージを生成

それでその引数bodyとして、チャットワークに送る文字列を生成してsendMessageを呼び出す部分です。

いつもながら、この部分はちょっとややこしく見えてしまうのですが

  • valMsgs[i][1]:送信元メールアドレス
  • valMsgs[i][3]:本文の抜粋
  • valMsgs[i][4]:メッセージへのパーマリンク
  • 問い合わせ記録のスプレッドシートへのリンク
  • valMsgs[i][0]:メッセージ受信日時

という情報をチャットワークのメッセージ記法に則って生成するという仕組みです。

ちなみにToで指定をしている

  • アカウントID:ACCOUNT_ID

これも他で使うので関数外で定数宣言しておきますね。

チャットワークのメッセージ記法についてはこちらの記事もご参考ください。

Google Apps ScriptでチャットワークにToや返信でメッセージを送る
Google Apps Scriptでチャットワークのおみくじチャットを作っています。今回はチャットワークのメッセージ記法を使って、おみくじの結果をToや返信のメッセージにする方法です。

チャットワークにタスクを立てる

続いてチャットワークにタスクを立てる部分を作成していきます。

こちらも以前紹介したaddTaskという関数をカスタマイズして流用します。

Google Apps Scriptでチャットワークにタスクを追加する最も簡単なプログラム
チャットワークの大きな特徴であるタスク機能がもAPIを使って操作することができます。今回はGoogle Apps Scriptでチャットワークにタスクを追加する最も簡単なプログラムを紹介します。

関数はこちらです。

タスク内容を引数bodyとして渡すと、ROOM_IDで指定したグループチャットに、ACCOUNT_IDで指定した担当者でタスクを追加します。

payloadの中にはタスク期限を表すlimitも設定できるのですが、今回はなしで作っています。

例えば

などと指定してあげれば、「問い合わせメール:件名」というようなタスクが追加されるわけです。

実行結果

こちらのスクリプトを実行してみました。

問い合わせメールをチャットワークに通知してタスクを追加

無事にメッセージも送信できていますし、タスクも追加できていますね。

まとめ

Gmailに届いた問い合わせメールをスプレッドシートに集計記録しつつ、それをチャットワークに通知しながらタスクも追加する、そんな素敵なシステムをGoogle Apps Scriptで作成することができました。

しかも、イベントトリガーで5分ごととか10分ごとに設定をしておけば完全自動で全ての動作がなされます

便利ですね~。

さて、おさらいですが、本体のスクリプトfetchContactMailはこちらです。

ここまでメールの取得についてお伝えしてきましたが、次回はGmailの読み取り件数の制限という注意すべき点についてお伝えします。

Google Apps ScriptにおけるGmailの読み取り件数の制限とその対処法
Google Apps Scriptでメールを取得する際には、1日あたりのGmailの読み取り件数の制限があるので注意をしなければなりません。今回は、その制限の内容と対処法についてお伝えします。

どうぞお楽しみに!

連載目次:GASでGmailに届いた問い合わせメールを分析する

お仕事の現場では日々様々なメールが届きます。その中で重要なのが「問い合わせメール」ですね。このシリーズでは、Webサイトからの問い合わせメールを自動でスプレッドシートに取り込んだり、チャットワークに送る方法についてお伝えしていきます。
  1. 【GAS】Gmailに送られた過去のメールから特定条件のメールを検索して取得する
  2. 【GAS】Gmailからメールを検索してスプレッドシートに書き出す
  3. フリーランスの仕事はどこから来たか、独立して1年間の受注件数を全て晒す
  4. 【GAS】新たな問い合わせメールをGmailで取得しスプレッドシートに随時追加する
  5. 【GAS】Gmailに来た問い合わせをチャットワークに通知してかつタスク追加する
  6. Google Apps ScriptにおけるGmailの読み取り件数の制限とその対処法