【雑学】Slackのデフォルト機能でWorkSpaceにチャットボット(SlackBot)を作成する

どーも!

たかぽんです!

今回はSlackでWorkSpaceに対して、何かしらのメッセージが入力されたら、それに対して自動で返信をする...

といったチャットボットを作成してみようと思います!

今回はガッツリAPIを使って....!

というわけではなく、ほんとにSlackの設定だけで簡単に実装できる形です。

プログラム等は書かないため、余りそういった知識がなくても設定できるかと思います!

それではやっていきましょう!

今回おこなうこと

まず、やりたいこととしては...

以下のように、適当なメッセージが入力されたら事前に設定している内容をSlackBotが返答してくれる...というものです。

上記のようなほんとに基本的な機能だけであれば、ほんとに楽に実装できるので、試してみましょう!

注意点として、プログラムを書かない場合、以下の内容に関してはできなさそうでした。(SlackBotでできる方法をご存知でしたら教えてください!)

  • 特定のチャンネルの発言にのみボットの返信を行えない(WorkSpaceで意図しないチャンネルで返信される可能性がある)
  • つぶやかれる文字列と設定した値は完全一致していないとダメ

もし、上記も行いたい場合はGAS等を利用していい感じにしてあげる必要がありそうです...!

(別途記事にかければなと思います...!)

では、やっていきましょう!

SlackでWorkSpaceにチャットボットを作成する

やることはとっても簡単です!

まずはWebの編集画面を開きましょう。

WorkSpaceのSettings & administrationから、Workspace settingsを開きます。

(日本語だとおそらく"設定と管理"、"ワークスペースの設定"といった感じだと思います。)

すると、ブラウザが立ち上がり、WorkSpaceの編集画面が開くと思います。

この画面が出てきたら、左側の一覧から、Custamizeを選択します。(多分日本語は"カスタマイズ”)

すると、右側の画面が変わるため、その中から、"Slackbot"を選択します。

すると、以下のような画面が出てくると思います。

これが、Slackbotの設定画面になります。

現在は何も返信が設定されていないため何も表示されていません。

では、設定を追加していきましょう!

Add New Responseを追加すると入れると...?

以下のような画面が出てきます。

すでに入力していますが、"When someone says"のところに、どんなコメントや質問をされたらボットが返信するか?を設定します。

そして、そのコメントがされた際に返信する内容を"SlackBot responds"に書き込みます。

これで、もしも誰かが"てすと"とメッセージを送信したら、それに対して"いま"てすと"と入力しましたね?"と返信をすることができます。

では、Saveをします。

内容は以下のように一覧で確認が可能です。

では、Slackにて"てすと"とメッセージを入力してみましょう...!

ちゃんとでました!

そして、そのあとに"てすとてすと"としていますが、この場合は"完全一致"ではないため、返信はされません。

つまり、"てすと"が文章に含まれていたら....といった返信はできない点は気をつけてください。

また、今試したのは"#personal-test"チャンネルでした。

試しに別のチャンネルでも行ってみます。

上記のように、WorkSpaceに対して設定を行っているため、チャンネル関係なく、返信されます。

基本的な使い方は以上です!

簡単ですね...!

複数の言葉に対して同じ返信をする

複数の言葉に対して、同じ返信を設定することも可能です。

新規で毎回新しい設定を追加する...と結構めんどうなため、例えば以下のようにします。

このように、カンマ","区切りで区切ることで、"こんにちわ"もしくは、"hello"と言われたら...といった形にできるらしいです。

できました!

一つの言葉で返信にバリエーションを持たせる

さて、では次にテストと入力された際、いくつかの返信からランダムで返信をすることで、少しバリエーションを出してみます。

その場合、以下のようにメッセージの返信部分を改行すると、ランダムでその文章のいずれかが返信されるようです。

適当に試すとこんな感じです。

確率等は流石に編集できなさそうですが、ちょっとした挨拶ぐらいなら切り替えることができそうです。

注意点

さて、今回はSlackBotの使い方をみていきました!

ただ、便利そうですが、それによる弊害もありますので、念の為それについても記載はしておこうと思います。

例えば、先程"テスト"とつぶやいた際に返信されるようにしました。

ただ、特定チャンネルに絞れないため、本来の業務で使用する場合などに、会話の最中に"テスト"とつぶやいた際、そういった関係ないメッセージが出てくる...といったケースも十分に考えられます。

例えば社内制度QAなどをこの機能で行う...!

などを考えた場合、例えばルールを設けて(ask:名詞といった形式にする...等)普段使いの会話中で絶対に出てこないような形で運用する手間がありそうだなぁ...と感じますね。

後ほど試そうと思いますが、そういった場合、この機能ではなく、別途用意されているAPI等を使ってプログラムから動かさないといけないんだろうなぁ...と。

また、一部分に含まれればそれに対して回答をする...

といったこともできないため、例えば...

"交通費申請"という言葉を含んでいる質問に対しては社内の資料ページのURLを送りたい...といった場合、想定される全ての文章を用意してあげる...なんて不可能ですよね...("交通費申請がわかりません", "交通費申請方法はどこで確認できますか?"、"交通費申請 FAQ"などなど...質問しようと思えばいくらでもバリエーションありますよね)

ちょっとした雑談程度ならいいですが、チャンネルを絞れない点、部分一致等の細かい処理ができない点があるため、実際の実務で大いに活用できる...!というわけではなさそうです...

個人用途なら好きなサイト名等でURLを出してくれるようにする...等もまぁ、ありかなとは思いますね。

(会社のWorkSpaceだとできないと思うけれど...)

まとめ

さて、今回はSlackでChatBotを使う方法を確認してみました!

最初はプログラム書かずに社内チャットQA程度ならデフォルト機能だけでできるんじゃないだろうか?

と気になって調べたのですが、やはりプログラム書くのは避けられなさそうですね...

(チャンネル指定と部分一致、全てと一致しない場合の返信程度があればまぁまぁのFAQはできそうなのに...!)

と、いうわけで時間があればGASか何かで試そうと思います!

それでわ!

おすすめの記事