Bright Data to Google Sheets, Yelp leads captured
Copying Yelp details into a spreadsheet is the kind of task that looks “quick” until you do it 30 times. Then you’re chasing missing phone numbers, mismatched categories, and broken links while your actual outreach work sits there waiting.
This Yelp leads automation hits growth marketers first, but agency operators and small teams doing local prospecting feel it too. You paste a Yelp business URL and end up with clean, sortable rows in Google Sheets that your team can use immediately.
Below, you’ll see what the workflow does, what it replaces, and how to get it running without turning your week into a scraping project.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: Bright Data to Google Sheets, Yelp leads captured
flowchart LR
subgraph sg0["📥 Form 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/form.svg' width='40' height='40' /></div><br/>📥 Form Trigger"]
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/>🔍 Trigger Bright Data Scrape"]
n2["<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/>📡 Monitor Snapshot Status"]
n3@{ icon: "mdi:cog", form: "rounded", label: "⏳ Wait 30 Sec for Snapshot", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "🔁 Retry Until Ready", pos: "b", h: 48 }
n5["<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/>📥 Fetch Scraped Business Data"]
n6@{ icon: "mdi:database", form: "rounded", label: "📊 Store to Google Sheet", pos: "b", h: 48 }
n0 --> n1
n4 --> n5
n4 --> n2
n3 --> n4
n2 --> n3
n1 --> n2
n5 --> n6
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 n0 trigger
class n4 decision
class n6 database
class n1,n2,n5 api
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n5 customIcon
The Challenge: Turning Yelp pages into usable lead rows
Yelp is full of potential leads, but the data you need is trapped in pages your team has to read, interpret, and retype. One person grabs the business name, another grabs the phone number, someone else pastes the URL, and somehow the “reviews count” column turns into a mix of words and numbers. Multiply that by dozens of businesses and you get a spreadsheet that looks fine at first glance, but falls apart the moment you try to sort, filter, or hand it to someone else. Honestly, the worst part is the mental load: you’re doing repetitive work while trying not to make a mistake.
The friction compounds. Here’s where it breaks down in real life:
- Each Yelp page turns into several manual copy-paste steps, and you repeat them for every single lead.
- Small formatting inconsistencies (ratings, review counts, categories) make your list hard to filter later.
- People miss fields under time pressure, so you end up revisiting the same leads just to “complete the row.”
- Sharing a half-clean sheet across a team creates duplicate work because nobody trusts the data.
The Fix: Bright Data scraping into Google Sheets rows
This workflow turns a single Yelp business URL into a structured entry in Google Sheets, using Bright Data’s dataset API to do the heavy lifting. It starts with a simple form submission, so you’re not messing with complicated inputs or spreadsheets full of half-baked formulas. n8n sends the URL to Bright Data, triggers the scrape job, then checks the job status on a 30-second loop until the snapshot is ready. Once the data is available, the workflow fetches the results as JSON and maps the key fields (like business name, rating, reviews count, and the original URL) into your target sheet as a clean appended row. No reformatting. No “did we already log this one?” panic.
The workflow begins when you paste a Yelp URL into the form. Bright Data runs the scrape and n8n patiently polls until it’s complete. Finally, Google Sheets receives consistent rows your team can sort, dedupe, and work from.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you’re building a list of 30 local businesses for outreach. Manually, you’ll usually spend about 10 minutes per Yelp page (open, scan, copy name, rating, review count, URL, contact fields, then clean the row), which is about 5 hours total. With this automation, you paste each URL into the form in maybe 1 minute, then Bright Data completes the scrape in roughly 2–5 minutes while you move on. The actual “hands-on” time drops to about 30 minutes for the whole list, and your sheet is ready to sort immediately.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Bright Data for Yelp scraping via dataset API
- Google Sheets to store and share lead rows
- Bright Data API Key (get it from your Bright Data dashboard)
Skill level: Beginner. You will connect credentials, paste a Sheet ID, and run a test URL.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
A simple form submission kicks it off. You paste a Yelp business URL into the n8n form, which acts like a lightweight intake page your team can bookmark.
Bright Data receives the URL and starts scraping. n8n sends a POST request to the Bright Data datasets endpoint using the Yelp dataset ID, then gets back a snapshot ID that represents the scraping job.
Status checks run on a 30-second loop. The workflow polls Bright Data for progress, waits 30 seconds, then checks again until the status comes back as “ready.” This avoids hammering the API and failing halfway through because the data isn’t finished.
Results land in Google Sheets as clean rows. Once the snapshot is ready, n8n fetches the final JSON and appends the mapped fields into your “Yelp scraper data by URL” sheet (ratings, reviews count, URL, and other business metadata).
You can easily modify the fields you store to match your outreach process based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Form Trigger
Set up the incoming form so users can submit the Yelp URL that kicks off the scrape.
- Add and open Incoming Form Start.
- Set Form Title to
Yelp Service URL. - Under Form Fields, ensure a field labeled URL exists for input.
- Save the node so the form link is generated.
Step 2: Connect BrightData API Requests
Configure the three API calls that trigger, monitor, and retrieve the BrightData scrape.
- Open Launch BrightData Scrape and set URL to
https://api.brightdata.com/datasets/v3/triggerwith MethodPOST. - Set JSON Body to
=[ { "url": "https://www.yelp.com/biz/the-round-hearth-caf%C3%A9-stowe?osq=Sandwiches" } ](replace with your dynamic input later if desired). - In Launch BrightData Scrape → Query Parameters, set dataset_id to
gd_lgugwl0519h1p14rwk, include_errors totrue, limit_multiple_results to5, and limit_per_input to20. - In Launch BrightData Scrape → Header Parameters, set Authorization to
[CONFIGURE_YOUR_TOKEN]. - Open Check Snapshot Progress and set URL to
=https://api.brightdata.com/datasets/v3/progress/{{ $json.snapshot_id }}, then set Authorization to[CONFIGURE_YOUR_TOKEN]. - Open Retrieve Scraped Details and set URL to
=https://api.brightdata.com/datasets/v3/snapshot/{{ $json.snapshot_id }}, with Query Parameter format set tojsonand Authorization to[CONFIGURE_YOUR_TOKEN].
Step 3: Set Up the Status Polling Logic
Use a wait-and-check loop to delay until BrightData marks the snapshot as ready.
- Open Pause 30 Seconds and set Amount to
30seconds. - Open Ready Status Gate and set the condition to compare Left Value
={{ $json.status }}equals Right Valueready. - Verify the execution flow: Check Snapshot Progress → Pause 30 Seconds → Ready Status Gate loops back to Check Snapshot Progress on the false path.
Step 4: Configure the Google Sheets Output
Append the scraped Yelp data into your Google Sheet.
- Open Append to Sheets and keep Operation set to
append. - Set Document to
[YOUR_ID]and Sheet Name togid=0(Sheet1). - Confirm the columns mapping includes name, overall_rating, reviews_count, url, and images_videos_urls.
- Credential Required: Connect your googleSheetsOAuth2Api credentials in Append to Sheets.
Step 5: Test and Activate Your Workflow
Run a full test to confirm the scrape loop completes and data reaches your sheet.
- Click Execute Workflow and submit a test Yelp URL via Incoming Form Start.
- Watch the execution: Launch BrightData Scrape → Check Snapshot Progress → Pause 30 Seconds → Ready Status Gate → Retrieve Scraped Details → Append to Sheets.
- Confirm a new row appears in your Google Sheet with the Yelp data fields populated.
- When satisfied, toggle the workflow to Active for production use.
Watch Out For
- Bright Data credentials can expire or need specific permissions. If things break, check your Bright Data API key status in the Bright Data dashboard 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.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Common Questions
Usually about 30 minutes if your Bright Data and Google Sheets accounts are ready.
Yes. You’ll connect credentials, paste in a Google Sheet ID, and test with a real Yelp URL.
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 Bright Data API usage costs based on how many URLs you scrape.
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 can. Most teams start by changing which fields get written to Google Sheets in the “Append to Sheets” mapping, then adjust the form field if they want to capture notes or tags alongside the Yelp URL. If you want to run multiple URLs at once, you can also modify the input format to accept a batch instead of a single URL. And if your Bright Data dataset output changes, you’ll just update the field mapping so the sheet columns stay stable.
Usually it’s an expired or incorrect Bright Data API key. Update the credential used by the HTTP Request nodes, then re-run one test URL and check the execution logs for a clear error message. It can also be a dataset access issue (wrong dataset ID or plan permissions), or a temporary rate limit if you trigger many scrapes close together.
It’s mainly limited by your Bright Data plan and how many n8n executions you run per month.
Often, yes, because this flow needs polling, conditional looping, and clean field mapping, and that gets expensive or awkward in simpler tools. n8n handles the “check status, wait, retry” pattern cleanly. You can also self-host for unlimited executions, which matters once the team starts scraping daily. Zapier or Make can still work if you only do a few URLs a week and want the simplest interface. If you’re on the fence, Talk to an automation expert and we’ll help you pick the right setup.
Once this is running, your lead list stops being a fragile document and becomes a reliable system. The workflow does the repetitive part so you can spend your time on targeting and outreach.
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.