無料版Slackで擬似的にグループメンションを使う方法

1 min read読了の目安(約1500字

やりたいこと

有料版限定の機能である「ユーザーグループを作成し、まとめてメンションできるようにする」を無料版でも使いたい。例えば、幹部と呼ばれる山田、田中、佐藤、木村、小林の5人がいたとしたら、@幹部をつけるだけで5人にメンションが行ってほしい。

「有料版にしろよ」と言われたらそりゃそうなのだが、Slackの有料版を使おうと思うと最低でも¥850/人月の支払いを要求されるので、大学生サークルで使うには高すぎるという背景がある。

方法

Slackbotのカスタムレスポンスを利用する。例えば「@幹部」というキーワードに対して、幹部5人分のメンションをbotに返してもらうように設定する。イメージはこう。

わたし「@幹部 来週のミーティングを30分延長させてほしいです。」
Slackbot「@山田 @田中 @佐藤 @木村 @小林」(太字はスコッココってちゃんと鳴るメンション)

とても単純なのですぐ実装できそうだ。こんな風に。

しかし、実はこれだと下の画像のようにメンションが空振りしてしまう(場合がほとんどだ)。

どうやらSlackbotのカスタムレスポンスは個人のプロフィールで設定されているような「氏名」や「表示名」でメンションしているわけではないらしい(これらの名前は個人でコロコロ変えることができ、個人の気分でカスタムレスポンスのメンションが意味を為さなくなってしまう可能性があるので、当然の設計だ)。


↑この値を使ってもメンションできない

以下では、Slackbotからのメンションに使うユーザーネームの取得方法を説明する。

  1. ワークスペースのオーナーか管理者になる(メンバー管理権限をゲットするため)
  2. サイドバーから、「設定と管理」>>「メンバーを管理する」をクリックする
  3. 上部にある「メンバーリストをエクスポートする」をクリックする。該当ワークスペースのSlackbotからCSVデータが届く。

  4. CSVデータから、メンションしたいユーザーの'username'のカラムの値を取得する

あとはこの値を使ってカスタムレスポンスを組めばOK!例えばこんな感じになる(usernameは登録メールアドレスから取っていることが多い)。