Workflows
Browse 12,955 Workflows
Workflows are deterministic, multi-step pipelines that chain models, tools and agents in a fixed order — the predictable counterpart to an autonomous agent. Each entry records its platform and complexity, so the setup cost is visible before you import it.
25–36 of 12,955
By Onur Olgun
Quick overview This workflow monitors Gmail for PDF attachments, uploads them to Google Drive, extracts invoice text from PDFs, uses Google Gemini to detect and parse Turkish invoice fields into structured data, and logs both invoice headers and line items into Google Sheets. How it works Runs every hour and triggers on new Gmail messages that contain PDF attachments. Splits the email’s attachments into individual items and loops through each PDF. Uploads each PDF to a specified Google Drive folder, then downloads it and extracts text from the PDF. Uses Google Gemini to decide whether the extracted text is an invoice. If it is not an invoice, deletes the uploaded file from Google Drive. If it is an invoice, uses Google Gemini with a structured JSON schema to extract invoice details and line items from the PDF text. Appends the invoice header fields to a Google Sheets “Faturalar” sheet and appends each invoice line item to a “Kalem Detay” sheet. Setup Connect your Gmail OAuth2 account and ensure the Gmail query filter (filename:pdf has:attachment) matches the emails you want to process. Connect your Google Drive OAuth2 account and set the target Drive folder ID where PDFs are uploaded. Add a Google Gemini (Google PaLM) API credential for the two Gemini chat model nodes. Connect your Google Sheets OAuth2 account and update the spreadsheet ID and sheet tabs/columns for both the invoice header (“Faturalar”) and line item (“Kalem Detay”) sheets. An n8n automation workflow template by Onur Olgun.
- 6 nodes
- Automation
- AI
By FLOW AI Automation
Quick overview This workflow runs every 10 minutes to triage new Gmail inbox emails with OpenAI, apply Gmail labels, create reply drafts for messages that need a response, optionally send urgent alert emails, and log the triage results to Google Sheets. How it works Runs every 10 minutes and loads configuration values such as the Gmail search query, label names, OpenAI model, and Google Sheets destination. Reads existing Gmail labels and, if enabled, creates any missing AI-related labels used for triage and categorization. Fetches a limited batch of untriaged Gmail inbox messages matching the configured search query and cleans the body text (removing HTML and quoted history). Sends each email to the OpenAI Chat Completions API to return structured JSON with category, priority, sentiment, summary, next steps, and an optional reply draft. Validates the AI output and decides whether to apply labels, flag the email for review, create a Gmail reply draft, and/or trigger an urgent owner alert. When not in dry-run mode, applies the selected Gmail labels (as the “processed” lock), creates a threaded Gmail draft reply when allowed, and sends an urgent alert email via Gmail when configured. Appends or updates a row in Google Sheets for each processed email with the triage results, draft content, applied labels, and status/error details. Setup Add credentials for Gmail OAuth2 (read/label/draft/send), an OpenAI API credential, and Google Sheets OAuth2 with access to the target spreadsheet. Create a Google Sheets spreadsheet with a tab named “Inbox Log” (or update the sheet name) and ensure the header columns match what the workflow writes. In the configuration step, set the Google Sheet ID, your business context/knowledge base, your signature, and (optionally) an owner alert email address, and review the Gmail search query and label names. Run in dry-run mode first to verify classifications and the Google Sheets log, then set dry_run to false to enable Gmail label changes, draft creation, and alert emails. Requirements n8n (cloud or self-hosted) Gmail account with OAuth2 credentials OpenAI API key (gpt-4.1-mini or any model with Structured Outputs) Google Sheets account with a sheet named "Inbox Log" Customization Edit categories, labels, tone, signature and knowledge base in the Setup Configuration node Change the schedule, Gmail search query or confidence threshold Replace the urgent alert email with Slack or Telegram Additional info Nothing is sent to your contacts automatically: replies are saved as Gmail drafts for review. Email content is sent to OpenAI for analysis. An n8n automation workflow template by FLOW AI Automation.
- 4 nodes
- Automation
By Christophe REVOIRE
Quick Overview This workflow accepts property viewing requests via a webhook, checks availability in Google Calendar, logs confirmed bookings in Google Sheets, and emails confirmations and alternative time suggestions via Gmail, then runs hourly to send reminder emails for upcoming viewings. How it works Receives a property viewing request via a POST webhook with buyer details, listing reference, and preferred date/time. Validates the request against configured working days, opening hours, and minimum notice, and returns a 422 response if required fields are missing or invalid. Checks the requested time window (including a buffer) against Google Calendar availability. If the slot is free, creates a Google Calendar event, appends the booking to the “Viewings” tab in Google Sheets, emails a confirmation via Gmail (BCC to the agent), and returns a success response to the caller. If the slot is busy, reads upcoming events from Google Calendar, computes the closest available alternative slots, emails the alternatives via Gmail, and returns a 409 response with the alternatives. Runs every hour, reads booked viewings from Google Sheets that start within the reminder window and have not been reminded yet, sends reminder emails via Gmail, and updates the row to mark the reminder as sent. Setup Add credentials for Google Calendar, Google Sheets, and Gmail in n8n. Update the Config values for your Google Sheet ID, calendar ID, time zone, agent/agency details, working days/hours, viewing duration, buffers, and reminder timing. Create a Google Sheets document with a “Viewings” sheet and columns matching the workflow fields (including “Viewing ID” and “Reminder Sent At”). Copy the webhook URL from the webhook trigger and configure your website form or booking tool to POST the required fields (email, listing_ref, and start/date+time). An n8n automation workflow template by Christophe REVOIRE.
- 4 nodes
- Automation
By Christophe REVOIRE
Quick Overview This workflow receives real estate enquiries via a webhook, normalizes and scores them, saves or updates the lead in Google Sheets, and sends automated Gmail replies plus a hot-lead alert to the agent. How it works Receives a lead submission via an HTTP POST webhook. Normalizes incoming fields, validates that an email or phone is present, classifies intent (buy/sell/rent/other), calculates a 0–100 score, and prepares reply and alert email content. Rejects invalid leads with a 422 JSON response listing validation errors. Appends or updates the lead in a Google Sheets “Leads” tab using a stable Lead ID as the matching key. If the lead includes a valid email address, sends an instant personalized reply to the lead via Gmail. If the lead score meets the hot threshold, sends an alert email to the agent via Gmail, then returns a 200 JSON response with the leadId, score, and temperature. Setup Add Google Sheets OAuth credentials and set the Google Sheet ID and “Leads” sheet/tab name used to store leads. Add Gmail OAuth credentials for the mailbox that sends the lead reply and the agent hot-lead alert. Update the configuration values (agency name, agent name/email/phone, booking link, currency symbol, and hot/warm score thresholds). Copy the webhook URL from n8n and configure your website form/lead source to POST the lead payload to that endpoint. An n8n automation workflow template by Christophe REVOIRE.
- 3 nodes
- Automation
By Margaux Faurie
Quick overview This workflow pulls Crossbeam partner deal signals on a schedule or via webhook, matches them to relevant Salesforce accounts, uses Claude with the Crossbeam MCP to draft partner intro request emails, and routes them through Slack for approval before drafting or sending via Gmail and optionally logging a Salesforce task. How it works Triggers every weekday at 08:45 or receives a Crossbeam webhook event and verifies the HMAC signature before proceeding. Fetches partner deal signals from the Crossbeam Signals API (when scheduled), normalizes key fields, and filters to in-scope event types, partners, and recent signals tied to a Salesforce Account ID. Removes duplicate events and skips signals that already have an outcome recorded in an n8n Data Table. Queries Salesforce in batches to retrieve matching Account context (including latest closed-lost opportunity) and joins that data back to the Crossbeam signals. Uses Anthropic Claude (via LangChain) plus Crossbeam MCP tools to find the partner’s account owner and shared contacts, then generates a short Slack brief and a draft intro email. Posts the brief to Slack and opens an interactive approval form in a thread where a reviewer can approve, edit, or skip within a configured wait time. If approved and not in dry-run mode, sends the email or saves a Gmail draft (based on configuration) and optionally creates a Salesforce Task, then records the final status in the Data Table and replies in the Slack thread with the outcome. Setup Create and connect credentials for Crossbeam REST API (OAuth2), Crossbeam MCP (OAuth2), Salesforce (OAuth2), Anthropic (API key), Slack (OAuth2 with Interactivity enabled), and Gmail (OAuth2). In the “Configure me” step, fill in your Crossbeam organization UUID, Salesforce base URL, company name, Slack channel ID, and choose settings like event types, lookback windows, confidence threshold, send mode, and dry_run. Create an n8n Data Table with columns like event_key, status, partner_name, account_name, sfdc_account_id, partner_owner_email, and decided_at, then select it in the Data Table steps used to skip handled events and record outcomes. Invite your Slack app to the target channel and ensure “send and wait” forms work in your workspace. If using the webhook path, copy the n8n webhook URL from the Crossbeam webhook trigger and register it in Crossbeam, then set the webhook signing secret in “Configure me”. Requirements Crossbeam Supernode plan or above for the Signals API (webhooks require Enterprise). API reads may count toward your Record Export limits. Crossbeam MCP access (credit metered, about 3 calls per drafted intro request) Salesforce with read access to Account and Opportunity, and permission to create Tasks Anthropic API key (Claude Sonnet) Slack app with chat:write and interactivity turned on for the approval form Gmail account that sends or drafts the intro emails Customization Narrow the scope in Configure me with event_types, partner_filter, signal_lookback_days, closed_lost_lookback_months and loss_reason_field. Set match_mode to owned_accounts to cover every owned account, not only closed-lost ones. Control volume and quality with max_items_per_run and min_confidence (low, medium or high). Change the tone, length or language of the email in the system message of the Claude agent. Swap the Gmail nodes for Outlook, or post the brief to Microsoft Teams and keep the approval step in Slack. Additional info Safe by default: dry_run is true on import, so the first runs only post to Slack. max_items_per_run (default 5) caps Slack posts and Crossbeam MCP credits per run, and the AI agent is limited to 3 read-only Crossbeam calls per account. Data handling: partner contacts come from what the partner shares through Crossbeam. Check your data-sharing terms with each partner before adding them to outreach. Claude only receives the account, deal and partner context needed to draft the email. Webhook path: the workflow verifies the HMAC signature and timestamp of each Crossbeam webhook and rejects unsigned or stale requests with a 401. An n8n automation workflow template by Margaux Faurie.
- 9 nodes
- Automation
- AI
By Jitterflow
Quick overview This workflow runs on two schedules to read new leads from Google Sheets, validate and normalize email addresses, and queue each lead to a rate-limited CRM via Jitterflow, then writes queue status, job IDs, and CRM rejection errors back to the sheet. How it works Runs every hour and reads all rows from the Google Sheets “Leads” sheet. Keeps only rows with an empty Status, then trims fields and normalizes the email to lowercase. Validates the email format and marks the row as “Invalid email” in Google Sheets when it fails validation. Sends valid leads to Jitterflow as webhook jobs (using the email as an idempotency key) so Jitterflow can deliver them to the CRM at the configured rate limit. Updates the originating Google Sheets row as “Queued”, stores the Jitterflow job ID, and notes if the email was already queued. Runs every morning at 8:00, lists unresolved jobs from the Jitterflow dead-letter queue, and filters to only entries created by this sheet import. Marks matching rows in Google Sheets as “Rejected by CRM” and writes the HTTP status/error reason into the Note column. Setup Install and configure the community node n8n-nodes-jitterflow (required for the Jitterflow nodes). Create a Jitterflow API credential in n8n, create a Jitterflow endpoint that targets your CRM’s create-contact API (with auth and pacing), and paste the endpoint key into the workflow. Create a Google Sheet with a “Leads” tab and columns Email, First name, Last name, Company, Status, Jitterflow job, and Note. Add your Google Sheets OAuth credential in n8n and update the Google Sheet document ID on the Google Sheets nodes. Requirements A Jitterflow account (the free Developer plan works; replaying CRM-rejected leads needs Pro), the verified n8n-nodes-jitterflow community node, and a Google Sheets account. Customization Reshape the Payload on Queue lead for the CRM to match your CRM's field names, or run the intake every 15 minutes instead of hourly. An n8n automation workflow template by Jitterflow.
- 1 nodes
- Automation
By Fahim Jilani
Quick overview This workflow collects customer complaints via an n8n Form, logs each case in Google Sheets with a priority-based SLA deadline, and sends Gmail notifications to the customer and internal teams, escalating unresolved cases through Level 1 and Level 2 before closing resolved complaints. How it works Receives a new complaint submission from an n8n Form. Normalizes the submitted fields, validates required complaint details, and stops with an error payload if any mandatory data is missing. Generates a case ID, assigns priority and responsible team based on complaint category, and calculates an SLA due time. Appends the complaint as a new row in a Google Sheets register and sends acknowledgement and assignment emails via Gmail. Waits until the SLA due time, then looks up the case in Google Sheets and checks whether the status is marked as Resolved. If unresolved at the SLA deadline, sends a Level 1 escalation email via Gmail and updates the Google Sheets row with escalation status and timestamps. Waits an additional priority-based review window, then re-checks Google Sheets and either escalates to Level 2 via Gmail and updates the sheet, or sends a resolution email and marks the case Closed in Google Sheets. Setup Connect Google Sheets credentials and update the target spreadsheet/document and sheet to your complaint register. Connect Gmail credentials and replace the internal notification and escalation recipient addresses with your team and management distribution lists. Ensure your Google Sheets register includes the columns used by the workflow (for example: case_id, status, priority, assigned_team, sla_due_at, escalation_level, escalation_1_at, escalation_2_at, resolved_at, resolution_details). An n8n automation workflow template by Fahim Jilani.
- 2 nodes
- Automation
By Felix M
Quick overview This workflow lets you pick Instagram locations via an n8n form, then every 30 minutes searches those locations through RecentReborn, logs new posts to Google Sheets, builds/upserts a creator lead list, and sends Telegram alerts for high-engagement posts, new regular creators, digests, and errors. How it works Receives a location search term through an n8n Form trigger, looks up matching Instagram locations in RecentReborn, and lets you select which locations to monitor. Saves the selected location IDs and names to the Google Sheets “Locations” tab without overwriting existing per-location monitoring state. Runs every 30 minutes (or on manual execution), reads active locations and existing creators from Google Sheets, and sends a Telegram reminder if no active locations are configured. For each active location, queries RecentReborn for recent location posts (up to three pages) and stops paging when posts are older than the stored cutoff time. Deduplicates and filters results, appends newly discovered posts to the Google Sheets “Posts” tab, and upserts qualifying accounts into the “Creators” tab while preserving any existing “Outreach Status” edits. Updates each location’s monitoring state in the Google Sheets “Locations” tab (watermark, recent post IDs, and run status) so the next run continues from the right point. Sends Telegram messages for viral posts, creators who become “regulars,” an optional per-run digest, and combined warnings for any location searches or sheet writes that fail. Setup Create a RecentReborn account and add an HTTP Header Auth credential with header name Authorization and value Bearer YOUR_KEY for the RecentReborn HTTP requests. Create a Google Sheet with “Locations”, “Posts”, and “Creators” tabs, then connect your Google Sheets OAuth2 credential and set the sheet URL in the workflow configuration. Create a Telegram bot, connect your Telegram credential, and set the target Telegram chat ID in the workflow configuration. Publish the “Location Setup Form” and paste its production URL into setupFormUrl, then adjust thresholds (formats, like limits, regular threshold, digest) in the configuration before activating. Requirements A RecentReborn API account (app.recentreborn.com) with an API key. An n8n automation workflow template by Felix M.
- 4 nodes
- Automation
By Anna Cole
Quick overview This workflow captures WhatsApp voice notes, photos, and texts from construction crews, uses OpenAI to transcribe and structure updates, logs them to Google Sheets, stores photos in Google Drive, alerts managers via Gmail, and emails per-project end-of-day reports on a schedule. How it works Triggers when a WhatsApp message arrives or every day at 6pm. Looks up the sender in a Google Sheets Crew tab and matches the update to a project from the Projects tab (optionally using a #ProjectName tag). If the sender is not registered, replies on WhatsApp asking to be added to the crew list and stops processing. For registered senders, retrieves WhatsApp media and uses OpenAI to transcribe voice notes or describe site photos (and saves photos to Google Drive), while text messages pass through as-is. Uses OpenAI to extract structured site-log fields (for example summary, category, hours, materials, issues, safety, and attention flags) and appends a row to the Site log tab in Google Sheets. Confirms the log entry back to the crew member via WhatsApp and sends an immediate Gmail alert to the project’s report email list when the update needs attention. At 6pm, reads today’s Site log rows from Google Sheets, groups them by project, uses OpenAI to write a per-project daily report (or a no-update notice), emails it via Gmail, and appends a summary row to the Daily reports tab. Setup Connect WhatsApp Business Cloud API credentials (WhatsApp Trigger and WhatsApp nodes) and configure your WhatsApp Business number to send message webhooks to the workflow. Add OpenAI credentials for audio transcription, image analysis, and report generation. Add Google Sheets credentials and create one spreadsheet with Crew and Projects tabs (and empty Site log and Daily reports tabs), then paste the sheet URL into the Configuration step. Add Google Drive credentials and set a target folder ID in Configuration for saving site photos. Add Gmail credentials and set the fallback office email (and project-specific “Report emails” values in the Projects tab) to receive alerts and daily reports. Requirements WhatsApp Business Cloud API number (Meta developer app) with WhatsApp Trigger and WhatsApp credentials OpenAI API key (voice transcription, photo description and report writing) Google Sheets with four tabs: Crew, Projects, Site log, Daily reports Google Drive folder for site photos Gmail account for alerts and daily reports Customization Change the report time in "Every evening at 6pm", for example weekdays only Set reportLanguage in Configuration to write logs and reports in any language Add a client's email to a project's "Report emails" column to share reports with them Edit the extraction prompt to track trade-specific fields such as concrete volume or inspections Swap Gmail for Outlook or Slack for alerts and reports Crew members can add #ProjectName to a message to log it against a different project Additional info Crews can report in any language; voice notes are transcribed and every field is written in the report language. Messages from numbers not in the Crew tab are politely rejected and never logged. The AI is instructed to use only what the crew reported and never invent quantities or progress. Projects marked Active = no in the Projects tab are skipped, and active projects with no updates get a "no update received" notice so the PM can follow up. An n8n automation workflow template by Anna Cole.
- 10 nodes
- Automation
- AI
By Anna Cole
Quick overview This workflow runs every morning to check Instantly sending accounts for deliverability risk using warmup analytics, DNS vitals, and recent bounce stats, then auto-pauses risky accounts and posts alerts and a daily digest to Slack while logging account health history to Google Sheets. How it works Runs every morning on a schedule. Retrieves all sending accounts from the Instantly API and batches them for bulk checks. Pulls warmup health analytics, DNS vitals (MX/SPF/DKIM/DMARC), and daily sent/bounced stats from Instantly for the configured lookback window. Scores each account against the configured thresholds to label it healthy, watch, pause recommended, or already paused. Pauses active accounts in Instantly when auto-pause is enabled and the account crosses a pause threshold, then sends a Slack alert with the reason. Sends a daily Slack digest summarizing overall account health and appends one row per account to a Google Sheets “Health log” tab for trend tracking. Setup Create an Instantly API key with API v2 access and add it to n8n as an HTTP Bearer Auth credential used by the Instantly HTTP Request steps. Add a Slack credential and set the target channel name in the thresholds (for example, #deliverability). Add a Google Sheets credential, create a spreadsheet with a sheet tab named “Health log”, and replace the tracker Google Sheets URL with your document URL. Review and adjust the thresholds (bounce rate limits, lookback days, warmup score limits, batch size, and autoPause/pauseOnDnsFailure toggles) before activating the workflow. Requirements Instantly account with an API v2 key (accounts read and update scopes) Bearer Auth credential in n8n for the Instantly API key Slack workspace Google Sheets with a tab named Health log (optional) Customization Change maxBounceRatePct (default 3%) or minSentForBounceCheck in Set Bounce Alert Thresholds Adjust warnBelowWarmupScore and pauseBelowWarmupScore to fit your warmup standards Set pauseOnDnsFailure to true to pause accounts whose domain fails SPF, DKIM or DMARC Set notifyWhenAllHealthy to false to only get Slack messages when something is wrong Change the schedule to run before each sending window Delete the Google Sheets nodes if you don't need a history log Additional info Run it once with autoPause set to false to review the verdicts before letting it pause anything. Paused accounts are never resumed automatically: fix the cause, then resume them in Instantly. The Instantly API is called through HTTP Request nodes with a Bearer Auth credential, so no API key is stored in the workflow. An n8n automation workflow template by Anna Cole.
- 4 nodes
- Automation
By Christoph Dibbern
Quick overview This workflow checks Microsoft Outlook for unread emails with a project controlling Excel template and a timesheet CSV, uploads the template to OneDrive, fills in actual person-days and deviations via Microsoft Graph Excel APIs, updates a cumulative sheet, and replies with the updated workbook. How it works Runs every 5 minutes and fetches the latest unread Microsoft Outlook email that has attachments. Downloads the attachments, identifies the Excel template and the timesheet CSV by filename keywords, and errors if either file is missing. Uploads the Excel template to Microsoft OneDrive and uses the Microsoft Graph Excel API to detect the used range and dynamically generate the required month/name/plan/actual ranges. Reads the template’s PLAN and existing IST values and parses the CSV to aggregate hours per person per month and convert them to person-days (hours ÷ 8). Matches CSV names to template names, calculates plan-vs-actual deviations and a traffic-light status for the current reported month, and prepares cell updates including a monthly IST sum formula. Writes updated IST values (and missing/incorrect formulas) back into the template cell-by-cell via Microsoft Graph, and updates the “Kumulgrundlage” sheet by adding or correcting the current month’s cumulative values in an Excel workbook session. Generates a text summary, re-downloads the updated workbook from OneDrive, replies to the original email in Outlook with the updated file attached (including any collected processing errors), and marks the original email as read. Setup Add Microsoft Outlook OAuth2 credentials with permission to read messages, download attachments, send replies, and mark messages as read. Add Microsoft OneDrive OAuth2 credentials with permission to upload files and edit Excel workbooks via the Microsoft Graph API. Ensure the incoming email contains exactly two attachments (an .xlsx template and a timesheet .csv) and adjust the filename keyword logic in the attachment identification code if your naming differs. Confirm the Excel template contains worksheets named “Ressourcenverbrauch” and “Kumulgrundlage” with months in columns D–J and two rows per person (PLAN then IST), followed by summary rows. Ensure the CSV uses a semicolon delimiter and includes the columns “Name”, “Datum” (DD.MM.YYYY), and “Zeit [h]” with comma decimal separators, or update the CSV parsing/aggregation logic accordingly. An n8n automation workflow template by Christoph Dibbern.
- 3 nodes
- Automation
By Oneclick AI Squad
Quick overview This workflow accepts a POST request, detects potential PII via an external HTTP API, anonymizes high-risk fields, forwards the anonymized payload to a downstream endpoint, and returns the cleaned data with an audit summary. How it works Receives business data in a POST request via an n8n webhook. Validates the request, generates a request ID, and extracts likely PII candidate fields (including one-level nested fields). Waits briefly, then calls an external PII detection HTTP endpoint with the extracted candidates. Interprets the detection response (and falls back to regex heuristics) to assign a PII type and risk score per field. Waits briefly, then anonymizes fields above the risk threshold by hashing, masking, or redacting values based on type. Waits briefly, then posts the anonymized payload and change count to a downstream HTTP endpoint for logging or further processing. Builds an audit record and returns a JSON response to the webhook caller with the anonymized data, audit summary, and an HTTP status indicating success or detection failure. Setup Configure the webhook path (default: /pii-anonymize) and copy the production webhook URL into the system that will send the incoming requests. Replace the placeholder detection and downstream URLs (currently https://httpbin.org/post) with your real PII detection API and audit/logging endpoint. If your detection or downstream endpoints require authentication, add the required headers (for example, an API key or bearer token) to the two HTTP Request steps. Update the anonymization settings in the code (especially hashSalt, piiCandidates, and redactWith) to match your data model and security requirements. An n8n automation workflow template by Oneclick AI Squad.
- 2 nodes
- Automation