3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZOZOAdvent Calendar 2024

Day 16

Slackで特定のリアクションを付けた投稿をSlackリストに追加する

Last updated at Posted at 2024-12-15

📍はじめに

Slack の投稿をチームの知見として蓄積するために、Slack のリスト機能を活用した「知見リスト」を作成しました。
今回は Slack ワークフローと Zapier を組み合わせて、特定のリアクションを付けた投稿を自動でリストに追加する仕組みを紹介します。

背景

現状

私のチームではSlack 用リアク字チャンネラーを使い、特定のリアクションを付けた投稿を知見チャンネルに集約しています。このチャンネルに集められた投稿は、定例 MTG で読み合わせをしています。

問題点

会話の中の投稿に対してリアクションするため、チャンネルに転送された投稿だけだと内容が分かりにくいことがあります。
読み合わせの際にリアクションをしたメンバーに補足してもらっていますが、後から見返した時に思い出せないことが課題となっています...😭

やりたいこと

  • Slack の投稿に特定の絵文字でリアクションすると、自動でリストに投稿が追加される
  • リストには概要欄を設け、投稿内容の補足情報を記入可能にする

リストへの追加は投稿右上のアイコンから直接行うことも可能ですが、従来の絵文字リアクションによる運用を変えることは避けました。

また、この方法ではリストアイテムのタイトル列に投稿全文が入ってしまうため、今回は別の手段を採用しました。

使用したもの

  • Zapier: リアクションを検知して Slack の Webhook を呼び出す
  • Slack
    • ワークフロー: Webhook をトリガーにリストアイテムを追加
    • リスト: リアクションが付けられた投稿の情報を保存

API 経由でリストに直接追加することは現時点ではできない1ため、Zapier を用いてワークフローを起動させています。

手順

Slack

リストの作成

以下のように作成しました。

リストの完成形
  • 追加日、元投稿、追加した人: ワークフローで自動入力
  • 概要、カテゴリ: リストに追加した人が手動で入力

ワークフローの作成

完成形は以下の通りです。
今回はフォームを設置せず、リスト追加後にチャンネルで通知を送り、編集を促す形にしています。

Slack ワークフローの完成形

Webhook の設定

  1. 「ワークフローを開始する」で「Webhook から」を選択
  2. データ変数を追加し、以下を設定
    キー データタイプ
    url テキスト
    user Slack ユーザー ID

    データ変数を設定した状態
  3. 再度「Webhook を使って開始する」を開きウェブリクエストの URL をコピーしておく

リストの設定

  1. 「ステップを追加する」で「リスト > リストアイテムを追加する」を選択

  2. 追加対象のリストを選択し、フォームは使わない設定に変更
    追加対象のリストを選択し、フォームは使わない設定に変更した状態

    フォームを生成する場合、フォームを起動するための通知 → フォーム入力 → リスト追加 のようなフローになります。

  3. 各フィールドに値を設定して保存
    追加日は UTCの日付 を指定しています。

    フィールド
    追加日 ワークフローが開始した時刻
    追加した人 user
    元投稿 url
    各フィールドに値を設定した状態

チャンネルへの通知(必要な場合)

  1. 「ステップを追加する」で「メッセージ > チャンネルへメッセージを送信する」を選択
  2. メッセージを送信するチャンネルを選択し、任意のメッセージを設定
    メッセージを設定した状態
  3. 「ボタンを追加」>「動作」>「リンクを開く」でアイテムのURLを指定
    ボタンを設定した状態

最後に「完了」を押下し、ワークフローの名前などを設定して公開します。

Zapier

Zap の作成

完成形は以下の通りです。

Zaps の完成形

リアクションの検知

  1. 1つ目のイベントに「Slack」を選択
  2. Trigger event に「New Reaction Added」を設定
  3. Account に自分の Slack アカウントを選択
    Account に自分の Slack アカウントを選択
  4. Reaction にリスト追加のトリガーとして使用する絵文字を設定
    今回は :test: というリアクションを選択しています。
    Reaction にリスト追加のトリガーとなる絵文字を設定

Webhooks への POST

  1. 2つ目のイベントに「Webhooks」を選択

  2. Action event に「POST」を設定

  3. 各項目の値を以下の通りに設定

    項目
    URL Slack から取得してきた Webhook の URL
    Payload Type json

    Data には下記を追加します。

    項目
    url Message Permalink(スタンプを押した投稿の URL)
    user User Id(スタンプを押したアカウントの ID)
    各項目の値を設定した状態

    他はデフォルトのままで OK です。

最後に「Publish」を押下して公開します。

完成形

投稿にリアクションすると
投稿にリアクションをした状態

チャンネルに通知が来て
チャンネルに通知が来た状態

リストにも追加される
追加したアイテムの編集画面

リスト側はこんな感じ
リストに追加された状態

🎉🎉🎉

📍おわりに

まだこの運用を導入して間もないため、実際に使いながらさらに改善を重ねていく予定です。
Slack にリストの API が追加されればよりシンプルに実現できると思うので、実装を待ちたいです。

以下参考にさせて頂きました🌟

  1. https://forums.slackcommunity.com/s/question/0D5PU00000YS6n30AD/how-to-add-a-list-item-via-api?language=ja

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?