Code Workflows
101 Ergebnisse — ausschließlich quellenverknüpfte n8n-Referenzen
Audit Asana task hygiene with Google Sheets and Slack scorecards
Quick overview This workflow runs every Monday at 8am to audit open tasks in an Asana project for missing assignees and due dates (optionally missing sections and descriptions), appends each flagged task to Google Sheets, and posts a weekly hygiene scorecard with key counts and top offenders to Slack. How it works Runs every Monday at 8am on a schedule trigger. Fetches tasks from the specified Asana project via the Asana API and keeps only open (incomplete) tasks. Checks each open task for missing assignee and due date (and optionally missing section and empty description) and prepares one audit row per task that fails any enabled rule. Appends the flagged task rows (including reason codes and task permalink) to a Google Sheets tab for a running audit log. Calculates weekly completeness metrics across all open tasks and formats a Slack scorecard including category counts, percent fully fielded, and top offenders. Posts the scorecard message to the configured Slack channel. Setup Add an Asana API credential and set the target Asana project GID in the configuration values. Add a Google Sheets OAuth2 credential, select the target spreadsheet and sheet/tab, and ensure the header column
Track weekly Google SERP rankings with Bright Data, Google Sheets, and Slack
Quick overview This workflow runs every Monday at 8 AM to check your Google rankings for keywords stored in Google Sheets using Bright Data’s SERP API, then writes the latest and previous positions back to the sheet and posts a per-keyword update to a Slack channel. How it works Runs every Monday at 8 AM on a scheduled trigger. Reads the list of keywords, target domains, and target countries from a Google Sheets spreadsheet. Queries Google for each keyword via the Bright Data SERP API. Parses the organic results to find the ranking position of the target domain (or returns “Not in top 100”) and carries forward the prior saved position. Updates Google Sheets by writing the new “Last Position” and shifting the prior value into “Previous Position” for the same row. Sends a formatted SERP rank update message to a selected Slack channel for each tracked keyword. Setup Add credentials for Google Sheets, Bright Data, and Slack (OAuth2). Replace YOUR_GOOGLE_SHEET_ID in both Google Sheets steps with your spreadsheet ID and ensure the worksheet contains Keyword, Target Domain, Target Country, Last Position, and Previous Position columns. Configure the Bright Data node with your preferred zon
Send WhatsApp booking links for Facebook leads with Sheets, Redis, and Cal.com
Quick overview Youtube Video: https://youtu.be/2yB1Imaa6AY?si=FAY4YCeSqqnxCdgW This workflow captures new Facebook Lead Ads leads, stores or updates them in Google Sheets, generates a personalized Cal.com booking link, and sends it via WhatsApp, while also logging the outreach session to Redis and marking the lead as contacted. How it works Triggers when a new lead is submitted through Facebook Lead Ads. Looks up the lead in Google Sheets by phone number to see if an existing row is present. Appends or updates the lead record in Google Sheets when the row does not exist, otherwise checks whether the lead is already marked as contacted or set to do-not-disturb. Prepares a Cal.com base booking link for the selected property and builds an autofilled booking URL using the lead’s name, email, and phone. Sends the lead a WhatsApp message containing the personalized Cal.com booking link. Stores the outbound message as a session entry in Redis and updates Google Sheets to mark the lead as contacted. Setup Connect your Facebook Lead Ads OAuth credentials and select the target Facebook Page and Lead Form in the trigger. Add Google Sheets credentials (service account or OAuth) and update the
Repurpose blog posts into social content with Gemini, Google Sheets, and Slack
Quick Overview This workflow runs daily, reads your blog RSS feed, uses Google Gemini to repurpose the latest posts into Twitter/X and LinkedIn drafts in your brand voice, then appends the drafts to Google Sheets and posts them to a Slack channel for review. How it works Runs every day on a schedule and reads items from your blog’s RSS feed. Keeps only the three most recent posts to process. Builds a prompt that includes your brand voice, hashtags, and each post’s title, URL, and excerpt. Sends the prompt to the Google Gemini API to generate Twitter/X and LinkedIn copy formatted as JSON. Parses the Gemini response into separate twitter and linkedin draft fields. Appends the drafts to a Google Sheets worksheet and posts the formatted drafts to a Slack channel for review. Setup Add credentials for the Google Gemini (PaLM) API, Google Sheets OAuth2, and Slack OAuth2. Paste your blog RSS feed URL in the RSS reader step. Update the brand voice text and default hashtags to match your tone. Select the target Google Sheets spreadsheet and worksheet (for example, a “Social Drafts” tab) where drafts are appended. Choose the Slack channel where draft messages are posted.
Monitor ad campaign health daily with Spendict, Google Sheets, and Slack
Quick overview This workflow runs every morning to read ad campaign metrics from Google Sheets, send each campaign to Spendict for performance diagnosis against benchmarks, log the verdicts back to Google Sheets, and post Slack alerts when a campaign needs attention. How it works Runs daily at 08:00 on a schedule trigger. Reads campaign metric rows from a Google Sheets spreadsheet. Builds a Spendict request per campaign by normalizing platform/objective fields and including only numeric metrics present in each row. Sends each campaign’s metrics to the Spendict analyze-performance API to get a verdict, score, bottleneck, and diagnosis. Routes results by verdict so healthy or insufficient-data campaigns are only logged, while fix_first and kill_or_rebuild campaigns are also prepared for alerting. Appends a dated health-check row for every campaign to a Google Sheets “health log” sheet. Posts a Slack Incoming Webhook message for fix_first and kill_or_rebuild campaigns including the score, primary bottleneck, and diagnosis. Setup Add Google Sheets credentials and select the document and sheet for both reading campaign metrics and appending to the health log. Ensure your metrics sheet h
Unpublish expired YouTube videos using Google Sheets and Slack
Quick Overview This workflow runs daily and checks a Google Sheets embargo schedule for YouTube videos whose unpublish date has passed, then updates their privacy status on YouTube and logs the result back to the sheet while sending a recap (or “nothing due”) message to Slack. How it works Runs every day at 6am on a schedule trigger. Reads your embargo control spreadsheet from Google Sheets. Selects videos whose “Unpublish Date” is today or earlier (using a configured timezone), skips rows already marked Expired, and defaults the target privacy status to private when missing. For each due video, fetches the current video snippet and status from YouTube. If the video is not already at the target privacy status, updates the video on YouTube to private or unlisted while preserving its existing title and category. Updates the matching row in Google Sheets to Status = Expired and writes an “Unpublished At” timestamp, then posts a Slack recap of the processed videos. If no videos are due, posts a “nothing due” notice to the configured Slack channel. Setup Add a YouTube (Google) OAuth2 credential with permission to read and update videos, and select it in both YouTube steps. Add a Google
Audit YouTube video metadata changes with Google Sheets and Slack
Quick Overview This workflow runs daily to fetch all videos from a YouTube channel, compare key metadata fields against a prior snapshot stored in Google Sheets, log any differences, and optionally post a summary to Slack. How it works Runs every day at 08:00 on a schedule. Reads your YouTube channel’s uploads playlist and retrieves each video’s current title, description, tags, privacy status, and category. Loads the previous snapshot from Google Sheets and compares the tracked fields to detect added, removed/hidden, or changed metadata. When changes are found, appends each changed field (old value vs new value) to a Google Sheets change log. Clears and rewrites the snapshot in Google Sheets with the latest metadata so the next run compares against today’s baseline. Posts a summary to a Slack channel when changes are detected (or when alwaysNotify is enabled). Setup Add a YouTube (Google) OAuth2 credential and set your target channel ID in the audit options. Add a Google Sheets credential, set the spreadsheet ID, and ensure your spreadsheet has a Snapshot tab and a Change Log tab mapped in the Google Sheets steps. Add a Slack credential and set the target Slack channel ID for the
Normalize YouTube video tags using Google Sheets vocabulary rules
Quick Overview This workflow loads a tag vocabulary from Google Sheets, scans your YouTube channel’s recent videos, normalizes each video’s tags to match alias/banned/required rules, and updates only the videos whose tag set changes. How it works Runs manually to start the tag normalization process. Reads controlled-vocabulary rules from Google Sheets, including alias mappings, banned tags, and required baseline tags. Lists up to 50 videos from the specified YouTube channel and fetches each video’s snippet details, including tags, title, and category. Normalizes tags by lowercasing and cleaning them, converting aliases to canonical tags, removing banned tags, deduplicating, adding required tags, and truncating to YouTube’s tag character limit. Compares the normalized tag set to the current tags and keeps only videos where the tags changed. Updates the tags on the changed videos in YouTube while preserving the existing title and category. Setup Add a YouTube (Google) OAuth2 credential for the YouTube nodes and ensure it has permission to update videos on your channel. Add a Google Sheets credential, set the spreadsheet ID and sheet/tab to the vocabulary document, and ensure it is ac
Audit page schema and AI citation signals with GPT-4o-mini and Google Sheets
Quick overview This workflow reads page URLs from Google Sheets, fetches each page to extract schema and SEO freshness signals, uses OpenAI GPT-4o-mini to assess entity consistency and generate recommended JSON-LD, then writes an audit row with scores and prioritized gaps back to Google Sheets. How it works Runs manually to start an audit of all rows in the Google Sheets pages tab. Fetches each page_url over HTTP and parses the HTML to extract JSON-LD schema types, dates, author signals, canonical/robots tags, title/H1 query match, and a short content excerpt. Sends the extracted signals and excerpt to OpenAI (gpt-4o-mini) to score entity consistency, rank the biggest citation-impact gaps, and (when needed) generate a paste-ready JSON-LD block using placeholders for unknown values. Combines a deterministic technical checklist score with the OpenAI entity score into a weighted overall audit score and formats the top gaps and issues. Appends the full audit result (including scores, gaps, and recommended JSON-LD) to the Google Sheets audit tab with the run date. Setup Create an OpenAI HTTP Header Auth credential with Authorization: Bearer for calls to the Chat Completions API. Add a G
Generate and vet ad creative with OpenAI, Spendict, Google Sheets, and Slack
Quick overview This workflow collects a product brief via an n8n form, uses OpenAI to generate ad variants, gates each one with Spendict run/fix/kill scoring, auto-rewrites fixable ads, logs approved results to Google Sheets, and posts an approval count to Slack. How it works Receives a product brief from an n8n form submission with product, platform, audience, and desired variant count. Sends the brief to OpenAI Chat Completions to generate multiple ad variants (headline + primary text) in JSON. Splits the OpenAI response into individual variants and submits each one to Spendict’s /assess endpoint for a launch recommendation and score. Routes variants by Spendict verdict: “run” is accepted, “fix_first” is rewritten with the prioritized fixes and re-scored by Spendict, and “kill” is collected as rejected output. Combines accepted and auto-fixed variants and appends them as rows in Google Sheets with status, copy, platform, verdict, and score. Aggregates the logged approved variants and posts a summary message to Slack via an incoming webhook. Setup Add HTTP Header Auth credentials for OpenAI (Authorization: Bearer ) in both OpenAI HTTP Request steps. Add HTTP Header Auth credential
Generate and score Google Maps leads with Gemini, Apify, and Google Sheets
Quick overview Youtube Video:https://youtu.be/NGruDecKxAg?si=ot9pj6IN4IoLstow This workflow takes a chat-based search request, scrapes matching businesses from Google Maps using Apify, scores and ranks them with Google Gemini, deduplicates against an existing Google Sheet by placeId, saves new leads to the sheet, and returns a formatted results message to the chat. How it works Receives a message from an n8n chat trigger containing the user’s Google Maps lead search request. Sends the request to Google Gemini to extract structured search parameters (business type, location, max results, and output mode). Calls an Apify Google Maps scraping actor with the extracted parameters and selects a clean set of lead fields from the results. Removes duplicate businesses based on Google Maps placeId and batches the remaining leads into a single list. Sends the lead list to Google Gemini to add a 0–100 score and short reason to each lead and returns them sorted by score. Checks the scored leads against existing rows in Google Sheets and filters out any placeId values that are already saved. Appends or updates the new leads in Google Sheets and returns a formatted ranked lead list back to the ch
Calculate court deadlines with Google Calendar, Outlook, and Clio
Quick overview This workflow receives a webhook with a trigger date and deadline rules, calculates court deadlines (skipping weekends and US federal holidays for business-day rules), then creates matching events in Google Calendar or Microsoft Outlook, creates high-priority tasks in Clio, logs each deadline to a Google Sheets audit sheet. How it works Receives a POST webhook request containing a matter ID, trigger date, optional rule set, and the target calendar platform. Validates the payload and stops early if the matter ID is missing or the trigger date is not in YYYY-MM-DD format. Calculates one deadline per rule using calendar-day or business-day offsets that skip weekends and US federal holidays. Creates a calendar entry for each deadline in Google Calendar (all-day) or Microsoft Outlook via Microsoft Graph (timed), depending on the requested platform. Creates a high-priority pending task in Clio for each deadline and links it to the provided Clio matter ID. Appends one audit row per deadline to the “Audit Log” tab in the OPS1 Compliance Log Google Sheet. Setup Configure the webhook URL in the system that triggers deadline creation and ensure it sends at least matter_id and t
Classify documents and extract invoice data with LDXhub AnalyzeDoc and Google Sheets
Quick overview This workflow collects uploaded PDFs or images, classifies each document type using LDXhub AnalyzeDoc, and routes it accordingly; invoices get high-detail field extraction and are appended as a new row in Google Sheets. How it works Receives a file upload through an n8n form for a PDF, JPG, or PNG business document. Sends the file to LDXhub AnalyzeDoc (low-detail) to classify it as invoice, receipt, business_card, contract, blank, or other. Parses the returned JSON and routes the execution based on the detected document_type. For invoices, reattaches the original uploaded file and runs LDXhub AnalyzeDoc (high-detail) to extract key invoice fields in structured JSON. Flattens the extracted fields and appends them as a new row in a selected Google Sheets worksheet. For receipts, business cards, and other types, sends the item to placeholder routes where you can add your own processing. Setup Create an LDXhub account, generate an API key, and configure an LDXhub API credential in n8n for both AnalyzeDoc steps. Connect a Google Sheets OAuth2 credential and select the target spreadsheet and worksheet in the append step. Ensure the first row of your sheet contains headers
Calculate Shopify variant prices from Google Sheets with Slack approvals
Quick overview Video Explanation: https://youtu.be/_geRatkc1kU?si=qALW_nrPrNB4THuO This workflow runs daily to calculate Shopify variant prices from Google Sheets COGS inputs, automatically updates qualifying prices in Shopify, and posts Slack alerts for changes that need manual approval; it also supports Slack-based approvals to apply a proposed price from a Slack thread. How it works Runs every day on a scheduled trigger. Reads product dependency/recipe data from Google Sheets and looks up the latest supplier prices in a second Google Sheets sheet. Calculates raw COGS, landed COGS (with hidden cost percentage), and a target-margin retail price for each Shopify variant. Checks the calculated price against thresholds and either updates the Shopify variant price via the Shopify Admin API or posts an approval-required alert to Slack. Posts a Slack confirmation message when a scheduled Shopify price update succeeds. Triggers on Slack reaction events, verifies an authorized Slack user approved the change, then fetches the Slack thread replies and extracts the variant ID and approved price. Updates the Shopify variant price with the extracted value and posts a final status message to Sl
Extract meeting decisions and action items with LDX hub (Gemini) and Google Sheets
Quick overview This workflow collects a meeting-minutes PDF via an n8n form, uses LDX hub (Gemini) to segment it by agenda and extract decisions and action items, then appends each item as a row in Google Sheets. How it works Receives a PDF upload through an n8n form submission trigger. Sends the document to LDX hub AnalyzeDoc (Google Gemini) to split the minutes into agenda-topic segments and return them as structured JSON — a topic that spans multiple pages stays in one segment. Converts the agenda segments into a JSONL batch so each segment can be processed independently. Sends the batch to LDX hub StructFlow (Google Gemini) to extract every decision and action item with owner and due date per agenda segment. Expands the extracted results into one row per decision/action item with agenda context. Appends the rows to a selected Google Sheets worksheet. Setup Install the n8n-nodes-ldxhub community node and create an LDXhub API credential. Create a Google Sheet with columns: agenda_no, agenda_title, item_type, item, owner, due_date. Add a Google Sheets OAuth2 credential and select the target spreadsheet and sheet in the append step. Activate the workflow and use the generated form
Log nearby businesses from OpenStreetMap to Google Sheets by proximity
Quick overview This workflow collects a location and business search criteria via an n8n form, geocodes the location with OpenStreetMap Nominatim, finds nearby matching businesses using the Overpass API, and appends normalized results (including website availability) to a Google Sheets spreadsheet. How it works Receives a submission from an n8n form with a location, business category, search radius, and maximum results. Sends the location text to OpenStreetMap Nominatim to retrieve latitude and longitude coordinates. Stops if the location cannot be geocoded, preventing an invalid proximity search. Builds an Overpass QL query for the selected business category and radius around the geocoded coordinates. Calls the OpenStreetMap Overpass API to return matching nodes/ways and their tags (for example website, phone, and opening hours). Normalizes the returned elements into a consistent set of fields, flags whether a website is present, and appends the rows to Google Sheets. Setup Add a Google Sheets credential and select the target spreadsheet and sheet in the Google Sheets append step. Update the User-Agent value to include a real contact email to comply with OpenStreetMap usage policy
Track buyer query citation sources with GPT-4o and Google Sheets
Quick overview This workflow tracks which sources ChatGPT cites for buyer queries.vIt runs weekly to test buyer queries against OpenAI’s GPT-4o web search, extracts the cited URLs, and logs per-query citation counts and domain classifications to Google Sheets. How it works Runs every week on a schedule trigger. Reads a list of buyer queries (including brand and competitor context) from the queries tab in Google Sheets. Sends each query to OpenAI’s gpt-4o-mini-search-preview three times with web search enabled and extracts the url_citation annotations from each response. Aggregates citations per query and domain, calculating citation totals and a sample hit rate across the three runs. Sends the unique cited domains to OpenAI’s gpt-4o-mini to classify each domain into a source taxonomy (brand site, competitor site, review platform, community, publisher, or docs/other). Appends the aggregated rows with the domain classification and an example URL to the citations tab in Google Sheets. Setup Add an OpenAI API key as an HTTP Header Auth credential (Authorization: Bearer YOUR_KEY) for both OpenAI HTTP requests. Add a Google Sheets credential with access to the target spreadsheet. Create
Extract invoice data into Google Sheets with LDX hub AnalyzeDoc Gemini
Quick overview This workflow collects an invoice PDF or image through an n8n form, uses LDX hub AnalyzeDoc (Gemini) to extract key invoice fields as JSON, and appends the results as a new row in Google Sheets. How it works Receives an invoice file upload (PDF/JPG/PNG) through an n8n form submission. Sends the uploaded document to LDX hub AnalyzeDoc (google/gemini-3.5-flash) with a prompt that extracts invoice metadata, parties, dates, and amounts into a JSON schema. Parses the extracted JSON into structured fields for downstream use. Appends the extracted invoice fields as a new row in the selected Google Sheets spreadsheet and worksheet. Setup Install the community node package n8n-nodes-ldxhub and create an LDXhub API credential (API key) for the AnalyzeDoc node. Add a Google Sheets OAuth2 credential and select the target spreadsheet and sheet in the Google Sheets append step. Create a header row in your Google Sheet that matches the extracted fields (invoice_number, issue_date, due_date, vendor_name, vendor_address, vendor_tax_id, bill_to, subtotal, tax, total, currency, payment_terms) so auto-mapping writes to the correct columns.
Score draft content citability with GPT-4o-mini and Google Sheets
Quick overview This workflow manually scores draft content for AI citability using OpenAI GPT-4o-mini and logs detailed, evidence-backed results to Google Sheets, either from pasted draft text or by fetching and cleaning a provided page URL. How it works Starts when you run the workflow manually. The workflow reads drafts from the content tab of your Google Sheet (content_id, title, brand, target_query, draft_text). A Code node validates each row, computes word count, and builds the full judge payload. The complete anchored rubric lives in this node, so the entire scoring methodology is readable in one place. One HTTP call per draft sends the rubric and draft to gpt-4o-mini (temperature 0, JSON mode, retries with backoff). The rubric anchors describe what a 90, 70, 50, and 30 look like on each dimension, so the judge grades against fixed criteria. A second Code node parses the judge output, clamps each score to 0-100, computes the weighted composite (Answer Structure 40%, Entity Clarity 30%, Factual Density 30%), and assigns the verdict band: 80+ publish, 60-79 revise, below 60 rework. Results append to the scores tab with the run date, per-dimension scores, the top 3 fixes, the ju
Enrich Google Maps business leads with Scrapeer and Google Sheets
Quick Overview This workflow runs a saved Scrapeer Google Maps Leads flow on a daily schedule (or manually), enriches each business with detail-page data, and appends the normalized lead fields to a Google Sheets tab. How it works Runs either manually or every day at 08:00 using the schedule trigger. Sets the Google Maps search parameters (search query, location, max results) and the target spreadsheet name for the run. Calls Scrapeer to run a selected Google Maps Leads flow with those input variables and waits for the results. Attaches the original search context to the Scrapeer output for traceability. Parses and deduplicates the returned leads, normalizes fields like rating and review count, and formats phone numbers as sheet-safe text. Appends one row per lead to Google Sheets with columns such as name, category, rating, reviews, address, phone, website, and Google Maps URL. Setup Create (or choose) a Google Sheets spreadsheet with a “Leads” tab and columns: Scraped At, Search Query, Location, Name, Category, Rating, Reviews, Address, Phone, Website, and Google Maps URL. Add a Google Sheets Service Account credential in n8n and select the target spreadsheet and sheet tab in the
Extract business card contacts with LDX hub Gemini AnalyzeDoc and Google Sheets
Quick overview This workflow collects a business card photo/scan through an n8n form, uses LDX hub AnalyzeDoc (Gemini) to extract contact details as structured JSON, and appends the resulting fields as a new row in Google Sheets. How it works Receives a business card file upload (PDF/JPG/PNG) through an n8n form submission. Sends the uploaded file to LDX hub AnalyzeDoc using the Gemini model and a fixed schema prompt to extract contact fields as JSON. Parses the extracted JSON into individual fields like name, company, email, phone numbers, and address. Appends the extracted fields as a single new row in the selected Google Sheets worksheet. Setup Install the community node n8n-nodes-ldxhub and add an LDXhub API credential with your API key. Add a Google Sheets OAuth2 credential and select the target spreadsheet and worksheet in the append step. Create (or match) a header row in your sheet for full_name, job_title, company, department, email, phone, mobile, address, website, notes so the auto-mapping writes to the correct columns.
Track brand visibility in ChatGPT results with OpenAI and Google Sheets
Quick overview This workflow runs weekly, reads buyer-style queries from Google Sheets, asks OpenAI Chat Completions (ChatGPT) each query three times, judges whether your brand is mentioned, and writes per-query visibility metrics and a 0–100 score back to a Google Sheets results tab. How it works Runs every week on a schedule trigger. Reads the query set (query, brand, and competitors) from a Google Sheets tab named queries. Duplicates each query into three sample runs to account for variation in OpenAI responses. Sends each sample query to OpenAI Chat Completions (gpt-4o-mini) to generate an answer at temperature 1. Sends the generated answer to a separate OpenAI Chat Completions judge call (gpt-4o-mini) at temperature 0 to extract structured JSON about brand mention, rank, sentiment, recommendation, and competitors mentioned. Aggregates the three judged samples per query to compute inclusion rate, average rank/sentiment, and a weighted 0–100 visibility score. Appends the per-query results (including the run date and metrics) to the results tab in Google Sheets. Setup Add an OpenAI credential for HTTP Header Auth using Authorization: Bearer . Add a Google Sheets credential with a
Route ecommerce review alerts from Gmail to Slack with OpenAI and Google Sheets
Quick Overview This workflow polls Gmail for unread ecommerce review notification emails, extracts key review details, checks Google Sheets to prevent duplicate processing, uses OpenAI to classify sentiment and urgency, posts routed alerts to Slack, and logs each processed review and its AI metadata back to Google Sheets. How it works Polls Gmail every minute for unread emails with the “Reviews” label. Extracts the message ID, received time, customer details, product name, star rating, and review text from the email content. Reads the existing review audit log from Google Sheets and skips processing if the message ID already exists or the review text is too short. Sends the review details to OpenAI to return a JSON classification with sentiment, urgency, themes, summary, suggested action, and a sentiment score. Routes the review based on sentiment and urgency, escalating low-star or high-urgency negative reviews and optionally notifying on positive reviews. Posts a formatted alert to the selected Slack channel when notification is enabled. Appends the review (including route, AI fields, and whether Slack was notified) to Google Sheets as an audit log. Setup Create a Gmail label (fo
Collect local business leads from Google Maps with ScraperAPI and Google Sheets
Quick Overview This workflow collects local business leads from Google Maps using ScraperAPI and stores them in Google Sheets, letting you submit a niche and location via an n8n form and automatically deduplicate and append new businesses to your leads spreadsheet. How it works Creates a new Google Sheets spreadsheet with a “Leads” tab when you run the manual setup trigger. Triggers when a user submits the “Find local business leads” n8n form with a niche, location, and optional max results. Builds a Google Maps search query from the form inputs and reads existing rows from the target Google Sheet for deduplication. Uses ScraperAPI’s Google Maps Search to fetch metadata for the query, then extracts the results-page URL and fetches the autoparsed Google Maps results. Parses the returned businesses into lead fields (for example name, phone, address, website, rating, coordinates, and a Google Maps link) and filters by the minimum rating setting. Removes businesses already present in the sheet (matched by name + address), caps the batch to the requested maximum, and appends the new leads to Google Sheets. Setup Add Google Sheets credentials in n8n and select the target Spreadsheet ID a