Quick overview
This workflow manually runs an Apify Google Maps scrape for businesses and their lowest-rated reviews, uses Groq to extract complaint-based pain points and a fit score for your service, and upserts the resulting leads (with evidence quotes and an opener) into Google Sheets.
How it works
- Starts when you manually execute the workflow.
- Loads your search parameters (query, location, volumes, service description, and minimum fit score) and reads existing leads from Google Sheets to avoid reprocessing.
- Calls Apify’s Google Places crawler to fetch businesses and their lowest-ranked reviews for the configured search term and location, stopping with an error if scraping fails.
- Bundles each business’s listing details and review text, then keeps only businesses that are new (not already in the sheet) and have usable review text.
- Processes businesses one at a time and sends the review bundle to Groq to return structured JSON with pain points, an evidence quote, a 1–10 fit score, and an outreach opener when the score is high enough.
- Formats each result into a lead record with a status (qualified, low_fit, or analysis_failed) and upserts it into the Google Sheets Leads tab by place_id.
- Waits the configured number of seconds between AI calls to respect rate limits, then continues with the next business.
Setup
- Create a Google Sheet with a tab named “Leads” and columns matching the workflow’s output (including place_id as the unique key), then select the spreadsheet in both Google Sheets nodes.
- Add Google Sheets OAuth2 credentials in n8n.
- Add an Apify API token as an HTTP Bearer Auth credential and ensure your Apify account has enough credits to run the
compass/crawler-google-places actor.
- Add a Groq API key credential and optionally adjust the selected model.
- Update the “Search settings” values (search term, location, business/review limits, your service description, minimum fit score, review language, and seconds between AI calls) before running.