This workflow corresponds to n8n.io template #14815 — we link there as the canonical source.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "firecrawl-scrape-001",
"name": "Daily competitor monitoring with Firecrawl and Zalo Bot alerts",
"tags": [],
"nodes": [
{
"id": "sticky-main",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1104,
-240
],
"parameters": {
"width": 480,
"height": 680,
"content": "## Daily competitor monitoring with Firecrawl and Zalo Bot alerts\n\n### How it works\n1. A Schedule Trigger runs daily at 9:00 AM (configurable).\n2. The Set Configuration node holds the competitor URL, brand name, and Zalo Chat ID.\n3. Firecrawl scrapes the competitor page with JavaScript rendering and anti-bot bypass, returning clean markdown.\n4. Google Gemini summarizes key updates in Vietnamese (max 200 words, bullet points).\n5. The formatted alert with competitor name, URL, and timestamp is sent to your Zalo Bot conversation.\n\n### Setup steps\n- [ ] Self-hosted n8n required (community nodes cannot be installed on n8n Cloud)\n- [ ] Install community nodes `n8n-nodes-firecrawl-v2` and `n8n-nodes-zalo-platform` via **Settings > Community Nodes**\n- [ ] Create a Firecrawl API credential (Cloud or self-hosted)\n- [ ] Create a Zalo Bot credential from **Zalo Bot Manager** in the Zalo app\n- [ ] Create a Google Gemini credential (free tier from [Google AI Studio](https://aistudio.google.com))\n- [ ] Update the **Set Configuration** node with your competitor URL, brand name, and Zalo Chat ID\n- [ ] Activate the workflow\n\n### Customization\n- Add multiple competitors by looping over an array of URLs\n- Swap Gemini for OpenAI, Claude, or any local LLM\n- Save history to Google Sheets to track changes over time\n- Add a diff check to only alert when content actually changes\n- Send alerts to multiple Zalo recipients or groups\n\n### Need help?\n- [Firecrawl node guide](https://thenexova.com/n8n-firecrawl-node-web-scraping-crawling-and-ai-extraction-guide/)\n- [Zalo Bot node guide](https://thenexova.com/n8n-zalo-bot-node-complete-setup-and-operations-guide/)"
},
"typeVersion": 1
},
{
"id": "sticky-step1",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-576,
-240
],
"parameters": {
"color": 7,
"width": 380,
"height": 280,
"content": "## Schedule daily run\n\nThe Schedule Trigger fires once per day at 9:00 AM. Adjust the cron expression to run hourly, weekly, or at a different time."
},
"typeVersion": 1
},
{
"id": "sticky-step2",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-176,
-240
],
"parameters": {
"color": 7,
"width": 380,
"height": 280,
"content": "## Configure monitoring target\n\nHolds all the variables you need to customize: competitor URL, brand name, and Zalo Chat ID. Edit this node to point at your competitor."
},
"typeVersion": 1
},
{
"id": "sticky-step3",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
224,
-240
],
"parameters": {
"color": 7,
"width": 380,
"height": 280,
"content": "## Scrape competitor page\n\nFirecrawl fetches the page and returns clean markdown. Handles JavaScript-rendered SPAs, anti-bot protection, and removes navigation and ads automatically."
},
"typeVersion": 1
},
{
"id": "sticky-step4",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
624,
-240
],
"parameters": {
"color": 7,
"width": 380,
"height": 280,
"content": "## Summarize with AI\n\nGoogle Gemini 2.0 Flash reads the scraped markdown and generates a concise Vietnamese summary highlighting new products, pricing changes, and latest updates."
},
"typeVersion": 1
},
{
"id": "sticky-step5",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1024,
-240
],
"parameters": {
"color": 7,
"width": 380,
"height": 280,
"content": "## Format alert message\n\nCombines the AI summary with competitor name, URL, and timestamp into a clean notification text ready for Zalo."
},
"typeVersion": 1
},
{
"id": "sticky-step6",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1424,
-240
],
"parameters": {
"color": 7,
"width": 380,
"height": 280,
"content": "## Send Zalo notification\n\nDelivers the formatted alert to your Zalo Bot conversation. The bot token is configured in the Zalo Bot credential."
},
"typeVersion": 1
},
{
"id": "sticky-disclaimer",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1104,
480
],
"parameters": {
"color": 5,
"width": 480,
"content": "### Community Nodes - Self-hosted only\nThis template uses two community nodes (`n8n-nodes-firecrawl-v2` and `n8n-nodes-zalo-platform`) which require self-hosted n8n. They cannot be installed on n8n Cloud."
},
"typeVersion": 1
},
{
"id": "schedule-trigger",
"name": "Daily 9AM Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-496,
240
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 9 * * *"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "set-config",
"name": "Set Configuration",
"type": "n8n-nodes-base.set",
"position": [
-96,
240
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "competitor-url",
"name": "competitorUrl",
"type": "string",
"value": "https://thenexova.com/"
},
{
"id": "competitor-name",
"name": "competitorName",
"type": "string",
"value": "THE NEXOVA"
},
{
"id": "zalo-chat-id",
"name": "zaloChatId",
"type": "string",
"value": "818e7bf147beaee0f7af"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "firecrawl-scrape",
"name": "Scrape Competitor",
"type": "n8n-nodes-firecrawl-v2.firecrawl",
"position": [
304,
240
],
"parameters": {
"url": "={{ $json.competitorUrl }}",
"scrapeOptions": {}
},
"credentials": {
"firecrawlApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "ai-summarize",
"name": "AI Summarize Vietnamese",
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"position": [
704,
240
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "models/gemini-2.0-flash"
},
"options": {},
"messages": {
"values": [
{
"content": "=Ban la chuyen gia phan tich doi thu canh tranh. Hay doc noi dung trang web sau tu website cua {{ $('Set Configuration').item.json.competitorName }} va tom tat ngan gon bang tieng Viet cac thong tin quan trong: san pham moi, thay doi gia, bai viet blog moi, thong bao quan trong. Toi da 200 tu. Dung bullet points.\n\nNoi dung trang web:\n{{ $json.markdown }}"
}
]
}
},
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "format-alert",
"name": "Format Alert Message",
"type": "n8n-nodes-base.set",
"position": [
1104,
240
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "alert-message",
"name": "alertMessage",
"type": "string",
"value": "=BAO CAO DOI THU HANG NGAY\n\nDoi thu: {{ $('Set Configuration').item.json.competitorName }}\nURL: {{ $('Set Configuration').item.json.competitorUrl }}\nNgay: {{ $now.format('dd/MM/yyyy HH:mm') }}\n\nTom tat cap nhat:\n{{ $json.content.parts[0].text }}\n\nTu dong boi n8n + Firecrawl + Zalo Bot"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "send-zalo",
"name": "Send Zalo Alert",
"type": "n8n-nodes-zalo-platform.zaloBot",
"position": [
1504,
240
],
"parameters": {
"text": "={{ $json.alertMessage }}",
"chatId": "={{ $('Set Configuration').item.json.zaloChatId }}"
},
"credentials": {
"zaloBotApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"binaryMode": "separate",
"executionOrder": "v1"
},
"versionId": "e547acc5-1142-489f-a93f-67ebeb669670",
"connections": {
"Daily 9AM Trigger": {
"main": [
[
{
"node": "Set Configuration",
"type": "main",
"index": 0
}
]
]
},
"Scrape Competitor": {
"main": [
[
{
"node": "AI Summarize Vietnamese",
"type": "main",
"index": 0
}
]
]
},
"Set Configuration": {
"main": [
[
{
"node": "Scrape Competitor",
"type": "main",
"index": 0
}
]
]
},
"Format Alert Message": {
"main": [
[
{
"node": "Send Zalo Alert",
"type": "main",
"index": 0
}
]
]
},
"AI Summarize Vietnamese": {
"main": [
[
{
"node": "Format Alert Message",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
firecrawlApigooglePalmApizaloBotApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Vietnamese businesses, marketers, and product managers who need daily competitive intelligence about competitor websites without manually checking them every day.
Source: https://n8n.io/workflows/14815/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This template watches an external documentation site every day and sends an AI-generated Vietnamese summary to Telegram whenever pages change. It is built around Postgres content hashing so it works w
AI Institutional Stock Valuation Engine with Risk Scoring & Scenario Targets
Overview This is a production-grade, fully automated stock analysis system built entirely in n8n. It combines institutional-level financial analysis, dual AI model consensus, and a self-improving back
This workflow is a complete outbound automation system that discovers local businesses, extracts contact emails, generates personalized cold emails using AI, and runs a multi-step follow-up sequence —
A professional AI equity analysis automation built on n8n that transforms structured financial data and real-time news into disciplined, risk-adjusted price targets and actionable BUY/HOLD/SELL signal