📬

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

2021/06/28に公開

背景

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

まずは公式ヘルプ

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

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

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

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(的なもの)

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

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

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

もちろんGASに限らずLambdaも同様。
メンテナンスまで考えて作りましょう。

まとめ

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

やりたいことが満たせるならメールアドオンかslackbot転送で、それではだめならzapier的なものでやるのがいまのところの最適解ではないだろうか。
zapier的なものの外部仕様に引っ張られるくらいならGASで我が道をいく、と思える人はそちらでも。

Discussion