매일 Forex Factory 일정을 Google Sheets로 가져오고 Telegram으로 전송
이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 12개의 노드를 포함합니다.주로 If, Code, Filter, Telegram, Aggregate 등의 노드를 사용하며. 어제의 Forex Factory 일정을 Google Sheets로 가져오고 Telegram 알림을 보내기
- •Telegram Bot Token
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
{
"id": "fvd4uwHNbYcUbqzk",
"meta": {
"instanceId": "c24388df44432e8ff2c4acecd7ab0dd2faec628bd83c70beb384cea105f7a50a",
"templateCredsSetupCompleted": true
},
"name": "Daily Import Forex Factory Calendar into Google Sheets & Send in Telegram",
"tags": [
{
"id": "RhAmCaLYc9EkF42I",
"name": "n8n",
"createdAt": "2025-08-24T08:04:35.027Z",
"updatedAt": "2025-08-24T08:04:35.027Z"
}
],
"nodes": [
{
"id": "de71e899-7dd7-40f6-9a69-f34fc4ddd93e",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
500,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "d308f5af-3dc7-4313-8bff-d7736de748e5",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.impact }}",
"rightValue": "High"
},
{
"id": "77dcdd8a-b5df-46b2-bd9e-c255643cc17e",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.impact }}",
"rightValue": "Medium"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "2c535596-f826-4834-a201-b2a15b87bd49",
"name": "Convert month name to number",
"type": "n8n-nodes-base.code",
"position": [
20,
0
],
"parameters": {
"jsCode": "// Get all input items\nconst items = $input.all();\n\nconst monthMap = {\n January: 1,\n February: 2,\n March: 3,\n April: 4,\n May: 5,\n June: 6,\n July: 7,\n August: 8,\n September: 9,\n October: 10,\n November: 11,\n December: 12\n};\n\nconst output = items.map(item => {\n const monthName = item.json.Month || \"\";\n const formattedName = monthName.trim().charAt(0).toUpperCase() + monthName.trim().slice(1).toLowerCase();\n const monthNumber = monthMap[formattedName] || null;\n\n return {\n json: {\n Month: monthName,\n Month_Number: monthNumber\n }\n };\n});\n\nreturn output;\n"
},
"typeVersion": 2
},
{
"id": "a0f18403-c517-4ce0-8d4a-985cf0f082bf",
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
1480,
-140
],
"webhookId": "18deaccb-d2b8-44b3-82bc-c906f47615c4",
"parameters": {
"text": "=Forex factory Calendar: \nDate: {{ new Date(Date.now() - 24*60*60*1000).toISOString().split('T')[0] }}\n\nThe High Impact News:\n{{ $json['News Title'] }}\n\n",
"chatId": "xxxxxxxxxxxx",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "kKlsxbYBGojXYXUo",
"name": "Telegram account 4"
}
},
"typeVersion": 1.2
},
{
"id": "3d1cef00-fee9-4e3f-8da9-ad520b1ff0f2",
"name": "Append to Google 스프레드시트: Low Impact",
"type": "n8n-nodes-base.googleSheets",
"position": [
820,
100
],
"parameters": {
"columns": {
"value": {
"date": "={{ $json.date }}",
"time": "={{ $json.time }}",
"year": "={{ $json.year }}",
"actual": "={{ $json.actual }}",
"impact": "={{ $json.impact }}",
"currency": "={{ $json.currency }}",
"forecast": "={{ $json.forecast }}",
"previous": "={{ $json.previous }}",
"News Title": "={{ $json.name }}"
},
"schema": [
{
"id": "News Title",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "News Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "year",
"type": "string",
"display": true,
"required": false,
"displayName": "year",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "date",
"type": "string",
"display": true,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "time",
"type": "string",
"display": true,
"required": false,
"displayName": "time",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "currency",
"type": "string",
"display": true,
"required": false,
"displayName": "currency",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "impact",
"type": "string",
"display": true,
"required": false,
"displayName": "impact",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "actual",
"type": "string",
"display": true,
"required": false,
"displayName": "actual",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "forecast",
"type": "string",
"display": true,
"required": false,
"displayName": "forecast",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "previous",
"type": "string",
"display": true,
"required": false,
"displayName": "previous",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"useAppend": true
},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1954835598,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1gktMWTBVN0B9SZ6cEIW1gFKuUAnHrR_hbLncqilbczw/edit#gid=1954835598",
"cachedResultName": "calendar-Low Impact"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1gktMWTBVN0B9SZ6cEIW1gFKuUAnHrR_hbLncqilbczw",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1gktMWTBVN0B9SZ6cEIW1gFKuUAnHrR_hbLncqilbczw/edit?usp=drivesdk",
"cachedResultName": "Import Forex Factory Calendar into Google Sheets | n8n"
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "A3ebjIB2M27srsju",
"name": "Nima40"
}
},
"typeVersion": 4.6
},
{
"id": "6c618af8-eddd-4799-ae29-2e648502ebc9",
"name": "Append to Google 스프레드시트: High Impact",
"type": "n8n-nodes-base.googleSheets",
"position": [
820,
-140
],
"parameters": {
"columns": {
"value": {
"date": "={{ $json.date }}",
"time": "={{ $json.time }}",
"year": "={{ $json.year }}",
"actual": "={{ $json.actual }}",
"impact": "={{ $json.impact }}",
"currency": "={{ $json.currency }}",
"forecast": "={{ $json.forecast }}",
"previous": "={{ $json.previous }}",
"News Title": "={{ $json.name }}"
},
"schema": [
{
"id": "News Title",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "News Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "year",
"type": "string",
"display": true,
"required": false,
"displayName": "year",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "date",
"type": "string",
"display": true,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "time",
"type": "string",
"display": true,
"required": false,
"displayName": "time",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "currency",
"type": "string",
"display": true,
"required": false,
"displayName": "currency",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "impact",
"type": "string",
"display": true,
"required": false,
"displayName": "impact",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "actual",
"type": "string",
"display": true,
"required": false,
"displayName": "actual",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "forecast",
"type": "string",
"display": true,
"required": false,
"displayName": "forecast",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "previous",
"type": "string",
"display": true,
"required": false,
"displayName": "previous",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"useAppend": true
},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1gktMWTBVN0B9SZ6cEIW1gFKuUAnHrR_hbLncqilbczw/edit#gid=0",
"cachedResultName": "calendar-High/Medium Impact"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1gktMWTBVN0B9SZ6cEIW1gFKuUAnHrR_hbLncqilbczw",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1gktMWTBVN0B9SZ6cEIW1gFKuUAnHrR_hbLncqilbczw/edit?usp=drivesdk",
"cachedResultName": "Import Forex Factory Calendar into Google Sheets | n8n"
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "A3ebjIB2M27srsju",
"name": "Nima40"
}
},
"typeVersion": 4.6
},
{
"id": "f9e74e46-1363-434e-a853-4f9e740917b5",
"name": "집계",
"type": "n8n-nodes-base.aggregate",
"position": [
1280,
-140
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "News Title"
}
]
}
},
"typeVersion": 1
},
{
"id": "2efc81dd-ebb1-42df-af02-45c60375fa26",
"name": "일정 트리거: Daily Triggers",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-220,
0
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 8
}
]
}
},
"typeVersion": 1.2
},
{
"id": "e7c4e06a-fa45-4f1e-9509-b7f1f97eb172",
"name": "Get calendar from Forex Factory",
"type": "n8n-nodes-base.httpRequest",
"position": [
260,
0
],
"parameters": {
"url": "https://forex-factory-scraper1.p.rapidapi.com/get_real_time_calendar_details",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "calendar",
"value": "Forex"
},
{
"name": "year",
"value": "={{ $('Schedule Trigger: Daily Triggers').item.json.Year }}"
},
{
"name": "month",
"value": "={{ $json.Month_Number }}"
},
{
"name": "day",
"value": "={{ $('Schedule Trigger: Daily Triggers').item.json['Day of month'] }}"
},
{
"name": "currency",
"value": "ALL"
},
{
"name": "time_format",
"value": "24h"
},
{
"name": "timezone",
"value": "GMT-05:00 Eastern Time (US & Canada)"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "x-rapidapi-host",
"value": "forex-factory-scraper1.p.rapidapi.com"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "HKMIYjrbwUmAVM6y",
"name": "Rapid API - Forex Factory"
}
},
"typeVersion": 4.2
},
{
"id": "53189b4a-096c-404f-8cba-625dff49d939",
"name": "메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
180,
-460
],
"parameters": {
"color": 5,
"width": 280,
"height": 720,
"content": "## Forex Factory API\n\n**Rapid API** gives us an API. \nThe API provides the **exact day Forex Factory calendar** by its fields:\n\n**Fields:**\n- News Title \n- year \n- date \n- time \n- currency \n- impact \n- actual \n- forecast \n- previous"
},
"typeVersion": 1
},
{
"id": "c6f4da78-bcc2-45da-9371-3055d28ff331",
"name": "메모1",
"type": "n8n-nodes-base.stickyNote",
"position": [
660,
-460
],
"parameters": {
"color": 5,
"width": 360,
"height": 740,
"content": "## Google Sheets Append Nodes\n\nThese nodes **append the Forex Factory calendar data** into the connected Google Sheet.\n\n- **High Impact Sheet:** Stores events with *High* or *Medium* impact.\n- **Low Impact Sheet:** Stores all *Low impact* events.\n"
},
"typeVersion": 1
},
{
"id": "ea26a205-db18-4b83-96ae-356fb96b9505",
"name": "필터 High Impact News",
"type": "n8n-nodes-base.filter",
"position": [
1060,
-140
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "fa6853f2-3867-46e5-ad8a-c62be8ed4b77",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.impact }}",
"rightValue": "High"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "43a514e1-f821-4086-8287-903eb51c5f0d",
"name": "메모2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1420,
-460
],
"parameters": {
"color": 5,
"height": 740,
"content": "## telegram\n\n**Add your Chat ID to it.**\n\nIt Sends High Impact News in one message."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {
"Get calendar from Forex Factory": [
{
"json": {
"date": "2025-10-07",
"name": "Leading Indicators",
"time": "01:00",
"year": "2025",
"actual": "107.4%",
"impact": "Low Impact Expected",
"currency": "JPY",
"forecast": "107.1%",
"previous": "105.9%"
}
},
{
"json": {
"date": "2025-10-07",
"name": "German Factory Orders m/m",
"time": "02:00",
"year": "2025",
"actual": "-0.8%",
"impact": "Low Impact Expected",
"currency": "EUR",
"forecast": "1.2%",
"previous": "-2.9%"
}
},
{
"json": {
"date": "2025-10-07",
"name": "Halifax HPI m/m",
"time": "02:00",
"year": "2025",
"actual": "-0.3%",
"impact": "Low Impact Expected",
"currency": "GBP",
"forecast": "0.2%",
"previous": "0.3%"
}
},
{
"json": {
"date": "2025-10-07",
"name": "French Trade Balance",
"time": "02:45",
"year": "2025",
"actual": "-5.5B",
"impact": "Low Impact Expected",
"currency": "EUR",
"forecast": "-5.2B",
"previous": "-5.6B"
}
},
{
"json": {
"date": "2025-10-07",
"name": "Foreign Currency Reserves",
"time": "03:00",
"year": "2025",
"actual": "727B",
"impact": "Low Impact Expected",
"currency": "CHF",
"forecast": "",
"previous": "715B"
}
},
{
"json": {
"date": "2025-10-07",
"name": "Trade Balance",
"time": "08:30",
"year": "2025",
"actual": "-6.3B",
"impact": "Low Impact Expected",
"currency": "CAD",
"forecast": "-5.7B",
"previous": "-4.9B"
}
},
{
"json": {
"date": "2025-10-07",
"name": "Ivey PMI",
"time": "10:00",
"year": "2025",
"actual": "59.8",
"impact": "Medium Impact Expected",
"currency": "CAD",
"forecast": "51.2",
"previous": "50.1"
}
},
{
"json": {
"date": "2025-10-07",
"name": "FOMC Member Bostic Speaks",
"time": "10:00",
"year": "2025",
"actual": "",
"impact": "Low Impact Expected",
"currency": "USD",
"forecast": "",
"previous": ""
}
},
{
"json": {
"date": "2025-10-07",
"name": "RCM/TIPP Economic Optimism",
"time": "10:02",
"year": "2025",
"actual": "48.3",
"impact": "Low Impact Expected",
"currency": "USD",
"forecast": "49.3",
"previous": "48.7"
}
},
{
"json": {
"date": "2025-10-07",
"name": "FOMC Member Bowman Speaks",
"time": "10:05",
"year": "2025",
"actual": "",
"impact": "Low Impact Expected",
"currency": "USD",
"forecast": "",
"previous": ""
}
},
{
"json": {
"date": "2025-10-07",
"name": "FOMC Member Miran Speaks",
"time": "10:45",
"year": "2025",
"actual": "",
"impact": "Low Impact Expected",
"currency": "USD",
"forecast": "",
"previous": ""
}
},
{
"json": {
"date": "2025-10-07",
"name": "GDT Price Index",
"time": "11:29",
"year": "2025",
"actual": "",
"impact": "Low Impact Expected",
"currency": "NZD",
"forecast": "",
"previous": "-0.8%"
}
},
{
"json": {
"date": "2025-10-07",
"name": "FOMC Member Kashkari Speaks",
"time": "11:30",
"year": "2025",
"actual": "",
"impact": "Low Impact Expected",
"currency": "USD",
"forecast": "",
"previous": ""
}
},
{
"json": {
"date": "2025-10-07",
"name": "German Buba President Nagel Speaks",
"time": "12:00",
"year": "2025",
"actual": "",
"impact": "Low Impact Expected",
"currency": "EUR",
"forecast": "",
"previous": ""
}
},
{
"json": {
"date": "2025-10-07",
"name": "ECB President Lagarde Speaks",
"time": "12:10",
"year": "2025",
"actual": "",
"impact": "Medium Impact Expected",
"currency": "EUR",
"forecast": "",
"previous": ""
}
},
{
"json": {
"date": "2025-10-07",
"name": "Consumer Credit m/m",
"time": "15:00",
"year": "2025",
"actual": "",
"impact": "Low Impact Expected",
"currency": "USD",
"forecast": "12.9B",
"previous": "16.0B"
}
},
{
"json": {
"date": "2025-10-07",
"name": "FOMC Member Miran Speaks",
"time": "16:05",
"year": "2025",
"actual": "",
"impact": "Low Impact Expected",
"currency": "USD",
"forecast": "",
"previous": ""
}
},
{
"json": {
"date": "2025-10-07",
"name": "API Weekly Statistical Bulletin",
"time": "16:30",
"year": "2025",
"actual": "",
"impact": "Low Impact Expected",
"currency": "USD",
"forecast": "",
"previous": ""
}
},
{
"json": {
"date": "2025-10-07",
"name": "Average Cash Earnings y/y",
"time": "19:30",
"year": "2025",
"actual": "",
"impact": "Low Impact Expected",
"currency": "JPY",
"forecast": "2.6%",
"previous": "4.1%"
}
},
{
"json": {
"date": "2025-10-07",
"name": "Current Account",
"time": "19:50",
"year": "2025",
"actual": "",
"impact": "Low Impact Expected",
"currency": "JPY",
"forecast": "2.45T",
"previous": "1.88T"
}
},
{
"json": {
"date": "2025-10-07",
"name": "Bank Holiday",
"time": "20:01",
"year": "2025",
"actual": "",
"impact": "Non-Economic",
"currency": "CNY",
"forecast": "",
"previous": ""
}
},
{
"json": {
"date": "2025-10-07",
"name": "Official Cash Rate",
"time": "21:00",
"year": "2025",
"actual": "",
"impact": "High Impact Expected",
"currency": "NZD",
"forecast": "2.75%",
"previous": "3.00%"
}
},
{
"json": {
"date": "2025-10-07",
"name": "RBNZ Rate Statement",
"time": "21:00",
"year": "2025",
"actual": "",
"impact": "High Impact Expected",
"currency": "NZD",
"forecast": "",
"previous": ""
}
},
{
"json": {
"date": "2025-10-07",
"name": "BOJ Gov Ueda Speaks",
"time": "21:45",
"year": "2025",
"actual": "",
"impact": "High Impact Expected",
"currency": "JPY",
"forecast": "",
"previous": ""
}
}
]
},
"settings": {
"executionOrder": "v1"
},
"versionId": "c3bdd71b-5b7e-4325-b417-4f94b83d4653",
"connections": {
"de71e899-7dd7-40f6-9a69-f34fc4ddd93e": {
"main": [
[
{
"node": "Append to Google Sheets: High Impact",
"type": "main",
"index": 0
}
],
[
{
"node": "Append to Google Sheets: Low Impact",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "a0f18403-c517-4ce0-8d4a-985cf0f082bf",
"type": "main",
"index": 0
}
]
]
},
"Filter High Impact News": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"2c535596-f826-4834-a201-b2a15b87bd49": {
"main": [
[
{
"node": "e7c4e06a-fa45-4f1e-9509-b7f1f97eb172",
"type": "main",
"index": 0
}
]
]
},
"e7c4e06a-fa45-4f1e-9509-b7f1f97eb172": {
"main": [
[
{
"node": "de71e899-7dd7-40f6-9a69-f34fc4ddd93e",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger: Daily Triggers": {
"main": [
[
{
"node": "2c535596-f826-4834-a201-b2a15b87bd49",
"type": "main",
"index": 0
}
]
]
},
"Append to Google Sheets: High Impact": {
"main": [
[
{
"node": "Filter High Impact News",
"type": "main",
"index": 0
}
]
]
}
}
}이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 콘텐츠 제작, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Nima Salimi
@salimiWith a deep understanding of marketing processes and data flows, I create solutions that streamline user engagement, campaign management, and data synchronization across multiple platforms. My goal is to help businesses reduce manual effort, improve accuracy, and accelerate their marketing initiatives through smart automation.
이 워크플로우 공유