Slack 次世代プラットフォームを利用して新規作成されたemojiとチャンネルを自動投稿する仕組み

こんにちは、YOUTRUSTのしぶしゅん(YOUTRUST/X)です。 YOUTRUSTでは、社内チャットツールにSlackを使用しています。

Slackは、チャットツールとしてだけでなく、様々な機能を持つAPIを組み合わせたアプリを利用することができます。 本記事では、Slack次世代プラットフォームを利用して、新規作成されたemojiとチャンネルを自動投稿する仕組みについて紹介します。

1. はじめに

Slackの特徴として、emojiによるコミュニケーションと、目的別のチャンネル作成があります。 emojiは、すばやくリアクションできるだけでなく、文字情報だけでは表せない豊富で一目瞭然な感情表現など、コミュニケーションを活性化させるための重要な要素です。 チャンネルは、目的別に分けることで、特定の話題に集中したコミュニケーションができます。 YOUTRUSTでは、emojiが約2000個あります。チャンネルも多くありますが、その中でも趣味の話題に特化したhobbyがつくものだけで、約60個あります。

Slackを利用して感じた課題として、新規作成されたemojiやチャンネルに気づきにくいことがありました。 そこで、新規作成されたemojiやチャンネルを自動投稿することで、気づきやすくしました。

2. Slack次世代プラットフォームの特徴

Slack次世代プラットフォームは、2023年4月24日に正式版としてリリースされた新しい仕組みです。 これまで、Slack APIを利用して情報を取得したり、投稿するためには、Google Apps ScriptやAWS Lambdaのような外部の実行環境を用意する必要がありました。 Slack次世代プラットフォームを利用することで、Slackが提供する実行環境を利用することができるため、外部の実行環境を用意する必要がなくなりました。 アプリのデプロイも、Slack CLIから行うことができるため、開発からデプロイまでの一連の流れを、Slackに関するもののみで完結させることができます。

アプリは、ワークフロー、トリガー、ファンクションから構成されています。 ワークフローは、トリガーとファンクションを組み合わせたもので、トリガーはイベントを受け取り、ファンクションはイベントを処理するものです。 今回は、emojiやチャンネルが新規作成されると、トリガーが呼び出され、ファンクションでチャンネルに追加内容を自動投稿するものとしました。

3. 実際の利用例

3.1 emojiが追加されたときに自動投稿する

slack-deno-emoji-notice を利用させて頂き、emojiが追加されたときに、指定したチャンネルへ自動投稿しています。 このアプリは、emojiが追加されたときに呼び出される emoji_changed をトリガーとし、emoji情報を取得して、envファイルで指定したチャンネルへ投稿します。

3.2 チャンネルが作成されたときに自動投稿する

さきほどのリポジトリの内容に、チャンネルが作成されたときの処理を追加しました。 Slack 次世代プラットフォーム機能を少しずつ試す - channel_created イベントトリガー編 の内容を参考にさせて頂きました。 チャンネルが作成されたときに呼び出される channel_created をトリガーとし、チャンネル情報を取得して、envファイルで指定したチャンネルへ投稿するようにしました。

トリガーで、emoji名は value: "{{data.name}}" で取得しましたが、チャンネル名は value: "{{data.channel_name}}" で取得する点に注意してください。 また、botScopesに "channels:read" を追加しました。

4. まとめ

今回の取り組みでは、Slack次世代プラットフォームを利用して、新規作成されたemojiとチャンネルの自動投稿について紹介しました。 イベントトリガーのうち、emoji_changedchannel_created を使用しましたが、他にも多くのイベントがあります。 これからも、新しい機能を試しながら、コミュニケーションを活性化し、快適な社内環境を整えていきたいです。

YOUTRUSTは、エンジニア採用を積極的に行っています。興味のある方は、下記のリンクからご応募ください。

herp.careers