Slackbotで補完を効かせる仕組みを実践してみてる

こんにちは! 株式会社リンケージikkitang です。

Slack Bot 補完効かないかな〜 みたいなのを割と考えていて、実践してみた所割と良かったので紹介してみたいと思います。

結論

最初に結論から。

  • Slackbot のカスタムレスポンスは便利だけど誤爆しないようにキーワードを設定する必要があり記憶だより
  • カスタム絵文字 :bot_foo: をトリガにすると 補完 が使える!
  • 設定は “絵文字を作ってキーワード登録する” だけ!

それでは ここからは実際に取り組んだ内容を書いていきます。

課題感

slack.com

Slackbot のカスタムレスポンス便利ですよね。 上記のリンクでも以下の画像のように What's the Wi-Fi password? という文字列キーワードに対して、 Hello! The password is Lightning Fast! Visit #help-it if you need assistance. という固定レスポンスを返すような事を実装されています。

他にも ランダム当番 とかを作っておくと、なんかのアサインしたいみたいな事があった時に 機械的にランダムで人をアサインする事ができるみたいな活用方法などあると思います。

一方で、 幸か不幸か このキーワードは Slackに投稿された文章に対して"部分一致"でも反応します。なので キーワードを ランダム などの簡単な文字列に設定してしまうと、「Switch2の当選は完全ランダムの抽選なんですよね〜」みたいな雑談中にでもSlackbotが反応してしまいます。この為、Slackbotのキーワードは 一定以上のユニーク制を設定する事が必要です。 一方でキーワードは 完全に一致しない限り反応しない、という仕様もあります。 ランダム当番 というキーワードを設定している場合、 ランダム でも 当番 でも反応せず ランダム当番 と完全なキーワードを入力する必要があります。

つまり、利便性を上げたいけど 「ユニークなキーワード」を覚えてもらう必要がある みたいなストレスがあります。

アイディア

なんかいいアイディアないか?と考えていた中でひらめいたアイディアとしては、「Slackのカスタム絵文字をキーワードと設定する」というものです。

Slackbotのカスタムレスポンスは任意の文字列で引っ掛ける事ができます。 Slackのカスタム絵文字も :hogehoge: みたいな文字列で表す事ができるので、任意の文字列としての条件を満たしていそうです。

このアイディアのいいところは、Slackは 絵文字を : から始めることで補完を効かせる事ができる所、またカスタム絵文字に特殊なPrefixを指定しておく事で会話中にカスタムレスポンスが暴発する事も最小限におさえられて、単純にSlackbot補完だけを効かせる事ができそうという所です。

実際の動作

実際の画面を見せるとこのような感じです。 自分は :bot_ というprefix をつけています。

さっきの例でいう :bot_touban: という絵文字を指定すると こういう感じで カスタムレスポンスが表示されます。

登録画面はこういう感じですね。

これでユニークなキーワードbotを作ってもよしなに補完の中から選んでみたりそういった事ができるようになります。

まとめ

  • Slackbot のカスタムレスポンスは便利だけど誤爆しないようにキーワードを設定する必要があり記憶だより
  • カスタム絵文字 :bot_foo: をトリガにすると 補完 が使える!
  • 設定は “絵文字を作ってキーワード登録する” だけ!

弊社でも実際にこのルールで Slackbot を設定する事で 〇〇してくれ だったか 〇〇してください だったか そういったキーワードの揺れの困りを解決する事ができました。

似た課題を感じている方は是非真似してみてください!