Slackには、Gmail の転送機能がありますが、転送先のChannel のコントロールが細かく指定できません。
個人的に、Gmail フィルタでメールに付与したラベルごとに、転送先のチャンネルを切り替えることを実現したかったので、スプレッドシートの入力値を元に、Gmail を Slack 通知する Google Apps Script を作ってみました。
スプレッドシートをコピーすれば、使えるので、作成したものの使い方について記載します。
個人的に個人でも会社でも使用するのですが、環境構築が面倒だったりするので、claspのインストールなしでGoogle Apps Script のエディターにコピーアンドペーストして利用できるようにしています。
この記事では以下の3種類の方法と、使い方について説明します。
- スプレッドシート をコピーして使用する方法
- Github リポジトリをCloneして、セルフビルドする方法
- ビルド済のリソースをコピーして使う方法
V2を作った
gas-Gmail2Slack は旧方式のIncoming WebHooks を使っているので、新しくV2 を作成しました。
新方式のIncoming WebHooksを使って、Gmail をQuery指定して、Slack に通知する Google Apps Script を書いた | Monotalk に使用方法をまとめていますので、何か旧方式のIncoming WebHooksを使う理由がなければ、V2を使ってください。
スプレッドシート をコピーして使用する
スプレッドシート をコピーして使用する方法を記載します。
-
コピー元のスプレッドシート
以下が、コピー元のスプレッドシートになります。
gas-Gmail2Slack初期設定の設定シート作成は実施済です。
Github リポジトリをCloneして、セルフビルドする
clasp のインストール
コンテナバインドスクリプトをデプロイするため、clasp をインストールする必要があります。
clasp のインストールは以下の記事が参考になるかと思います。
GAS のGoogle謹製CLIツール clasp - Qiita
-
clasp のインストール
npm i @google/clasp -g -
clasp login
clasp login
Git リポジトリをclone して、新規でスプレッドシート を作成、Google Apps Script をビルドしてPushする。
-
Git clone
git clone https://github.com/kemsakurai/gas-Gmail2Slack.git <project_name> -
nom install
cd <project_name> npm install -
スプレッドシート を新規作成
スプレッドシート を新規で作成する場合は、npm run setupを実行します。 コマンド実行で、.clasp.json の初期化、スプレッドシート を作成します。npm run setup -
コンテナバインドスクリプトをデプロイ
npm run deploy
これで、gas-Gmail2Slack というスプレッドシート が GSuite上に作成されます。
ビルド済のリソースをコピーして使う
GSuite のセキュリティ設定で、公開スプレッドシート のコピーができない場合で、ビルド、デプロイが面倒な方は、gas-Gmail2Slack/dist at master · kemsakurai/gas-Gmail2Slack のリソースをコンテナバインドスクリプトとしてコピーしても使うことができます。
使い方
使用方法について説明します。
Incoming Webhooks を有効化、URLを取得、設定する
Incoming Webhooks の有効化して、URLを取得、スプレッドシート に設定します。
-
Incoming Webhooks の有効化
Slack の チャンネルに通知するには、Incoming Webhooks を使います。
現状、旧方式のIncoming Webhooks と、新方式のImcoming Webhooks があり、このスプレッドシートは旧方式で動作します。
旧方式の設定手順は、以下の記事が分かりやすかったです。
SlackのIncoming Webhooksを使い倒す - Qiita -
URL をスプレッドシート に設定する
メニューの、gas-Gmail2Slackから初期設定、Webhook URL設定をクリックします。
ダイアログが表示されるので、払い出した Webhook のURLを設定します。
Config シートに通知対象の Gmail 情報と、通知先の Slack のチャンネルを入力する。
Configシートのカラムの内容を説明します。
-
Tag
1行コメントを記載します。
Slackへはタグとして通知されます。- 入力例
Google Search Console
- 入力例
-
Channel
通知先のSlackのチャンネル名を記載します。#始まりです。- 入力例
gsc
-
SendTo
送信先のSlackのアカウントIDを入力します。- 入力例
@UDJ6E61JL
- 入力例
-
Message body length
メール本文の長さを記載します。タイトルのみ表示にしたい場合は、0を入力するとタイトルのみにできます。- 入力例
1000
- 入力例
-
Query
Gmail の検索クエリを設定します。Google Apps Script 側で Slack 送信したChatのメッセージは既読にするので、is:unreadを付与すると未読のメッセージのみ通知されます。
Gmail で使用できる検索演算子 - Gmail ヘルプ にどんな検索演算子が使用可能かは記載されています。- 入力例
is:unread label:google-search-console
- 入力例
スケジュール実行の設定
メニューの、gas-Gmail2Slack から 初期設定、スケジュール実行をクリックすると、ダイアログで実行スケジュールを設定可能です。
例えば、every hour を選択すると1時間おきにSlackにメールが通知されます。
参考
- Delete Unwanted Gmail Messages in Bulk with Google Scripts
- 特定ラベルの Gmail を受信したら、指定時間に Slack へ通知 – with a Christian Wife
- Googleユーザー必見!Slackと連携してG Suiteをもっと便利に - エブリデイG Suite™
以上です。


コメント