Firecrawl + Telegram: competitor updates in one ping
You open the same competitor pages every day, hit refresh, squint for what changed, then paste notes into wherever your team “tracks” it. It’s tedious. Worse, it’s easy to miss the one update that actually matters.
Marketing managers feel this when launches creep up. A founder feels it when pricing shifts overnight. And a consultant tracking a few clients’ competitors? Same mess. Firecrawl Telegram alerts turn those daily checks into one clean ping.
This workflow scrapes the pages you care about on a schedule, waits for results, retries if needed, then sends a readable Telegram message. You’ll see what it solves, how it works, and what you need to run it.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: Firecrawl + Telegram: competitor updates in one ping
flowchart LR
subgraph sg0["Scheduled Automation Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Firecrawl Extract Request"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Retrieve Extraction Output"]
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Output Data", pos: "b", h: 48 }
n3@{ icon: "mdi:play-circle", form: "rounded", label: "Scheduled Automation Trigger", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Results Presence", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "Pause 30 Seconds", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Pause 15 Seconds", pos: "b", h: 48 }
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Send Telegram Alert"]
n4 --> n6
n4 --> n2
n5 --> n1
n0 --> n5
n2 --> n7
n1 --> n4
n6 --> n1
n3 --> n0
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n3 trigger
class n4 decision
class n0,n1 api
classDef customIcon fill:none,stroke:none
class n0,n1,n7 customIcon
The Challenge: Keeping Up With Competitor Changes Without Living in Tabs
Competitor monitoring usually starts simple: “Just check their site once a day.” Then the list grows. Pricing page, product page, changelog, a landing page they keep tweaking, maybe an events page. You’re context-switching all day, and because it’s manual, it never feels “done.” Someone forgets, someone checks the wrong page, someone screenshots instead of capturing text. Then a real change happens and you find out late, which is honestly the worst part.
It adds up fast. Here’s where it breaks down in real life:
- Refreshing 10 pages daily turns into an hour of low-value work every week, and it’s always the work that gets pushed to “later.”
- Small wording changes are hard to spot, which means you miss messaging shifts until you see them in ads or in a sales call.
- Copy-paste notes are inconsistent, so you can’t compare today vs. last month without re-checking the site again.
- When the person who “usually checks” is out, the monitoring stops completely because nobody knows the routine.
The Fix: Daily Firecrawl Extraction With Instant Telegram Alerts
This automation runs on a daily schedule (set in n8n), sends your target URLs to Firecrawl with an extraction prompt and schema, and waits briefly while Firecrawl processes the request. Then it pulls the extraction results back using the request ID. If results aren’t ready yet, the workflow doesn’t guess or fail quietly. It checks, waits a bit more, and retries until data shows up. Once it has output, it formats the response into a clean, readable message and posts it straight into your Telegram channel or group, which means the update meets you where you already work.
The workflow starts at a fixed time each day, calls Firecrawl to extract the exact fields you care about, and keeps polling until the content is available. Finally, it cleans the output and delivers a single Telegram alert so you can scan changes in seconds instead of hunting for them.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you watch 12 competitor pages across a few brands. Manually, you spend maybe 5 minutes per page to load, scan, and note changes, so that’s about an hour each day, or roughly 5 hours a week. With this workflow, you spend about 5 minutes once to maintain your URL list and extraction prompt, then you just read the Telegram message when it arrives. The scrape might take about a minute end-to-end with the built-in waits and retries, but you’re not sitting there watching it.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Firecrawl for structured web extraction via API.
- Telegram to deliver alerts to a chat.
- Firecrawl API key (get it from your Firecrawl dashboard)
Skill level: Beginner. You’ll paste API keys, set a schedule, and edit the URL list and extraction prompt.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
A daily scheduled trigger kicks things off. The workflow starts automatically at your chosen time (this one is set to daily, 6PM in the template), so monitoring becomes a routine that doesn’t depend on someone remembering.
Firecrawl receives your URLs plus an extraction prompt. n8n sends a POST request to Firecrawl, telling it what pages to scan and what structured fields to pull out (think: pricing, plan names, key headings, dates, whatever matters for your category).
The workflow waits, then pulls results until they exist. A short wait gives Firecrawl time to finish. After that, n8n fetches the output using the request ID, checks if results are present, and retries with another quick pause if the response is still empty.
A cleaned message lands in Telegram. Once data is returned, the workflow formats it into a readable alert and sends it to your Telegram chat so you can scan it quickly and forward it if needed.
You can easily modify the extraction schema to track different page elements based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Schedule Trigger
Set up the timing that starts the extraction process.
- Add the Scheduled Automation Trigger node as your workflow trigger.
- In Scheduled Automation Trigger, set the rule interval to run at
18(triggerAtHour). - Connect Scheduled Automation Trigger to Firecrawl Extract Request.
Step 2: Connect the Extraction Request
Send the initial extraction request to Firecrawl.
- Open Firecrawl Extract Request and set URL to
https://api.firecrawl.dev/v1/extract. - Set Method to
POSTand ensure Specify Body isjson. - Paste the provided JSON body into JSON Body, keeping the expression wrapper:
={ ... }. - Credential Required: Connect your httpHeaderAuth credentials in Firecrawl Extract Request.
- Connect Firecrawl Extract Request to Pause 30 Seconds.
Step 3: Build the Retrieval Loop
Poll Firecrawl until results are available, then pass them forward.
- In Pause 30 Seconds, set Amount to
30and connect it to Retrieve Extraction Output. - In Retrieve Extraction Output, set URL to
=https://api.firecrawl.dev/v1/extract/{{ $('Firecrawl Extract Request').item.json.id }}. - Credential Required: Connect your httpHeaderAuth credentials in Retrieve Extraction Output.
- In Check Results Presence, keep the condition using
={{ $json.trades }}with thearray→emptyoperation. - Connect the true output of Check Results Presence to Pause 15 Seconds, then to Retrieve Extraction Output to repeat polling.
- Connect the false output of Check Results Presence to Format Output Data.
Step 4: Format and Send the Telegram Alert
Transform the returned data and deliver it via Telegram.
- In Format Output Data, add an assignment named data with value
={{ $json.trades }}and keep Include Other Fields enabled. - Connect Format Output Data to Send Telegram Alert.
- In Send Telegram Alert, set Text to
={{ $json.data }}. - Set Chat ID to your Telegram ID, replacing
[YOUR_ID]. - Credential Required: Connect your telegramApi credentials in Send Telegram Alert.
Step 5: Test and Activate Your Workflow
Validate the full loop from extraction to Telegram delivery and then activate on schedule.
- Click Execute Workflow to run a manual test.
- Confirm that Firecrawl Extract Request returns an
id, and that Retrieve Extraction Output eventually outputs non-emptytrades. - Verify the Telegram message sent by Send Telegram Alert includes the extracted data.
- Once successful, toggle the workflow to Active to run on the schedule.
Watch Out For
- Firecrawl credentials can expire or need specific permissions. If things break, check your Firecrawl dashboard key status and the n8n credential you attached to the HTTP Request node first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Telegram bot tokens and chat IDs are easy to mix up. If alerts don’t arrive, confirm the bot is in the target group/channel and check the chat ID used in the Telegram node.
Common Questions
About 30 minutes if you already have your Firecrawl key and a Telegram bot.
Yes. No coding required. You’ll mostly be copying credentials and editing the list of URLs and the extraction prompt.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Firecrawl API usage based on how many pages you scrape daily.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
You’ll mainly adjust what Firecrawl extracts. Update the URL list and the extraction prompt/schema in the Firecrawl Extract Request HTTP Request node, then tweak the Format Output Data Set node so the Telegram message reads the way your team likes. Common customizations include tracking only certain sections of a page, adding a short summary field, and sending different alerts to different Telegram chats based on the URL.
Usually it’s an invalid or expired API key. Regenerate your Firecrawl API key, confirm it’s being sent as header auth in the HTTP Request node, and double-check you didn’t paste it with extra spaces. If the request works sometimes and fails other times, you may be hitting rate limits or scraping pages that block automated access, so test with one URL first.
It depends on how many URLs you send per run and how long Firecrawl takes to return results, but most small teams comfortably monitor dozens of pages daily. On n8n Cloud, your cap is your monthly execution limit, while self-hosting mainly depends on your server. If you’re checking lots of URLs, batch them and consider staggering schedules so Telegram doesn’t get spammy.
Often, yes. The retry loop (wait, check, fetch again) is much easier to build in n8n than in most “two-step” tools, and you’re not forced into expensive task pricing just because you need a couple of conditional checks. n8n also gives you the option to self-host, which is a big deal when you want to run frequent monitoring. Zapier or Make can still be fine if you only need a simple ping and you never hit “data not ready yet” responses. If you’re on the fence, Talk to an automation expert and we’ll sanity-check the best setup for your volume.
Once this is running, competitor monitoring stops being a daily chore and becomes a quiet background system. You get the signal. You keep your time.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.