📬

slackの無料WSだってメールをslack通知したい!

2021/06/28に公開

背景

とてもよく掲題の相談をもらいます。
「課金して」が手っ取り早い回答ではありますが、課金できない事情もおありでしょうから、無料で頑張れるか調べてみましょう。

まずは公式ヘルプ

何はなくとも公式ヘルプは見る。
Slack にメールを送信する

  1. チャンネルまたはダイレクトメッセージ(DM)用メールアドレスを作成する  有料プラン
  2. メールアドオンを使用する  すべてのプラン
  3. メールアプリのインストール  有料プラン
  4. Slackbot を使用して、メールをDMに転送する  すべてのプラン

無料WSでも上記2と4、二通りの方法が取れることが分かった。
これでやりたいことができるのかはヘルプだけでは分からなかった。

2.メールアドオンを使用する

GmailまたはOutlookで使える。自分はGmailユーザーなので Slack for Gmail を試した。
結論からいく。
これは「Gmail(Outlook)の画面上に表示されるアドオンから、UI操作によって、メール1通を、SlackのDMまたはチャンネルに送れる機能」だ。
「人力でメール転送する代わりに人力でSlackに送る機能」ともいえる。
自動で、とか、特定の条件に当てはまるメールを、とか、まとめて、とかはできない。
できない

Gmailの場合はGoogle Workspace Marketplaceから入れることになるのだが、GoogleWorkspaceのポリシーによってインストールが禁止されている場合がある。そのときはホワイトリストに入れるなどして対処する。
入れる手間がかかる割に、活用シーンが分からない。
正直これはいつ使うものなんだろうと思った。いい使い道があれば教えてください。

4.Slackbot を使用して、メールを DM に転送する

これは「メールを特定のアドレスに転送することにより、自分宛のDMに通知される機能」だ。
これはもう機能名から分かる通り、自分宛のDMにしか送れない。
トリガーは「特定のアドレスに転送」なので、普段お使いのメールのフィルタ機能と組み合わせれば、特定の条件に当てはまるメールだけを通知することができる。
自分さえ知りたいならこの形でいける。
みんなで共有したいなら、これほど泣ける仕組みはない。

帯に短したすきに長し。
ちがう。
一長一短。
まさに一長一短。

メールを自動で振り分けて自分のDM宛に送りたいケースがあるだろうか?
TODO管理とか?

zapier(的なもの)

外部サービスに頼る。
今のところこれが一番簡単ではないかと思う。
非エンジニアでもITに親しんでいる人なら運用可能。
無料でも使える。

GAS(的なもの)

Slack通知したいタイミングが「特定のGoogleフォームが送信されたら」「特定のスプシが更新されたら」等の場合、GASで作り込むことができる。
割とリアルタイムで通知が可能。いうて数分遅れくらい。
自前でGASやSlackインテグレーションを作ることができるなら選択肢に入る。

一方、単に「こういうタイトルのメールが届いたら」などの場合はGASのトリガーを分単位にすればいけるのだろうか?(実績ありません)

このあたりはタダでカスタマイズも効くという最高さがありながら、メンテナンスできる人がいなくなると負の遺産になってしまうという面がある。
メンテナンスできるのが自分だけだと永遠に問い合わせを受けることになる。軽率に作ってはいけない。

もちろんGASに限らずAWS Lambdaやそれに類するものも同様。
メンテナンスまで考えて作りましょう。

まとめ

手段 特定の条件のみ チャンネル通知 DM通知 メンテナンス性
メールアドオン
Slackbot 転送先メールアドレス
Zapier
GAS

やりたいことが満たせるならメールアドオンかslackbot転送で、それではだめならzapier的なものでやるのがいまのところの最適解ではないでしょうか。

Discussion