8
n8n 中文网amn8n.com

自动化Solana新闻追踪器与AI驱动的每周摘要

高级

这是一个自动化工作流,包含 22 个节点。主要使用 If, Code, Merge, Aggregate, HttpRequest 等节点。 每日Solana新闻追踪器,使用GPT-4.1-mini在Google表格中生成每周摘要

前置要求
  • 可能需要目标 API 的认证凭证
  • Google Sheets API 凭证
  • OpenAI API Key

分类

-
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "ka67GgNwcbhPfmFh",
  "meta": {
    "instanceId": "84280226fffa0e8a3206dee30fe2043ca65af7920df5605b8479b2950b4310cc",
    "templateCredsSetupCompleted": true
  },
  "name": "Automated Solana News Tracker with AI-Powered Weekly Summaries",
  "tags": [],
  "nodes": [
    {
      "id": "2f8e8791-4694-4496-87ec-c44a157445e9",
      "name": "Run Every Day at 08:00 PT",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -2016,
        32
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 7,
              "triggerAtMinute": 55
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "e8d1761a-36fa-4a02-8a45-96d9a1344268",
      "name": "Get Solana News",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1696,
        32
      ],
      "parameters": {
        "url": "https://cryptopanic.com/api/v1/posts/?auth_token=[your token]&currencies=sol&public=true",
        "options": {
          "response": {
            "response": {}
          }
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "fded8769-0a62-4455-ba2d-04a063c4379e",
      "name": "Sticky Note - API",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1792,
        -256
      ],
      "parameters": {
        "color": 6,
        "width": 300,
        "height": 456,
        "content": "## 🌐 NEWS API SOURCE\n\n**CryptoPanic API**\nFetches latest Solana (SOL) news from aggregated crypto sources.\n\n**Setup Required:**\n1. Get free API key from cryptopanic.com\n2. Replace `[your token]` in URL\n\n**Alternative APIs:**\nCoinGecko, NewsAPI, or custom RSS feeds"
      },
      "typeVersion": 1
    },
    {
      "id": "d8f768a4-c316-4058-b1f3-63675807038f",
      "name": "Format By Items",
      "type": "n8n-nodes-base.code",
      "position": [
        -1472,
        32
      ],
      "parameters": {
        "jsCode": "const items = $input.all();\nconst processedItems = [];\nfor (const item of items) {\n  const results = item?.json?.results || [];\n  for (const result of results) {\n    processedItems.push({\n      json: {\n        title: result.title,\n        description: result.description,\n        published_at: result.published_at,\n      },\n    });\n  }\n}\nreturn processedItems;"
      },
      "typeVersion": 2
    },
    {
      "id": "ca698555-499d-486f-bd34-5705abe9c3da",
      "name": "Check For Duplicates",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1232,
        -160
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $json.title }}",
              "lookupColumn": "title"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MgokGD0ieVLDqw8Ui6momu-H3x2fyCFVN1u5ZR4Se1I/edit#gid=0",
          "cachedResultName": "Raw Data"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1MgokGD0ieVLDqw8Ui6momu-H3x2fyCFVN1u5ZR4Se1I",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MgokGD0ieVLDqw8Ui6momu-H3x2fyCFVN1u5ZR4Se1I/edit?usp=drivesdk",
          "cachedResultName": "Solana News Automation"
        }
      },
      "typeVersion": 4.6,
      "alwaysOutputData": true
    },
    {
      "id": "c8420caa-32b1-4121-9e51-503a203da775",
      "name": "Sticky Note - Duplicates",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1504,
        -256
      ],
      "parameters": {
        "color": 7,
        "width": 644,
        "height": 464,
        "content": "## 🔍 DUPLICATE DETECTION\n\n**Checks:** If article title already exists in \"Raw Data\" sheet"
      },
      "typeVersion": 1
    },
    {
      "id": "9817c911-e85f-4427-b139-b210dd2afe60",
      "name": "Keep Non-matches",
      "type": "n8n-nodes-base.merge",
      "position": [
        -1008,
        0
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "joinMode": "keepNonMatches",
        "fieldsToMatchString": "title"
      },
      "typeVersion": 3.2,
      "alwaysOutputData": true
    },
    {
      "id": "352e9d95-f1b3-46f9-90ef-96835a81736e",
      "name": "Get Rid Of Empties",
      "type": "n8n-nodes-base.code",
      "position": [
        -784,
        0
      ],
      "parameters": {
        "jsCode": "const items = $input.all();\nconst validItems = items.filter((item) => {\n  return (\n    item?.json?.title !== undefined &&\n    item?.json?.description !== undefined &&\n    item?.json?.published_at !== undefined\n  );\n});\nreturn validItems.map((item) => item.json);\n"
      },
      "typeVersion": 2,
      "alwaysOutputData": true
    },
    {
      "id": "9f6d2283-3f33-4ab7-a13d-d0c63f0700be",
      "name": "Sticky Note - Validation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -864,
        -256
      ],
      "parameters": {
        "color": 7,
        "width": 256,
        "height": 464,
        "content": "## 🧹 DATA VALIDATION\n\n**Removes:** Items with missing fields"
      },
      "typeVersion": 1
    },
    {
      "id": "11e59d5e-cf2f-4825-a994-3980a11726e4",
      "name": "Append Valid Items",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -560,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "date ": "={{ $json.published_at }}",
            "title": "={{ $json.title }}",
            "descripton": "={{ $json.description }}"
          },
          "schema": [
            {
              "id": "date ",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "date ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "descripton",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "descripton",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "title",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "summary",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "summary",
              "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/1MgokGD0ieVLDqw8Ui6momu-H3x2fyCFVN1u5ZR4Se1I/edit#gid=0",
          "cachedResultName": "Raw Data"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1MgokGD0ieVLDqw8Ui6momu-H3x2fyCFVN1u5ZR4Se1I",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MgokGD0ieVLDqw8Ui6momu-H3x2fyCFVN1u5ZR4Se1I/edit?usp=drivesdk",
          "cachedResultName": "Solana News Automation"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "059d8239-5d77-49a4-b8ca-b7747ffa45dc",
      "name": "Sticky Note - Store",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -608,
        -256
      ],
      "parameters": {
        "color": 5,
        "width": 448,
        "height": 468,
        "content": "## 💾 STORE ARTICLES\n\n**Appends:** New articles to \"Raw Data\" sheet\n\n**Columns:**\n- date\n- title\n- description\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "7fde7109-53b7-4ab1-a065-881f6612fdc9",
      "name": "Process If Monday",
      "type": "n8n-nodes-base.if",
      "position": [
        -352,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "a2732dce-b13c-4774-809a-ba6224f552af",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $now.weekday.toString() }}",
              "rightValue": "2"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b6a722b9-41da-4002-909a-7e65845b7de9",
      "name": "Get News",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -96,
        0
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MgokGD0ieVLDqw8Ui6momu-H3x2fyCFVN1u5ZR4Se1I/edit#gid=0",
          "cachedResultName": "Raw Data"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1MgokGD0ieVLDqw8Ui6momu-H3x2fyCFVN1u5ZR4Se1I",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MgokGD0ieVLDqw8Ui6momu-H3x2fyCFVN1u5ZR4Se1I/edit?usp=drivesdk",
          "cachedResultName": "Solana News Automation"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "05e31f6a-ecb0-46df-b315-939a3c2f8371",
      "name": "Sticky Note - Read News",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        -256
      ],
      "parameters": {
        "color": 3,
        "height": 472,
        "content": "## 📖 READ ALL ARTICLES\n\n**Retrieves:** All accumulated news from \"Raw Data\" sheet\n\n**Contains:** Week's worth of Solana articles for AI to analyze"
      },
      "typeVersion": 1
    },
    {
      "id": "e24cfc87-ccfd-48b2-be2a-e6ec1093d10a",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        192,
        0
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "descripton"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1dcd022a-f5c2-426c-a22a-20a85e19e159",
      "name": "Sticky Note - Aggregate",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        -256
      ],
      "parameters": {
        "color": 3,
        "width": 352,
        "height": 472,
        "content": "## 🔗 AGGREGATE ALL ARTICLE DESCRIPTIONS\n"
      },
      "typeVersion": 1
    },
    {
      "id": "1a53a77b-c501-4e46-ba5a-953b88422a40",
      "name": "Summarize News",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        480,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "GPT-4.1-MINI"
        },
        "options": {
          "maxTokens": 200,
          "temperature": 0.2
        },
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "You are a helpful, intelligent crypto news analyst"
            },
            {
              "content": "=Your task is to take as an input Solana news at {{ $json.descripton }} and summarize all the descriptions intoa one 2-3 factual sentence summary including key takeaways for investors to understand.\n\nNo hype, no price predictions, fancy language. Your tone of voice should be spartan.\n\nOutput in JSON:\n\n{ \"summary\":\"\"} \n"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "NtqJ7vfx8zEk4am9",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "4068aa0a-422b-412b-89ae-f460eb894b4a",
      "name": "Sticky Note - AI Summary",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        432,
        -256
      ],
      "parameters": {
        "color": 3,
        "width": 308,
        "height": 472,
        "content": "## 🤖 AI SUMMARIZATION\n\n**GPT-4.1-mini** analyzes week's news and creates:\n- 2-3 sentence factual summary\n- Key investor takeaways\n"
      },
      "typeVersion": 1
    },
    {
      "id": "931b99fa-2360-4946-a920-a7a775f1a389",
      "name": "Append Summary",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        880,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "Date": "={{ $now.toFormat(\"dd/MM/yyyy\") }}",
            "Summary": "={{ $json.message.content.summary }}"
          },
          "schema": [
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "useAppend": true
        },
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 942745497,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MgokGD0ieVLDqw8Ui6momu-H3x2fyCFVN1u5ZR4Se1I/edit#gid=942745497",
          "cachedResultName": "Weekly Summary"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1MgokGD0ieVLDqw8Ui6momu-H3x2fyCFVN1u5ZR4Se1I",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MgokGD0ieVLDqw8Ui6momu-H3x2fyCFVN1u5ZR4Se1I/edit?usp=drivesdk",
          "cachedResultName": "Solana News Automation"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "eb9143bd-fec9-4f5a-9219-f2704f4ae500",
      "name": "Sticky Note - Save Summary",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        -256
      ],
      "parameters": {
        "color": 3,
        "width": 372,
        "height": 468,
        "content": "## 📝 SAVE WEEKLY SUMMARY\n\n**Appends:** AI-generated summary to \"Weekly Summary\" sheet\n\n**Columns:**\n- Date (dd/MM/yyyy)\n- Summary (AI-generated text)\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "23151f61-f161-4454-babe-36b3538743f9",
      "name": "Sticky Note - Quick Start",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2128,
        -464
      ],
      "parameters": {
        "color": 4,
        "width": 340,
        "height": 656,
        "content": "## 🚀 QUICK START\n\n**1. Setup CryptoPanic**\n- Get free API key at cryptopanic.com\n- Replace `[your token]` in \"Get Solana News\" node\n\n**2. Create Google Sheet**\n- Sheet 1: \"Raw Data\" (columns: date, title, descripton, summary)\n- Sheet 2: \"Weekly Summary\" (columns: Date, Summary)\n- Connect Google Sheets credential\n\n**3. Configure OpenAI**\n- Add OpenAI API key\n- GPT-4.1-mini costs ~$0.001/summary\n\n**4. Activate Workflow**\n- Test manually first\n- Then activate for daily automation"
      },
      "typeVersion": 1
    },
    {
      "id": "8da35dcb-8f6e-4b50-88bd-4a7725fc23c0",
      "name": "Sticky Note - Cost",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2128,
        192
      ],
      "parameters": {
        "color": 4,
        "width": 328,
        "height": 264,
        "content": "## 💰 COST & PERFORMANCE\n\n**API Costs:**\n- CryptoPanic: Free (rate limits apply)\n- OpenAI: ~$0.001/summary = ~$0.05/month\n\n**Data Volume:**\n- ~20-50 articles/day\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a141f787-950b-413c-88e2-a636cdf3dcbe",
  "connections": {
    "b6a722b9-41da-4002-909a-7e65845b7de9": {
      "main": [
        [
          {
            "node": "e24cfc87-ccfd-48b2-be2a-e6ec1093d10a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e24cfc87-ccfd-48b2-be2a-e6ec1093d10a": {
      "main": [
        [
          {
            "node": "1a53a77b-c501-4e46-ba5a-953b88422a40",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1a53a77b-c501-4e46-ba5a-953b88422a40": {
      "main": [
        [
          {
            "node": "931b99fa-2360-4946-a920-a7a775f1a389",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d8f768a4-c316-4058-b1f3-63675807038f": {
      "main": [
        [
          {
            "node": "ca698555-499d-486f-bd34-5705abe9c3da",
            "type": "main",
            "index": 0
          },
          {
            "node": "9817c911-e85f-4427-b139-b210dd2afe60",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "e8d1761a-36fa-4a02-8a45-96d9a1344268": {
      "main": [
        [
          {
            "node": "d8f768a4-c316-4058-b1f3-63675807038f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9817c911-e85f-4427-b139-b210dd2afe60": {
      "main": [
        [
          {
            "node": "352e9d95-f1b3-46f9-90ef-96835a81736e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7fde7109-53b7-4ab1-a065-881f6612fdc9": {
      "main": [
        [
          {
            "node": "b6a722b9-41da-4002-909a-7e65845b7de9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "11e59d5e-cf2f-4825-a994-3980a11726e4": {
      "main": [
        [
          {
            "node": "7fde7109-53b7-4ab1-a065-881f6612fdc9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "352e9d95-f1b3-46f9-90ef-96835a81736e": {
      "main": [
        [
          {
            "node": "11e59d5e-cf2f-4825-a994-3980a11726e4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ca698555-499d-486f-bd34-5705abe9c3da": {
      "main": [
        [
          {
            "node": "9817c911-e85f-4427-b139-b210dd2afe60",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2f8e8791-4694-4496-87ec-c44a157445e9": {
      "main": [
        [
          {
            "node": "e8d1761a-36fa-4a02-8a45-96d9a1344268",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量22
分类-
节点类型9
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

外部链接
在 n8n.io 查看

分享此工作流

分类

分类: 34