💬
n8nでSlackのスレッドに返信する
概要
n8nを利用してBotを作るときにSlackのスレッドに返信したい時があります。
n8n標準のSlackノードでは実現できないのでHTTP Requestを使用する方法を紹介します。
準備
n8nとSlackのアカウント/Appを準備します
Slack Appの準備方法は下記の記事が分かりやすいです
実装
今回は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