{
  "id": "B8QZbtbhTEZne8nq",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Automated Daily Intelligent Firecrawl Scraper",
  "tags": [],
  "nodes": [
    {
      "id": "d456e62d-f6ce-47c4-9be1-a3b3725e340f",
      "name": "Extract",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -480,
        -100
      ],
      "parameters": {
        "url": "https://api.firecrawl.dev/v1/extract",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"urls\": [\n    \"https://www.website.com\"\n  ],\n  \"prompt\": \"Extract the [insert] information from the page\",\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"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "758d7a3f-555d-4957-bf92-d24b6ab018e8",
      "name": "Get Results",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        40,
        -120
      ],
      "parameters": {
        "url": "=https://api.firecrawl.dev/v1/extract/{{ $('Extract').item.json.id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "9ded421d-cde6-4c6d-9ebc-3315ee79d30e",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        500,
        -120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "4188c94f-170b-4f42-8197-675f171bc1a5",
              "name": "data",
              "type": "string",
              "value": "={{ $json.trades }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "9b799432-7fa5-4fa4-a960-fe03b8882263",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -740,
        -100
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 18
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "505faec2-734d-40ac-a832-1a926a77f520",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        220,
        -120
      ],
      "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": "f8ff331e-363b-42eb-9472-e397b3d56691",
      "name": "30 Secs",
      "type": "n8n-nodes-base.wait",
      "position": [
        -200,
        -100
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "e9bd3c21-8a89-424f-9a6e-4d00d6fd87ae",
      "name": "Wait 15 secs",
      "type": "n8n-nodes-base.wait",
      "position": [
        280,
        40
      ],
      "parameters": {
        "amount": 15
      },
      "typeVersion": 1.1
    },
    {
      "id": "aae6f1ba-e4d4-4545-95cc-71f40e690b9b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -560,
        -260
      ],
      "parameters": {
        "color": 3,
        "width": 280,
        "height": 520,
        "content": "Firecrawl Extract POST"
      },
      "typeVersion": 1
    },
    {
      "id": "29b3688f-0fb0-486c-89cd-550a59299225",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -840,
        -260
      ],
      "parameters": {
        "width": 260,
        "height": 520,
        "content": "Scheduled Trigger"
      },
      "typeVersion": 1
    },
    {
      "id": "ac14b7cf-48ad-4029-a173-331b2d2ad1c6",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -260,
        -260
      ],
      "parameters": {
        "color": 7,
        "width": 220,
        "height": 520,
        "content": "Wait 30 secs"
      },
      "typeVersion": 1
    },
    {
      "id": "34cea142-3592-439d-9238-a25e4c4e7cc1",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -20,
        -260
      ],
      "parameters": {
        "color": 5,
        "width": 480,
        "height": 520,
        "content": "GET Result Loop"
      },
      "typeVersion": 1
    },
    {
      "id": "f8c71a46-4b99-4079-b895-63e7a5811dcd",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        -260
      ],
      "parameters": {
        "color": 5,
        "width": 400,
        "height": 520,
        "content": "Send Result to Telegram"
      },
      "typeVersion": 1
    },
    {
      "id": "4ea94358-34cd-421e-ad57-5277dbe03aee",
      "name": "Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        660,
        -120
      ],
      "parameters": {
        "text": "={{ $json.data }}",
        "chatId": "Redacted",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7653b3ac-3210-4c89-a2ff-70034c2f4560",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1600,
        -260
      ],
      "parameters": {
        "color": 5,
        "width": 700,
        "height": 1060,
        "content": "\ud83d\udd25 Automated Daily Firecrawl Scraper with Telegram Alerts\nGet structured insights scraped daily from the web using Firecrawl\u2019s AI extraction engine \u2014 then send them directly to your Telegram chat.\n\n\ud83e\uddf0 What this workflow does:\nThis workflow automatically scrapes specific structured data from any webpage every day at a scheduled time using the Firecrawl API, checks if results are returned, and then sends the formatted results to Telegram.\n\nFor step-by-step video tutorials of n8n builds, check out my channel:\nhttps://www.youtube.com/@Automatewithmarc\n\n\ud83e\udded How It Works:\n\ud83d\udd50 Schedule Trigger (Daily at 6PM)\nStarts the workflow every day at a set time.\n\n\ud83c\udf10 Firecrawl POST Request\nSends a custom extraction prompt and schema to Firecrawl, targeting any list of URLs you provide.\n\n\u23f3 30 Seconds Wait\nWaits to give Firecrawl enough time to complete processing.\n\n\ud83d\udce5 GET Firecrawl Result\nFetches the extraction results using the request ID.\n\n\ud83d\udd01 Loop with IF Node\nChecks whether data is returned. If not, waits another 15 seconds and retries.\n\n\ud83e\uddf9 Format & Clean (Set Node)\nPrepares and formats the extracted result into a readable message.\n\n\ud83d\udcf2 Telegram Message Node\nDelivers the structured data directly to your Telegram channel or group.\n\n\ud83d\udd27 Requirements:\n\u2705 Firecrawl API Key (Header Auth)\n\n\u2705 Telegram Bot Token & Chat ID\n\n\ud83d\udca1 Use Cases:\nExtract structured data (like product info or events) from niche websites\nAutomate compliance monitoring or intelligence gathering\nCreate market alert bots with real-time info delivery\n\n\ud83d\udee0 Customization Ideas:\nSwap Telegram with Gmail, Discord, or Slack\n\nExpand schema to include more complex nested fields\n\nAdd a Google Sheet node to log daily scraped data\n\nIntegrate with a summarizer or language model for intelligent summaries\n\nReady to automate your web intelligence gathering?\n\ud83e\udde0 Let Firecrawl do the scraping \u2014 and let this workflow do the rest."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "40ed9017-f78f-4446-8b36-2a0a06f14add",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Wait 15 secs",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "30 Secs": {
      "main": [
        [
          {
            "node": "Get Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract": {
      "main": [
        [
          {
            "node": "30 Secs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Results": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 15 secs": {
      "main": [
        [
          {
            "node": "Get Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Extract",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}