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 →
{
"name": "TrendAnalyzer \u2014 Master Workflow",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"field": "minutes",
"minutesInterval": 30
}
]
}
},
"id": "schedule",
"name": "Every 30 Minutes",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.1,
"position": [
200,
400
]
},
{
"parameters": {
"method": "GET",
"url": "https://www.reddit.com/r/CryptoMoonShots/top.json?limit=25&t=day",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "User-Agent",
"value": "trend-analyzer/1.0"
}
]
},
"options": {
"timeout": 15000
}
},
"id": "reddit-crypto",
"name": "Fetch r/CryptoMoonShots",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
440,
200
]
},
{
"parameters": {
"method": "GET",
"url": "https://www.reddit.com/r/wallstreetbets/top.json?limit=25&t=day",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "User-Agent",
"value": "trend-analyzer/1.0"
}
]
},
"options": {
"timeout": 15000
}
},
"id": "reddit-wsb",
"name": "Fetch r/wallstreetbets",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
440,
320
]
},
{
"parameters": {
"method": "GET",
"url": "https://www.reddit.com/r/Bitcoin/top.json?limit=25&t=day",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "User-Agent",
"value": "trend-analyzer/1.0"
}
]
},
"options": {
"timeout": 15000
}
},
"id": "reddit-btc",
"name": "Fetch r/Bitcoin",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
440,
440
]
},
{
"parameters": {
"method": "GET",
"url": "https://www.reddit.com/r/CryptoCurrency/top.json?limit=25&t=day",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "User-Agent",
"value": "trend-analyzer/1.0"
}
]
},
"options": {
"timeout": 15000
}
},
"id": "reddit-cc",
"name": "Fetch r/CryptoCurrency",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
440,
560
]
},
{
"parameters": {
"method": "GET",
"url": "https://api.coingecko.com/api/v3/coins/markets",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "vs_currency",
"value": "usd"
},
{
"name": "category",
"value": "meme-token"
},
{
"name": "order",
"value": "market_cap_desc"
},
{
"name": "per_page",
"value": "30"
},
{
"name": "page",
"value": "1"
},
{
"name": "price_change_percentage",
"value": "24h,7d"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "User-Agent",
"value": "trend-analyzer/1.0"
}
]
},
"options": {
"timeout": 15000
}
},
"id": "coingecko-meme",
"name": "Fetch Memecoins",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
440,
700
]
},
{
"parameters": {
"method": "GET",
"url": "https://api.coingecko.com/api/v3/coins/markets",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "vs_currency",
"value": "usd"
},
{
"name": "ids",
"value": "bitcoin,ethereum,solana,dogecoin,shiba-inu,pepe,floki,bonk,algorand"
},
{
"name": "order",
"value": "market_cap_desc"
},
{
"name": "per_page",
"value": "20"
},
{
"name": "price_change_percentage",
"value": "24h,7d"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "User-Agent",
"value": "trend-analyzer/1.0"
}
]
},
"options": {
"timeout": 15000
}
},
"id": "coingecko-major",
"name": "Fetch Major Coins",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
440,
840
]
},
{
"parameters": {
"jsCode": "const allPosts = [];\nconst seen = new Set();\nfor (const item of $input.all()) {\n const data = item.json;\n if (!data || !data.data || !data.data.children) continue;\n for (const child of data.data.children) {\n const d = child.data;\n if (!d || d.stickied) continue;\n if (seen.has(d.name)) continue;\n seen.add(d.name);\n const created = new Date(d.created_utc * 1000).toISOString().replace('T',' ').slice(0,19);\n allPosts.push({\n id: d.name, subreddit: d.subreddit, title: d.title,\n content: (d.selftext || '').slice(0,1000),\n score: parseInt(d.score) || 0,\n num_comments: parseInt(d.num_comments) || 0,\n url: d.url || '', author: d.author || '', created_at: created\n });\n }\n}\nconsole.log('[Reddit] ' + allPosts.length + ' posts');\nreturn [{ json: { type: 'posts', data: allPosts, count: allPosts.length } }];"
},
"id": "transform-posts",
"name": "Transform Posts",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
680,
380
]
},
{
"parameters": {
"jsCode": "const allCoins = [];\nconst seen = new Set();\nfor (const item of $input.all()) {\n const coins = Array.isArray(item.json) ? item.json : [];\n for (const coin of coins) {\n if (!coin.id || seen.has(coin.id) || (parseFloat(coin.current_price)||0) <= 0) continue;\n seen.add(coin.id);\n allCoins.push({\n coin_id: coin.id, coin_name: coin.name,\n coin_symbol: (coin.symbol||'').toUpperCase(),\n price_usd: parseFloat(coin.current_price)||0,\n price_change_24h: parseFloat(coin.price_change_percentage_24h)||0,\n price_change_7d: parseFloat(coin.price_change_percentage_7d_in_currency)||0,\n volume_24h: parseFloat(coin.total_volume)||0,\n market_cap: parseFloat(coin.market_cap)||0\n });\n }\n}\nconsole.log('[CoinGecko] ' + allCoins.length + ' coins');\nreturn [{ json: { type: 'prices', data: allCoins, count: allCoins.length } }];"
},
"id": "transform-prices",
"name": "Transform Prices",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
680,
770
]
},
{
"parameters": {
"method": "POST",
"url": "http://localhost:3001/webhook/n8n",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ JSON.stringify($json) }}",
"options": {
"timeout": 30000
}
},
"id": "send-posts",
"name": "Send Posts to Backend",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
900,
380
]
},
{
"parameters": {
"method": "POST",
"url": "http://localhost:3001/webhook/n8n",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ JSON.stringify($json) }}",
"options": {
"timeout": 30000
}
},
"id": "send-prices",
"name": "Send Prices to Backend",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
900,
770
]
},
{
"parameters": {
"jsCode": "// Wait for both posts and prices to be sent, then trigger full pipeline\nconsole.log('[Master] Data ingestion complete. Triggering pipeline...');\nreturn [{ json: { status: 'ready' } }];"
},
"id": "wait-node",
"name": "Data Ready",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1100,
580
]
},
{
"parameters": {
"method": "POST",
"url": "http://localhost:3001/api/trigger",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{}",
"options": {
"timeout": 180000
}
},
"id": "run-pipeline",
"name": "Run AI Pipeline",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
1300,
580
]
},
{
"parameters": {
"jsCode": "console.log('[Master] Full cycle complete. Dashboard updated.');\nreturn $input.all();"
},
"id": "done",
"name": "Done",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1500,
580
]
}
],
"connections": {
"Every 30 Minutes": {
"main": [
[
{
"node": "Fetch r/CryptoMoonShots",
"type": "main",
"index": 0
},
{
"node": "Fetch r/wallstreetbets",
"type": "main",
"index": 0
},
{
"node": "Fetch r/Bitcoin",
"type": "main",
"index": 0
},
{
"node": "Fetch r/CryptoCurrency",
"type": "main",
"index": 0
},
{
"node": "Fetch Memecoins",
"type": "main",
"index": 0
},
{
"node": "Fetch Major Coins",
"type": "main",
"index": 0
}
]
]
},
"Fetch r/CryptoMoonShots": {
"main": [
[
{
"node": "Transform Posts",
"type": "main",
"index": 0
}
]
]
},
"Fetch r/wallstreetbets": {
"main": [
[
{
"node": "Transform Posts",
"type": "main",
"index": 0
}
]
]
},
"Fetch r/Bitcoin": {
"main": [
[
{
"node": "Transform Posts",
"type": "main",
"index": 0
}
]
]
},
"Fetch r/CryptoCurrency": {
"main": [
[
{
"node": "Transform Posts",
"type": "main",
"index": 0
}
]
]
},
"Fetch Memecoins": {
"main": [
[
{
"node": "Transform Prices",
"type": "main",
"index": 0
}
]
]
},
"Fetch Major Coins": {
"main": [
[
{
"node": "Transform Prices",
"type": "main",
"index": 0
}
]
]
},
"Transform Posts": {
"main": [
[
{
"node": "Send Posts to Backend",
"type": "main",
"index": 0
}
]
]
},
"Transform Prices": {
"main": [
[
{
"node": "Send Prices to Backend",
"type": "main",
"index": 0
}
]
]
},
"Send Posts to Backend": {
"main": [
[
{
"node": "Data Ready",
"type": "main",
"index": 0
}
]
]
},
"Send Prices to Backend": {
"main": [
[
{
"node": "Data Ready",
"type": "main",
"index": 0
}
]
]
},
"Data Ready": {
"main": [
[
{
"node": "Run AI Pipeline",
"type": "main",
"index": 0
}
]
]
},
"Run AI Pipeline": {
"main": [
[
{
"node": "Done",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1",
"saveManualExecutions": true
},
"tags": [
"trend-analyzer"
]
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
TrendAnalyzer — Master Workflow. Uses httpRequest. Scheduled trigger; 14 nodes.
Source: https://github.com/kabbersokhi-boop/crypto-trend-hunter/blob/c48ae2127eb4950ee6b13c514bc89317d98e37dc/n8n/master_workflow.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.
Birthday Automation - Production (Fixed). Uses stopAndError, httpRequest, emailSend, bannerbear. Scheduled trigger; 86 nodes.
This template runs two scheduled workflows to govern Microsoft Entra ID (Azure AD) guest accounts by detecting stale users via Microsoft Graph, staging deletions in SharePoint with a 72-hour window, n
Jira-Allure-Auto-Qa. Uses httpRequest, jira. Scheduled trigger; 68 nodes.
Spotify-Sync-Surrealdb-V1. Uses httpRequest, n8n-nodes-surrealdb, spotify. Scheduled trigger; 62 nodes.
As n8n instances scale, teams often lose track of sub-workflows—who uses them, where they are referenced, and whether they can be safely updated. This leads to inefficiencies like unnecessary copies o