每日将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 凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "fvd4uwHNbYcUbqzk",
"meta": {
"instanceId": "c24388df44432e8ff2c4acecd7ab0dd2faec628bd83c70beb384cea105f7a50a",
"templateCredsSetupCompleted": true
},
"name": "每日将 Forex Factory 日历导入 Google Sheets 并发送到 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": "如果",
"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": "将月份名称转换为数字",
"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": "追加到 Google Sheets:低影响",
"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": "追加到 Google Sheets:高影响",
"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": "计划触发器:每日触发器",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-220,
0
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 8
}
]
}
},
"typeVersion": 1.2
},
{
"id": "e7c4e06a-fa45-4f1e-9509-b7f1f97eb172",
"name": "从 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"
},
"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 追加节点"
},
"typeVersion": 1
},
{
"id": "ea26a205-db18-4b83-96ae-356fb96b9505",
"name": "过滤高影响新闻",
"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"
},
"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": {
"If": {
"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": "Telegram",
"type": "main",
"index": 0
}
]
]
},
"Filter High Impact News": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Convert month name to number": {
"main": [
[
{
"node": "Get calendar from Forex Factory",
"type": "main",
"index": 0
}
]
]
},
"Get calendar from Forex Factory": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger: Daily Triggers": {
"main": [
[
{
"node": "Convert month name to number",
"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)可能需要您自行付费。
相关工作流推荐
将 Brevo 联系人报告插入 NocoDB
将 Brevo 联系人报告插入 NocoDB
If
Set
Code
+8
26 节点Nima Salimi
内容创作
WordPress博客自动化专业版(深度研究)v2.1市场
使用GPT-4o、Perplexity AI和多语言支持自动化SEO优化的博客创建
If
Set
Xml
+27
125 节点Daniel Ng
内容创作
内容聚合
使用Gemini AI从网站文章自动化社交媒体帖子发布到LinkedIn和X/Twitter
If
Set
Xml
+16
34 节点Vadim
内容创作
LinkedIn和X病毒内容自动引擎
使用AI生成和发布自动创建LinkedIn和X的病毒内容
If
Set
Wait
+26
156 节点Diptamoy Barman
内容创作
使用AI和Freepik将Reddit商业痛点转换为病毒式LinkedIn内容
使用AI和Freepik将Reddit商业痛点转换为病毒式LinkedIn内容
If
Set
Code
+16
48 节点Daniel Lianes
内容创作
使用Sora-2、GPT和YouTube创建和发布联盟产品视频
使用Sora-2、GPT和YouTube创建和发布联盟产品视频
If
Set
Code
+12
34 节点Amjid Ali
内容创作
工作流信息
难度等级
中级
节点数量12
分类2
节点类型9
作者
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.
外部链接
在 n8n.io 查看 →
分享此工作流