📍はじめに
Slack の投稿をチームの知見として蓄積するために、Slack のリスト機能を活用した「知見リスト」を作成しました。
今回は Slack ワークフローと Zapier を組み合わせて、特定のリアクションを付けた投稿を自動でリストに追加する仕組みを紹介します。
背景
現状
私のチームではSlack 用リアク字チャンネラーを使い、特定のリアクションを付けた投稿を知見チャンネルに集約しています。このチャンネルに集められた投稿は、定例 MTG で読み合わせをしています。
問題点
会話の中の投稿に対してリアクションするため、チャンネルに転送された投稿だけだと内容が分かりにくいことがあります。
読み合わせの際にリアクションをしたメンバーに補足してもらっていますが、後から見返した時に思い出せないことが課題となっています...😭
やりたいこと
- Slack の投稿に特定の絵文字でリアクションすると、自動でリストに投稿が追加される
- リストには概要欄を設け、投稿内容の補足情報を記入可能にする
使用したもの
- Zapier: リアクションを検知して Slack の Webhook を呼び出す
-
Slack
- ワークフロー: Webhook をトリガーにリストアイテムを追加
- リスト: リアクションが付けられた投稿の情報を保存
API 経由でリストに直接追加することは現時点ではできない1ため、Zapier を用いてワークフローを起動させています。
手順
Slack
リストの作成
以下のように作成しました。
- 追加日、元投稿、追加した人: ワークフローで自動入力
- 概要、カテゴリ: リストに追加した人が手動で入力
ワークフローの作成
完成形は以下の通りです。
今回はフォームを設置せず、リスト追加後にチャンネルで通知を送り、編集を促す形にしています。
Webhook の設定
- 「ワークフローを開始する」で「Webhook から」を選択
- データ変数を追加し、以下を設定
キー データタイプ url テキスト user Slack ユーザー ID
- 再度「Webhook を使って開始する」を開きウェブリクエストの URL をコピーしておく
リストの設定
-
「ステップを追加する」で「リスト > リストアイテムを追加する」を選択
-
フォームを生成する場合、
フォームを起動するための通知 → フォーム入力 → リスト追加
のようなフローになります。 -
各フィールドに値を設定して保存
追加日はUTCの日付
を指定しています。フィールド 値 追加日 ワークフローが開始した時刻 追加した人 user 元投稿 url
チャンネルへの通知(必要な場合)
- 「ステップを追加する」で「メッセージ > チャンネルへメッセージを送信する」を選択
- メッセージを送信するチャンネルを選択し、任意のメッセージを設定
- 「ボタンを追加」>「動作」>「リンクを開く」で
アイテムのURL
を指定
最後に「完了」を押下し、ワークフローの名前などを設定して公開します。
Zapier
Zap の作成
完成形は以下の通りです。
リアクションの検知
- 1つ目のイベントに「Slack」を選択
- Trigger event に「New Reaction Added」を設定
- Account に自分の Slack アカウントを選択
- Reaction にリスト追加のトリガーとして使用する絵文字を設定
今回は:test:
というリアクションを選択しています。
Webhooks への POST
-
2つ目のイベントに「Webhooks」を選択
-
Action event に「POST」を設定
-
各項目の値を以下の通りに設定
項目 値 URL Slack から取得してきた Webhook の URL Payload Type json Data には下記を追加します。
項目 値 url Message Permalink(スタンプを押した投稿の URL) user User Id(スタンプを押したアカウントの ID) 他はデフォルトのままで OK です。
最後に「Publish」を押下して公開します。
完成形
🎉🎉🎉
📍おわりに
まだこの運用を導入して間もないため、実際に使いながらさらに改善を重ねていく予定です。
Slack にリストの API が追加されればよりシンプルに実現できると思うので、実装を待ちたいです。
以下参考にさせて頂きました🌟