8
n8n 中文网amn8n.com

Firecrawl 提取 - Quiver Q

高级

这是一个Other, AI领域的自动化工作流,包含 19 个节点。主要使用 If, Set, Code, Wait, Gmail 等节点,结合人工智能技术实现智能自动化。 🏛️ 通过 Firecrawl + OpenAI + Gmail 生成美国国会议员股票交易日报

前置要求
  • Google 账号和 Gmail API 凭证
  • 可能需要目标 API 的认证凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "name": "Firecrawl 提取 - Quiver Q",
  "tags": [],
  "nodes": [
    {
      "id": "8e802c42-d8eb-4d3b-8a08-955d9bd98183",
      "name": "提取",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        920,
        180
      ],
      "parameters": {
        "url": "https://api.firecrawl.dev/v1/extract",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"urls\": [\n    \"https://www.quiverquant.com/congresstrading/*\"\n  ],\n  \"prompt\": \"Extract all notable congress member trades over $50,000 USD in the past 1 month. Include the Congress Member's name, party, the Stock/Asset purchased or sold, the Amount of the transaction, and the date of the transaction.\",\n  \"schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"notable_trades\": {\n        \"type\": \"array\",\n        \"items\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"congress_member_name\": {\n              \"type\": \"string\"\n            },\n            \"party\": {\n              \"type\": \"string\"\n            },\n            \"stock_or_asset\": {\n              \"type\": \"string\"\n            },\n            \"amount\": {\n              \"type\": \"number\"\n            },\n            \"transaction_date\": {\n              \"type\": \"string\"\n            }\n          },\n          \"required\": [\n            \"congress_member_name\",\n            \"stock_or_asset\",\n            \"amount\",\n            \"transaction_date\"\n          ]\n        }\n      }\n    },\n    \"required\": [\n      \"notable_trades\"\n    ]\n  }\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "b884be94-630a-4166-a54a-439e581a648d",
      "name": "获取结果",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1360,
        180
      ],
      "parameters": {
        "url": "=https://api.firecrawl.dev/v1/extract/{{ $('Extract').item.json.id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "d7aba1ee-8717-4e0f-ba54-1f26ade821e1",
      "name": "编辑字段",
      "type": "n8n-nodes-base.set",
      "position": [
        2140,
        200
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "4188c94f-170b-4f42-8197-675f171bc1a5",
              "name": "data",
              "type": "string",
              "value": "={{ $json.trades }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "c5217853-831b-4ab5-90d7-a751ebf98753",
      "name": "计划触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        680,
        180
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 18
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "9e450a55-74cf-477d-b8ef-942daea48001",
      "name": "Gmail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2620,
        200
      ],
      "parameters": {
        "sendTo": "your_email@example.com",
        "message": "={{ $json.message.content }}",
        "options": {},
        "subject": "Congress Trade Updates - QQ",
        "emailType": "text"
      },
      "typeVersion": 2.1
    },
    {
      "id": "6295f6ed-b3e3-46d6-a9c4-ce31b8eea48f",
      "name": "条件判断",
      "type": "n8n-nodes-base.if",
      "position": [
        1880,
        180
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "6d815b2e-1717-4d52-a30d-74e17a84f0f3",
              "operator": {
                "type": "array",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $json.trades }}",
              "rightValue": "[empty array]"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "cf5c2e53-6b56-4c32-be67-fda8be7d87de",
      "name": "等待 15 秒",
      "type": "n8n-nodes-base.wait",
      "position": [
        2000,
        440
      ],
      "parameters": {
        "amount": 15
      },
      "typeVersion": 1.1
    },
    {
      "id": "437f84fd-0af8-44ab-b6d0-d2b0b87511e6",
      "name": "代码",
      "type": "n8n-nodes-base.code",
      "position": [
        1600,
        180
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "let trades = $json.data;\nif (!Array.isArray(trades)) {\n  trades = trades ? [trades] : [];\n}\nreturn { trades };"
      },
      "typeVersion": 2
    },
    {
      "id": "785fbb44-4d0f-4d3b-9263-b8411e04c71d",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1540,
        100
      ],
      "parameters": {
        "color": 6,
        "height": 280,
        "content": "转换为数组"
      },
      "typeVersion": 1
    },
    {
      "id": "3f977a3a-b622-4147-8101-cff0c7882baa",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        100
      ],
      "parameters": {
        "height": 280,
        "content": "向 Firecrawl 发送 Get 请求"
      },
      "typeVersion": 1
    },
    {
      "id": "0a0a69cd-5729-4335-b831-c91a91d69930",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        840,
        100
      ],
      "parameters": {
        "color": 2,
        "height": 280,
        "content": "向 Firecrawl 发送 Post 请求"
      },
      "typeVersion": 1
    },
    {
      "id": "76bb6c47-ead1-47a8-a1c2-67dc208dbe0e",
      "name": "30 秒等待",
      "type": "n8n-nodes-base.wait",
      "position": [
        1140,
        180
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "552499e5-43bc-4751-b866-0c02ba3c6254",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        620,
        100
      ],
      "parameters": {
        "color": 6,
        "width": 200,
        "height": 280,
        "content": "计划触发器"
      },
      "typeVersion": 1
    },
    {
      "id": "d20f4369-b200-4a56-b8b5-f74fcc42c8b8",
      "name": "便签说明4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1800,
        100
      ],
      "parameters": {
        "color": 3,
        "height": 280,
        "content": "条件检查爬取是否已完成"
      },
      "typeVersion": 1
    },
    {
      "id": "0d924e04-cd64-41ef-b7a8-983c51763f16",
      "name": "OpenAI",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        2300,
        200
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "chatgpt-4o-latest",
          "cachedResultName": "CHATGPT-4O-LATEST"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "={{ $json.data }}"
            },
            {
              "role": "system",
              "content": "You are a helpful text editing assistant. You will receive a blob of text as data (they are congressional trading/transaction data). Your job is to format them into an easily readable format where it shows the category of Transaction Date, the Stock/Asset Purchase Amount, The Name of the Stock, the Name of the Purchaser and his/her party."
            }
          ]
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "e648e538-d0ff-4071-a83a-412e7c9df544",
      "name": "便签说明5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2060,
        100
      ],
      "parameters": {
        "color": 4,
        "width": 700,
        "height": 280,
        "content": "格式化 + 电子邮件发送"
      },
      "typeVersion": 1
    },
    {
      "id": "c2923e32-af61-49c3-a6b3-c0c2129e722d",
      "name": "便签 6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        400
      ],
      "parameters": {
        "color": 4,
        "width": 940,
        "height": 280,
        "content": "结果未就绪 - 循环等待结果"
      },
      "typeVersion": 1
    },
    {
      "id": "8dc535a1-4622-45c0-8324-bb135fd025f9",
      "name": "便签 7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1100,
        100
      ],
      "parameters": {
        "width": 160,
        "height": 280,
        "content": "等待结果"
      },
      "typeVersion": 1
    },
    {
      "id": "a986bbeb-8a8c-4236-8085-2021b0d80813",
      "name": "便签 8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        -80
      ],
      "parameters": {
        "width": 600,
        "height": 1300,
        "content": "🔧 工作原理"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Wait 15 secs",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI": {
      "main": [
        [
          {
            "node": "Gmail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract": {
      "main": [
        [
          {
            "node": "Wait 30 Secs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Results": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 15 secs": {
      "main": [
        [
          {
            "node": "Get Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 30 Secs": {
      "main": [
        [
          {
            "node": "Get Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Extract",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - 其他, 人工智能

需要付费吗?

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

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

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

作者
Automate With Marc

Automate With Marc

@marconi

Automating Start-Up and Business processes. Helping non-techies understand and leverage Agentic AI with easy to understand step-by-step tutorials. Check out my educational content: https://www.youtube.com/@Automatewithmarc

外部链接
在 n8n.io 查看

分享此工作流