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": "Send Local Falcon rank alerts to Discord",
"nodes": [
{
"parameters": {
"content": "## Send Local Falcon Rank Alerts to Discord\n\n**Who is this for:** Teams using Discord for communication who want ranking alerts delivered to their server channels.\n\n**What this workflow does:**\n1. Monitors Local Falcon trend reports daily\n2. Detects significant ranking changes\n3. Sends formatted alerts to Discord channel\n4. Color-codes messages (green for improvements, red for drops)\n\n**How to set up:**\n1. Add your Local Falcon API credentials (get your key at https://www.localfalcon.com/api/credentials)\n2. Create a Discord webhook for your channel\n3. Add the webhook URL in Settings\n4. Configure alert thresholds\n5. Activate the workflow\n\n**Requirements:**\n- Local Falcon account with API access\n- Discord server with webhook permissions\n- Existing campaigns with scan data\n\n**How to customize:**\n- Create separate channels for different clients\n- Add role mentions for critical alerts\n- Include embed images with rank charts\n- Set up different alert levels",
"height": 480,
"width": 460,
"color": 5
},
"id": "sticky-main",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
100,
-160
]
},
{
"parameters": {
"content": "### Step 1: Schedule\nChecks for changes daily.",
"height": 100,
"width": 200
},
"id": "sticky-step1",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
40,
640
]
},
{
"parameters": {
"content": "### Step 2: Get Trends\nFetches ranking changes.",
"height": 100,
"width": 200
},
"id": "sticky-step2",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
300,
640
]
},
{
"parameters": {
"content": "### Step 3: Process\nFilters significant changes.",
"height": 100,
"width": 200
},
"id": "sticky-step3",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
560,
640
]
},
{
"parameters": {
"content": "### Step 4: Discord\nSends alert to channel.",
"height": 100,
"width": 200
},
"id": "sticky-step4",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
820,
640
]
},
{
"parameters": {
"rule": {
"interval": [
{
"field": "days",
"triggerAtHour": 9
}
]
}
},
"id": "schedule",
"name": "Every Day 9am",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
140,
420
]
},
{
"parameters": {
"resource": "report",
"operation": "listTrend",
"additionalFields": {
"limit": 50
}
},
"id": "get-trends",
"name": "Get Trend Reports",
"type": "@local-falcon/n8n-nodes-localfalcon.localFalcon",
"typeVersion": 1,
"position": [
400,
420
],
"credentials": {
"localFalconApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsCode": "const reports = $input.first().json.reports || [];\nconst threshold = 2;\nconst webhookUrl = 'YOUR_DISCORD_WEBHOOK_URL';\n\nconst alerts = reports.filter(r => {\n const change = Math.abs(parseFloat(r.rank_change) || 0);\n return change >= threshold;\n});\n\nif (alerts.length === 0) return [];\n\nconst embeds = alerts.map(alert => {\n const change = parseFloat(alert.rank_change) || 0;\n const isImprovement = change < 0;\n \n return {\n title: isImprovement ? '\ud83d\udcc8 Rank Improved!' : '\ud83d\udcc9 Rank Dropped',\n color: isImprovement ? 3066993 : 15158332, // Green or Red\n fields: [\n { name: 'Location', value: alert.location_name || 'Unknown', inline: true },\n { name: 'Keyword', value: alert.keyword || 'Unknown', inline: true },\n { name: 'Change', value: `${alert.previous_avg_rank} \u2192 ${alert.avg_rank}`, inline: true }\n ],\n footer: { text: 'Local Falcon Alert' },\n timestamp: new Date().toISOString()\n };\n});\n\nreturn [{\n json: {\n webhookUrl: webhookUrl,\n content: `**Local Falcon Daily Alert** - ${alerts.length} ranking change(s) detected`,\n embeds: embeds.slice(0, 10) // Discord limit\n }\n}];"
},
"id": "process",
"name": "Process Alerts",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
660,
420
]
},
{
"parameters": {
"method": "POST",
"url": "={{ $json.webhookUrl }}",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "content",
"value": "={{ $json.content }}"
},
{
"name": "embeds",
"value": "={{ JSON.stringify($json.embeds) }}"
}
]
},
"options": {}
},
"id": "discord",
"name": "Send to Discord",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
920,
420
]
}
],
"connections": {
"Every Day 9am": {
"main": [
[
{
"node": "Get Trend Reports",
"type": "main",
"index": 0
}
]
]
},
"Get Trend Reports": {
"main": [
[
{
"node": "Process Alerts",
"type": "main",
"index": 0
}
]
]
},
"Process Alerts": {
"main": [
[
{
"node": "Send to Discord",
"type": "main",
"index": 0
}
]
]
}
},
"meta": {
"templateCredsSetupCompleted": true
}
}
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.
localFalconApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Send Local Falcon rank alerts to Discord. Uses @local-falcon/n8n-nodes-localfalcon, httpRequest. Scheduled trigger; 9 nodes.
Source: https://github.com/local-falcon/n8n-templates/blob/3dd7676046b6b8efc3bda40821cc944664db80f2/templates/27-discord-rank-alerts.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 is designed for engineering teams, project managers, and IT operations who need consistent visibility into team availability across multiple projects. It’s perfect for organizations that
⚠️ 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 professional-grade n8n workflow automation is designed for crypto traders, investors, and market analysts who need real-time volume change alerts across different market cap segments. Whether you
This workflow is an automated system that tracks End-of-Life (EOL) dates for software and technologies used across your projects. It eliminates the need to manually monitor EOL dates in spreadsheets o
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