Firecrawl Extraktion - Quiver Q

Experte

Dies ist ein Other, AI-Bereich Automatisierungsworkflow mit 19 Nodes. Hauptsächlich werden If, Set, Code, Wait, Gmail und andere Nodes verwendet, kombiniert mit KI-Technologie für intelligente Automatisierung. 🏛️ Erstellung von täglichen Berichten über Aktienhandlungen von US-Kongressabgeordneten mit Firecrawl + OpenAI + Gmail

Voraussetzungen
  • Google-Konto + Gmail API-Anmeldedaten
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
  • OpenAI API Key
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "name": "Firecrawl Extract - Quiver Q",
  "tags": [],
  "nodes": [
    {
      "id": "8e802c42-d8eb-4d3b-8a08-955d9bd98183",
      "name": "Extrahieren",
      "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": "Ergebnisse abrufen",
      "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": "Felder bearbeiten",
      "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": "Zeitplan-Trigger",
      "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": "Wenn",
      "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 Sekunden warten",
      "type": "n8n-nodes-base.wait",
      "position": [
        2000,
        440
      ],
      "parameters": {
        "amount": 15
      },
      "typeVersion": 1.1
    },
    {
      "id": "437f84fd-0af8-44ab-b6d0-d2b0b87511e6",
      "name": "Code",
      "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": "Haftnotiz",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1540,
        100
      ],
      "parameters": {
        "color": 6,
        "height": 280,
        "content": "Converting to Array"
      },
      "typeVersion": 1
    },
    {
      "id": "3f977a3a-b622-4147-8101-cff0c7882baa",
      "name": "Haftnotiz1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        100
      ],
      "parameters": {
        "height": 280,
        "content": "Get Request to Firecrawl"
      },
      "typeVersion": 1
    },
    {
      "id": "0a0a69cd-5729-4335-b831-c91a91d69930",
      "name": "Haftnotiz2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        840,
        100
      ],
      "parameters": {
        "color": 2,
        "height": 280,
        "content": "Post Request to Firecrawl"
      },
      "typeVersion": 1
    },
    {
      "id": "76bb6c47-ead1-47a8-a1c2-67dc208dbe0e",
      "name": "30 Sekunden warten",
      "type": "n8n-nodes-base.wait",
      "position": [
        1140,
        180
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "552499e5-43bc-4751-b866-0c02ba3c6254",
      "name": "Haftnotiz3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        620,
        100
      ],
      "parameters": {
        "color": 6,
        "width": 200,
        "height": 280,
        "content": "Scheduled Trigger"
      },
      "typeVersion": 1
    },
    {
      "id": "d20f4369-b200-4a56-b8b5-f74fcc42c8b8",
      "name": "Haftnotiz4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1800,
        100
      ],
      "parameters": {
        "color": 3,
        "height": 280,
        "content": "Conditional check if crawl has completed"
      },
      "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": "Haftnotiz5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2060,
        100
      ],
      "parameters": {
        "color": 4,
        "width": 700,
        "height": 280,
        "content": "Formatting + Email Send"
      },
      "typeVersion": 1
    },
    {
      "id": "c2923e32-af61-49c3-a6b3-c0c2129e722d",
      "name": "Haftnotiz6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        400
      ],
      "parameters": {
        "color": 4,
        "width": 940,
        "height": 280,
        "content": "Result not ready - loop to wait for result"
      },
      "typeVersion": 1
    },
    {
      "id": "8dc535a1-4622-45c0-8324-bb135fd025f9",
      "name": "Haftnotiz7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1100,
        100
      ],
      "parameters": {
        "width": 160,
        "height": 280,
        "content": "Wait for result"
      },
      "typeVersion": 1
    },
    {
      "id": "a986bbeb-8a8c-4236-8085-2021b0d80813",
      "name": "Haftnotiz8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        -80
      ],
      "parameters": {
        "width": 600,
        "height": 1300,
        "content": "🔧 How It Works\n🕒 Schedule Trigger\nFires daily at a set hour (e.g., 6 PM) to begin the data pipeline.\n\n🔥 Firecrawl Extract API (POST)\nTargets the Quiver Quantitative “Congress Trading” page and sends a structured prompt asking for all trades over $50K in the past month.\n\n⏳ Wait Node\nAllows time for Firecrawl to finish processing before retrieving results.\n\n📥 Firecrawl Get Result API (GET)\nRetrieves the extracted and structured data.\n\n🧠 OpenAI Chat Model (GPT-4o)\nFormats the raw trading data into a readable summary that includes:\n\nDate of Transaction\n\nStock/Asset traded\n\nAmount\n\nCongress member’s name and political party\n\n📧 Gmail Node\nSends the summary to your inbox with the subject “Congress Trade Updates - QQ”.\n\nWatch Full Set Up Tutorial here: https://www.youtube.com/@Automatewithmarc\n\n🧠 Why This is Useful\nCongressional trading activity often reveals valuable signals — especially when high-value trades are made.\nThis workflow:\n\nSaves time manually tracking Quiver Quant updates\n\nConverts complex tables into a daily, readable email\n\nKeeps investors, researchers, and newsrooms in the loop — hands-free\n\n🛠 Requirements\nFirecrawl API Key (with extract access)\n\nOpenAI API Key\n\nGmail OAuth2 credentials\n\nn8n (self-hosted or cloud)\n\n💬 Sample Output:\nCongress Trade Summary – May 21\n\nNancy Pelosi (D) sold TSLA for $85,000 on April 28\n\nJohn Raynor (R) purchased AAPL worth $120,000 on May 2\n... and more\n\n🪜 Setup Steps\nAdd your Firecrawl, OpenAI, and Gmail credentials in n8n.\n\nAdjust the schedule node to your desired time.\n\nCustomize the OpenAI system prompt if you want a different summary style.\n\nDeploy the workflow — and enjoy your daily edge.\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "6295f6ed-b3e3-46d6-a9c4-ce31b8eea48f": {
      "main": [
        [
          {
            "node": "cf5c2e53-6b56-4c32-be67-fda8be7d87de",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "d7aba1ee-8717-4e0f-ba54-1f26ade821e1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "437f84fd-0af8-44ab-b6d0-d2b0b87511e6": {
      "main": [
        [
          {
            "node": "6295f6ed-b3e3-46d6-a9c4-ce31b8eea48f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0d924e04-cd64-41ef-b7a8-983c51763f16": {
      "main": [
        [
          {
            "node": "9e450a55-74cf-477d-b8ef-942daea48001",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8e802c42-d8eb-4d3b-8a08-955d9bd98183": {
      "main": [
        [
          {
            "node": "76bb6c47-ead1-47a8-a1c2-67dc208dbe0e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d7aba1ee-8717-4e0f-ba54-1f26ade821e1": {
      "main": [
        [
          {
            "node": "0d924e04-cd64-41ef-b7a8-983c51763f16",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b884be94-630a-4166-a54a-439e581a648d": {
      "main": [
        [
          {
            "node": "437f84fd-0af8-44ab-b6d0-d2b0b87511e6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cf5c2e53-6b56-4c32-be67-fda8be7d87de": {
      "main": [
        [
          {
            "node": "b884be94-630a-4166-a54a-439e581a648d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "76bb6c47-ead1-47a8-a1c2-67dc208dbe0e": {
      "main": [
        [
          {
            "node": "b884be94-630a-4166-a54a-439e581a648d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c5217853-831b-4ab5-90d7-a751ebf98753": {
      "main": [
        [
          {
            "node": "8e802c42-d8eb-4d3b-8a08-955d9bd98183",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Experte - Sonstiges, Künstliche Intelligenz

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes19
Kategorie2
Node-Typen9
Schwierigkeitsbeschreibung

Für fortgeschrittene Benutzer, komplexe Workflows mit 16+ Nodes

Autor
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

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34