by Tom
This workflow sends out email notifications when a new file has been uploaded to Google Drive. The workflow uses two nodes: Google Drive Trigger**: This node will trigger the workflow whenever a new file has been uploaded to a given folder Send Email**: This node sends out the email using data from the previous Google Drive Trigger node.
by Tom
This easy-to-extend workflow automatically serves a static HTML page when a URL is accessed in a browser. Prerequisites Basic knowledge of HTML Nodes Webhook node triggers the workflow on an incoming request. Respond to Webhook node serves the HTML page in response to the webhook.
by Harshil Agrawal
This workflow sends a message on Slack when site deployment fails. Netlify Trigger node: This node triggers the workflow when the site deployment fails. Slack node: This node sends a message on Slack alerting the team about the failed deployment. If you want to send a message to a different platform, replace the Slack node with the node of the respective platform.
by Milan Vasarhelyi - SmoothWork
Video Introduction Want to automate your inbox or need a custom workflow? ๐ Book a Call | ๐ฌ DM me on Linkedin Overview This workflow automates sending personalized SMS messages directly from a Google Sheet using Twilio. Simply update a row's status to "To send" and the workflow automatically sends the text message, then updates the status to "Success" or "Error" based on delivery results. Perfect for event reminders, bulk notifications, appointment confirmations, or any scenario where you need to send customized messages to multiple recipients. Key Features Simple trigger mechanism**: Change the status column to "To send" to queue messages Personalization support**: Use [First Name] and [Last Name] placeholders in message templates Automatic status tracking**: The workflow updates your spreadsheet with delivery results Error handling**: Failed deliveries are clearly marked, making it easy to identify issues like invalid phone numbers Runs every minute**: The workflow polls your sheet continuously when active Setup Instructions Step 1: Copy the Template Spreadsheet Make a copy of the Google Sheets template by going to File โ Make a copy. You must use your own copy so the workflow has permission to update status values. Step 2: Connect Your Accounts Google Sheets: Add your Google account credentials to the 'Monitor Google Sheet for SMS Queue' trigger node Twilio: Sign up for a free Twilio account (trial works for testing). From your Twilio dashboard, get your Account SID, Auth Token, and Twilio phone number, then add these credentials to the 'Send SMS via Twilio' node Step 3: Configure the Workflow In the Config node, update: sheet_url: Paste the URL of your copied Google Sheet from_number: Enter your Twilio phone number (include country code, e.g., +1234567890) Step 4: Activate and Test Activate the workflow using the toggle in the top right corner. Add a row to your sheet with the required information (ID, First Name, Phone Number, Message Template) and set the Status to "To send". Within one minute, the workflow will process the message and update the status accordingly.
by Vytenis
Fully automate deep research from start to finish: scrape Google Search results, select relevant sources, scrape & analyze each source in parallel, and generate a comprehensive research report. Who is this for? This workflow is for anyone who needs to research topics quickly and thoroughly: content creators, marketers, product managers, researchers, journalists, students, or anyone seeking deep insights without spending hours browsing websites. If you find yourself opening dozens of browser tabs to piece together information, this template will automate that entire process and deliver comprehensive reports in minutes. How it works Submit your research questions through n8n's chat interface (include as much context as you need) AI generates strategic search queries to explore different angles of your topic (customize the number of queries as needed) Oxylabs scrapes Google Search results for each query (up to 50 results per query) AI evaluates and selects sources that are the most relevant and authoritative Content extraction runs in parallel as Oxylabs scrapes each source and AI extracts key insights Summaries are collected in n8n's data table for final processing AI synthesizes everything into a comprehensive research report with actionable insights See the complete step-by-step tutorial on the n8n blog. Requirements Oxylabs AI Studio API key** โ Get a free API key with 1000 credits OpenAI API key** (or use alternatives like Claude, Gemini, and local Ollama LLMs) Setup Install Oxylabs AI Studio as shown on this page Set your API keys: Oxylabs AI Studio OpenAI Create a data table Select the table name in each data table node Create a sub-workflow: Select the 3 nodes (Scrape content, Summarize content, Insert row) Right-click Select โConvert 3 nodes to sub-workflowโ Edit the sub-workflow settings for for parallel execution: Mode: Run once for each item Options โ Add Option โ disable โWait For Sub-Workflow Completionโ Once you finish all these setup steps, you can run the workflow through n8n's chat interface. For example, send the following message: I'm planning to build a wooden summer house and would appreciate guidance on the process. What are the key considerations I should keep in mind from planning through completion? I'm particularly interested in the recommended construction steps and which materials will ensure long-term durability and quality. Customize this workflow for your needs Feel free to modify the workflow to fit the scale and final output your project requires: To reuse this workflow, clear the data table after the final analysis by adding a Data table node with the Delete row(s) action Scale up** by processing more search queries, increasing results per query beyond 10, and selecting additional relevant URLs Enable JavaScript rendering** in Oxylabs AI Studio (Scraper) node to ensure all content is gathered Adjust the system prompts** in LLM nodes to fit your specific research goals Explore other AI Studio apps** like Browser Agent for interactive browser control or Crawler for mapping entire websites Connect other nodes** like Google Sheets, Notion, Airtable, or webhooks to route results where you need them
by Shahrear
Automatically process Construction Blueprints into structured Google Sheets entries with VLM extraction What this workflow does Monitors Google Drive for new blueprints in a target folder Downloads the file inside n8n for processing Sends the file to VLM Run for VLM analysis Fetches details from the construction.blueprint domain as JSON Appends normalized fields to a Google Sheet as a new row Setup Prerequisites: Google account, VLM Run API credentials, Google Sheets access, n8n. Install the verified VLM Run node by searching for VLM Run in the node list, then click Install. Once installed, you can start using it in your workflows. Quick Setup: Create the Drive folder you want to watch and copy its Folder ID Create a Google Sheet with headers like: timestamp, file_name, file_id, mime_type, size_bytes, uploader_email, document_type, document_number, issue_date, author_name, drawing_title_numbers, revision_history, job_name, address, drawing_number, revision, drawn_by, checked_by, scale_information, agency_name, document_title, blueprint_id, blueprint_status, blueprint_owner, blueprint_url Configure Google Drive OAuth2 for the trigger and download nodes Add VLM Run API credentials from https://app.vlm.run/dashboard to the VLM Run node Configure Google Sheets OAuth2 and set Spreadsheet ID and target sheet tab Test by uploading a sample file to the watched Drive folder and activate Perfect for Converting uploaded construction blueprint documents into clean text Organizing extracted blueprint details into structured sheets Quickly accessing key attributes from technical files Centralized archive of blueprint-to-text conversions Key Benefits End to end automation** from Drive upload to structured Sheet entry Accurate text extraction** of construction blueprint documents Organized attribute mapping** for consistent records Searchable archives** directly in Google Sheets Hands-free processing** after setup How to customize Extend by adding: Version control that links revisions of the same drawing and highlights superseded rows Confidence scores per extracted field with threshold-based routing to manual or AI review Auto-generate a human-readable summary column for quick scanning of blueprint details Split large multi-sheet PDFs into per-drawing rows with individual attributes Cross-system sync to Procore, Autodesk Construction Cloud, or BIM 360 for project-wide visibility
by Shahrear
Automatically process healthcare claims into structured Google Sheets entries with VLM Run extraction What this workflow does Monitors Google Drive for new files in a target folder Downloads the file inside n8n for processing Sends the file to VLM Run for AI transcription or analysis Fetches extra details from the healthcare.claims-processing domain as JSON Appends normalized fields to a Google Sheet as a new row Setup Prerequisites: Google account, VLM Run API credentials, Google Sheets access, n8n. Install the verified VLM Run node by searching for VLM Run in the node list, then click Install. Once installed, you can start using it in your workflows. Quick Setup: Create the Drive folder you want to watch and copy its Folder ID Create a Google Sheet with headers like: timestamp, file\_name, file\_id, mime\_type, size\_bytes, uploader\_email, form\_type, carrier\_name, patient\_name, patient\_birth\_date, patient\_sex, patient\_address, insurance\_type, insurance\_id, insured\_name, total\_charge, amount\_due, amount\_paid, hospitalization\_from, hospitalization\_to, referring\_physician\_name, processing\_notes, โฆother claim fields as needed Configure Google Drive OAuth2 for the trigger and download nodes Add VLM Run API credentials from https://app.vlm.run/dashboard to the VLM Run node Configure Google Sheets OAuth2 and set Spreadsheet ID and target sheet tab Test by uploading a sample file to the watched Drive folder and activate Perfect for Centralized intake of healthcare claim documents with instant AI summaries Claims and operations teams collecting structured claim insights Customer support attachments that need quick triage to a Sheet Compliance and audit logs for claim documents Key Benefits End to end automation from Drive to Sheets Accurate AI output via VLM Run with optional timestamps Domain enrichment from healthcare.claims-processing JSON Clean, searchable logs in Google Sheets No manual steps after activation How to customize Extend by adding: OCR tuning and field validation for claim forms Per type routing for PDFs, images, or scanned forms Slack notifications on each new Sheet append Keyword extraction and auto tagging for claim categories Error branch that records failures to a second Sheet
by Sparsh From Automation Jinn
Automated SEO Data Engine using DataForSEO & Airtable This workflow automatically pulls SERP rankings, competitor keywords, and related keyword ideas from DataForSEO and stores structured results in Airtable โ making SEO tracking and keyword research streamlined and automated. ๐๏ธ What this automation does | Step | Component | Purpose | |------|-----------|---------| | 1 | Trigger (Manual: โExecute workflowโ) | Starts the workflow on demand โ optionally replaceable with a schedule or webhook. | | 2 | Read seed keywords from Airtable (SERP Keywords table) | Fetches the list of keywords for which to track SERP. | | 3 | Post SERP task to DataForSEO API | Requests Google organic SERP results (depth up to 10) for each keyword. | | 4 | Wait + Poll for results (after ~1 min) | Gives DataForSEO time to process, then retrieves the completed task results. | | 5 | Parse & store SERP results into Airtable (SERP rankings table) | Records rank, URL, domain, title, description, breadcrumb, etc. for each result. | | 6 | Read competitor list from Airtable (Competitor Research table) | Fetches competitors (domains/sites) marked for keyword research. | | 7 | Post competitor-site keywords task to DataForSEO | Fetches keywords used by competitor sites. | | 8 | Wait + Poll + Store competitor keywords into Airtable (Competitor Keywords Research) | Captures keyword, competition level, search volume, CPC, monthly volume trends. | | 9 | Aggregate seed keywords โ request related keywords via DataForSEO | Retrieves related / similar keyword ideas for seed list (keyword expansion). | | 10 | Store related keywords into Airtable (Similar Keywords table) | Saves keyword data for long-tail / expansion analysis. | ๐ Key Integrations & Tools n8n** โ Workflow automation and orchestration Airtable** โ Storage for seed keywords, competitor list, and all result tables (SERP Rankings, Competitor Keywords, Similar Keywords) DataForSEO API** โ For SERP data, competitor-site keywords, and related keyword suggestions Core n8n nodes: Trigger, HTTP Request, Wait, Split Out, Aggregate, Airtable (search & create) ๐ Data Output / Stored Fields SERP Rankings type, rank_group, rank_absolute, page, domain, title, description, url, breadcrumb Linked to original seed keyword via SERP Keywords reference Competitor Keywords & Similar Keywords Keyword Competition, Competition_Index Search_Volume, CPC, Low_Top_Of_Page_Bid, High_Top_Of_Page_Bid (if available) Monthly search-volume fields: Jan_2025, Feb_2025, โฆ, Dec_2025 (mapped from API's monthly_searches) For competitor keywords: linked to competitor (company/domain) For similar keywords: linked to seed keyword ๐ Important Notes Month-volume mapping:** Ensure the index mapping from APIโs monthly_searches to months is correct โ wrong indices will mislabel month data. Fixed wait time:** Current 1-minute wait may not always suffice โ for large workloads or slow API responses, increase wait or implement polling/backoff logic. No deduplication:** Running repeatedly may produce duplicate Airtable records. Consider adding search-or-update logic to avoid duplicates. Rate limits / quotas:** Airtable and DataForSEO have limits โ batch carefully, throttle requests or add spacing to avoid hitting limits. Credentials security:** Store Airtable and DataForSEO API credentials securely in n8nโs credentials manager โ avoid embedding tokens directly in workflow JSON. ๐ Why this Workflow is Useful Fully automates SERP tracking and competitor keyword research โ no manual work needed after setup Maintains structured, historical data in Airtable โ ideal for tracking rank changes, discovering competitor moves, and keyword expansion over time Great for SEO teams, agencies, content owners, or anyone needing systematic keyword intelligence and monitoring ๐ Recommended Next Steps Replace manual trigger with a Schedule Trigger (daily/weekly) for automated runs Add deduplication (upsert) logic to prevent duplicate records and keep Airtable clean Improve robustness: add retry logic for API failures, rate-limit handling, and error notifications (Slack / email) Add logging of API response data (task IDs, raw responses) for debugging and audit trails (Optional) Build a reporting dashboard (Airtable Interface / BI tool) to visualise rank trends, keyword growth, and competitor comparisons ๐ Usage / Setup Checklist Configure Airtable base / tables: SERP Keywords, Competitor Research, SERP rankings, Competitor Keywords Research, Similar Keywords. Add credentials in n8n: Airtable API token; DataForSEO API credentials (HTTP Basic / Header auth). Import this workflow JSON into your n8n instance. Update any base/table/field IDs if different. (Optional) Replace Manual Trigger with Schedule Trigger, enable workflow. Run once with a small seed list โ verify outputs, schema, and month-volume mapping. Enable periodic runs and monitor for rate limits or API errors.
by Robert Breen
Send a templated outreach email to new leads in a Google Sheet on a daily schedule, then mark each lead as contacted so they wonโt be emailed twice. Built with: Schedule Trigger โ Google Sheets โ Filter โ Outlook Send Email โ Google Sheets (append/update). Whoโs it for Teams that collect leads in Sheets and want automatic, once-per-lead outreach Solo founders/consultants running simple top-of-funnel follow-ups Anyone prototyping CRM-lite flows in n8n How it works / What it does Schedule Trigger runs daily (e.g., 09:00). Get rows (Google Sheets) pulls leads from your sheet. Filter keeps only rows where Contacted is empty. Outlook โ Send a message emails each remaining lead (to = {{$json.Email}}). Google Sheets (appendOrUpdate) writes back Contacted = Yes (match on Email) to prevent re-sending. How to set up 1) Google Sheets (OAuth2) In n8n โ Credentials โ New โ Google Sheets (OAuth2), sign in and grant access. In Get rows: select your Lead Source sheet (e.g., โNew Leadsโ). In Append/Update: select the sheet you want to mark as contacted (can be the same sheet or a CRM sheet). Make sure your sheet has at least: Email, Contacted (blank for new). 2) Outlook (Microsoft Graph) OAuth2 n8n Cloud (quick connect):** In Credentials โ New โ Microsoft Outlook OAuth2, choose Connect, sign in with your Microsoft account, and accept permissions. Self-hosted (Azure App Registration):** 1) Azure Portal โ App registrations โ New registration. 2) Add redirect URL: https://YOUR_N8N_URL/rest/oauth2-credential/callback. 3) API permissions (Delegated): offline_access, Mail.Send, User.Read. Grant admin consent if required. 4) Create a Client secret; copy Application (client) ID and Directory (tenant) ID. 5) In n8n, create Microsoft Outlook OAuth2 credential with those values and scopes: offline_access Mail.Send openid email profile. In the Send a message node, select that credential and keep To mapped to {{$json.Email}}. Customize Subject and Body to your brand (default provided). Requirements A Google Sheet of leads with an Email column (and an optional Contacted column). A Microsoft account with permission to send mail via Microsoft Graph (Outlook). How to customize the workflow Email content:** Edit subject/body (add variables like {{$json.FirstName}}). Send window:** Change Schedule Trigger time/interval. Idempotency:** Use the same sheet for read+write (match on Email) or separate source/CRM sheets. Logging:** Add a Sheet or Notion append step after send for an audit trail. Security & best practices No hardcoded secrets:* Always use *OAuth2 credentials** (Sheets & Outlook). Sanitize PII:* If publishing, *remove real spreadsheet IDs/URLs** and personal emails/phone numbers. Sticky notes are mandatory:* Add a *yellow sticky note** in the workflow with this description and a short setup checklist. Use neutral sticky notes for per-node tips. Troubleshooting No emails sent:** Ensure Contacted is blank for new rows and the Filter checks โis empty.โ Auth errors (Outlook):** Reconnect credential; confirm Graph scopes and tenant consent. Sheets errors:** Re-select spreadsheet/tab; verify headers (Email, Contacted). Duplicates:* Confirm *Append/Update* uses *matching column = Email**. Tags & category Category: Sales & CRM Tags: outreach, follow-up, google-sheets, outlook, schedule, dedupe, cold-email Changelog v1.0.0 โ Initial release: scheduled outreach, Outlook email, de-dupe via Contacted = Yes. Contact Need help customizing (personalization, rate-limits, CRM sync, bounce checks)? ๐ง rbreen@ynteractive.com ๐ Robert Breen โ https://www.linkedin.com/in/robert-breen-29429625/ ๐ ynteractive.com โ https://ynteractive.com
by Pauline
This workflow allows you to have a Slack alert when one of your n8n workflows gets an issue. Error trigger**: This node launched the workflow when one of your active workflows gets an issue Slack node**: This node sends you a customized message to alert you and to check the error โ ๏ธ You don't have to activate this workflow for it to be effective
by Harshil Agrawal
This workflow allows you to register your audience to an event on Demio via a Typeform submission. Typeform Trigger node: This node will trigger the workflow when a form response is submitted. Based on your use-case, you may use a different platform. Replace the Typeform Trigger node with a node of that platform. Demio node: This node registers a user for an event. It gets the details of the users from the Typeform response.
by Harshil Agrawal
This workflow allows you to add a new user to your Notion database when an invite gets created via Calendly. Calendly Trigger node: The Calendly node will trigger the workflow when an invite gets created. Notion node: This node will create a new record using the information received from the previous node.