🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Yelp to Google Sheets, clean leads logged for you

Lisa Granqvist Partner Workflow Automation Expert

Copying Yelp business details into a spreadsheet sounds simple. Then you do it 30 times, hit a weird hours format, miss a phone number, and realize you can’t trust your own list.

This Yelp Sheets automation hits marketing ops teams hardest, but agency owners building lead lists and local service businesses scouting competitors feel it too. You get a clean, consistent row in Google Sheets for every Yelp URL, without the tab-hopping.

Below, you’ll see how the workflow runs in n8n, what it captures, and what kind of time you realistically get back once it’s running.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Yelp to Google Sheets, clean leads logged for you

The Problem: Yelp lead research is messy and slow

Lead lists fall apart at the exact moment you try to scale them. One person copies the “business name” from a header, another grabs it from a sidebar. Hours are formatted differently. Addresses get truncated. Sometimes the website link is missing, so you “come back later” (you won’t). And after all that work, you still don’t know if your list is complete or consistent enough to use for outreach, competitor tracking, or market research. It’s not just time. It’s mental fatigue, plus the quiet cost of basing decisions on bad data.

It adds up fast. Here’s where it usually breaks down.

  • Every Yelp page forces you to hunt for the same fields in slightly different places.
  • Manual copy-paste creates tiny errors that ruin sorting and filtering later.
  • When you’re doing this for 50 businesses, “quick research” turns into a half-day task.
  • Your team can’t standardize the dataset, so reporting and outreach become guesswork.

The Solution: Send a Yelp URL, get a clean Sheets row back

This n8n workflow turns one simple input (a Yelp business URL) into a structured record in Google Sheets. It starts with a form submission, then sends the URL to Scrape.do to run a real browser scrape (including JavaScript rendering, so dynamic Yelp pages load fully). After Scrape.do returns the page content, the workflow parses the HTML and pulls out the fields you actually need for lead gen and market research. Finally, it appends a new row to a dedicated Google Sheet, including a timestamp so you know when the data was captured. No extra tabs. No inconsistent formatting. Honestly, it feels like the spreadsheet builds itself.

The workflow begins when someone submits a Yelp link through the n8n form. It creates an asynchronous Scrape.do job, waits briefly, and then polls until the job is complete. Once results are available, it extracts business details and logs them to Google Sheets in a consistent 12-column format.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you’re building a list of 50 local businesses for a new campaign. Manually, you might spend about 5 minutes per Yelp page to capture name, rating, reviews, phone, address, site, and hours, which is roughly 4 hours of focused work (plus mistakes). With this workflow, submitting 50 URLs can take about 10 minutes total, then the scraping runs in the background at roughly 15–45 seconds per business. You end up with 50 clean rows ready to filter and use, without babysitting the process.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Scrape.do for scraping Yelp pages reliably
  • Google Sheets to store and share lead rows
  • Scrape.do API token (get it from Scrape.do Dashboard → API Token)

Skill level: Intermediate. You’ll connect credentials, paste an API token, and map a few fields to your sheet.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A form submission kicks it off. You (or your team) paste a Yelp business URL into the n8n form, which triggers a new run.

The URL is sent to Scrape.do for rendering. The workflow creates an asynchronous scrape job using a token in the request header, with JavaScript rendering enabled so Yelp content loads like a normal browser session.

Status is checked until the scrape is finished. n8n waits about 15 seconds, polls the job status, and loops with a short retry delay until Scrape.do reports completion.

Business fields are extracted and logged. A code step parses the returned HTML (including JSON-LD when available) and appends a row to Google Sheets with fields like rating, review count, phone, address, categories, hours, and media URLs.

You can easily modify the captured fields to match your prospecting or reporting needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Form Trigger

Set up the form that captures the Yelp business URL and starts the workflow.

  1. Add or open Incoming Form Entry.
  2. Set Form Title to Yelp Business URL Scraper.
  3. Set Form Description to Enter a Yelp business URL to scrape business details.
  4. In Form Fields, add a required field labeled Yelp Business URL with placeholder https://www.yelp.com/biz/business-name-city.

Step 2: Configure the Scrape Job Requests

These nodes submit a scrape job, then poll the job status and fetch the output.

  1. Open Initiate Scrape Job and set URL to https://q.scrape.do/api/v1/jobs and Method to POST.
  2. Set JSON Body to ={{ JSON.stringify({ "Targets": [$json["Yelp Business URL"]], "Super": true, "GeoCode": "us", "Device": "desktop", "Render": { "BlockResources": false, "WaitUntil": "networkidle2", "CustomWait": 3000 } }) }}.
  3. In Header Parameters, set X-Token to your scrape.do API key (replace [CONFIGURE_YOUR_API_KEY]) and set Content-Type to application/json.
  4. Open Poll Job Status and set URL to =https://q.scrape.do/api/v1/jobs/{{ $('Initiate Scrape Job').item.json.JobID }}.
  5. In Poll Job Status headers, set X-Token to the same API key.
  6. Open Retrieve Task Output and set URL to =https://q.scrape.do/api/v1/jobs/{{ $('Initiate Scrape Job').item.json.JobID }}/{{ $('Initiate Scrape Job').item.json.TaskIDs[0] }}, then add the same X-Token header.

⚠️ Common Pitfall: If the X-Token header is missing or invalid, the API requests will fail. Replace [CONFIGURE_YOUR_API_KEY] in all three HTTP nodes.

Step 3: Set Up the Wait-and-Retry Logic

This loop waits for the scrape job to finish and retries until the status is successful.

  1. Open Delay 15s and set Amount to 15.
  2. Open Completion Branch and set the condition to check Left Value ={{ $json.Status }} equals Right Value success.
  3. Open Retry Pause 10s and set Amount to 10.
  4. Verify the flow: Initiate Scrape JobDelay 15sPoll Job StatusCompletion Branch, where the false branch loops to Retry Pause 10s and back to Poll Job Status.

Tip: If scrape jobs take longer, increase the Amount in Delay 15s and Retry Pause 10s to reduce API calls.

Step 4: Parse and Append Yelp Data

Extract structured details from the scraped HTML and append the results to Google Sheets.

  1. Open Extract Yelp Details and keep Mode set to runOnceForEachItem.
  2. Verify the JavaScript in Extract Yelp Details outputs fields like name, overall_rating, reviews_count, url, phone, address, price_range, categories, website, hours, images_videos_urls, and scraped_at.
  3. Open Append to Sheet and set Operation to append.
  4. Select the Document with ID [YOUR_ID] and the Sheet Name Sheet1 (gid 0), or update to your target sheet.
  5. Ensure the sheet columns match the schema in Append to Sheet (e.g., name, overall_rating, reviews_count, url, phone, address, price_range, categories, website, hours, images_videos_urls, scraped_at).

Credential Required: Connect your Google Sheets credentials in Append to Sheet before running the workflow.

Step 5: Test and Activate Your Workflow

Validate the workflow end-to-end, then enable it for live use.

  1. Click Execute Workflow and submit a sample URL using Incoming Form Entry.
  2. Confirm Initiate Scrape Job returns a JobID and Poll Job Status eventually returns Status = success.
  3. Verify Retrieve Task Output returns a Content payload and Extract Yelp Details outputs parsed fields.
  4. Check Google Sheets to confirm Append to Sheet added a new row with all fields populated.
  5. Turn the workflow Active to start accepting production form submissions.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Scrape.do credentials can expire or the token can be pasted in the wrong header. If things break, check the HTTP Request nodes for the X-Token value first, then confirm the token in your Scrape.do dashboard.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • The HTML parsing is built around Yelp’s current page structure, so changes can cause blank fields. If you suddenly see empty phone numbers or hours, inspect a fresh Yelp page and adjust the regex/JSON-LD extraction in the “Extract Yelp Details” code node.

Frequently Asked Questions

How long does it take to set up this Yelp Sheets automation automation?

About 30 minutes if your Scrape.do token and Google Sheets access are ready.

Do I need coding skills to automate Yelp Sheets automation?

No, not for the core workflow. You may only touch the parsing code if you want extra fields or Yelp changes their layout.

Is n8n free to use for this Yelp Sheets automation workflow?

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 Scrape.do usage costs based on your scraping volume.

Where can I host n8n to run this automation?

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.

Can I customize this Yelp Sheets automation workflow for scraping multiple URLs at once?

Yes, but you’ll adjust the input and job creation. The fastest option is to change the Scrape.do job request body so “Targets” accepts a list of Yelp URLs, then loop through results before the “Append to Sheet” step. Common customizations include adding extra columns (like neighborhood or claimed status), changing GeoCode for different countries, and extending the render wait time for heavier pages.

Why is my Scrape.do connection failing in this workflow?

Most of the time it’s an invalid or expired API token in the X-Token header. Update the token anywhere it appears in the HTTP Request nodes, then rerun a single known-good Yelp URL to confirm it works. If the token is fine, check for 401 errors in the n8n execution log, or rate limits on your Scrape.do plan when you send too many jobs too quickly.

How many business URLs can this Yelp Sheets automation automation handle?

It depends mostly on your Scrape.do plan limits and your n8n execution limits. On n8n Cloud, your plan controls monthly executions, while self-hosting has no hard execution cap (your server is the limiter). In practice, each Yelp URL takes about 15–45 seconds to scrape, so batches work best when you let it run in the background instead of waiting on it live.

Is this Yelp Sheets automation automation better than using Zapier or Make?

Often, yes, because the “hard part” here is the scrape-and-parse loop, not a simple two-app sync. n8n handles polling, branching, and retries without making you pay extra for every path. You also have the option to self-host, which matters when you’re running a lot of URLs. Zapier or Make can still work if you keep it basic, but you’ll usually end up duct-taping together webhooks, delays, and extra steps. If you want to sanity-check your setup before you invest time, Talk to an automation expert.

Once it’s live, you stop “building lists” and start using them. The workflow handles the repetitive collection so your Sheets stays clean and usable.

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.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal