Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

Slack 用の感謝管理ツール gas_karma を作って感謝を可視化しました

f:id:tbpg:20161222235226p:plain

Slack 用の感謝管理ツール gas_karma を作りました。
gas_karma は Google Apps Script(GAS) と Slack の Slash コマンドを利用して
感謝を管理するツールです。

機能としては ruboty-karma の GAS 版という位置づけです。

ruboty-karma とは?

ruboty-karma とは感謝を送り、それを確認可能にする ruboty plugin です。
詳しくは作者である id:hkdnet さんの記事をご確認ください。

hkdnet.hatenablog.com

ruboty との差

GAS+Slack(Slashコマンド)は無料でできるのがポイントです。
ruboty も heroku に 1インスタンスであれば無料範囲で利用できますが、
複数の Slack を管理していて、それぞれにボットが欲しくなった場合はお金がかかります。

※Slackの無料インテーグレーション数に制限があるため、GAS+Slack(Slashコマンド)の構成の場合も
無尽蔵に利用できるわけではありません。

機能一覧

command description
/karma thx <name1> <name2> name1, name2 に感謝を送る。感謝を送る相手は何名でも可
/karma list 現在の徳ランキングを表示する

利用ライブラリ

Library Key
Underscore M3i7wmUA_5n0NSEaa6NnNqOBao7QLBR4j
Underscore.string MgrAm34sxMTTeOlfoFv8DT-Bao7QLBR4j

f:id:tbpg:20161222235855j:plain

コード

※私は普段ほとんどJavaScriptを使わないため、コーディング作法は適当だと思います
GASで何かを作るときは手早く動くことを優先しているのと、作っているものの都合上変更頻度が低い場合が多いので
保守性については今のところ気をつかっていません。

ソースコードGitHubリポジトリにあります

GAS と Slash の連携

GAS と Slack の Slash コマンドを連携させるための設定については下記をご確認ください。

tbpgr.hatenablog.com

デモ

感謝を送る

  • /karma thx @hoge を実行

f:id:tbpg:20161222235317j:plain

  • 感謝が記録されました

f:id:tbpg:20161222235321j:plain

  • Google Spreadsheet に記録されています

f:id:tbpg:20161222235325j:plain

  • /karma thx hoge を実行

f:id:tbpg:20161222235333j:plain

  • 感謝が記録されました。@があってもなくても同じユーザーが対象になります

f:id:tbpg:20161222235337j:plain

  • Google Spreadsheet に記録されています

f:id:tbpg:20161222235341j:plain

*/karma thx hoge hige hage を実行

f:id:tbpg:20161222235434j:plain

  • hoge, hige, hage の3名に対して感謝が記録されました。

f:id:tbpg:20161222235439j:plain

  • Google Spreadsheet に記録されています

f:id:tbpg:20161222235443j:plain

徳ランキングをみる

  • /karma list を実行

f:id:tbpg:20161222235447j:plain

  • 徳ランキングが表示されます

※ユーザー名の各文字の間に半角スペースが入っています。
これは、ユーザー名を表示すると各ユーザーに通知が飛んでしまうため、
それを回避するためにあえてスペースをいれています。

f:id:tbpg:20161222235453j:plain

まとめ

テキストコミュニケーションは何かと「気持ち」が伝わりにくいものです。
表情や仕草のかわりにEmojiでニュアンスの不足を補ったり、
gas_karma で明確に感謝を伝えることでチームのコミュニケーションがより円滑になる・・・かもしれません。
このあたりはこういった仕組みとそこにいる人の相性もあると思うので。

/karma thx この記事を読んでくださっているあなたへ

注意

現在の設定だと karma コマンドの実行結果は自分しか見えません。 全員に見えるようにするには JSON の"response_type" を "in_channel" にする必要があるのですが "in_channel" にすると Slash コマンドが無限実行されるという状態になっていて、現在解決方法を調査中です。

2016/12/24 続報 動作不良はSlackの障害の影響だったようです。 今日確認したところ "in_channel" に変更した状態で正常に動作しました。

github.com

告知

リモートワークのテキストコミュニケーションをEmojiで円滑に!というテーマで
CodeIQの問題を出題しています。
受付期間は 2016/12/22 - 2017/01/12 AM 10:00 までです

codeiq.jp