Google Sheets workflows
4,090 results — 488 downloadable workflow files, 3,602 source-linked n8n references
Assist hospital doctors via Telegram with OpenAI, Google Sheets, Gmail and Slack
Quick overview This workflow combines a Telegram doctor bot, OpenAI, Google Sheets, Gmail, Slack, and a webhook to summarize PDF reports, generate and email discharge summaries, analyze lab values, report bed availability, send daily patient follow-ups, and post error alerts. How it works Runs every day at 9:00 AM to read patient records from Google Sheets, filter those due for follow-up today with a Pending status, send each patient a Telegram check-in, and mark the follow-up as Sent. Triggers when a doctor sends a Telegram message and routes it based on whether it includes a document or a supported command. If a PDF is attached, downloads it from Telegram, extracts the text, uses OpenAI (gpt-4o-mini) to create a short clinical summary, logs the result to a Google Sheets Reports tab, and replies to the doctor on Telegram. If the message starts with "/discharge PATIENTID", extracts the patient ID, looks up the patient in the Google Sheets Patients tab, uses OpenAI (gpt-4o-mini) to generate a discharge summary, saves it back to Google Sheets, emails it to the patient via Gmail, and confirms completion on Telegram. If the message starts with "/labs", sends the provided lab values to
Manage clinic appointments and prescriptions with Telegram, Gmail and Google
Quick overview This workflow manages clinic appointments across Google Sheets and Google Calendar, using webhooks and Telegram to book and confirm visits, Gmail and Telegram to deliver prescriptions, scheduled Telegram reminders for upcoming appointments, and Slack notifications for workflow errors. How it works Receives a POST webhook request to book an appointment, generates a Booking ID, stores the booking in Google Sheets, and notifies the doctor via Telegram. Triggers when a patient messages your Telegram bot, extracts the Booking ID from the message, and replies with instructions if the ID is missing or invalid. When the Booking ID is valid, updates the matching Google Sheets row to Confirmed, sends a confirmation message to the patient on Telegram, and creates a Google Calendar event. Reads the confirmed appointment details from Google Sheets and sends the full patient and appointment information to the doctor via Telegram. Receives a POST webhook request with post-visit prescription details, updates the matching Google Sheets row to “Prescription Sent,” emails the prescription link and medicines to the patient via Gmail, and sends the same details via Telegram. Runs every h
Send ranked freight quote PDFs with GPT-4o, Google Sheets, Gmail and PDFShift
Quick overview This workflow receives shipment requests via webhook, pulls carrier rate data from Google Sheets, uses OpenAI GPT-4o to generate a ranked HTML freight quote, converts it to a PDF with PDFShift, and emails the PDF to the customer via Gmail, with Slack alerts on workflow errors. How it works Receives a POST webhook request containing shipment details like origin, destination, weight, mode, and customer contact information. Reads rate information in parallel from three carrier tabs in a Google Sheets spreadsheet (BlueDart, DTDC, and Delhivery). Combines the carrier results and calculates per-carrier total cost based on the shipment weight. Sends the shipment and carrier data to OpenAI GPT-4o to generate a complete HTML quote page with a ranked comparison table. Converts the generated HTML into an A4 PDF file using the PDFShift API. Emails the PDF quote to the customer using Gmail with a prefilled subject and message. If the workflow fails, posts an error alert message to a Slack channel. Setup Configure the webhook path in n8n and copy the production webhook URL into the system that submits shipment requests. Add Google Sheets OAuth2 credentials and ensure the reference
Validate invoice tax compliance from Gmail using Groq, Notion, and Google Sheets
Quick overview This workflow monitors a Gmail inbox for PDF invoices, uses Groq (Llama 3.3) to extract structured invoice fields, validates the invoice against Purchase Orders in Google Sheets and tax rules in Notion, logs an audit entry to Notion, and notifies Slack and the supplier based on pass/fail. How it works Triggers every minute when a new email arrives in Gmail and downloads the attached PDF invoice. Extracts text from the PDF and sends it to Groq (Llama 3.3) to parse invoice fields into a structured JSON schema, including SEZ/LUT detection. Looks up the referenced PO number in Google Sheets and fetches applicable tax rules from a Notion database. Validates the invoice against the PO (existence, approval status, currency, and total amount) and against Notion tax rules (SEZ/import/domestic matching and GST expectations). Writes the compliance result, matched rule, and any violations to a Notion “Compliance Audit Log” database. If the invoice passes, posts an approval message to Slack and archives the PDF to a Google Drive folder. If the invoice fails, posts a blocking alert to Slack and emails the supplier a rejection notice listing the violations. Setup Connect your Gmail
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
Track meal nutrition from photos with LINE, Google Gemini and Google Sheets
Quick Overview This workflow receives meal photos via LINE, uses Google Gemini to estimate nutrition facts and generate advice, stores the photo in Google Drive, logs the results to Google Sheets, and replies to the user in LINE with a formatted analysis. How it works Receives a POST webhook event from LINE when a user sends a message. Checks whether the incoming LINE message contains an image and stops processing if it does not. Downloads the image content from the LINE Messaging API and sends it to Google Gemini to identify foods, estimate nutrition values, and generate health guidance. If the AI response indicates the image is not food, sends a LINE push message asking the user to submit a clearer meal photo. If the AI response is valid, parses the returned text into structured fields (food items, macros, calories, score, and advice) and calculates remaining calories based on a daily goal. Uploads the meal photo to Google Drive, appends the nutrition log (including the Drive image URL) to Google Sheets, and sends the formatted nutrition summary back to the user via LINE. Setup Create a LINE Messaging API channel, enable the webhook, and add the workflow’s webhook URL (the /MealT
Re-engage dormant real estate leads with Google Sheets, Gemini and Gmail
Quick Overview This workflow runs daily to find dormant real estate leads in Google Sheets, uses Google Gemini to draft personalized winback emails, sends them via Gmail, updates the lead records, and then posts a run summary digest to Gmail and optionally to Slack. How it works Runs every day at 8am on a schedule. Pulls all lead records from a Google Sheets spreadsheet. Filters to leads that have an email address, are not marked “Do Not Contact,” and have not been contacted in at least 30 days. Processes each dormant lead in turn by prompting Google Gemini to generate a short re-engagement email subject and body based on the lead’s name, property interest, and days since last contact. Sends the generated message to the lead via Gmail and updates the corresponding row in Google Sheets (for example, tracking status and re-engagement attempt count). Aggregates the run results and sends a summary digest to a specified Gmail address and to a Slack channel. Setup Connect credentials for Google Sheets, Gmail, and Google Gemini (PaLM) API. Select the Google Sheets document and sheet name for both the lead fetch and lead update steps, and ensure your sheet includes fields like Email, Statu
Send railway queue predictions with OpenAI GPT-4o-mini, Gmail, and Google Sheets
Quick overview This workflow collects train trip details via an n8n Form, predicts station crowding and queue times with a rule-based algorithm, generates a short advisory with OpenAI, then emails a color-coded HTML alert via Gmail and logs each prediction to Google Sheets. How it works Receives a submission from an n8n Form containing the traveler’s train, station, date/time, class, e-ticket status, passenger count, and email. Calculates a crowd score, alert level, queue-time breakdown (platform, ticket counter, security, walking), and an optimal station arrival time using an in-workflow rules engine. Sends the prediction context to OpenAI Chat Completions (gpt-4o-mini) to generate a plain-text, under-120-word travel advisory. Combines the advisory with the prediction results and assigns alert colors and text based on the computed alert level. Builds a color-coded HTML email summarizing the recommended arrival time and queue breakdown. Appends the prediction details to a Google Sheets tab and sends the HTML alert email to the traveler via Gmail. Setup Add an OpenAI API credential for the HTTP request to https://api.openai.com/v1/chat/completions. Connect Google Sheets OAuth2 and r
Screen candidate CVs with Google Gemini, Google Sheets, and Gmail
Quick overview This workflow collects candidate applications via an n8n form, extracts text from uploaded PDF CVs, compares each CV to a job description stored in Google Sheets using Google Gemini (via OpenRouter), logs screening results back to Google Sheets, and creates a Gmail draft email for HR review. How it works Candidate submits the n8n-hosted form with their details and a PDF CV. Two operations run in parallel: CV text is extracted from the uploaded PDF, and the matching Job Description is fetched from Google Sheets using the role the candidate entered. Gemini Flash evaluates the CV against the JD and returns a structured recommendation: Strong Interview, Interview, Borderline, or Do Not Proceed, along with a score, matched skills, gaps, and a plain-text summary. The full screening record is logged to a Screening Results tab in Google Sheets. A Gmail draft is created for HR to review and send: a shortlist notification for Interview and above, a rejection for Borderline and below. Setup Open the Config node and fill in spreadsheet_id, jd_sheet_gid, results_sheet_gid, and company_name. Create two tabs in your Google Sheet: Job Description (columns: job_id, title, department,
Transcribe audio to text via webhook with Smallest.ai speech-to-text
Quick Overview This workflow exposes a POST webhook endpoint that accepts a binary audio file, transcribes it to text using Smallest.ai speech-to-text, and returns the transcript in the same synchronous HTTP response. How it works Receives an HTTP POST request on the /transcribe-audio webhook endpoint containing an audio file as binary data. Sends the incoming binary audio (from the audio property) to Smallest.ai for speech-to-text transcription. Extracts the returned transcription and formats it into a transcript field. Responds to the original webhook request with the transcript payload. Setup Create and connect your Smallest.ai API credentials in the Smallest.ai transcription step. Activate the workflow to generate the production webhook URL and use it in your client application. Ensure your client sends the audio file as binary under the audio property when calling the webhook.
File Google Drive inbox documents into dated folders with a Google Sheets audit log
Quick overview This workflow monitors a Google Drive inbox folder for new files, classifies them by filename regex rules, files them into a Year/Month/Type folder structure in Google Drive, and logs each success or failure to a Google Sheets audit log. How it works Triggers every minute when a new file is created in a selected Google Drive folder. Evaluates the filename against configurable regular-expression rules to assign a document type, derive the year/month from the file’s created time, and build a destination path. Uses the planned destination root to find or create the required year folder, then the month folder, then the type folder in Google Drive. Moves the file into the final type folder. Appends a “Filed” audit row to Google Sheets with timestamp, original filename, matched rule, destination path, and file ID. If any step errors, appends a “Failed” audit row to Google Sheets with error details so the run continues. Setup Add Google Drive OAuth2 credentials, select the inbox folder to watch, and ensure the archive root is a different Google Drive folder to avoid reprocessing filed files. In the rules script, paste your archive root folder ID and adjust the filename rege
Triage PubMed clinical literature with Gemini and Google Sheets and Docs
Quick overview Automatically retrieve recent PubMed articles, identify the three papers most worth reading first using AI, and generate structured clinical literature triage reports in Google Sheets and Google Docs. How it works Reads the first pending literature request from the Google Sheets "Search Requests" tab. Marks the request as “processing” in Google Sheets and builds the PubMed query parameters (keyword, max results, specialty, clinical question, and output language). Searches PubMed via the NCBI E-utilities API (esearch) and fetches the corresponding article abstracts and metadata as XML (efetch). Parses and normalizes the XML into a structured list of candidate articles including title, abstract, journal, publication year, DOI, and PubMed URL. Sends the aggregated candidate articles to Google Gemini to select and rank the best three papers and generate a structured clinical evaluation for each. Appends the three ranked papers with summaries and triage fields to a Google Sheets “Triage Results” tab. Generates a formatted triage report in Google Docs and updates the original request status to “completed” in Google Sheets. Setup Create a Google Sheets OAuth connection and
Analyse tender PDFs with LlamaParse, Gemini, Supabase and WhatsApp chat
Quick overview This workflow lets you upload a tender/RFT PDF via an n8n form, extracts key fields into Google Sheets using LlamaParse, and makes the document chat-searchable by embedding section chunks with Google Gemini and storing them in Supabase for WhatsApp-based Q&A with Anthropic/DeepSeek. How it works Receives a tender PDF when a user submits the n8n form. Generates a normalized document ID from the uploaded filename and sends the PDF to LlamaParse to parse the full text, split it into predefined tender sections, and extract structured tender metadata. Normalizes the extracted fields, calculates days-until-deadline and a bid score/recommendation, and appends or updates a row in a Google Sheets tender tracker. Combines the parsed full text with the section/page mapping, then carves each section into paragraph-aligned text chunks with page references. Creates an embedding for each chunk using the Google Gemini Embeddings API and inserts the chunk text and vectors into a Supabase table for retrieval. Triggers on an incoming WhatsApp message, embeds the user’s question with Google Gemini, runs a Supabase RPC vector search scoped to a single doc_id, and builds a context payload
Send AI study reports and spaced-repetition reminders via OpenAI, Sheets and Gmail
Quick overview This dual-trigger workflow logs daily study sessions from an n8n Form, analyzes them with OpenAI, stores results in Google Sheets, and emails a full coaching report via Gmail; it also runs daily at 7 AM to email each student revision reminders based on spaced-repetition dates. How it works Receives a study-session submission through an n8n Form. Validates the submitted fields and calculates spaced-repetition revision dates (Day+1, +3, +7, +14). Sends the session details to OpenAI Chat Completions and parses the returned JSON coaching analysis (score, feedback, plan, and quiz). Reads the existing Google Sheets Daily Log to find any prior sessions for the same student that are due for revision on the submitted date. Builds an HTML email combining the AI report, today’s revision-due items, and the new revision schedule, then appends the new session to Google Sheets. Sends the full daily study report to the student via Gmail. Runs every day at 7 AM, reads all Google Sheets logs, finds revision items due today per student, and emails each student a morning revision reminder via Gmail. Setup Add an OpenAI API credential and ensure the Chat Completions request is authorized
Screen and route candidate CVs with OpenRouter, Google Drive, Sheets, and Gmail
Quick overview This workflow receives candidate CVs via a webhook, extracts text from PDF, DOCX files, looks up the matching job description in Google Sheets, runs a three-agent evaluation using OpenRouter models, then uploads the CV to Google Drive, logs results to Google Sheets, and sends or drafts emails in Gmail. How it works Receives a CV submission via a POST webhook that includes candidate details, an applied job ID, and a CV file. Normalizes the intake data, timestamps the submission, and fetches the matching job description from Google Sheets using the applied job ID. Extracts CV text by either parsing the PDF directly or converting a DOCX/DOC to a Google Doc in Google Drive and exporting it as plain text. Detects whether the CV is Vietnamese or not and uses OpenRouter (Qwen for Vietnamese or Google Gemini for others) to parse the CV into a structured Candidate Profile JSON. Uses OpenRouter (Anthropic Claude Sonnet) to compare the Candidate Profile against the job description, then generates a hiring-manager style review and recommendation based on the ATS evaluation. Uploads the original CV to a recommendation-based Google Drive folder, logs the full screening record (inc
Extract purchase order line items from PDFs with easybits and Google Sheets
Quick overview This workflow collects purchase order PDFs through an n8n form, extracts header fields and line-item tables with easybits Extractor, appends one row per article to Google Sheets, and shows a completion summary highlighting any missing or incomplete extracted fields. How it works Receives a form submission with one or more uploaded purchase order PDF files. Splits the upload into one workflow item per PDF and processes the PDFs one at a time. Sends each PDF to easybits Extractor to extract purchase order header details and the articles table. Flattens the extracted articles into one row per line item, repeats the PO header fields on each row, and records per-document flags for missing header values or incomplete article fields. Appends the generated rows to a Google Sheets worksheet. After all PDFs are processed, builds a summary of any flagged documents and displays it on the n8n form completion screen. Setup Create an easybits Extractor account, generate an API key, add it as an easybits Extractor credential, and configure the extractor fields (mark_for, po_number, po_date, delivery_date, pr_number, reference_no, and an articles array with article/unit/quantity). Ad
Process prescription orders and refills with Telegram, Google Gemini and Sheets
Quick overview This workflow lets customers order and refill prescriptions via Telegram by extracting medicines from prescription images with Google Gemini, checking and updating inventory in Google Sheets, and sending order summaries and status updates, with delivery updates handled by a webhook and error alerts posted to Slack. How it works Triggers when a Telegram message is received, normalizes it, and routes it based on whether it contains a prescription image/document or the REFILL, STATUS, or CONFIRM command. For prescription images/documents, it downloads the file from Telegram and uses Google Gemini vision to extract medicines, dosages, and quantities from the prescription. It looks up each extracted medicine in a Google Sheets Inventory tab, deducts stock for items that are available, and aggregates the priced order lines. It creates a new pending order in a Google Sheets Orders tab and sends the customer a Telegram order summary with the total and a prompt to reply CONFIRM. For STATUS/REFILL/CONFIRM messages, it reads the relevant order from Google Sheets, sends the current status via Telegram, creates a new pending refill order, or updates the pending order status to co
Manage restaurant orders, upsells, and payments with Telegram, OpenAI, Razorpay, and Google Sheets
Quick overview This workflow runs a Telegram restaurant ordering flow that uses OpenAI to parse orders and suggest an upsell, sends a Razorpay payment link, confirms paid orders via a Razorpay webhook, logs orders and feedback in Google Sheets, notifies the kitchen, sends delivery updates, and posts error alerts to Slack. How it works Receives a customer’s order message in Telegram and sends it to OpenAI to extract items, quantities, subtotal, and a suggested upsell. Replies in Telegram with an order summary and upsell prompt, then waits for the customer to respond. When the customer replies, calculates the final total (including the upsell when accepted) and sends a Razorpay payment link in Telegram. Receives the Razorpay payment.captured webhook, extracts payment details, confirms payment to the customer in Telegram, and posts a kitchen ticket to a dedicated Telegram chat. Appends the paid order to an Orders tab in Google Sheets and calculates ingredient deductions to update the same sheet against the order. Waits through prep and delivery windows and then sends delivery tracking followed by a Telegram feedback request. Captures the customer’s rating in Telegram, calculates loyal
Deploy Gainium DCA bot pairs with Telegram approval and Google Sheets logging
Quick overview This workflow runs daily, pulls top coins from the Gainium crypto screener, formats them into USDT trading pairs, and asks for Telegram approval before updating and starting a Gainium DCA bot, with optional deployment logging to Google Sheets and Telegram error alerts. How it works Runs every day at 08:00 on a schedule. Queries the Gainium screener for coins meeting the configured filters (market cap threshold, Binance listing, positive 24h change) and sorts them by 24h volume. Cleans the screener results and selects the top N unique SYMBOL_USDT pairs. Sends the proposed pairs to Telegram with Deploy/Skip buttons and pauses until you respond. If approved, replaces the Gainium DCA bot’s pairs, starts the bot, appends a deployment row to Google Sheets, and sends a Telegram confirmation. If skipped, leaves the bot unchanged and sends a Telegram message confirming the skip. Sends Telegram alerts if the Gainium screener call fails or if any other workflow node errors. Setup Install the community node n8n-nodes-gainium and add a Gainium API credential with permission to manage your bot. Create a Telegram bot, add a Telegram API credential in n8n, and set your telegram_chat
Triage Typeform survey feedback with GPT-4o-mini, Slack, Gmail, and Sheets
Quick overview This workflow triggers on new Typeform survey responses, uses OpenAI GPT-4o-mini to classify sentiment and draft reply emails, routes negative feedback through a Slack human-approval loop with revisions, sends emails via Gmail, and logs outcomes to a Google Sheets CRM. How it works Triggers when a new Typeform survey response is submitted. Extracts the respondent’s name, email, rating, and free-text feedback and sends it to OpenAI GPT-4o-mini to classify the response as positive or negative. If the response is negative, OpenAI GPT-4o-mini drafts an empathetic follow-up email, posts a Slack alert to the team, and sends the draft to a Slack review channel that waits for a reply. If the reviewer replies with “approved”, the workflow sends the approved draft to the respondent via Gmail and appends a “Sent” record to Google Sheets. If the reviewer requests changes, OpenAI GPT-4o-mini revises the email based on the Slack feedback and the workflow loops back to Slack for another review. If the response is not negative, OpenAI GPT-4o-mini drafts a thank-you email, sends it automatically via Gmail, and logs the sent email to Google Sheets. Setup Connect credentials for Typefo
Draft personalized cold emails from Google Sheets with Apify and GPT-4o mini
Quick overview This workflow reads pending medical or dental practice leads from Google Sheets, scrapes each practice website with Apify, uses OpenAI (gpt-4o-mini) to identify conversion gaps, and drafts a short personalized cold email, then writes the analysis and draft back to the sheet. How it works Manually starts the workflow and reads leads from a Google Sheets worksheet. Filters the rows to only those with Status set to "pending" and processes them one at a time. Uses Apify Website Content Crawler to scrape up to a few pages of each lead’s WebsiteURL and compiles the extracted text into a trimmed site summary. If enough website text is available, sends it to OpenAI (gpt-4o-mini) to produce a strict-JSON analysis of 2–3 concrete booking/chatbot/after-hours/intake gaps and a best outreach angle. Alternates between “soft” and “direct” framing and asks OpenAI (gpt-4o-mini) to generate a short JSON email draft (subject and body) tailored to the selected gap. Updates the matching row in Google Sheets with ScrapedNotes, WeakPoints, DraftEmail, and sets Status to "drafted", then waits briefly before moving to the next lead. If the scrape returns insufficient content, updates the lea
Research Reddit trends and publish LinkedIn posts with Gemini and PostPeer
Quick overview This workflow runs daily, scrapes a selected subreddit with Apify, researches sources via Brave Search and Jina Reader, and uses Eden AI (DeepSeek) plus Google Gemini to draft a LinkedIn post with an image. It logs state in Google Sheets/Drive, sends approval emails, and publishes via PostPeer. How it works Runs daily on a schedule, loads Global Constants, and picks an ACTIVE subreddit row from Google Sheets using a random ID. Scrapes recent posts from that subreddit using an Apify Reddit scraper, then normalizes, scores, and deduplicates candidates. Uses an Eden AI (DeepSeek) agent to vet the candidates and either selects one post idea or stops and records a NO_VIABLE_IDEA entry in Google Sheets and emails the rationale. For a selected idea, a second Eden AI (DeepSeek) agent generates a research brief and up to five Brave Search queries, then Brave Search and Jina Reader collect and extract a small set of non-social sources. A third Eden AI (DeepSeek) agent writes the LinkedIn draft and an accompanying image prompt, then Google Gemini generates the image. Uploads the image to Google Drive, writes the draft and metadata to a Google Sheets post log, and emails a two-s
Monitor AI search citations and competitors with OpenAI, Google Sheets, and Gmail
Quick overview This workflow runs weekly to test whether fairyfrills.in is cited in OpenAI answers to 15 shopping queries, logs citation details to Google Sheets, and emails a weekly HTML visibility report via Gmail, with optional Slack alerts on workflow errors. How it works Runs once a week on a schedule and generates 15 predefined shopping queries along with the target domain, brand name, and competitor domains. Sends each query to two OpenAI models in parallel: gpt-4o-mini (no browsing) and gpt-4o-search-preview (web search with URLs). Splits the two AI answers into separate items per platform and uses OpenAI to extract citation data (target-domain URLs, competitor citations, citation position, and totals) as structured JSON. Parses the extracted citation JSON, formats key fields (including URL lists, counts, and a response preview), and appends one log row per query and platform to a Google Sheets “Citation Log” sheet. After the final query (ID 15) completes, fetches the logged results from Google Sheets, calculates weekly citation metrics and breakdowns, and generates an HTML report. Sends the weekly citation report email through Gmail to the configured recipient. If any node
Capture and route real estate leads with Google Sheets, Gmail, and Slack
Quick overview This workflow captures real estate property inquiries via a webhook, validates and normalizes lead details, upserts the lead into Google Sheets, sends an auto-reply through Gmail, and notifies your team in Slack, with separate handling for high-priority leads and workflow failure alerts. How it works Receives a website property inquiry via a POST webhook. Extracts the lead fields (name, email, phone, property ID, message, source, and timestamp) and rejects invalid submissions with a 400 JSON response explaining what’s missing. Normalizes the lead data by lowercasing the email address and stripping non-numeric characters from the phone number. Classifies the inquiry as high or standard priority based on keywords found in the message and property text. Appends or updates the lead in a Google Sheets CRM table, matching on email to avoid duplicates. Sends a Gmail auto-reply and posts a Slack notification, routing high-priority leads to a senior-agent message and standard leads to the general team. Returns a JSON confirmation to the webhook caller and posts a Slack alert if the workflow errors. Setup Copy the webhook URL from the trigger and configure your website form/ap