GASを使ってクレーム対応SlackBotを簡単に作ってみた

こんにちは、学生エンジニアのしば(@akahire2014)です。

以前、Rubyを使って秘書型のSlackBotを作りました。

しかし最近GoogleAppsScriptなるものを使って、SlackBotが作れるというのを知ったので、作ってみました。

RubyでSlackBotを作った時の問題点

RubyでもSlackBotは簡単に作れたのですが、いくつかの問題点がありました。

f:id:umauma01:20170612085936p:plain

SlackBotを作るところまでは簡単なのですが、それを実際に運用していくためには、サーバーを作ってそこに置きます。

その際に、herokuやアマゾンが提供しているサーバーであるAWSにデプロイ(自分の作ったプログラムをサーバーにおくこと)をしなければいけません。

そしてこのデプロイという作業が結構めんどくさいので、なかなか気軽にはbotを運用できませんでした。

またbotを作ると「定期的にイベントを通知する」という昨日をつけたくなると思うのですが、その際にはcronという技術が必要になります。

このcronを導入するのもかなりめんどくさいなあと思っていました。

GoogleAppsScript

GooogleAppsScriptとは

Googleが提供しているサービスなので、当然Googleの他のサービスと簡単に連携ができます。

  • Gmail
  • GoogleSpreadSheet
  • Googleの回答フォーム
  • GoogleMap
  • Google翻訳

これらの昨日に全く触らないという人の方が、今の時代圧倒的少数のはず。

これらを使うと、例えば以下のようなことが実現できます。

  • Gmailの内容をSlackに通知
  • Slackでの発言をSpreadSheetに登録
  • Googleの回答フォームで回答があると、その内容をSlackに通知
  • SpreadSheetの内容を定期的にSlackチーム内で発言

他にもいろんなことを簡単に実現できてしまいます。さすがGoogleといった感じですね。

今回僕が作ったのは

  • Slackでの発言をSpreadSheetに登録
  • SpreadSheetの内容を定期的にSlackチーム内で発言

の2つの昨日を盛り込んだ、クレーム対応型のSlackBotです。

GoogleAppsScriptのメリット

散々GoogleAppsScriptのメリットを解説しましたが、メリットはこれだけではありません。

f:id:umauma01:20170612091505p:plain

なんとGAS(GoogleAppsScript)を使うと、一番面倒だったデプロイ作業が3クリックでできてしまいます。

また偉大な先人がライブラリを作ってくれているので簡単に複雑な機能をプログラムすることができます。

僕が作ったものの紹介

今回僕が作ったのは社内でのクレーム対応を管理してくれるSlackBotです。

f:id:umauma01:20170612092120p:plain

Slackで特定のワードを含んだ発言があると、指定したURLにPOSTでアクセスしてくれるOutgoing WebHooksという機能があります。

これを使って、botくん!という発言があると、GASを動かしてくれるような設定ができます。

また定期的に、クレーム対応の例を教えてくれる機能は、GASにもともと備わっている機能を使ったので特別にプログラムを書くことなく実装できています。

プログラミングができるといろいろなことができる

今回はクレーム対応botという学生の僕としては使うことのないbotを作ってみました。

でも学生の時でも社会人になってからでも、スプレッドシートを使う時って絶対きますよね?

そういう時にプログラミングで業務を効率化できたらかなり重宝されるはずです。