💖

感謝を可視化するSlackアプリを作ってみた ~さらにポジティブな雰囲気に溢れた組織へ~

2023/10/01に公開

まずはじめに

ブイクックで業務委託でエンジニアをしています、kazuです。

弊社ブイクックでは、社内でのコミュニケーションツールとしてSlackを使っています。
弊社のSlackでは、投稿に対して気軽にたくさん絵文字をつけたりなどしていて、みんな軽快なやりとりをしています。

今回、さらにポジティブなリアクションが飛び交って、雰囲気の良い組織になればいいなと思って、「plusplus」というSlackアプリケーションを開発しました。

リポジトリ

アプリでできること

このアプリがAppとして追加されているチャンネル内で@ユーザー名 ++と打てば、メンションされたユーザーに「ありがとうポイント」を1つプレゼントできます。

現時点では、機能はこれだけです。でもこれだけでも十分に良いアプリだなあと自負しています😀

下の画像は、僕がこのアプリを使って、各メンバーに日頃感謝していることを伝えた時のものです。
この投稿に対して、メンバーがめっちゃ嬉しいコメントを返してくれたんですが、僕の宝物のため、出したくないなと思ったので、出しません😂

kazuが感謝を伝えた様子1
kazuが感謝を伝えた様子2
ポイントが贈られている様子

どうやって作ったか

Slackが提供してくれているBoltという、Slackアプリを簡単に作れるフレームワークを利用しました。
現時点では、

  • javascript
  • python
  • java
    などで動作するようです。

今回、私はjavascriptを使うことにして、node.jsアプリケーションとして作成しました。BoltでのSlackアプリの開発はとてもやりやすくて、何より公式ドキュメントが充実しています。

上のドキュメントをやれば、Slackチャンネルでの任意のメッセージを伴った投稿をトリガーとして、それに対して、リアクションを送ったり、コメントを投稿させたりすることができるようになります。

また、Socket Modeを利用すれば、公開しているエンドポイントではなくても(つまり、自分のローカル環境でのみ動作するプログラムでも)、SlackでのイベントをListenして、アクションを送ることが可能です。開発がとても楽ですね。

Instead of sending payloads to a public endpoint, Slack will use a WebSocket URL to communicate with your app. WebSockets use a bidirectional stateful protocol with low latency to communicate between two parties—in this case, Slack and your app.

ref: https://api.slack.com/apis/connections/socket

以下のような実装で簡単に実現できます。

// "++" を含むメッセージをリッスンします
app.message('++', async ({ message, say }) => {
  // イベントがトリガーされたチャンネルに say() でメッセージを送信します

  await say(`<@${receivedUser}> get ${point} points!🎉`);
});

作ってみてどうか

ポイントを贈られた時、自分がメンバーに貢献していることを実感でき、それがどんどん溜まっていくことはとても嬉しいものです。感謝を示すスタンプも日頃からよく使われていますが、それと比べてplusplusは、「ポイント」という形で、自分がどれだけ他に貢献できているかを実感できることが良いと考えています。

最後に

以下の記事(気軽なポジティブ・フィードバック好き)に書かれていますが、働く我々はどこまで行ってもやはり人間なので、人に喜んでもらったり、ポジティブなリアクションを貰えるととっても嬉しいと思います。

私が思うに、何をアウトプットしたとしても、ポジティブなリアクションを貰える安心感があれば、どんどんアウトプットが増えると思っています。

それぞれが他の誰かのために沢山アウトプットが生まれるチームは、ものづくりをするチームとして強いと思っています。

ブイクックのみんな、これからどんどんplusplus使ってね!
読んでくださった方、どうもありがとうございます😁

GitHubで編集を提案
ブイクックテックブログ

Discussion