AutomationFlowsEmail & Gmail › Find the Best Food Deals Automatically with Bright Data & N8n

Find the Best Food Deals Automatically with Bright Data & N8n

ByYaron Been @yaron-nofluff on n8n.io

This workflow automatically scans food delivery platforms and restaurant websites to find the best deals and discounts. It helps you save money on meals by aggregating special offers and promotions in one place.

Event trigger★★★☆☆ complexity10 nodesHTTP RequestGmail
Email & Gmail Trigger: Event Nodes: 10 Complexity: ★★★☆☆ Added:

This workflow corresponds to n8n.io template #5212 — we link there as the canonical source.

This workflow follows the Gmail → HTTP Request recipe pattern — see all workflows that pair these two integrations.

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 →

Download .json
{
  "id": "PXfj3dKsPDIM8vKJ",
  "name": "Automated_Food_Deal_Finder_via_Bright_Data",
  "tags": [],
  "nodes": [
    {
      "id": "6c651293-5535-424b-ab9a-562326fcb0a5",
      "name": "Trigger Workflow",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -400,
        680
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "44ef6d02-59e1-4e00-adde-c0d0965d96e0",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2040,
        40
      ],
      "parameters": {
        "color": 4,
        "width": 1300,
        "height": 320,
        "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n   - YouTube: https://www.youtube.com/@YaronBeen/videos\n   - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
      },
      "typeVersion": 1
    },
    {
      "id": "6cb1eda2-5e6a-41f4-bb21-c9289c9e470f",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2040,
        380
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 2758,
        "content": "# \ud83d\ude80 **Pizza Deal Finder Automation \u2013 Breakdown**\n\nThis workflow automatically **scrapes Uber Eats for pizza deals**, **extracts the names and discounts**, and **emails the best offers** to you \u2014 all without writing any complex code!\n\n---\n\n## \ud83d\udfe2 **SECTION 1: \ud83d\udd01 Trigger & \ud83c\udf0d Fetch Pizza Deals Page**\n\n### \ud83d\udd39 Nodes Included:\n\n1. \u26a1 **Trigger Workflow**\n2. \ud83c\udf10 **Fetch Uber Eats Search Page (Bright Data)**\n\n---\n\n### \ud83d\udd27 What Happens Here:\n\n* **\u26a1 Trigger Workflow**: This node is the starting point. You can configure it to run:\n\n  * On-demand (when you click \"Execute\")\n  * On a schedule (e.g., every morning or every 4 hours)\n\n* **\ud83c\udf10 Fetch Uber Eats Search Page**:\n\n  * Sends a `POST` request to **Bright Data\u2019s Web Unlocker API** to access UberEats.\n  * It bypasses JavaScript-heavy pages and bot protections.\n  * URL targeted: something like `https://www.ubereats.com/search?query=pizza`\n  * Returns full HTML of the results page with all pizza restaurant names and their deals.\n\n### \ud83d\udc68\u200d\ud83d\udcbb For Beginners:\n\n* This is the **scraping engine** of your workflow.\n* Bright Data does the heavy lifting (proxying, unblocking, rendering).\n* You only need to provide your **Bright Data API key** and the target URL.\n\n---\n\n## \ud83d\udfe1 **SECTION 2: \ud83e\uddf9 Extract Pizza Names & Deals**\n\n### \ud83d\udd39 Node Included:\n\n* \ud83e\udde9 **Extract Names & Deals**\n\n---\n\n### \ud83d\udd27 What Happens Here:\n\n* This is the **HTML Extract** node.\n* It scans the raw HTML from the previous step and pulls:\n\n  * \ud83c\udff7\ufe0f Restaurant names (e.g., \u201cDomino\u2019s\u201d)\n  * \ud83d\udcb8 Deals or special offers (e.g., \u201cFree Item on \\$9 Spend\u201d)\n\n### \ud83d\udee0\ufe0f CSS Selectors Used:\n\n* **Name Selector**: `div.be.f3.bg.f2.ck.bp.bn.k2` \u2192 extracts all names\n* **Deal Selector**: `div.hr.bn.k2` \u2192 extracts all visible deals\n\n\u2699\ufe0f You configure it to **get all matches**, not just one. This ensures multiple restaurants are included.\n\n### \ud83d\udc68\u200d\ud83d\udcbb For Beginners:\n\n* This is where **the magic happens** \u2014 HTML becomes readable data.\n* No coding is required \u2014 just CSS selectors you can get from \u201cInspect Element\u201d in Chrome.\n* You can reuse this for other platforms like DoorDash or Grubhub by updating the selectors.\n\n---\n\n## \ud83d\udd34 **SECTION 3: \ud83d\udce7 Send Best Deals via Gmail**\n\n### \ud83d\udd39 Node Included:\n\n* \u2709\ufe0f **Send Pizza Deals via Gmail**\n\n---\n\n### \ud83d\udd27 What Happens Here:\n\n* Sends you an email (or to any recipient you define).\n* The email includes:\n\n  * \ud83e\uddfe List of pizza restaurants\n  * \ud83c\udf81 Associated deals\n\n\ud83d\udcec You can customize the subject and message format using simple templates:\n\n```html\n<h3>\ud83c\udf55 Today\u2019s Top Pizza Deals</h3>\n<ul>\n  {{#each items}}\n    <li><b>{{this.title}}</b> \u2014 {{this.deal}}</li>\n  {{/each}}\n</ul>\n```\n\n### \ud83d\udc68\u200d\ud83d\udcbb For Beginners:\n\n* This turns your data into a **daily email alert**.\n* You can plug in **Gmail, Outlook, Telegram, Slack**, etc.\n* Use this to stay updated or forward to your group of friends or a Discord bot.\n\n---\n\n## \u2728 Final Thoughts\n\n| \u2705 Feature                    | \ud83d\udca1 Benefit                              |\n| ---------------------------- | --------------------------------------- |\n| Fully visual                 | No coding knowledge needed              |\n| Web Unlocker via Bright Data | Access any site without getting blocked |\n| HTML Extraction              | Pull exactly what you need              |\n| Email Integration            | Automatically get results               |\n\nThis is a **production-grade workflow** that\u2019s easy to understand, scalable, and customizable for other food types, locations, or platforms.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "acfcd516-583b-49d9-a5ca-d610761e8ef4",
      "name": "Fetch Uber Eats Search Page (Bright Data)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -140,
        680
      ],
      "parameters": {
        "url": "https://api.brightdata.com/request",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "zone",
              "value": "n8n_unblocker"
            },
            {
              "name": "url",
              "value": "=https://www.ubereats.com/feed?diningMode=DELIVERY&pl=JTdCJTIyYWRkcmVzcyUyMiUzQSUyMkxvcyUyMEFuZGVzJTIwQmFrZXJ5JTIyJTJDJTIycmVmZXJlbmNlJTIyJTNBJTIyZDM2NThkYmItODRhNi1kMTRhLWMyNWEtNTBkZWVjMTRmY2RmJTIyJTJDJTIycmVmZXJlbmNlVHlwZSUyMiUzQSUyMnViZXJfcGxhY2VzJTIyJTJDJTIybGF0aXR1ZGUlMjIlM0EzMy44Nzk0NiUyQyUyMmxvbmdpdHVkZSUyMiUzQS04NC4zMDc5NCU3RA%3D%3D&scq=Pizza&sf=JTVCJTdCJTIydXVpZCUyMiUzQSUyMjMzZTBmN2NjLTg5MjctNGRhYy1hOTJlLTE5YTI5NmFhYjA5NyUyMiUyQyUyMm9wdGlvbnMlMjIlM0ElNUIlN0IlMjJ1dWlkJTIyJTNBJTIyZzk5NjQ3NmMtMmIxYi00ZGIyLWI0MGEtMTNkNDNjYjExN2RjJTIyJTdEJTVEJTdEJTVE"
            },
            {
              "name": "country",
              "value": "us"
            },
            {
              "name": "format",
              "value": "raw"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0cea9a9b-5ccc-4ca9-8a2c-ab453206c88d",
      "name": "Extract Names & Deals",
      "type": "n8n-nodes-base.html",
      "position": [
        160,
        680
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "deak",
              "cssSelector": "<div class=\"be f3 bg f2 ck bp bn k2\">Domino's</div>",
              "returnArray": true
            },
            {
              "key": "Deal",
              "cssSelector": "<div class=\"hr bn k2\">Free Item (Spend $9)</div>",
              "returnArray": true
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "802b5bac-0327-4fe3-8cbb-125af2912e06",
      "name": "Send Pizza Deals via Gmail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        480,
        680
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "=Hey there! \ud83d\udc4b\n\nHere are the best pizza deals we found near your location:\n\n\ud83c\udf71 Title: {{ $json.deak[0] }}\n\ud83c\udf89 Deal: {{ $json.Deal[0] }}\n\nWe\u2019ve scanned the menu data for you using our smart scraper automation.",
        "options": {},
        "subject": "=Best Pizza Deals Near You Today!",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "6bb11eed-0b93-460e-be4a-bcce086fc5a5",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        -160
      ],
      "parameters": {
        "color": 3,
        "width": 460,
        "height": 1060,
        "content": "## \ud83d\udfe2 **SECTION 1: \ud83d\udd01 Trigger & \ud83c\udf0d Fetch Pizza Deals Page**\n\n### \ud83d\udd39 Nodes Included:\n\n1. \u26a1 **Trigger Workflow**\n2. \ud83c\udf10 **Fetch Uber Eats Search Page (Bright Data)**\n\n---\n\n### \ud83d\udd27 What Happens Here:\n\n* **\u26a1 Trigger Workflow**: This node is the starting point. You can configure it to run:\n\n  * On-demand (when you click \"Execute\")\n  * On a schedule (e.g., every morning or every 4 hours)\n\n* **\ud83c\udf10 Fetch Uber Eats Search Page**:\n\n  * Sends a `POST` request to **Bright Data\u2019s Web Unlocker API** to access UberEats.\n  * It bypasses JavaScript-heavy pages and bot protections.\n  * URL targeted: something like `https://www.ubereats.com/search?query=pizza`\n  * Returns full HTML of the results page with all pizza restaurant names and their deals.\n\n### \ud83d\udc68\u200d\ud83d\udcbb For Beginners:\n\n* This is the **scraping engine** of your workflow.\n* Bright Data does the heavy lifting (proxying, unblocking, rendering).\n* You only need to provide your **Bright Data API key** and the target URL.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b02aa18f-809e-4aec-9969-b1a30546a936",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        60,
        -320
      ],
      "parameters": {
        "color": 5,
        "width": 300,
        "height": 1220,
        "content": "## \ud83d\udfe1 **SECTION 2: \ud83e\uddf9 Extract Pizza Names & Deals**\n\n### \ud83d\udd39 Node Included:\n\n* \ud83e\udde9 **Extract Names & Deals**\n\n---\n\n### \ud83d\udd27 What Happens Here:\n\n* This is the **HTML Extract** node.\n* It scans the raw HTML from the previous step and pulls:\n\n  * \ud83c\udff7\ufe0f Restaurant names (e.g., \u201cDomino\u2019s\u201d)\n  * \ud83d\udcb8 Deals or special offers (e.g., \u201cFree Item on \\$9 Spend\u201d)\n\n### \ud83d\udee0\ufe0f CSS Selectors Used:\n\n* **Name Selector**: `div.be.f3.bg.f2.ck.bp.bn.k2` \u2192 extracts all names\n* **Deal Selector**: `div.hr.bn.k2` \u2192 extracts all visible deals\n\n\u2699\ufe0f You configure it to **get all matches**, not just one. This ensures multiple restaurants are included.\n\n### \ud83d\udc68\u200d\ud83d\udcbb For Beginners:\n\n* This is where **the magic happens** \u2014 HTML becomes readable data.\n* No coding is required \u2014 just CSS selectors you can get from \u201cInspect Element\u201d in Chrome.\n* You can reuse this for other platforms like DoorDash or Grubhub by updating the selectors.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "09f351ad-1911-40ce-9d93-c8e8880c45cd",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        -20
      ],
      "parameters": {
        "color": 6,
        "width": 300,
        "height": 920,
        "content": "## \ud83d\udd34 **SECTION 3: \ud83d\udce7 Send Best Deals via Gmail**\n\n### \ud83d\udd39 Node Included:\n\n* \u2709\ufe0f **Send Pizza Deals via Gmail**\n\n---\n\n### \ud83d\udd27 What Happens Here:\n\n* Sends you an email (or to any recipient you define).\n* The email includes:\n\n  * \ud83e\uddfe List of pizza restaurants\n  * \ud83c\udf81 Associated deals\n\n\ud83d\udcec You can customize the subject and message format using simple templates:\n\n```html\n<h3>\ud83c\udf55 Today\u2019s Top Pizza Deals</h3>\n<ul>\n  {{#each items}}\n    <li><b>{{this.title}}</b> \u2014 {{this.deal}}</li>\n  {{/each}}\n</ul>\n```\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f8c0655a-9550-488d-a9d9-592f95a193f9",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        760,
        -20
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 240,
        "content": "## I\u2019ll receive a tiny commission if you join Bright Data through this link\u2014thanks for fueling more free content!\n\n### https://get.brightdata.com/1tndi4600b25"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "31760015-fb12-44ab-bd99-c7688ec0fd6b",
  "connections": {
    "Trigger Workflow": {
      "main": [
        [
          {
            "node": "Fetch Uber Eats Search Page (Bright Data)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Names & Deals": {
      "main": [
        [
          {
            "node": "Send Pizza Deals via Gmail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Uber Eats Search Page (Bright Data)": {
      "main": [
        [
          {
            "node": "Extract Names & Deals",
            "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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow automatically scans food delivery platforms and restaurant websites to find the best deals and discounts. It helps you save money on meals by aggregating special offers and promotions in one place.

Source: https://n8n.io/workflows/5212/ — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Email & Gmail

This n8n template automates PDF translation into 1 or 2 target languages while maintaining professional formatting. Users submit PDFs via web form and receive translated documents via email with prese

Google Translate, HTTP Request, Form Trigger +2
Email & Gmail

Submit any YouTube, Vimeo, or Zoom webinar URL using a simple form and the workflow handles everything from there. It runs a two-phase pipeline: first identifying the top viral moments in your video w

Form Trigger, HTTP Request, Google Sheets +1
Email & Gmail

ResultAnalyser. Uses gmailTrigger, executeCommand, httpRequest, gmail. Event-driven trigger; 23 nodes.

Gmail Trigger, Execute Command, HTTP Request +1
Email & Gmail

Blog Post → Social Media. Uses rssFeedTrigger, httpRequest, gmail. Event-driven trigger; 22 nodes.

Rss Feed Trigger, HTTP Request, Gmail
Email & Gmail

This workflow is an end-to-end AI video generation, review, and delivery pipeline. It takes a plain-text creative prompt via webhook, generates a video using an AI model, continuously checks job statu

Slack, Error Trigger, HTTP Request +2