Gmailに届く特定のメールをChatworkに自動投稿させる方法

Gmailに届く特定のメールをChatworkに自動投稿させる方法
  • Gmailに届いた特定のメールだけをChatworkに自動投稿させたい
  • ChatworkでGmailの通知を受け取りたい

Gmailに大事なメールが届いていたのに見逃してしまうというミスをしてしまったので、特定のメールが届いた時だけ愛用中のChatwork(チャットワーク)に自動投稿させることにしました。

GmailからChatworkに自動通知させる

ステップとしてはたくさんあるのですが、基本はコピペでOK!Chatwork無料版でも設定は可能です。

所要時間はトータル30分くらいです^^

Chatworkへの自動投稿に必要なもの&事前準備

  • Gmailメールアドレス
  • Gmail側でのフィルター設定
  • ChatworkのAPIトークン
  • Chatworkに自動投稿させるグループチャット

1. ChatworkのAPIトークンを確認する

Chatworkにログイン後、画面右上にあるアカウント名をクリックして「サービス連携」をクリックします。

Chatworkのサービス連携

左メニューから「APIトークン」をクリックして、APIトークンの文字列が表示されているか確認します。

APIトークンが表示されていない場合は、Chatwork管理者に承認依頼してください。
ChatworkのAPIトークン
メモを取っておきましょう!

表示されたAPIトークンの横にある「コピー」ボタンをクリックして、APIトークンをテキストエディタやメモ帳アプリに貼り付けておきます。

2. Chatworkに通知用のグループチャットを作成する

2-1. グループチャットを作成する

自動投稿させるためのグループチャットを作成します。左側メニュー上にある「」ボタンを押して、「グループチャットを新規作成」をクリックします。

Chatworkグループチャットを新規作成

グループチャット名や説明を入力します。ここでは、「申込自動通知」というチャット名にしました。

Chatworkグループチャットを新規作成

必要に応じて、コンタクトを追加します。

自動投稿の通知を他の人と共有しないのであれば、あなた以外のコンタクトを追加は不要です。

画面下の「作成する」ボタンを押すと、作成した「申込自動通知」グループチャットが作成されます。

Chatworkグループチャットを新規作成

2-2. グループチャットのルームIDを確認する

Chatworkの左側にあるチャット一覧から、いま作成したグループチャット(ここでは「申込自動通知」)をクリックして、画面右上のネジマークから「グループチャットの設定」をクリックします。

グループチャットの設定

グループチャットの名前と概要、ルームIDが表示されます。

グループチャットの設定
メモを取っておきましょう!

グループチャット名とルームIDを、さきほどのAPIトークン同様にテキストエディタやメモ帳アプリに貼り付けておきます。

3. Gmailでフィルター設定をする

次に、Gmail側の設定に入ります。Gmailに届く「特定のメール」を指定するために、メールのフィルター設定を行います。

すでにGmail側でフィルター設定してある場合は、新しく設定する必要はありません。

Gmailのフィルター設定については、下記ブログ記事を参考に設定してください。

メモを取っておきましょう!

Gmailのフィルター設定が終わったら、フィルター適用時のラベル名を、さきほどのAPIトークン同様にテキストエディタやメモ帳アプリに貼り付けておきます。上記ブログ記事では「仕事用」がフィルター適用時のラベル名になります。

4. GmailとChatworkを連携させるための設定する(Google Apps Script)

ちょっとここからは若干ハードルがあがりますが、すでに先人がとても便利にプログラムを作ってくださっていたので、ありがたく使わせてもらいます。
※CSnavi様(https://ingage.jp/media/cs/)ありがとうございます

Chatworkに自動投稿させたいメールが届くGmailアカウントにログインした状態で、下記リンクをクリックします。

プログラムが表示されるので、画面を閉じたくなるかもしれませんが、難しい作業ではないので安心してください。

表示された画面の右上にある「コピーを作成」ボタンをクリックします。

Google Apps Script

そうすると、今ログインしているGmailアカウントのGoogleドライブ上に、「Copy of Gmail→Chatwork」というファイル名でコピーされたスクリプト画面が表示されます。

Google Apps Script

4-1. Google Apps Scriptの設定箇所

この画面で設定する値は、次の6つです。次の6つを設定することで、「Gmailでフィルター設定した特定のメールを受信したら、Chatworkの通知用グループチャットに自動投稿し、Gmail側では既読メールとする」ことができます。

  • cw_token(ChatworkのAPIトークン)
  • gmail_label(Gmailのフィルター設定した時の表示ラベル名)
  • room_id(Chatworkの通知用グループチャットのルームID)
  • mark_read(Gmail側で既読メールとして処理する)
  • excerpt_length(Chatworkに表示させる文字数)
  • to_id(ChatworkでTO表示させる)

cw_tokenを設定する

cw_tokenは、ChatworkのAPIトークンを記載する箇所です。xxxxxxとなっているところを「1. ChatworkのAPIトークンを確認する」でメモしておいたChatworkのAPIトークンに書き換えます。

前後の””(ダブルクオテーション)は絶対に削除しないでください。もし削除してしまったら、半角モードで””を追加してください。
Google Apps Script(cw_token)

gmail_labelを設定する

gmail_labelは、Gmailのフィルター設定した時の表示ラベル名を記載する箇所です。””(ダブルクオテーション)の間に「3. Gmailでフィルター設定をする」でメモしておいたGmailフィルター時に表示させるラベル名をコピペします。

前後の””(ダブルクオテーション)は絶対に削除しないでください。もし削除してしまったら、半角モードで””を追加してください。
Google Apps Script(gmail_label)

room_idを設定する

room_idは、Chatworkに作ったグループチャットのルームIDを記載する箇所です。初期値は0が表示されていますが、「2-2. グループチャットのルームIDを確認する」でメモしておいたルームIDに書き換えます。

後に表示されている,(カンマ)は絶対に削除しないでください。もし削除してしまったら、半角モードで,(カンマ)を追加してください。
Google Apps Script(room_id)

mark_readを設定する

mark_readは、Gmail側のメールを既読にするかどうか?を記載する箇所です。0なら「未読のまま」1なら「既読にする」を設定します。今回は、Gmail側のメールを既読扱いにしたいので、1を設定しました。

後に表示されている,(カンマ)は絶対に削除しないでください。もし削除してしまったら、半角モードで,(カンマ)を追加してください。
Google Apps Script(mark_read)

excerpt_lengthを設定する

excerpt_lengthは、メールの本文を何文字分表示させるか?を記載する箇所です。0なら「メール本文」は表示されません。今回は、メール本文を1000文字分表示させたいので、1000を設定しました。

後に表示されている,(カンマ)は絶対に削除しないでください。もし削除してしまったら、半角モードで,(カンマ)を追加してください。
Google Apps Script(excerpt_length)

to_idを設定する

to_idは、Chatwork側でTO表示させるアカウントのIDを記載する箇所です。0なら「誰にもTO表示」はされません。今回は、自分宛にTO表示させたいので、私のChatwork IDを設定しました。

自分のChatwork IDを調べる場合は、Chatwork画面右上の名前の部分をクリックして、「プロフィール」を選択すると表示されます。
Google Apps Script(to_id)

設定を保存する

これで、プログラム側の設定は完了したので、「プロジェクトの保存」ボタンを押します。続いて、トリガーの設定をするので画面はそのままにしておいてください。

Google Apps Script(プロジェクトを保存ボタン)

4-2. トリガーを追加する

トリガーでは、「どのタイミングで自動投稿させるか?」を設定します。左メニューにある「トリガー」をクリックします。

Google Apps Script(トリガーの設定)

画面下にある「+トリガーを追加」ボタンをクリックします。

Google Apps Script(トリガーの追加)

表示された画面で変更できるのは、「時間ベースのトリガーのタイプを選択」と「時間の間隔を選択(時間)」のみです。

今回は「時間ベースのトリガーのタイプを選択」を「分ベースのタイマー」、「時間の間隔を選択(時間)」は「30分おき」にしました。

あとで変更できるので、ここで悩む必要はありません。
Google Apps Script(トリガーの追加)

設定が終わったら、右下の「保存」ボタンをクリックします。

4-3. Gmailアカウントの選択画面が表示された場合

トリガー設定後にGmailのアカウント選択画面が表示される場合があります。その場合は、今回Gmailでフィルター設定をしたGmailアカウントを選択します。

Gmailアカウントの選択画面

「Googleはこのアプリを検証していません」が表示されたら、「高度な…」のリンクをクリックしてください。

Googleはこのアプリを検証していません

隠れとったんかい!と突っ込みたくなりますが、「Gmail→Chatworkコピー連携(危険)へ」をクリックします。

Googleアカウントにアクセスしたい

表示された画面下の「許可する」をクリックします。

Googleアカウントにアクセスしたい

これで、ChatworkとGmailアカウントが連携しました。

Google Apps Script(トリガーの追加)
この後のテストで使用するので、まだ画面は閉じないでください。

5. Chatworkに自動投稿されるかテストする

すべての設定が完了したので、ここでテストをしてみましょう。

5-1. Gmail宛にテストメールを送る

Gmailで設定したフィルターに引っかかるように、テストメールを送ります。

正常にテストメールを受信し、フィルターに引っかかって設定したラベル名が表示されているか確認します。

テストメールにラベル名が付いていた場合は、Google Apps Scriptの画面を表示させます。

5-2. Chatworkへの自動投稿プログラムを実行する

Google Apps Scriptの左側にある「エディタ」メニューをクリックし、上部にある「実行」ボタンをクリックします。

Google Apps Script(選択した関数を実行)

画面下の「実行ログ」で「実行完了」が表示されたらOKです。

Google Apps Script(実行ログ)

5-3. Chatworkを確認する

Chatworkに戻り、通知用グループチャットに自動投稿されているか確認します。

GmailからChatwork自動投稿

5-4. Gmailを確認する

最後にGmailのメールが「既読状態」になっているか確認します。自動投稿させたメールが「既読」になっていれば成功です!

お疲れ様でした!!!