Bizer teamの通知はメールやSlack、Microsoft Teamsで受け取ることができますが、「普段のやり取りはGoogle Chatがメインなので、そちらでも通知を確認したい」というケースもあるのではないでしょうか。
Bizer teamではGoogle Chatで通知を受け取る機能を提供しておりません。
そこでこの記事では、Google Apps Script(GAS)を使って、Bizer teamの通知メール(Gmail)をGoogle Chatのスペースへ自動転送する方法をご紹介します。
※ この記事で紹介する方法は、Bizer teamの標準機能ではなく、Google Apps Scriptを利用したお客様ご自身による設定です。設定方法や動作についてのサポート・動作保証の対象外となります。あらかじめご了承ください。
GASを使って以下のような仕組みを作ることができます。
・Gmailに届いたBizer teamの通知を、指定したGoogle Chatスペースへ自動投稿する
・1分ごとに新しい通知を確認し、未送信の通知だけを転送する
・コメントやメンションの通知では、「誰が・どんなコメントをしたか」とBizer teamへのリンクを表示する
※ ダイジェストメールなど一部の通知は転送されません(後述)。
・Bizer teamの通知メールが届いているGoogleアカウント(Gmail)
・通知を送信したいGoogle Chatのスペース
Bizer teamの通知メール設定については以下のヘルプをご確認ください。
メール通知の設定を変更する
ブラウザで https://script.google.com を開き、「新しいプロジェクト」をクリックします。
コード欄(コード.gs)の内容をすべて削除し、配布されたコードファイル(bizer_gmail_to_google_chat.txt)の内容を貼り付けて保存します。プロジェクト名は任意です(例:Bizer team通知転送)。
※ Slackなどのチャットツールのメッセージ欄を経由してコードをコピーすると、日本語が文字化けすることがあります。コードは必ずファイルから直接コピーしてください。
Google Chatで通知を送信したいスペースを開き、スペース名をクリックして「アプリと統合」を開きます。
「Webhook」>「Webhookを追加」を選択し、名前(例:Bizer team通知)を入力して保存します。
表示されたWebhook URLをコピーしておきます。
※ Webhook URLは投稿用の鍵の役割を持つため、外部に公開しないでください。
GASエディタ左側の歯車アイコン「プロジェクトの設定」を開き、「スクリプト プロパティ」>「スクリプト プロパティを追加」をクリックします。
以下のとおり入力して保存します。
・プロパティ:WEBHOOK_URL
・値:手順2でコピーしたWebhook URL
過去のメールが一度に転送されることを防ぐため、初回のみ以下の操作を行います。
GASエディタ上部の関数選択リストで markExistingBizerNotificationsAsProcessed を選択し、「実行」をクリックします。
初回は権限の確認画面が表示されるので、内容を確認のうえ許可してください。
※ 「このアプリは確認されていません」と表示された場合は、「詳細」>「〈プロジェクト名〉に移動」>「許可」の順に進んでください。
この操作ではGoogle Chatへの送信は行われません。現在時刻を基準として記録し、これ以降に届いた通知のみが転送対象になります。
関数選択リストで setTrigger を選択し、「実行」をクリックします。
これで1分ごとにGmailを確認し、新しい通知をGoogle Chatへ自動転送するようになります。
※ setTrigger は複数回実行しても問題ありません(既存のトリガーを削除してから再作成します)。
Bizer teamで自分宛のコメントやメンションなど通知が発生する操作を行い、数分以内に指定したGoogle Chatスペースへ通知が届けば設定完了です。
通知が届かない場合は、GASエディタの「実行数」(実行ログ)でエラーが発生していないかご確認ください。
Google Chatには以下のような形式で通知が表示されます。
[プロジェクト名/チーム名]
(ユーザー名)が(タスク名)であなたにメンションしました。
内容:(コメント本文の一部) https://app.bizer.team/issues/xxx
通知の種類によって、タスク名、チェックリスト名、期限、完了者などの情報が付加されます。
件名に以下のキーワードを含むメールは転送されません。
・ダイジェスト
・今日のダイジェスト
・今日期限のタスク
・グループの更新情報
通常は WEBHOOK_URL の設定のみで利用できます。動作を変更したい場合は、スクリプトプロパティに以下の項目を追加してください。
| プロパティ名 | 役割 | 既定値 |
|---|---|---|
WEBHOOK_URL |
投稿先のWebhook URL(必須) | なし |
SENDER_EMAIL |
対象とする送信元アドレス | noreply@bizer.team |
PROCESSED_LABEL_NAME |
転送済みの目印に使うGmailラベル名 | bizer_chat_forwarded |
MESSAGE_MODE |
表示形式(subject=件名中心 / body=本文中心) |
subject |
MAX_THREADS |
1回の実行で転送する最大件数 | 20 |
BODY_PREVIEW_LENGTH |
コメント本文の最大表示文字数 | 120 |
Q. コードを更新したい場合はどうすればよいですか?
GASの コード.gs を新しい内容に貼り替えて保存してください。トリガーは再設定不要です。再設定したい場合は setTrigger を実行してください。
Q. 過去の通知が一度に届いてしまいました。
markExistingBizerNotificationsAsProcessed を実行してください。実行した時点以降の通知のみが転送対象になります。
Q. 同じ通知が二重に届きます。
受信時刻で重複を判定しています。解消しない場合は、GASの実行ログでエラーが発生していないかご確認ください。
※ この記事の内容はBizer teamの標準機能ではなく、参考情報として提供しています。Google Apps ScriptやGoogle Chatの仕様変更等により動作しなくなる場合があります。設定方法や動作に関するお問い合わせはサポートの対象外となりますのでご了承ください。