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.
229–240 of 12,955
By Anna Cole
Quick overview This workflow runs every morning, reads auto repair customer data from Google Sheets, uses Google Gemini to draft service-due reminder emails, and sends them via Gmail (or a test copy to the shop owner) while logging sent reminders back to the sheet. How it works Runs every morning at 9:00 on a schedule. Reads the Customers tab in Google Sheets and calculates each customer’s next service due date from the last service date and interval. Filters to customers due within the configured reminder window, skipping opt-outs, invalid emails, and anyone already reminded for the same due date, and limits sends to the daily cap. Uses Google Gemini to generate a short plain-text reminder email for each due customer, falling back to a default message if generation fails. Sends the email via Gmail to the customer when live mode is enabled, or sends a test copy to the owner email when live mode is disabled. Updates the same Google Sheets row with the reminder timestamp and the due date that was reminded, then waits 7 seconds before processing the next customer. Setup Create or copy a Google Sheets document with a Customers tab and columns for customer_name, email, vehicle, last_service_date, last_service_type, service_interval_days, opt_out, reminded_for_due_date, and reminder_sent_at. Add Google Sheets, Gmail, and Google Gemini credentials in n8n. Update the workflow parameters (shop name, phone, booking link, Google Sheet URL, reminder window, default interval, daily cap, live mode, and test email). Run the workflow with live mode disabled to verify the test emails, then enable live mode to send to customers and log reminders. Requirements Google Sheets account with a Customers tab Gmail account Google Gemini API key (free tier works) Customization Change remind_days_before, default_interval_days or daily_send_cap in Set Service Parameters Edit the email prompt in Generate Reminder Email Change the send time in Every Morning at 9am. An n8n automation workflow template by Anna Cole.
- 5 nodes
- 1 views
- Automation
- AI
By AYLA BATOOL
Quick overview This workflow runs every morning at 8:00 (Mon–Sat, Asia/Karachi), reads attendance records from Google Sheets, detects repeat absences based on consecutive days and monthly totals, and sends a Gmail approval request to an administrator before emailing the approved notification batch to parents and teachers. How it works Runs on a scheduled trigger at 08:00 Monday–Saturday. Reads the latest attendance rows from a Google Sheets spreadsheet (Sheet1) using formatted values. Calculates, for each student marked absent today, their consecutive school-day absence streak (skipping Sundays and configured holidays) and their total absences in the current month. Creates alert items when a student reaches 3 consecutive absences (reminder) and/or 5 absences in the month (warning), suppressing repeats if the sheet’s notification field already includes the threshold marker. Builds a single batch message with all alerts and sends a Gmail “send and wait” approval request to the administrator. If approved, sends the batch notification email via Gmail to all parent and teacher recipients (and the administrator); if not approved, sends one Gmail retry approval request and escalates to the administrator if the retry is also not approved. Setup Add Google Sheets OAuth2 credentials and replace the placeholder spreadsheet ID with your Attendance Google Sheet ID (and ensure the data is on Sheet1). Ensure your sheet includes the required headers (StudentID, Student, Class, Date, Status, Parent Email, teacher email, and a Notification/Ntoification field) and uses “Absent” in the Status column for absences. Add Gmail OAuth2 credentials and replace admin@school.example with your real approver/administrator email address wherever it appears. Update the holiday/closure dates in the workflow’s policy code (HOLIDAYS set) to match your school calendar and confirm the timezone policy (Asia/Karachi) matches your needs. An n8n automation workflow template by AYLA BATOOL.
- 3 nodes
- 1 views
- Automation
By Scale On Fajar
Quick overview Converts unstructured Telegram standup messages into individual Notion task cards using OpenAI. Validates task statuses, prevents duplicates with deterministic source keys, alerts project leads of critical blockers, and replies to reporters with an execution receipt while filtering non-standup chat before AI. How it works Listens for Telegram messages or runs the built-in manual test fixture. Normalizes sender, chat, date, message IDs, and raw text. Filters messages deterministically so only #DailyPlan and #DailyProgress reach OpenAI, cutting token costs on general chat. Uses OpenAI to parse standup text into structured JSON containing individual tasks, project tags, statuses, priorities, and blocker severities. Validates the JSON schema and splits every task into an independent item. Queries Notion using a deterministic source key (YYYY-MM-DD:username:task_hash) to avoid duplicate creation on repeated or edited reports. Updates matching Notion tasks or creates new task cards accordingly. Escalates critical or moderate blockers to the project lead's Telegram chat and returns a structured completion receipt to the reporter. Setup Connect Telegram Bot credentials to the trigger, blocker alert, and confirmation nodes. Disable bot privacy mode in @BotFather if used in Telegram groups. Connect OpenAI API credentials and select your model (default: gpt-4o-mini). Create an internal Notion integration at notion.so/my-integrations and share your Tasks database with it. Connect Notion credentials in n8n. Select your Notion database on both Notion nodes. Ensure the database includes properties: Task Name (Title), Status (Status), Priority (Select), Project (Rich Text), Assignee (Rich Text), Source Key (Rich Text), Date (Date), and Notes (Rich Text). Set YOUR_PROJECT_LEAD_CHAT_ID on the blocker alert node. Click "Test with Sample Standup" to verify task creation and confirmation receipts before activating the workflow. Requirements Telegram bot token created via @BotFather (with Group Privacy disabled if used in group chats) OpenAI API credential with access to gpt-4o-mini or a compatible chat model Notion internal integration token connected in n8n Notion database shared with the integration, containing properties: Task Name (Title), Status (Status), Priority (Select), Project (Rich Text), Assignee (Rich Text), Source Key (Rich Text), Date (Date), and Notes (Rich Text) Telegram Chat ID for project lead or management blocker alerts Customization Replace #DailyPlan and #DailyProgress in "Check Supported Standup Tag" with your team's preferred report tags Adjust allowed task statuses ('To Do', 'In Progress', 'Done', 'On Review') in "Validate and Split Task Items" to match your Notion board Switch OpenAI model (e.g. gpt-4o) or refine extraction prompt rules in "Extract Tasks from Standup" Customize blocker escalation criteria and HTML message format in "Alert Project Lead" Map additional custom Notion properties (e.g. Sprint, Estimation, Priority tags) inside "Create New Notion Task" and "Update Existing Notion Task" Additional info Dispatch Telegram daily standups into Notion tasks and blocker alerts with AI. An n8n automation workflow template by Scale On Fajar.
- 5 nodes
- 1 views
- Automation
- AI
By Ali Amin
Quick overview This workflow provides two Vapi webhook tools to check care assessment availability and book appointments, using Google Calendar for scheduling, Google Gemini to translate busy times into human-friendly availability, Google Sheets to log enquiries, and SMTP email to send booking confirmations. How it works Receives a POST webhook from Vapi with a requested assessment date to check availability. Pulls that day’s busy time ranges from Google Calendar in the configured timezone. Sends the busy slots to Google Gemini, which returns plain-language available 1-hour booking windows (Mon–Sat, 9am–5pm) or refuses Sundays. Responds to Vapi with the availability text mapped to the original tool call ID. Receives a second POST webhook from Vapi containing the confirmed booking details. Parses the booking payload defensively across multiple Vapi tool-call formats, normalizes the contact and date/time fields, and creates a 1-hour event in Google Calendar. Appends the enquiry details to Google Sheets, emails a confirmation to the provided address via SMTP, and returns a success message to Vapi for the voice agent to read. Setup In Vapi, create two server tools that point to this workflow’s production webhook URLs (one for availability and one for booking) and ensure the tool arguments match the fields used by the workflow. Add a Google Calendar credential in n8n and select the target booking calendar in both calendar steps (adjust the timezone if you are not using Europe/London). Add a Google Gemini (Google AI) credential for the chat model used to generate human-readable availability. Add an SMTP email credential, set the From address, and update the confirmation email branding/content as needed. Add a Google Sheets credential, create an enquiries spreadsheet with the expected columns, and select the document, sheet, and any required IDs in the append step. Requirements A Vapi account with an assistant configured with two server tools — check_assessment_availability (argument: date) and book_care_assessment (arguments listed on the canvas) A Google Calendar credential and a booking calendar (selected in both calendar nodes) A Google Gemini (Google AI) API key for the availability analysis An SMTP credential (e.g. your workspace mailbox) for the confirmation emails A Google Sheet for enquiry logging with the headers listed on the canvas Customization Edit working days, hours and slot length in the AI agent's system message (default Mon–Sat, 9am–5pm, 1-hour assessments) Replace the agency name, colours and footer in the confirmation email HTML Add or rename booking fields — update the Vapi tool, the parser and the sheet columns together Swap Gemini for any chat model n8n supports Adapt the two-tool pattern to any appointment business — clinics, salons, surveyors, trades call-outs Additional info About the creator: Built and maintained by Ali Amin, founder of IhsanOps (https://ihsanops.ai) — a UK AI automation consultancy building voice agents and automations for SMEs. This template is based on a production voice-booking system built for a UK home care provider. Want it adapted to your business — different booking rules, CRM integration, SMS confirmations? Email ali@ihsanops.ai or see https://linkedin.com/in/ali-tm-amin. An n8n automation workflow template by Ali Amin.
- 6 nodes
- Automation
- AI
By Anshul Namdev
Quick overview This starter workflow for n8n Community Challenge 04 fetches case, scan, and kit datasets from an n8n-hosted HTTP API, then guides you to compute three answers (first accepted scan, busiest session, and uncollected kits) and optionally submit them back to the API for validation. How it works Runs manually to start the challenge workflow. Stores your participant username, participant key, and the challenge API base URL. Retrieves the case data and the scans dataset from the challenge API via HTTP requests. Splits the scans dataset into individual rows so you can filter and aggregate to find the earliest ACCEPTED scan for Stage 1 and the busiest session for Stage 2. Uses your Stage 2 session result to request the kits dataset for that session from the challenge API and splits it into individual kit rows. Expects you to filter and summarize the kit rows to count CONFIRMED attendees who requested a kit but have not picked it up for Stage 3. Optionally posts each stage answer to the challenge API check endpoint (disabled by default) to validate your results. Setup Enter your challenge username and participant key in the Settings values used by the HTTP requests. If you are using the private preview environment, add an HTTP Basic Auth credential to each HTTP Request node. Build the missing filter/sort/grouping logic with native n8n nodes and map your computed results into the Stage 1/2/3 answer fields before enabling the stage check requests. Requirements Create an account here: https://community.n8n.io/ Customization Swap Your Username & Participant Key to Proceed. An n8n automation workflow template by Anshul Namdev.
- 1 nodes
- Automation
By Kerrovia
Quick overview This workflow receives missed-call webhook events, validates and normalizes the caller number, looks up the caller in an n8n Data Table, and sends an appropriate Twilio SMS text-back, while logging outcomes and emailing a dispatcher (with approval required after hours). How it works Receives a POST webhook request for a missed call event. Normalizes the incoming caller number, sets the call timestamp, and determines whether the call is after business hours. If the phone number is missing or invalid, it responds with HTTP 400, logs the rejected event to an n8n Data Table, and emails the dispatcher. If the phone number is valid, it immediately responds with HTTP 202, looks up the caller in an n8n Data Table, and checks whether the call happened outside business hours. For after-hours calls, it sends an approval email to the dispatcher and proceeds only if the dispatcher approves sending the text. Builds a different SMS message for known customers versus first-time callers and sends the text-back via Twilio. Logs the SMS result to an n8n Data Table and emails the dispatcher either a confirmation (sent) or an action-required alert (failed). Setup Create two n8n Data Tables named demo_contacts (with phone and name) and demo_missed_calls (with phone, caller_type, status, detail, and called_at). Add a Twilio credential, verify/provision the sending phone number, and set the correct “from” number in the workflow settings. Add an SMTP email credential and set the dispatcher and sender email addresses used for approvals and alerts. Update the business name, scheduling URL, timezone, and open/close hours used to decide after-hours behavior. Copy the webhook URL from the Missed Call trigger and configure your phone system to POST missed-call events with a from field (optionally include simulate_after_hours for testing). An n8n automation workflow template by Kerrovia.
- 2 nodes
- Automation
By Inistate
Quick overview This workflow triggers when an Inistate entry changes into a chosen approval state, emails an approver with Approve/Reject buttons via SMTP, and then performs the corresponding Inistate activity if the entry is still actionable. How it works Triggers when an Inistate entry changes into the selected state (for example, “Pending Approval”). Fetches the full entry details from Inistate and checks whether the configured “Approve” activity is currently available. Builds an approval email containing the entry metadata and field values, then sends it via SMTP with Approve/Reject buttons and waits up to the configured number of days for a response. If no response arrives before the timeout, the workflow stops without updating Inistate. After a response, re-reads the entry from Inistate and verifies that the selected approve/reject activity is still available (so it does not overwrite changes made while waiting). Performs the matching Inistate activity to approve or reject the entry. Setup Add an Inistate credential and select the same Inistate workspace and module in every Inistate node, then choose the trigger state to monitor. Add an SMTP email credential for sending messages and set the approver email address and sender (“from”) address. Set the approve and reject activity names to exactly match the activity names in Inistate and configure the wait timeout in days. In the Inistate activity steps, select the correct approve/reject activities and fill any required activity fields for your module. An n8n automation workflow template by Inistate.
- 1 nodes
- Automation
By María Laura Vitelli
Quick Overview This workflow answers exchange-rate questions coming from Gmail or an n8n chat trigger using a Google Gemini AI agent that calls the Frankfurter exchange-rate API, caches successful rate responses in n8n Data Tables to avoid repeated model calls, logs usage metrics, and replies back on the originating channel. How it works Triggers when a new Gmail message matching the exchange-rate search filter arrives or when an n8n chat message is received. Normalizes incoming email and chat messages into a common format (session ID, user text, source channel, sender email) and processes them one at a time. Extracts two ISO 4217 currency codes from the message to build a per-day cache key and looks up a previously saved response in an n8n Data Table. If a fresh cached response exists (within the configured TTL), uses it directly without calling the AI model. If there is no fresh cache hit, runs a Google Gemini-powered AI agent that calls the Frankfurter API to fetch the latest reference exchange rate and generates a one- or two-sentence plain-text reply. Stores valid rate answers back into the cache, logs the query details (source, pair, cache hit, latency) to a second Data Table, and replies via n8n chat or Gmail depending on where the question originated. Setup Add credentials for Gmail OAuth2 (for the Gmail trigger and email replies) and a Google Gemini (PaLM) API credential for the chat model. Create or select two n8n Data Tables: one for the rate cache with columns cache_key (string), pair (string), response (string), cached_at (number) and one for the query log with columns logged_at (string), source (string), pair (string), cache_hit (boolean), latency_ms (number). Update the Data Table selections in the cache lookup/save nodes and the log node, then review the Config values (cache TTL, email subject, fallback message) and adjust the Gmail search filter to match the senders and subjects you want to handle. An n8n automation workflow template by María Laura Vitelli.
- 5 nodes
- Automation
- AI
By Luca
Quick Overview This workflow monitors Google Calendar appointments, uses Google Sheets as a client/waitlist database and log, and sends confirmations, waitlist offers, and recall messages via Twilio SMS or Gmail email, using OpenAI to classify incoming replies and update bookings and reporting. How it works Runs every 15 minutes on a schedule and also reacts immediately to inbound replies received through Twilio (SMS) or Gmail (email). Loads Clients, Services, Waitlist, and Log tabs from Google Sheets, then reads upcoming Google Calendar events for the configured time window. Plans the next actions by logging confirmations (including a 48-hour ask and 24-hour nudge), freed-slot waitlist offers in batches, recall messages, and daily/weekly staff reports based on calendar state and prior log history. Appends all planned actions to the Google Sheets Log first, then sends the resulting outbound messages via Twilio SMS or Gmail email depending on each recipient’s available channel and opt-out status. Normalizes incoming SMS and email replies, filters out unknown senders and automatic/out-of-office messages, and uses OpenAI to extract the sender’s intent with quoted evidence. Applies the reply to the most recent relevant message (confirmation, waitlist offer, or recall), updates the Google Sheets Log, and creates or deletes Google Calendar events when cancellations occur or a waitlist slot is accepted. Notifies the front desk by email when a reply needs human handling (for example, ambiguous intent or rescheduling questions) and sends an error alert email if the workflow run fails. Setup Add credentials for Google Calendar, Google Sheets, Gmail, Twilio (optional if you only want email), and OpenAI. Create a Google Sheets file with four tabs named Clients, Services, Waitlist, and Log, and ensure your columns match what the workflow expects (for example client name/email/phone/channel, service name/price/minutes/recall_weeks, and waitlist preferences). Update the values in Set Clinic Settings (sheet ID, calendar ID, business name, front desk and owner emails, timezone/locale, booking/deposit links, Twilio “from” number, and policy timings like confirm/nudge and offer batching). Customize the user-facing text in Set Message Texts (subjects and message bodies) to match your tone and language. If using SMS, configure Twilio to send inbound messages to the workflow’s Twilio Trigger webhook and ensure your Twilio number is capable of SMS. Replace the destination address in the workflow failure email node (YOUR_ALERT_EMAIL) so errors are reported to the right person. An n8n automation workflow template by Luca.
- 7 nodes
- Automation
- AI
By Melbin Francis
Quick Overview This workflow triggers on GitLab merge request updates, scans changed markup files for basic WCAG 2.1 accessibility issues aligned with EU Accessibility Act requirements, then sets a commit status and maintains a single merge request comment with findings and fixes. How it works Triggers when a GitLab merge request is opened, reopened, or updated while it is in the opened state. Calls the GitLab REST API to list merge request diffs, then keeps only markup-related files and calculates which line numbers were added by the merge request. Fetches the full content of each changed markup file from GitLab at the merge request’s last commit SHA. Analyzes the markup to flag issues such as missing image alt text, missing form labels, missing page language, empty links/buttons, missing iframe titles, low inline color contrast, positive tabindex, and autoplay media, and marks whether each issue is in added lines. Decides pass or fail based on problems introduced by the merge request (or unreadable files), with an optional waiver via a configured GitLab label. Posts the result as a GitLab commit status and creates or updates a single merge request comment containing the detailed findings and suggested fixes. Setup Add a GitLab OAuth2 credential with API access and select it in the GitLab Trigger and all GitLab HTTP Request/GitLab nodes. In the GitLab Trigger, set the target group/owner and repository/project so GitLab can register the merge request webhook. Activate the workflow once so the GitLab Trigger registers its webhook, then ensure merge requests are configured to require successful pipelines/status checks (for example, enable “Pipelines must succeed”) if you want failures to block merging. Optionally adjust the rules in the workflow (file extensions to scan, minimum contrast ratio, whether warnings block, the waiver label name, and the commit status name) to match your project standards. An n8n automation workflow template by Melbin Francis.
- 3 nodes
- Automation
By Melbin Francis
Quick overview Every six hours, this checks the software libraries your products use against public lists of security holes that hackers are actively using right now. For each real match it opens a Jira ticket with the EU Cyber Resilience Act reporting deadlines. How it works Every six hours the workflow starts and reads your settings: which GitHub repositories are your products, and how strict the deadlines are. It downloads two official lists of security holes that are being exploited right now: one from the US agency CISA and one from the EU agency ENISA. If either list fails to load, it stops instead of wrongly saying you are safe. For each product repository, it asks GitHub for the full list of libraries and the exact versions it uses. It asks the free OSV database which known security problems affect those exact versions. It keeps only the problems that are also on the 'actively exploited' lists. A library with an old, unexploited issue does not create noise. For each new match it opens one Jira ticket with the 24-hour, 72-hour and final-report deadlines. It never creates duplicates, and if a deadline passes on an open ticket it adds a comment and a label. If a repository cannot be read (wrong name, no access, or dependency list switched off), it opens a ticket saying so, so a blind spot is never mistaken for 'all clear'. Setup Connect your GitHub account in n8n, and in each product repository turn on the dependency graph (Settings > Code security) so GitHub can list its libraries. Connect your Jira Cloud account, then open the 'Open A Jira Ticket' step and choose the project and issue type where the tickets should go. Open 'Reporting Policy' and list your product repositories as owner/name, separated by commas. The default deadlines follow the CRA (24 hours, 72 hours, 14 days); change them only if your legal team says so. Requirements A GitHub account that can read your product repositories, and a Jira Cloud account. The vulnerability lists and OSV are free and need no account. Customization Change how often it runs, the ticket label, or the deadline times in 'Reporting Policy'. Additional info This starts the reporting clock and keeps track of it; a person still decides whether a finding must be reported. A ticket you close is never reopened. The final-report deadline is only flagged once a fixed version exists. An n8n automation workflow template by Melbin Francis.
- 4 nodes
- Automation
By vijay kireeti varma
Quick Overview This workflow runs daily to scan GitHub Actions workflow files across a GitHub org or user, flags supply-chain risk patterns and unpinned actions, uses Google Gemini to review new or changed workflows, and posts instant alerts plus a daily security digest to Slack while tracking results in an n8n Data Table. How it works Runs every day at 7:00 AM on a schedule. Creates (if missing) and loads an n8n Data Table baseline of previously scanned workflow files and their last known SHAs. Uses the GitHub REST and Contents APIs to list repositories, enumerate .github/workflows files, and keep only YAML workflow files. Compares each workflow file’s current SHA to the stored inventory to process only new or changed files and keep previous results for unchanged files. Downloads changed workflow files, performs rule-based checks for common GitHub Actions attack patterns, and uses GitHub GraphQL to resolve commit SHAs for unpinned uses: references to provide ready-to-paste pinning suggestions. Sends the highest-risk changed workflows (up to the configured limit) to Google Gemini for a structured security verdict and posts an immediate Slack alert when the verdict is malicious/suspicious or rule checks include critical findings. Upserts scan results back into the Data Table, has Google Gemini generate a short daily digest from the scan statistics, posts the digest to Slack, and optionally creates GitHub issues for serious findings in private repositories. Setup Add a GitHub credential (personal access token) with Contents/Metadata read access (and Issues write access if you enable issue creation) and select it for the GitHub and GitHub HTTP Request steps. Add a Google Gemini API key credential and connect it to both Gemini chat model steps used for file review and for the daily digest. Add a Slack credential and set the target channel (default #security-alerts) for the instant alert and daily digest messages. Update the Settings values (at least github_owner and owner_type, plus any optional filters and limits like repo_name_filter, max_repositories, and max_ai_reviews). Run the workflow once to create/populate the gha_security_inventory Data Table baseline, then activate it to scan automatically on the schedule. An n8n automation workflow template by vijay kireeti varma.
- 7 nodes
- Automation
- AI