The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "GenC75",
"name": "\u76e3\u6e2c Threads \u7559\u8a00",
"nodes": [
{
"parameters": {
"content": "\u26a0\ufe0f \u67b6\u69cb\u7bc4\u672c\uff08\u672a\u63a5 key\uff09\n\n\u586b\u8cbc\u6587/\u5f71\u7247 ID + Access Token\uff08\u8b80\u7559\u8a00\uff09\u3002\nFB/IG/Threads/YouTube/Google\u5546\u5bb6 \u540c\u67b6\u69cb\u63db endpoint\u3002\n\u8a9e\u610f\u5224\u65b7+\u56de\u8986\u5efa\u8b70(Ollama)+\u63a8 Discord \u514d\u8cbb\uff1bwebhook \u8981\u8cbc\u3002",
"height": 320,
"width": 380,
"color": 4
},
"id": "n-note",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
180,
100
]
},
{
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 */6 * * *"
}
]
}
},
"id": "n-sched",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
240,
460
]
},
{
"parameters": {
"options": {},
"method": "GET",
"url": "https://graph.facebook.com/v21.0/YOUR_POST_ID/comments?fields=from,message,created_time",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "access_token",
"value": "YOUR_ACCESS_TOKEN"
}
]
}
},
"id": "n-fetch",
"name": "Fetch (API)",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
460,
460
]
},
{
"parameters": {
"jsCode": "const d=JSON.stringify($input.first().json).slice(0,3000);\nconst prompt='\u4ee5\u4e0b\u662f\u7559\u8a00\uff08JSON\uff09\u3002\u8acb\u7528\u7e41\u4e2d\uff1a1)\u5224\u65b7\u6bcf\u5247\u8a9e\u610f 2)\u7d66\u53ef\u5fae\u8abf\u4f7f\u7528\u7684\u56de\u8986\u5efa\u8b70\u3002\\n\\n'+d;\nreturn [{json:{prompt}}];"
},
"id": "n-prep",
"name": "Build Prompt",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
680,
460
]
},
{
"parameters": {
"options": {
"timeout": 180000
},
"method": "POST",
"url": "http://host.docker.internal:11434/api/chat",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ JSON.stringify({ model: 'qwen2.5:latest', messages: [ { role: 'system', content: '\u4f60\u662f\u53f0\u7063\u4eba\uff0c\u4e00\u5f8b\u4f7f\u7528\u53f0\u7063\u7e41\u9ad4\u4e2d\u6587\u8207\u53f0\u7063\u6163\u7528\u8a9e\u56de\u8986\uff0c\u7d55\u5c0d\u4e0d\u8981\u51fa\u73fe\u4efb\u4f55\u7c21\u9ad4\u5b57\u6216\u4e2d\u570b\u7528\u8a9e\u3002' }, { role: 'user', content: $json.prompt } ], stream: false }) }}"
},
"id": "n-ollama",
"name": "Summarize with Ollama",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
900,
460
]
},
{
"parameters": {
"jsCode": "const data = $input.first().json;\nlet v = '';\ntry { v = (data.message && data.message.content) || (data.content && data.content[0] && data.content[0].text) || data.response || ''; } catch (e) {}\nif (!v) v = JSON.stringify(data);\nreturn [{ json: { summary: v } }];"
},
"id": "n-extract",
"name": "Extract Result",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1120,
460
]
},
{
"parameters": {
"options": {},
"method": "POST",
"url": "https://discord.com/api/webhooks/REPLACE_WITH_YOUR_WEBHOOK_URL",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ JSON.stringify({ content: ('\ud83d\udcac \u76e3\u6e2c Threads \u7559\u8a00\\n\\n' + ($json.summary || '')).slice(0, 1900) }) }}"
},
"id": "n-discord",
"name": "Send to Discord",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1340,
460
]
}
],
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "Fetch (API)",
"type": "main",
"index": 0
}
]
]
},
"Fetch (API)": {
"main": [
[
{
"node": "Build Prompt",
"type": "main",
"index": 0
}
]
]
},
"Build Prompt": {
"main": [
[
{
"node": "Summarize with Ollama",
"type": "main",
"index": 0
}
]
]
},
"Summarize with Ollama": {
"main": [
[
{
"node": "Extract Result",
"type": "main",
"index": 0
}
]
]
},
"Extract Result": {
"main": [
[
{
"node": "Send to Discord",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"tags": []
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
監測 Threads 留言. Uses httpRequest. Scheduled trigger; 7 nodes.
Source: https://github.com/YuriCrystal/n8n-marketing-flows/blob/46c8e2535430ebe1e9bb4d8b6b335465c4702ffb/templates/c75-threads-comments.skeleton.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow transforms your Meta Ads creatives into a rich dataset of actionable insights. It's designed for data-driven marketers, performance agencies, and analysts who want to move beyond basic m
I created this workflow with great care to help you simplify your daily reporting routine. If you manage Meta Ads campaigns, you know how time-consuming it can be to open Ads Manager, filter data, and
I built this workflow to remove the daily pain of Meta Ads reporting. If you manage multiple ad accounts, you know how time-consuming it is to open Ads Manager, export campaign data, clean spreadsheet
Automatically search LinkedIn for prospects using Unipile's API, enrich each profile with full details, and sync leads into a Google Sheet CRM — runs daily on a schedule with rate limiting, deduplicat
This workflow automatically enriches incoming form leads, applies a customizable scoring model, then routes high-value prospects to a Notion CRM database and a Matrix channel for instant sales notific