概要
n8n を使って、Slackからスタンプを集計して、そのデータをStrapiに自動で保存する仕組みを作成しましたので紹介します。ちなみに、これを使って制作したのがこちらの記事で紹介した Slackスタンプ集計サイネージ です。
n8n
n8nはオープンソースの自動化ツールです。ノーコードで自動化処理を作成できます。今回は、以下の手順を自動化しました。
- 毎日0時に
- Slackから24時間以内に投稿されたメッセージのリアクションで押されたスタンプの種類と数を集計し
- Strapiに集計結果を保存する
実際の画面
上記の手順を実際にn8nで構成した画面がこちらです。
ひとつひとつのノードについて解説していきます。
Schedule Trigger
Cron形式で毎日0時にトリガーが発火するように設定しています。
Date & Time
UTS
計算された時刻をUnixTimestampに変換します
Channel List
Codeノードを使って、JSONを手入力します。JSONの中身は、スタンプを集計したいSlackチャンネルのチャンネルIDです。
Create Json
再度Codeノードを使って、Slack APIのリクエストに使用するJSONを作成します。中身はさきほどのChannel ListとUSTで作成したタイムスタンプを組み合わせたものです。
GET Slack message
HTTP Requestノードを使って、Slackからメッセージを取得します。
Slackの認証には、Slack Appを使用しています。
Message List
Slackから取得したJSONデータより、メッセージだけを抽出して整形します。
Count Stamps
メッセージのデータから、押されたスタンプを集計します。
POST Strapi
HTTP Requestノードを使って、Strapiに集計データを送信します。StrapiにはJSONデータをそのまま保存しています。
まとめ
今回は、n8n を使って、Slackからスタンプを集計して、そのデータをStrapiに自動で保存する仕組みをご紹介しました。
また、n8nをAmazon Lightsail にセルフホスティングした記事もこちらにまとめていますので、よかったご参照ください。