This workflow corresponds to n8n.io template #7705 — we link there as the canonical source.
This workflow follows the Discord → HTTP Request recipe pattern — see all workflows that pair these two integrations.
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": "gpZ5gnZftZFQDQK4",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Real-Time Cryptocurrency Price Monitor & Smart Alerts",
"tags": [],
"nodes": [
{
"id": "a74647d9-e5d4-4593-acc8-60b9d5dc0453",
"name": "24/7 Crypto Trigger",
"type": "n8n-nodes-base.cron",
"position": [
-432,
832
],
"parameters": {},
"typeVersion": 1
},
{
"id": "29541d43-fc8a-45c8-8911-b97ab3e4c080",
"name": "Read Crypto Watchlist",
"type": "n8n-nodes-base.googleSheets",
"position": [
-208,
832
],
"parameters": {
"options": {},
"sheetName": "Sheet1",
"documentId": "YOUR_GOOGLE_SHEET_ID_HERE",
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"name": "<your credential>"
}
},
"typeVersion": 4
},
{
"id": "af441c6d-0034-4d39-9ff1-60e9c56b8c01",
"name": "Parse Crypto Data",
"type": "n8n-nodes-base.code",
"position": [
16,
832
],
"parameters": {
"jsCode": "// Parse Google Sheets data and prepare for crypto API calls\nconst items = [];\nconst inputData = $input.all();\n\n// Skip header row, process data rows\nfor (let i = 1; i < inputData.length; i++) {\n const row = inputData[i].json;\n if (row.A && row.B && row.C) { // Check if required fields exist\n \n // Convert crypto symbol to CoinGecko format\n let coinId = row.A.toLowerCase();\n \n // Handle common crypto pairs and convert to CoinGecko IDs\n const cryptoMapping = {\n 'btc': 'bitcoin',\n 'btc/usdt': 'bitcoin',\n 'btc-usdt': 'bitcoin',\n 'bitcoin': 'bitcoin',\n 'eth': 'ethereum', \n 'eth/usdt': 'ethereum',\n 'eth-usdt': 'ethereum',\n 'ethereum': 'ethereum',\n 'bnb': 'binancecoin',\n 'bnb/usdt': 'binancecoin',\n 'bnb-usdt': 'binancecoin',\n 'ada': 'cardano',\n 'ada/usdt': 'cardano',\n 'ada-usdt': 'cardano',\n 'dot': 'polkadot',\n 'dot/usdt': 'polkadot',\n 'dot-usdt': 'polkadot',\n 'sol': 'solana',\n 'sol/usdt': 'solana',\n 'sol-usdt': 'solana',\n 'matic': 'matic-network',\n 'matic/usdt': 'matic-network',\n 'matic-usdt': 'matic-network',\n 'link': 'chainlink',\n 'link/usdt': 'chainlink',\n 'link-usdt': 'chainlink',\n 'avax': 'avalanche-2',\n 'avax/usdt': 'avalanche-2',\n 'avax-usdt': 'avalanche-2'\n };\n \n const mappedCoinId = cryptoMapping[coinId] || coinId.split('/')[0].split('-')[0];\n \n items.push({\n json: {\n original_symbol: row.A,\n coin_id: mappedCoinId,\n upper_limit: parseFloat(row.B),\n lower_limit: parseFloat(row.C),\n direction: row.D || 'both',\n cooldown_minutes: parseInt(row.E) || 10, // Shorter cooldown for crypto\n last_alert_price: parseFloat(row.F) || 0,\n last_alert_time: row.G || ''\n }\n });\n }\n}\n\nreturn items;"
},
"typeVersion": 2
},
{
"id": "ed3d40dc-fafe-4226-bb92-7e4f512594ae",
"name": "Fetch Live Crypto Price",
"type": "n8n-nodes-base.httpRequest",
"position": [
240,
832
],
"parameters": {
"url": "=https://api.coingecko.com/api/v3/simple/price?ids={{ $json.coin_id }}&vs_currencies=usd&include_24hr_change=true&include_market_cap=true",
"options": {
"response": {
"response": {
"neverError": true
}
}
}
},
"typeVersion": 4.1
},
{
"id": "571a5ffa-c589-4988-a985-e01a6b6d3c8d",
"name": "Smart Crypto Alert Logic",
"type": "n8n-nodes-base.code",
"position": [
464,
832
],
"parameters": {
"jsCode": "// Process crypto price and check alerts\nconst items = [];\nconst currentTime = new Date();\n\nfor (const item of $input.all()) {\n const cryptoData = item.json;\n \n let priceResponse;\n try {\n priceResponse = JSON.parse(cryptoData.body || '{}');\n } catch (e) {\n continue; // Skip if invalid JSON\n }\n \n const coinId = cryptoData.coin_id;\n const coinPriceData = priceResponse[coinId];\n \n if (!coinPriceData || !coinPriceData.usd) {\n continue; // Skip if no price data\n }\n \n const currentPrice = parseFloat(coinPriceData.usd);\n const change24h = coinPriceData.usd_24h_change || 0;\n const marketCap = coinPriceData.usd_market_cap || 0;\n \n const symbol = cryptoData.original_symbol;\n const upperLimit = cryptoData.upper_limit;\n const lowerLimit = cryptoData.lower_limit;\n const direction = cryptoData.direction;\n const cooldownMinutes = cryptoData.cooldown_minutes;\n const lastAlertPrice = cryptoData.last_alert_price;\n const lastAlertTime = cryptoData.last_alert_time;\n \n // Check cooldown period\n let shouldCheckAlert = true;\n if (lastAlertTime) {\n const lastAlert = new Date(lastAlertTime);\n const timeDiff = (currentTime - lastAlert) / (1000 * 60); // minutes\n if (timeDiff < cooldownMinutes) {\n shouldCheckAlert = false;\n }\n }\n \n let alertTriggered = false;\n let alertMessage = '';\n let alertType = '';\n \n if (shouldCheckAlert) {\n // Check upper limit (BREAKOUT)\n if ((direction === 'both' || direction === 'above') && currentPrice > upperLimit) {\n alertTriggered = true;\n alertType = 'upper';\n const pumpPercentage = ((currentPrice - upperLimit) / upperLimit * 100).toFixed(2);\n alertMessage = `\ud83d\ude80 CRYPTO BREAKOUT ALERT! \ud83d\ude80\\n\\n` +\n `\ud83d\udc8e ${symbol.toUpperCase()}\\n` +\n `\ud83d\udcc8 Current Price: $${currentPrice.toLocaleString()}\\n` +\n `\ud83c\udfaf Upper Target: $${upperLimit.toLocaleString()}\\n` +\n `\u26a1 Pump: +${pumpPercentage}% above target!\\n` +\n `\ud83d\udcca 24h Change: ${change24h >= 0 ? '+' : ''}${change24h.toFixed(2)}%\\n` +\n `\ud83d\udcb0 Market Cap: $${(marketCap / 1000000000).toFixed(2)}B\\n` +\n `\u23f0 ${currentTime.toLocaleString()}\\n\\n` +\n `\ud83d\udd25 BULLISH MOMENTUM DETECTED! \ud83d\udd25`;\n }\n // Check lower limit (BREAKDOWN) \n else if ((direction === 'both' || direction === 'below') && currentPrice < lowerLimit) {\n alertTriggered = true;\n alertType = 'lower';\n const dumpPercentage = ((lowerLimit - currentPrice) / lowerLimit * 100).toFixed(2);\n alertMessage = `\ud83d\udcc9 CRYPTO BREAKDOWN ALERT! \ud83d\udcc9\\n\\n` +\n `\ud83d\udc8e ${symbol.toUpperCase()}\\n` +\n `\ud83d\udcc9 Current Price: $${currentPrice.toLocaleString()}\\n` +\n `\ud83c\udfaf Lower Support: $${lowerLimit.toLocaleString()}\\n` +\n `\u26a0\ufe0f Dump: -${dumpPercentage}% below support!\\n` +\n `\ud83d\udcca 24h Change: ${change24h >= 0 ? '+' : ''}${change24h.toFixed(2)}%\\n` +\n `\ud83d\udcb0 Market Cap: $${(marketCap / 1000000000).toFixed(2)}B\\n` +\n `\u23f0 ${currentTime.toLocaleString()}\\n\\n` +\n `\ud83d\udea8 BEARISH MOMENTUM DETECTED! \ud83d\udea8`;\n }\n }\n \n if (alertTriggered) {\n items.push({\n json: {\n symbol: symbol,\n coin_id: coinId,\n current_price: currentPrice,\n upper_limit: upperLimit,\n lower_limit: lowerLimit,\n change_24h: change24h,\n market_cap: marketCap,\n alert_type: alertType,\n alert_message: alertMessage,\n timestamp: currentTime.toISOString(),\n // Data for updating Google Sheet\n row_data: {\n symbol: symbol,\n upper_limit: upperLimit,\n lower_limit: lowerLimit,\n direction: direction,\n cooldown_minutes: cooldownMinutes,\n last_alert_price: currentPrice,\n last_alert_time: currentTime.toISOString()\n }\n }\n });\n }\n}\n\nreturn items;"
},
"typeVersion": 2
},
{
"id": "1b5f189f-7df3-4056-92f1-67a7619123b7",
"name": "Check Crypto Alert Conditions",
"type": "n8n-nodes-base.if",
"position": [
688,
832
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8e7f6d5c-4b3a-2910-8765-fedcba098765",
"operator": {
"type": "string",
"operation": "notEmpty"
},
"leftValue": "={{ $json.alert_message }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "6a7b0b7d-ec72-401a-82aa-896ae4338a76",
"name": "Send Crypto Email Alert",
"type": "n8n-nodes-base.emailSend",
"position": [
912,
544
],
"parameters": {
"options": {},
"subject": "=\ud83d\udea8 CRYPTO ALERT: {{ $json.symbol }} {{ $json.alert_type === 'upper' ? '\ud83d\ude80 BREAKOUT' : '\ud83d\udcc9 BREAKDOWN' }} - ${{ $json.current_price }}",
"toEmail": "user@example.com",
"fromEmail": "user@example.com"
},
"credentials": {
"smtp": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "500e80b7-9e42-4e8b-ba6b-df9d3960a0f4",
"name": "Send Telegram Crypto Alert",
"type": "n8n-nodes-base.telegram",
"position": [
912,
928
],
"parameters": {
"text": "={{ $json.alert_message }}",
"chatId": "YOUR_TELEGRAM_CHAT_ID",
"additionalFields": {
"parse_mode": "HTML"
}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "6139992f-563f-4f7e-a0fd-04e42684cf77",
"name": "Send Discord Crypto Alert",
"type": "n8n-nodes-base.discord",
"position": [
912,
1120
],
"parameters": {
"name": "new",
"guildId": {
"__rl": true,
"mode": "id",
"value": "=987654321t5r4w2"
},
"options": {}
},
"credentials": {
"discordBotApi": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "0bcadcb1-e39e-443d-8483-20c548480d1f",
"name": "Update Crypto Alert History",
"type": "n8n-nodes-base.googleSheets",
"position": [
912,
736
],
"parameters": {
"columns": {
"value": {},
"schema": [],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": "Sheet1",
"documentId": "YOUR_GOOGLE_SHEET_ID_HERE",
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"name": "<your credential>"
}
},
"typeVersion": 4
},
{
"id": "7806b975-49a0-4a9c-9aed-77f4768fd65d",
"name": "Crypto Alert Status Check",
"type": "n8n-nodes-base.if",
"position": [
1136,
736
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "success-condition",
"operator": {
"type": "string",
"operation": "notEmpty"
},
"leftValue": "={{ $json.symbol }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "b7e51130-380d-4eb4-b96e-132038a98a0d",
"name": "Success Notification",
"type": "n8n-nodes-base.emailSend",
"position": [
1360,
640
],
"parameters": {
"options": {},
"subject": "\u2705 Crypto Monitor: Alert Sent Successfully",
"toEmail": "user@example.com",
"fromEmail": "user@example.com"
},
"credentials": {
"smtp": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "3d14deb0-259e-4a6b-a579-978d2fb16e26",
"name": "Error Notification",
"type": "n8n-nodes-base.emailSend",
"position": [
1360,
832
],
"parameters": {
"options": {},
"subject": "\u274c Crypto Monitor: Alert Failed",
"toEmail": "user@example.com",
"fromEmail": "user@example.com"
},
"credentials": {
"smtp": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "6ab21bb1-63c3-40fb-bff1-2e4ea5a30a89",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-240,
-320
],
"parameters": {
"width": 850,
"height": 212,
"content": "## \ud83d\ude80 Real-Time Cryptocurrency Price Monitor & Smart Alerts\n### 24/7 monitoring of Bitcoin, Ethereum, and 1000+ altcoins with intelligent breakout/breakdown alerts. Track BTC/USDT, ETH/USDT, and any crypto pair with customizable price targets, cooldown periods, and multi-channel notifications (Email + Telegram + Discord).\n### Perfect for crypto traders, DeFi investors, and portfolio managers who need instant notifications for price movements, pump & dump detection, and market opportunities. Uses CoinGecko's free API with real-time market data including 24h changes and market cap."
},
"typeVersion": 1
},
{
"id": "fbe3232f-4377-49cc-9ca4-45d804b9f0c0",
"name": "Crypto Workflow Guide",
"type": "n8n-nodes-base.stickyNote",
"position": [
-880,
32
],
"parameters": {
"color": 5,
"width": 680,
"height": 520,
"content": "## \ud83d\udd27 How It Works\n\n**\u23f0 24/7 Crypto Trigger** - Runs every minute (crypto never sleeps!)\n**\ud83d\udccb Read Crypto Watchlist** - Fetches your crypto list from Google Sheets\n**\ud83d\udd0d Parse Crypto Data** - Converts symbols to CoinGecko IDs (BTC\u2192bitcoin)\n**\ud83d\udcb0 Fetch Live Crypto Price** - Gets real-time prices from CoinGecko API\n**\ud83e\udde0 Smart Crypto Alert Logic** - Advanced price checking with market data\n**\u26a1 Check Crypto Alert Conditions** - Validates breakout/breakdown signals\n**\ud83d\udce7 Send Crypto Email Alert** - Detailed email with price & market data\n**\ud83d\udcf1 Send Telegram Crypto Alert** - Instant mobile notifications\n**\ud83d\udcac Send Discord Crypto Alert** - Community alerts for trading groups\n**\ud83d\udcdd Update Crypto Alert History** - Records alert timestamps\n**\u2705 Crypto Alert Status Check** - Monitors workflow health\n**\ud83d\udd14 Success/Error Notifications** - Admin monitoring alerts\n\n### \ud83c\udfaf Crypto-Specific Features:\n- **24/7 Monitoring**: Never miss crypto movements\n- **1000+ Coins**: Supports all major cryptocurrencies\n- **Market Data**: Includes 24h change & market cap\n- **Smart Mapping**: Auto-converts BTC/USDT \u2192 bitcoin\n- **Pump/Dump Detection**: Identifies significant price moves\n- **Multiple Alerts**: Email + Telegram + Discord\n- **Free API**: Uses CoinGecko's generous free tier"
},
"typeVersion": 1
},
{
"id": "f8b1bfed-7c0c-4e4e-b963-fea13a10cd3c",
"name": "Crypto Setup Examples",
"type": "n8n-nodes-base.stickyNote",
"position": [
448,
-32
],
"parameters": {
"color": 3,
"width": 760,
"height": 380,
"content": "## \ud83d\udc8e Crypto Watchlist Examples\n\n### Google Sheet Format (A-G columns):\n| Symbol | Upper Limit | Lower Limit | Direction | Cooldown | Last Price | Last Time |\n|--------|-------------|-------------|-----------|----------|------------|-----------|\n| BTC/USDT | 45000 | 40000 | both | 10 | | |\n| ETH/USDT | 3000 | 2500 | both | 5 | | |\n| bitcoin | 50000 | 35000 | above | 15 | | |\n| ethereum | 3500 | 2000 | both | 10 | | |\n| BNB | 300 | 250 | both | 10 | | |\n| solana | 100 | 80 | both | 5 | | |\n\n### \u26a1 Supported Formats:\n- **Trading Pairs**: BTC/USDT, ETH/USDT, BNB/USDT\n- **CoinGecko IDs**: bitcoin, ethereum, binancecoin\n- **Simple Symbols**: BTC, ETH, SOL, MATIC, LINK, AVAX"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "8f8ad344-643c-41db-9b92-5a3b18ccdee3",
"connections": {
"Parse Crypto Data": {
"main": [
[
{
"node": "Fetch Live Crypto Price",
"type": "main",
"index": 0
}
]
]
},
"24/7 Crypto Trigger": {
"main": [
[
{
"node": "Read Crypto Watchlist",
"type": "main",
"index": 0
}
]
]
},
"Read Crypto Watchlist": {
"main": [
[
{
"node": "Parse Crypto Data",
"type": "main",
"index": 0
}
]
]
},
"Fetch Live Crypto Price": {
"main": [
[
{
"node": "Smart Crypto Alert Logic",
"type": "main",
"index": 0
}
]
]
},
"Smart Crypto Alert Logic": {
"main": [
[
{
"node": "Check Crypto Alert Conditions",
"type": "main",
"index": 0
}
]
]
},
"Crypto Alert Status Check": {
"main": [
[
{
"node": "Success Notification",
"type": "main",
"index": 0
}
],
[
{
"node": "Error Notification",
"type": "main",
"index": 0
}
]
]
},
"Update Crypto Alert History": {
"main": [
[
{
"node": "Crypto Alert Status Check",
"type": "main",
"index": 0
}
]
]
},
"Check Crypto Alert Conditions": {
"main": [
[
{
"node": "Send Crypto Email Alert",
"type": "main",
"index": 0
},
{
"node": "Send Telegram Crypto Alert",
"type": "main",
"index": 0
},
{
"node": "Send Discord Crypto Alert",
"type": "main",
"index": 0
},
{
"node": "Update Crypto Alert History",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
discordBotApigoogleApismtptelegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This automated n8n workflow monitors real-time cryptocurrency prices using CoinGecko API and sends smart alerts when price conditions are met. It supports multi-coin tracking, dynamic conditions, and instant notifications via Email, Telegram, and Discord. Reads crypto watchlist…
Source: https://n8n.io/workflows/7705/ — 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 is ideal for marketers, product managers, competitive intelligence teams, and anyone who needs to track changes on web pages — whether it's competitor pricing, job postings, policy updat
Monitor Indian (NSE/BSE) and US stock markets with intelligent price alerts, cooldown periods, and multi-channel notifications (Email + Telegram). Automatically tracks price movements and sends alerts
⚠️ Heads up: this is satire. The "Hell Yeah!" workflow is a parody of "automate your whole life with AI agents" grindset content. The API endpoints are fictional and the function nodes are illustrativ
This workflow continuously monitors the Meta Ads Library for new creatives from a specific competitor pages, logs them into Google Sheets, and sends a concise Telegram notification with the number of
Enhance financial oversight with this automated n8n workflow. Triggered every 5 minutes, it fetches real-time bank transactions via an API, enriches and transforms the data, and applies smart logic to