This workflow corresponds to n8n.io template #9015 — we link there as the canonical source.
This workflow follows the Agent → 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 →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "2336bfd7-77f6-45e0-848e-c1aef2470b78",
"name": "Real Time Price",
"type": "n8n-nodes-base.httpRequest",
"position": [
624,
240
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "41c14484-9ba8-4db5-a023-dda9f24db01e",
"name": "Merge1",
"type": "n8n-nodes-base.merge",
"position": [
1104,
-640
],
"parameters": {},
"typeVersion": 3.1
},
{
"id": "74d5469b-252a-4b58-8f0b-244e9c1c45b2",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
2464,
-336
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "4f2068dd-9b5d-48df-9e4e-92e10df58efd",
"name": "Simple Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
2240,
-336
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "ba1c4ade-05ca-4687-9911-14d8e1a4d203",
"name": "Google Gemini Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1968,
-304
],
"parameters": {},
"typeVersion": 1
},
{
"id": "40de62de-c2c9-4dac-bb14-1ffeac4e89d8",
"name": "Telegram Trigger",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-1184,
-480
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "58420974-a4e0-4715-8a75-9d69e164ba92",
"name": "EMA 50 - 1D",
"type": "n8n-nodes-base.httpRequest",
"position": [
704,
-784
],
"parameters": {},
"executeOnce": false,
"retryOnFail": true,
"typeVersion": 4.1,
"alwaysOutputData": false,
"waitBetweenTries": 5000
},
{
"id": "3d56dde3-677e-471a-9713-3714447e6d31",
"name": "EMA 200 -1D",
"type": "n8n-nodes-base.httpRequest",
"position": [
704,
-576
],
"parameters": {},
"executeOnce": false,
"retryOnFail": true,
"typeVersion": 4.1,
"alwaysOutputData": false,
"waitBetweenTries": 5000
},
{
"id": "b0f0de9b-7337-45b0-a71c-34899a6d00b5",
"name": "RSI -1D",
"type": "n8n-nodes-base.httpRequest",
"position": [
704,
-384
],
"parameters": {},
"typeVersion": 4.1
},
{
"id": "de4b171d-9a98-4ada-b321-bcd9a9209641",
"name": "ATR -1D",
"type": "n8n-nodes-base.httpRequest",
"position": [
704,
-160
],
"parameters": {},
"executeOnce": false,
"retryOnFail": true,
"typeVersion": 4.1,
"alwaysOutputData": false,
"waitBetweenTries": 5000
},
{
"id": "40e0245d-6787-4bba-9673-f55978398cd4",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1520,
-1504
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "52dbac73-cb72-43b6-8234-9993a68f113d",
"name": "Add Twelve Data API Key",
"type": "n8n-nodes-base.set",
"position": [
-256,
-480
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "d767045a-604f-4051-beb8-ac8f068ca31a",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
432,
-944
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "8138c180-2447-4795-b516-6954999e2d34",
"name": "Wait -65s",
"type": "n8n-nodes-base.wait",
"position": [
512,
-576
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "e158f50c-0a29-4acf-8211-dc19ac6ae06e",
"name": "Wait1 -65s",
"type": "n8n-nodes-base.wait",
"position": [
528,
-160
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "8ee5fc6c-c606-48eb-9d6b-b57e414f527a",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
432,
-1312
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "b8ec4952-d9fc-41d0-9810-d9947b14a165",
"name": "OHLC -1Day",
"type": "n8n-nodes-base.httpRequest",
"position": [
496,
-1168
],
"parameters": {},
"typeVersion": 4.1
},
{
"id": "2122dd68-8954-43d6-a903-014f758808af",
"name": "Calculate Support Resistance",
"type": "n8n-nodes-base.code",
"position": [
704,
-1168
],
"parameters": {},
"typeVersion": 2
},
{
"id": "e0f62383-7709-4c9e-831f-cce98314d583",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
432,
96
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "61e73466-5a53-4b5c-bcfb-60afe8e4a937",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-736,
-688
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "cff78e80-5206-442c-888e-7b50d1016284",
"name": "Set Stock Ticker",
"type": "n8n-nodes-base.set",
"position": [
-624,
-480
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "4dc67d77-0e44-4288-a26c-5264a30615ad",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-368,
-688
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "930e82c3-253e-4c4b-a51b-2e291cddfda6",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1424,
-688
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "b9839038-9591-4cd8-a5c0-b5ac43b39c25",
"name": "Organizing Data",
"type": "n8n-nodes-base.code",
"position": [
1376,
-576
],
"parameters": {},
"typeVersion": 2
},
{
"id": "df616779-b01b-454f-814e-444e7a670f4c",
"name": "Warp JSON",
"type": "n8n-nodes-base.code",
"position": [
1552,
-576
],
"parameters": {},
"typeVersion": 2
},
{
"id": "ad940cc8-4f11-43ce-8bb7-4bef8ebc4a7a",
"name": "Technical Analysis Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
2080,
-576
],
"parameters": {},
"retryOnFail": true,
"typeVersion": 1.9
},
{
"id": "85c39fa9-bbaf-41a9-9b20-c1aca7facd0f",
"name": "Send Final Analysis",
"type": "n8n-nodes-base.telegram",
"position": [
3136,
-560
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "dfe507b6-e1b1-4f45-be0c-7eb31831e09c",
"name": "Send 1D Chart",
"type": "n8n-nodes-base.telegram",
"position": [
3648,
-560
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "13540280-0ead-48ce-b297-341cbf6763ad",
"name": "Get Chart URL",
"type": "n8n-nodes-base.httpRequest",
"position": [
2928,
-32
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "4ac66624-0762-4c0b-ba3c-09833db34cce",
"name": "Download Chart",
"type": "n8n-nodes-base.httpRequest",
"position": [
3216,
-32
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "b6777c9b-ff73-4161-b817-8be849ee6db1",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
2784,
-192
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "eecca474-2293-43fb-854c-134ad6d8d5b0",
"name": "Sticky Note21",
"type": "n8n-nodes-base.stickyNote",
"position": [
3008,
-944
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "e7c95385-e89f-4d58-9c5c-22ed05715c7b",
"name": "Sticky Note22",
"type": "n8n-nodes-base.stickyNote",
"position": [
3456,
-944
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "e6782d73-b88c-46e2-82a4-8b1fced95cdc",
"name": "Sticky Note18",
"type": "n8n-nodes-base.stickyNote",
"position": [
1888,
-352
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "59317603-e2ab-4302-9a82-e1bdadd34576",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1312,
-656
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "9465591a-1a0c-4a3a-9b87-8831fde95e79",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
1968,
-736
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"connections": {
"Merge1": {
"main": [
[
{
"node": "Organizing Data",
"type": "main",
"index": 0
}
]
]
},
"ATR -1D": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 4
}
]
]
},
"RSI -1D": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 3
}
]
]
},
"Wait -65s": {
"main": [
[
{
"node": "EMA 200 -1D",
"type": "main",
"index": 0
}
]
]
},
"Warp JSON": {
"main": [
[
{
"node": "Technical Analysis Agent",
"type": "main",
"index": 0
}
]
]
},
"OHLC -1Day": {
"main": [
[
{
"node": "Calculate Support Resistance",
"type": "main",
"index": 0
}
]
]
},
"Wait1 -65s": {
"main": [
[
{
"node": "ATR -1D",
"type": "main",
"index": 0
}
]
]
},
"EMA 200 -1D": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 2
}
]
]
},
"EMA 50 - 1D": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 1
}
]
]
},
"Get Chart URL": {
"main": [
[
{
"node": "Download Chart",
"type": "main",
"index": 0
}
]
]
},
"Send 1D Chart": {
"main": [
[]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "Technical Analysis Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Download Chart": {
"main": [
[
{
"node": "Send 1D Chart",
"type": "main",
"index": 0
}
]
]
},
"Organizing Data": {
"main": [
[
{
"node": "Warp JSON",
"type": "main",
"index": 0
}
]
]
},
"Real Time Price": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 5
}
]
]
},
"Set Stock Ticker": {
"main": [
[
{
"node": "Add Twelve Data API Key",
"type": "main",
"index": 0
},
{
"node": "Get Chart URL",
"type": "main",
"index": 0
}
]
]
},
"Telegram Trigger": {
"main": [
[
{
"node": "Set Stock Ticker",
"type": "main",
"index": 0
}
]
]
},
"Add Twelve Data API Key": {
"main": [
[
{
"node": "OHLC -1Day",
"type": "main",
"index": 0
},
{
"node": "Real Time Price",
"type": "main",
"index": 0
},
{
"node": "EMA 50 - 1D",
"type": "main",
"index": 0
},
{
"node": "Wait -65s",
"type": "main",
"index": 0
},
{
"node": "RSI -1D",
"type": "main",
"index": 0
},
{
"node": "Wait1 -65s",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Technical Analysis Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Technical Analysis Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Technical Analysis Agent": {
"main": [
[
{
"node": "Send Final Analysis",
"type": "main",
"index": 0
}
]
]
},
"Calculate Support Resistance": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n workflow template creates an intelligent stock technical analysis system that delivers professional-grade trading signals directly to your Telegram. Designed for retail traders, investors, and financial professionals who want to combine technical analysis with…
Source: https://n8n.io/workflows/9015/ — 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.
Arvifund - Supabase (Fixed v6). Uses httpRequest, telegram, supabase, telegramTrigger. Event-driven trigger; 92 nodes.
Arvifund - Supabase (Fixed v5). Uses httpRequest, telegram, googleSheets, telegramTrigger. Event-driven trigger; 91 nodes.
Arvifund - Supabase. Uses httpRequest, telegram, googleSheets, telegramTrigger. Event-driven trigger; 90 nodes.
Arvifund - Supabase (Fixed v2). Uses httpRequest, telegram, googleSheets, telegramTrigger. Event-driven trigger; 90 nodes.
Arvifund - Supabase (Fixed v4). Uses httpRequest, telegram, googleSheets, telegramTrigger. Event-driven trigger; 90 nodes.