💬

n8nでSlackのスレッドに返信する

に公開

概要

n8nを利用してBotを作るときにSlackのスレッドに返信したい時があります。
n8n標準のSlackノードでは実現できないのでHTTP Requestを使用する方法を紹介します。

準備

n8nとSlackのアカウント/Appを準備します
Slack Appの準備方法は下記の記事が分かりやすいです
https://zenn.dev/xtm_blog/articles/bf3d5d5e0428e2

実装

今回はBotにメンションしたときにその内容を、そのままスレッドにオウム返しするように実装します

使用したノードはこの2つだけです

Slack TriggerはBotにメンション時に反応するようにしています

n8nのWebHook URLをSlack AppのEvent SubscriptionsにあるEnable EventsをONにしたうえで、Request URLに登録します

次に送信側のノードを設定します


tokenにはSlack AppのOAuth & PermissionsにあるBot User OAuth Tokenを入力します。

スレッド返信に必要な要素thread_tsになります。
ここにTrigger側のtsの値を入力します。{{ $json.ts }}と入力することで前のノードの値を利用してくれます。

Text要素が返信内容になります。

<@{{ $json.blocks[0].elements[0].elements[0].user_id }}>
{{ $json.blocks[0].elements[0].elements[1].text }}

Slackでは<@userid>と記述することで、ユーザーにメンションしてくれます。

これらを組み合わせることで、Botへのメンションをスレッドでオウム返ししてくれるようになりました。

これを応用すれば、間にOpenAIなどのAIを挟むことでユーザーに返答してくれるBotを作成することができます

Discussion