8
n8n 中文网amn8n.com

使用GPT-4o分析和Google Sheets监控Reddit招聘帖子并发送Telegram警报

高级

这是一个AI Summarization, Multimodal AI领域的自动化工作流,包含 28 个节点。主要使用 If, Set, Code, Telegram, HttpRequest 等节点。 使用GPT-4o分析和Google Sheets监控Reddit招聘帖子并发送Telegram警报

前置要求
  • Telegram Bot Token
  • 可能需要目标 API 的认证凭证
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "cfcdd4aa7acb600106c0a4bff4e6959e8e3b32b3b8cbc7d93531b2a4c9012a32",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "0882d1b3-7558-4e52-b0ba-0baa4a80fe02",
      "name": "搜索 N8N",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        688,
        1984
      ],
      "parameters": {
        "url": "https://oauth.reddit.com/r/n8n/search?q=flair%3A%22Now%20Hiring%20Or%20Looking%20For%20Cofounder%22&restrict_sr=1&sort=new&limit=2",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=bearer {{ $json.access_token }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b587eb48-ccb2-439e-931a-65226ea1ae98",
      "name": "生成令牌 - Reddit",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        272,
        1984
      ],
      "parameters": {
        "url": "https://www.reddit.com/api/v1/access_token",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "form-urlencoded",
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "grant_type",
              "value": "password"
            },
            {
              "name": "username",
              "value": "YOUR_USERNAME"
            },
            {
              "name": "password",
              "value": "YOUR_PASSWORD"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "User-Agent",
              "value": "your-app-name/0.1 by YOUR_USERNAME"
            },
            {
              "name": "authorization",
              "value": "Basic automatically_generated_token_after_curl_import"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "362103a2-c492-4b37-9947-576c8c043aab",
      "name": "指出帖子",
      "type": "n8n-nodes-base.set",
      "position": [
        1072,
        1984
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "6dee466b-4569-4b40-a025-0d75e92d1eea",
              "name": "posts",
              "type": "array",
              "value": "={{ $json.data.children }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a1c511f8-eb69-4372-8778-24cbf4c9f9da",
      "name": "Azure OpenAI 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
      "position": [
        2512,
        2016
      ],
      "parameters": {
        "model": "gpt-4o-mini",
        "options": {}
      },
      "credentials": {
        "azureOpenAiApi": {
          "id": "4WyMLAYYCsugTVtc",
          "name": "Azure Open AI account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b55491a4-591f-4a51-8f46-39ee749eb813",
      "name": "基础 LLM 链",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2432,
        1856
      ],
      "parameters": {
        "text": "={{ $('Split Out Code').item.json.data.selftext }}",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=You will receive a Reddit post in the category 'Now Hiring' from the user called '{{ $('Split Out Code').item.json.data.author }}' . Your main goal is to turn this Reddit post into a single short sentence.\n\nExample:\n\n* Reddit Post: 'Hello Reddit community, I am the owner of... I need someone to... I really would appreciate...'\n\n* Your summary: 'The user called {{ $('Split Out Code').item.json.data.author }} ... is looking for...'"
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "8da2ada6-3ed0-44c2-bf31-6ec94a8ef2c9",
      "name": "遍历项目",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1696,
        1984
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "b4bd940c-121b-44fe-8ce3-072e1af61ce9",
      "name": "如果不存在",
      "type": "n8n-nodes-base.if",
      "position": [
        2144,
        1856
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "ce21f18d-3ca3-4c2e-84d1-41996d67a317",
              "operator": {
                "type": "string",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $json.title }}",
              "rightValue": "={{ $('Split Out Code').item.json.data.title }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "881e5d0e-7cb9-4910-9909-f971226480e0",
      "name": "获取匹配的行",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1920,
        1856
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $json.data.title }}",
              "lookupColumn": "title"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/102QmSANXXYBfWu2JKzYtKFjbjkFCeGZuIsQ-VtY6I3g/edit#gid=0",
          "cachedResultName": "reddit_lead_sheet"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "102QmSANXXYBfWu2JKzYtKFjbjkFCeGZuIsQ-VtY6I3g",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/102QmSANXXYBfWu2JKzYtKFjbjkFCeGZuIsQ-VtY6I3g/edit?usp=drivesdk",
          "cachedResultName": "reddit_hiring_lead"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "IDAJXKuCrfSfnskC",
          "name": "Reddit Lead Sheets"
        }
      },
      "typeVersion": 4.7,
      "alwaysOutputData": true
    },
    {
      "id": "5ed40729-8a0a-4344-9710-2a9aba99cc77",
      "name": "拆分代码",
      "type": "n8n-nodes-base.code",
      "position": [
        1376,
        1984
      ],
      "parameters": {
        "jsCode": "// Extract the posts array and convert each object to a separate n8n item\nconst postsArray = $input.all()[0].json.posts;\n\n// Map each post object to an n8n item format\nreturn postsArray.map(post => ({ json: post }));"
      },
      "typeVersion": 2
    },
    {
      "id": "76a93245-30e5-4ef8-a8dd-5b8f465a1bca",
      "name": "发送文本消息",
      "type": "n8n-nodes-base.telegram",
      "position": [
        3088,
        1984
      ],
      "webhookId": "11594a90-b4ba-4044-a73c-72f2a37b5ced",
      "parameters": {
        "text": "={{$json.summary}}",
        "chatId": "YOUR_CHAT_ID",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "cYMMq0wDtnLgeiKV",
          "name": "Reddit Hiring Lead Bot"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "83d05f23-28f6-45f0-a17a-b933e0dfd33b",
      "name": "Telegram 触发器",
      "type": "n8n-nodes-base.telegramTrigger",
      "disabled": true,
      "position": [
        -144,
        1600
      ],
      "webhookId": "e652c052-07aa-44a1-9ddb-49b39f6736d2",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "cYMMq0wDtnLgeiKV",
          "name": "Reddit Hiring Lead Bot"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "9bf34dd3-98f1-4e2d-b9dc-789a7701f4af",
      "name": "计划触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -144,
        1984
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 2
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a587cf5c-6d04-4575-981b-c0d95c712219",
      "name": "已完成",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1920,
        1584
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "23e40a02-e96e-4200-9af1-b90654df4a93",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -208,
        1856
      ],
      "parameters": {
        "color": 5,
        "height": 288,
        "content": "## 根据需要更改触发器间隔"
      },
      "typeVersion": 1
    },
    {
      "id": "6a916438-7ef5-4f2d-b668-99753eec41e1",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        128,
        1904
      ],
      "parameters": {
        "width": 800,
        "height": 256,
        "content": "## 生成访问令牌并使用它"
      },
      "typeVersion": 1
    },
    {
      "id": "801182f9-818d-46e3-ba30-894824b290c2",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        128,
        1952
      ],
      "parameters": {
        "color": 5,
        "width": 384,
        "height": 336,
        "content": "## 导入我在下方提供的 cURL 命令"
      },
      "typeVersion": 1
    },
    {
      "id": "b6cd8a57-a680-41ab-94ef-735256fc3ed7",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        128,
        2304
      ],
      "parameters": {
        "width": 384,
        "content": "curl -X POST \\"
      },
      "typeVersion": 1
    },
    {
      "id": "7942573a-9c72-463c-a757-f7f19bf47c98",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        1440
      ],
      "parameters": {
        "color": 6,
        "width": 304,
        "height": 352,
        "content": "## 激活此节点并向您的机器人发送消息(输出您的聊天 ID)"
      },
      "typeVersion": 1
    },
    {
      "id": "71fcddb8-cfde-4ac5-8f81-3c66a2d441cb",
      "name": "便利贴5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        1952
      ],
      "parameters": {
        "color": 5,
        "width": 384,
        "height": 336,
        "content": "## 如果您想更改限制或子版块,请自定义 URL"
      },
      "typeVersion": 1
    },
    {
      "id": "eb407c2f-edb7-45f8-a3ea-57cbd1ee164d",
      "name": "便签 6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        976,
        1872
      ],
      "parameters": {
        "color": 5,
        "width": 288,
        "height": 272,
        "content": "## 仅输出帖子,忽略其他项目"
      },
      "typeVersion": 1
    },
    {
      "id": "3ab59251-53d7-4230-b73f-b1655ab7bb31",
      "name": "便签 7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        1808
      ],
      "parameters": {
        "color": 5,
        "width": 288,
        "height": 336,
        "content": "## 将对象拆分为单独的项目,您也可以使用'拆分'节点"
      },
      "typeVersion": 1
    },
    {
      "id": "821495b8-e848-4368-b987-cee009dd8a7c",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2352,
        1712
      ],
      "parameters": {
        "color": 5,
        "width": 400,
        "height": 496,
        "content": "## 根据需要自定义此 LLM 或使用代理以增加复杂性"
      },
      "typeVersion": 1
    },
    {
      "id": "20f35821-447a-404f-80c6-38ba219cd06e",
      "name": "在表格中追加数据",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2864,
        1856
      ],
      "parameters": {
        "columns": {
          "value": {
            "title": "={{ $('Split Out Code').item.json.data.title }}",
            "summary": "={{ $json.text }}",
            "username": "={{ $('Split Out Code').item.json.data.author }}"
          },
          "schema": [
            {
              "id": "username",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "username",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "summary",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "title",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "useAppend": true
        },
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/102QmSANXXYBfWu2JKzYtKFjbjkFCeGZuIsQ-VtY6I3g/edit#gid=0",
          "cachedResultName": "reddit_lead_sheet"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "102QmSANXXYBfWu2JKzYtKFjbjkFCeGZuIsQ-VtY6I3g",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/102QmSANXXYBfWu2JKzYtKFjbjkFCeGZuIsQ-VtY6I3g/edit?usp=drivesdk",
          "cachedResultName": "reddit_hiring_lead"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "IDAJXKuCrfSfnskC",
          "name": "Instagram Postbot Sheets"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "c7ae19d6-34a8-4981-a89e-38e50770f66a",
      "name": "便签 9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1840,
        1440
      ],
      "parameters": {
        "width": 272,
        "height": 304,
        "content": "## 这是工作流的结束,从此处添加后续步骤"
      },
      "typeVersion": 1
    },
    {
      "id": "78733d09-6210-4acd-868a-faad7f64cdad",
      "name": "便签10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        1312
      ],
      "parameters": {
        "color": 4,
        "width": 3584,
        "height": 1200,
        "content": "# REDDIT 招聘线索"
      },
      "typeVersion": 1
    },
    {
      "id": "18ff0301-7fd8-4c7c-8b51-f77cf31606a1",
      "name": "便签11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        944
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 352,
        "content": "# 凭据"
      },
      "typeVersion": 1
    },
    {
      "id": "a4c60e1c-3a75-4641-b1a3-21b1e6f8e49b",
      "name": "便签12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        944
      ],
      "parameters": {
        "color": 7,
        "width": 1376,
        "height": 352,
        "content": "# 开始使用此工作流"
      },
      "typeVersion": 1
    },
    {
      "id": "4b3fbf3b-1624-4191-a72f-3f66a728b656",
      "name": "便签13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        944
      ],
      "parameters": {
        "color": 3,
        "width": 400,
        "height": 352,
        "content": "## 关于 Google Sheets 节点"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Search N8N": {
      "main": [
        [
          {
            "node": "Point Out Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out Code": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Append Data In Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Finished",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get Rows That Match",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Point Out Posts": {
      "main": [
        [
          {
            "node": "Split Out Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Generate Token - Reddit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Rows That Match": {
      "main": [
        [
          {
            "node": "If It Doesn't Exist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If It Doesn't Exist": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send a Text Message": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append Data In Sheet": {
      "main": [
        [
          {
            "node": "Send a Text Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Azure OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Generate Token - Reddit": {
      "main": [
        [
          {
            "node": "Search N8N",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - AI 摘要总结, 多模态 AI

需要付费吗?

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

工作流信息
难度等级
高级
节点数量28
分类2
节点类型13
难度说明

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

作者

Delusional of 5 years!🎉🎉

外部链接
在 n8n.io 查看

分享此工作流