Workflow Templates
Discover and use pre-built workflows to automate your tasks
7397 templates found
Discover and use pre-built workflows to automate your tasks
7397 templates found
by Nick Saraev
Website AI Agent with Calendar Integration Categories: AI Agents, Website Integration, Calendar Automation This workflow creates a complete website AI agent that can be embedded on any website with just a few lines of code. The agent handles customer inquiries, provides business information, and automatically books meetings by checking calendar availability in real-time. Built for simplicity and business practicality, this system proves that effective AI agents don't need to be overcomplicated. Benefits Universal Website Integration** - Works with WordPress, Webflow, Squarespace, custom sites, or any platform that accepts HTML Intelligent Calendar Management** - Checks availability and books meetings automatically without double-booking Business-Ready Conversations** - Trained with specific business context and maintains professional, helpful interactions Real-Time Functionality** - All changes to the N8N workflow are immediately reflected on your live website No Technical Complexity** - Simple architecture that prioritizes reliability and consistent outputs over flashy features Customizable Branding** - Easy to modify appearance, messages, and behavior to match your brand How It Works Embedded Chat Interface: Generates embeddable HTML code that creates a chat widget on any website Provides both hosted and embedded modes for different use cases Handles all communication between website visitors and the AI system Intelligent Conversation Management: Uses sophisticated system prompts to maintain context about your business Handles common inquiries about services, pricing, and company information Gracefully redirects off-topic conversations back to business matters Smart Calendar Integration: Connects to Google Calendar to check real-time availability Automatically suggests meeting times based on your schedule Collects all necessary information (name, email, preferred time) before booking Meeting Booking Process: Validates meeting requests against existing calendar entries Confirms all details with users before creating calendar events Sends automatic invitations with proper timezone handling Required Setup Configuration System Message Requirements: Your AI agent needs a comprehensive system message that includes: Business Identity:** Company name, services, location, timezone Business Context:** What you offer, pricing information, key differentiators Conversation Rules:** How to handle inquiries, booking procedures, moderation guidelines Personality Instructions:** Tone of voice, response style, conversation length preferences Example System Message Structure: You are a helpful, intelligent website chatbot for [Company Name], a [business type]. The current date is [dynamic date]. You are in the [timezone] timezone. Business Context: We offer [services] with [key benefits] Our pricing is [pricing structure] We work with [target customers] Your task is answering questions about the business & booking meetings. For meetings: use calendar function to check availability, collect name/email/preferred time, confirm details. Rules: Keep responses short and conversational Stay focused on business topics Always confirm timezone when discussing meeting times Google Calendar Setup: Enable Google Calendar API in Google Cloud Console Create OAuth2 credentials for N8N Connect your business calendar in the Google Calendar nodes Set correct timezone in both nodes to match your business location Website Integration: Switch chat trigger to "embedded" mode Copy the provided CDN embed code Paste code into your website's HTML (before closing body tag) Replace webhook URL with your production URL Business Use Cases Service Businesses** - Automate initial consultations and lead qualification Agencies** - Handle project inquiries and schedule discovery calls Consultants** - Streamline the booking process for potential clients E-commerce** - Provide product support and schedule demos Any Business** - Replace contact forms with intelligent conversation Revenue Potential This system can replace expensive chatbot services that cost $100-500/month. The automated booking feature alone typically increases meeting conversion rates by 40-60% compared to traditional contact forms. Difficulty Level: Beginner Estimated Build Time: 15-20 minutes Monthly Operating Cost: ~$10 (OpenAI API usage) Watch My 13-Minute Build Want to see exactly how I built this from scratch? I walk through the complete setup process in real-time, including all the configuration, testing, and website integration. 🎥 See My Complete Build Process: "How to Build a Website AI Agent in 13 Min (Free N8N Template)" This step-by-step tutorial shows you my exact process for creating business-ready AI agents that actually make money, not just impressive demos. Set Up Steps Basic Agent Configuration: Create new N8N workflow with AI Agent node Connect OpenAI Chat Model with your API credentials Add Window Buffer Memory for conversation context System Message Setup: Configure detailed business context and operating instructions Set timezone and personality parameters for consistent responses Define conversation rules and moderation guidelines Google Calendar Integration: Set up Google Calendar credentials through Google Cloud Console Configure "Get All Events" tool for availability checking Set up "Create Event" tool for automated booking Website Embedding: Switch chat trigger to "embedded" mode for website integration Copy the provided CDN embed code Paste code into your website's HTML with your webhook URL Customization Options: Modify initial messages and branding in the embed code Adjust colors and styling using CSS variables Configure timezone settings to match your business location Testing & Optimization: Test complete conversation flows from inquiry to booking Verify calendar integration works correctly with your timezone Optimize system prompts based on actual user interactions Advanced Features Extend this system with additional capabilities: CRM Integration** - Automatically add leads to your sales pipeline Multi-language Support** - Handle conversations in different languages Custom Business Logic** - Add specific qualification questions or routing Analytics Tracking** - Monitor conversation patterns and conversion rates Check Out My Channel For more practical automation systems that generate real business value, check out my YouTube channel where I share the exact strategies I used to scale my automation agency to $72K/month.
by LukaszB
This workflow is designed for freelancers, solopreneurs, and business owners who receive a high volume of irrelevant messages in their Gmail inbox — from cold offers to spammy promotions — and want to automatically filter and delete them using AI. Its main purpose is to scan new emails with the help of OpenAI, classify their content, and automatically delete those considered marketing (OFFER) or junk (SPAM). The result is a cleaner inbox without the need to manually sift through low-value messages. The classification logic uses a detailed system prompt with practical examples, so even complex or borderline messages are categorized accurately. Important emails — such as payment confirmations, shipping updates, or genuine business inquiries — remain untouched. This helps maintain a professional inbox with only valuable and relevant communication. The entire process runs automatically in the background and can be customized further — for example, to archive instead of delete, or log deleted emails for review. How it works When triggered (every hour), the workflow fetches new Gmail messages using the Gmail Trigger node. Each message is passed to an AI classifier powered by OpenAI, which reads the message body (email snippet) and returns one of three labels: SPAM: Obvious junk messages, scams, or low-effort bulk messages OFFER: Cold outreach, discount promotions, cart reminders, or generic advertising IMPORTANT: Valuable information for the user, even if commercial (e.g., invoices, order updates, personal inquiries) The workflow then routes the result through an IF node. If the message is marked as SPAM or OFFER, it is immediately deleted from Gmail via the Gmail Delete node. Emails marked as IMPORTANT are ignored and remain in the inbox. The classification is entirely AI-driven based on message content — sender address, headers, or metadata are not used. How to set up To get started, simply connect two credentials: A Gmail account using OAuth2 (via the Gmail Trigger and Gmail Delete nodes) An OpenAI API key (used by the AI classifier node) No advanced setup is needed beyond these two connections. Optionally, you can review or modify the system prompt used for classification — it’s available inside the workflow’s LangChain AI Agent node. The prompt is in English, so it’s recommended to use this workflow with English-language emails for best results. By default, the workflow deletes matching emails immediately. If you prefer safer testing, you can modify the Gmail node to archive, label, or log emails instead of deleting them. The full workflow takes around 5–10 minutes to configure and includes a sticky note with additional instructions and warnings.
by Daniel Nolde
What it is: In version 1.78, n8n introduced a dedicated node to use the OpenRouter service, which lets you to use a lot of different LLM models and providers and change models on the fly in an agentic workflow. For prior n8n versions, there's a workaround to make OpenRouter accessible, by using the OpenAI node with a OpenRouter-specific BaseURL. This trivial workflow demonstrates this for version before 1.78, so that you can use different LLM model dynamically with the available n8n nodes for OpenAI LLM and OpenAI credentials. What you can do: Use any of the OpenRouter models Have the model even dynamically configured or changing (by some external config, some rule, or some specific chat message) Setup steps: Import the workflow Ensure you have registered and account, purchased some credits and created and API key for OpenRouter.ai Configure the "OpenRouter" credentials with your own credentials, using an OpenAI type credential, but making sure in the credential's config form its "Base URL" is set to https://openrouter.ai/api/v1 so OpenRouter is used instead of OpenAI. Open the "Settings" node and change the model value to any valid model id from the OpenRouter models list or even have the model property set dynamically
by Airtop
Automating LinkedIn Company URL Verification Use Case This automation verifies that a given LinkedIn URL actually belongs to a company by comparing the website listed on their LinkedIn page against the expected company domain. It is essential for ensuring data accuracy in lead qualification, enrichment, and CRM updates. What This Automation Does Input Parameters Company LinkedIn**: The LinkedIn URL to be verified. Company Domain**: The expected domain (e.g., example.com) for validation. Airtop Profile (connected to LinkedIn)**: Airtop Profile with LinkedIn authentication. Output Confirmation whether the LinkedIn page corresponds to the provided domain. Returns the verified LinkedIn URL if the match is confirmed. How It Works Extracts the website URL from the specified LinkedIn company profile. Compares the extracted URL with the provided company domain. If the domain is contained in the extracted website, the LinkedIn profile is confirmed as valid. Returns the original LinkedIn URL if the match is successful. Setup Requirements Airtop API Key LinkedIn-authenticated Airtop Profile Next Steps Use for LinkedIn Discovery Validation**: Ensure correctness after automated LinkedIn page discovery. Combine with CRM Updates**: Prevent incorrect LinkedIn links from being stored in CRM. Automate in Data Pipelines**: Use this as a validation gate before enrichment or scoring steps.
by Guillaume Duvernay
Description This template provides a simple and powerful backend for adding speech-to-text capabilities to any application. It creates a dedicated webhook that receives an audio file, transcribes it using OpenAI's gpt-4o-mini model, and returns the clean text. To help you get started immediately, you'll find a complete, ready-to-use HTML code example right inside the workflow in a sticky note. This code creates a functional recording interface you can use for testing or as a foundation for your own design. Who is this for? Developers:** Quickly add a transcription feature to your application by calling this webhook from your existing frontend or backend code. No-code/Low-code builders:** Embed a functional audio recorder and transcription service into your projects by using the example code found inside the workflow. API enthusiasts:** A lean, practical example of how to use n8n to wrap a service like OpenAI into your own secure and scalable API endpoint. What problem does this solve? Provides a ready-made API:** Instantly gives you a secure webhook to handle audio file uploads and transcription processing without any server setup. Decouples frontend from backend:** Your application only needs to know about one simple webhook URL, allowing you to change the backend logic in n8n without touching your app's code. Offers a clear implementation pattern:** The included example code provides a working demonstration of how to send an audio file from a browser and handle the response—a pattern you can replicate in any framework. How it works This solution works by defining a clear API contract between your application (the client) and the n8n workflow (the backend). The client-side technique: Your application's interface records or selects an audio file. It then makes a POST request to the n8n webhook URL, sending the audio file as multipart/form-data. It waits for the response from the webhook, parses the JSON body, and extracts the value of the Transcript key. You can see this exact pattern in action in the example code provided in the workflow's sticky note. The n8n workflow (backend): The Webhook node catches the incoming POST request and grabs the audio file. The HTTP Request node sends this file to the OpenAI API. The Set node isolates the transcript text from the API's response. The Respond to Webhook node sends a clean JSON object ({"Transcript": "your text here..."}) back to your application. Setup Configure the n8n workflow: In the Transcribe with OpenAI node, add your OpenAI API credentials. Activate the workflow to enable the endpoint. Click the "Copy" button on the Webhook node to get your unique Production Webhook URL. Integrate with the frontend: Inside the workflow, find the sticky note labeled "Example Frontend Code Below". Copy the complete HTML from the note below it. ⚠️ Important: In the code you just copied, find the line const WEBHOOK_URL = 'YOUR WEBHOOK URL'; and replace the placeholder with the Production Webhook URL from n8n. Save the code as an HTML file and open it in your browser to test. Taking it further Save transcripts:* Add an *Airtable* or *Google Sheets** node to log every transcript that comes through the workflow. Error handling:** Enhance the workflow to catch potential errors from the OpenAI API and respond with a clear error message. Analyze the transcript:* Add a *Language Model** node after the transcription step to summarize the text, classify its sentiment, or extract key entities before sending the response.
by Oneclick AI Squad
This n8n template demonstrates how to create a comprehensive voice-powered restaurant assistant that handles table reservations, food orders, and restaurant information requests through natural language processing. The system uses VAPI for voice interaction and PostgreSQL for data management, making it perfect for restaurants looking to automate customer service with voice AI technology. Good to know Voice processing requires active VAPI subscription with per-minute billing Database operations are handled in real-time with immediate confirmations The system can handle multiple simultaneous voice requests All customer data is stored securely in PostgreSQL with proper indexing How it works Table Booking & Order Handling Workflow Voice requests are captured through VAPI triggers when customers make booking or ordering requests The system processes natural language commands and extracts relevant details (party size, time, food items) Customer data is immediately saved to the bookings and orders tables in PostgreSQL Voice confirmations are sent back through VAPI with booking details and estimated wait times All transactions are logged with timestamps for restaurant management tracking Restaurant Info Provider Workflow Info requests trigger when customers ask about hours, menu, location, or services Restaurant details are retrieved from the restaurant_info table containing current information Wait nodes ensure proper data loading before voice response generation Structured restaurant information is delivered via VAPI in natural, conversational format Database Schema Bookings Table booking_id (PRIMARY KEY) - Unique identifier for each reservation customer_name - Customer's full name phone_number - Contact number for confirmation party_size - Number of guests booking_date - Requested reservation date booking_time - Requested time slot special_requests - Dietary restrictions or special occasions status - Booking status (confirmed, pending, cancelled) created_at - Timestamp of booking creation Orders Table order_id (PRIMARY KEY) - Unique order identifier customer_name - Customer's name phone_number - Contact for order updates order_items - JSON array of food items and quantities total_amount - Calculated order total order_type - Delivery, pickup, or dine-in special_instructions - Cooking preferences or allergies status - Order status (received, preparing, ready, delivered) created_at - Order timestamp Restaurant_Info Table info_id (PRIMARY KEY) - Information entry identifier category - Type of info (hours, menu, location, contact) title - Information title description - Detailed information content is_active - Whether info is currently valid updated_at - Last modification timestamp How to use The manual trigger can be replaced with webhook triggers for integration with existing restaurant systems Import the workflow into your n8n instance and configure VAPI credentials Set up PostgreSQL database with the required tables using the schema provided above Configure restaurant information in the restaurant_info table Test voice commands such as "Book a table for 4 people at 7 PM" or "What are your opening hours?" Customize voice responses in VAPI nodes to match your restaurant's tone and branding The system can handle multiple concurrent voice requests and scales with your restaurant's needs Requirements VAPI account for voice processing and natural language understanding PostgreSQL database for storing booking, order, and restaurant information n8n instance with database and VAPI integrations enabled Customising this workflow Voice AI automation can be adapted for various restaurant types - from quick service to fine dining establishments Try popular use-cases such as multi-location booking management, dietary restriction handling, or integration with existing POS systems The workflow can be extended to include payment processing, SMS notifications, and third-party delivery platform integration
by Jonathan | NEX
Supercharge Your Security Operations for Free Stop wasting time manually investigating suspicious IP addresses. This workflow template is your launchpad to automating real-time IP cybersecurity analysis using the NixGuard platform, which you can use for free. This is the first of a two-part system designed to integrate seamlessly into your existing security stack, especially with Wazuh. It calls our main workflow, Automate IP Reputation Checks and Get AI Risk Summaries from NixGuard, to do the heavy lifting. What This Workflow Unlocks for You Free AI-Powered Risk Summaries:** Don't just get data; get answers. NixGuard provides a clear, human-readable summary of why an IP is considered risky. Automated IP Reputation Checks:** Programmatically check any IP against a vast array of threat intelligence sources. A Foundation for Your SOC Automation:** Use the results to trigger your incident response process. The template includes a pre-built example of how to send a detailed alert to Slack, which you can easily adapt for Jira, TheHive, or any other tool. How the Two-Workflow System Works This "Dispatcher" workflow is designed for flexibility. It holds your API key and input, then calls the main analysis workflow. This allows you to easily create multiple triggers (e.g., one for Slack bots, one for webhooks) without duplicating the core logic. Critical Setup Instructions Get the Main Workflow: First, add the main analysis engine to your n8n instance from the community page: NixGuard Analysis Workflow. Add Your Free API Key: In this workflow, click the blue Set API Key & Initial Prompt node. Paste your free NixGuard API key into the apiKey value field. Connect The Workflows: Click the purple Execute NixGuard & Wazuh Workflow node. In the parameters, use the dropdown to select the main analysis workflow you added in Step 1. Ready to automate your threat intelligence? Get your free API key and learn more at; 🔗 Learn more about NixGuard: [thenex.world](thenex.world )🔗 Get started with a free security subscription: thenex.world/security/subscribe Tags: Free, IP Analysis, NixGuard, Wazuh, Security, Automation, AI, Cybersecurity, Threat Intelligence, SOC, Incident Response, IP Reputation, DevSecOps, API
by Hueston
Who is this for? Content strategists analyzing web page semantic content SEO professionals conducting entity-based analysis Data analysts extracting structured data from web pages Marketers researching competitor content strategies Researchers organizing and categorizing web content Anyone needing to automatically extract entities from web pages What problem is this workflow solving? Manually identifying and categorizing entities (people, organizations, locations, etc.) on web pages is time-consuming and error-prone. This workflow solves this challenge by: Automating the extraction of named entities from any web page Leveraging Google's powerful Natural Language API for accurate entity recognition Processing web pages through a simple webhook interface Providing structured entity data that can be used for analysis or further processing Eliminating hours of manual content analysis and categorization What this workflow does This workflow creates an automated pipeline between a webhook and Google's Natural Language API to: Receive a URL through a webhook endpoint Fetch the HTML content from the specified URL Clean and prepare the HTML for processing Submit the HTML to Google's Natural Language API for entity analysis Return the structured entity data through the webhook response Extract entities including people, organizations, locations, and more with their salience scores Setup Prerequisites: An n8n instance (cloud or self-hosted) Google Cloud Platform account with Natural Language API enabled Google API key with access to the Natural Language API Google Cloud Setup: Create a project in Google Cloud Platform Enable the Natural Language API for your project Create an API key with access to the Natural Language API Copy your API key for use in the workflow n8n Setup: Import the workflow JSON into your n8n instance Replace "YOUR-GOOGLE-API-KEY" in the "Google Entities" node with your actual API key Activate the workflow to enable the webhook endpoint Copy the webhook URL from the "Webhook" node for later use Testing: Use a tool like Postman or cURL to send a POST request to your webhook URL Include a JSON body with the URL you want to analyze: {"url": "https://example.com"} Verify that you receive a response containing the entity analysis data How to customize this workflow to your needs Analyzing Specific Entity Modify the "Google Entities" node parameters to include entityType filters Add a "Function" node after "Google Entities" to filter specific entity types Create conditions to extract only entities of interest (people, organizations, etc.) Processing Multiple URLs in Batch: Replace the webhook with a different trigger (HTTP Request, Google Sheets, etc.) Add a "Split In Batches" node to process multiple URLs Use a "Merge" node to combine results before sending the response Enhancing Entity Data: Add additional API calls to enrich extracted entities with more information Implement sentiment analysis alongside entity extraction Create a data transformation node to format entities by type or relevance Additional Notes This workflow respects Google's API rate limits by processing one URL at a time The Natural Language API may not identify all entities on a page, particularly for highly technical content HTML content is trimmed to 100,000 characters if longer to avoid API limitations Consider legal and privacy implications when analyzing and storing entity data from web pages You may want to adjust the HTML cleaning process for specific website structures ❤️ Hueston SEO Team
by Niklas Hatje
Use Case In most companies, employees have a lot of great ideas. That was the same for us at n8n. We wanted to make it as easy as possible to allow everyone to add their ideas to some formatted database - it should be somewhere where everyone is all the time and could add a new idea without much extra effort. Since we're using Slack, this seemed to be the perfect place to easily add ideas and collect them in Notion. What this workflow does This workflow waits for a webhook call within Slack, that gets fired when users use the /idea command on a bot that you will create as part of this template. It then checks the command, adds the idea to Notion, and notifies the user about the newly added idea as you can see below: Creating your Slack bot Visit https://api.slack.com/apps, click on New App and choose a name and workspace. Click on OAuth & Permissions and scroll down to Scopes -> Bot token Scopes Add the chat:write scope Head over to Slash Commands and click on Create New Command Use /idea as the command Copy the test URL from the Webhook node into Request URL Add whatever feels best to the description and usage hint Go to Install app and click install Setup Add a Database in Notion with the columns Name and Creator Add your Notion credentials and add the integration to your Notion page. Fill the setup node below Create your Slack app (see other sticky) Click Test workflow and use the /idea comment in Slack Activate the workflow and exchange the Request URL with the production URL from the webhook How to adjust it to your needs You can adjust the table in Notion and for example, add different types of ideas or areas that they impact You might wanna add different templates in Notion to make it easier for users to fill their ideas with details Rename the Slack command as it works best for you How to enhance this workflow At n8n we use this workflow in combination with some others. E.g. we have the following things on top: We additionally have a /bug Slack command that adds a new bug to Linear. Here we're using AI to classify the bugs and move it to the right team. (see this template and this template) We also added other types, like /pain to be less solution-driven To make it easier for everyone to give input, we added a Votes column that allows everyone to vote on ideas/pain points in the list We're also running a workflow once a week that highlights the most popular new ideas and the most active voters (see here)
by Ria
This workflow demonstrates how to use the workflowStaticData() function to set any type of variable that will persist within workflow executions. https://docs.n8n.io/code/cookbook/builtin/get-workflow-static-data/ This can be useful for example when working with access tokens that expire after a certain time period. Using staticData we can keep a record of that access token and the expiry time and build our workflow logic around it. Important Static Data only persists across production executions, i.e. triggered by Webhooks or Schedule Triggers (not manual executions!) For this the workflow will have to be activated. Setup configure HTTP Request node to fetch access token from your API (optional) activate workflow test the workflow with the webhook production link you can check the population of the static data in the single executions Feedback If you found this useful or want to report some missing information - I'd be happy to hear from you at ria@n8n.io
by Babish Shrestha
Who is this tempate for? This workflow powers a simple yet effective customer and sales support chatbot for your webshop. It's perfect for solopreneurs who want to automate customer interactions without relying on expensive or complex support tools. How it works? The chatbot listens to user requests—such as checking product availability—and automatically handles the following Fetches product information from a Google Sheet Answers customer queries Places an order Updates the stock after a successful purchase Everything runs through a single Google Sheet used for both stock tracking and order management. Setup Instructions Before you begin, connect your Google Sheets credentials by following this guide: This will be used to connect all the tools to Google Sheets 👉 Setup Google sheets credentials Get Stock Open "Get Stock" tool node and select the Google sheet credentials you created. Choose the correct google sheet document and sheet name and you are done. Place order Go to your "Place Order" tool node and select the Google sheet credentials you have created. Choose the correct google sheet document and sheet name. Update Stock - Open your "Update Stock" tool node and select the Google sheet credentials you have created. Choose the correct google sheet document and sheet name. In "Mapping Column Mode" section select map each column manually. In "Column to match on" select the column with a unique identifier (e.g., Product ID) to match stock items. In values to update section, add only the column(s) that need to be updated—usually the stock count. AI Agent node Adjust the prompt according to your use case and customize what you need. Google Sheet Template Stock sheet |Case ID|Phone Model|Case Name|Case Type|Image URL|Quantity Avaialble|Initital Inventory|Sold| |-|-|-|-|-|-|-|-| |1023|Iphone 14 pro|Black Leather|Magsafe|https://example.com/url|90|100|10 Order sheet |Case ID|Phone Model|Case Name|Name|Phone Number|Address| |-|-|-|-|-|-| |1023|Black Leather |Iphone 14 pro|Fernando Torres|9998898888|Paris, France
by bangank36
This workflow restores all n8n instance workflows from GitHub backups using the n8n API node. It complements the Backup Your Workflows to GitHub template by allowing users to seamlessly restore previously saved workflows. How It Works The workflow fetches workflows stored in a GitHub repository and imports them into your n8n instance. Setup Instructions To configure the workflow, update the Globals node with the following values: repo.owner** – Your GitHub username repo.name** – The name of your GitHub repository storing the workflows repo.path** – The folder path within the repository where workflows are stored For example, if your GitHub username is john-doe, your repository is named n8n-backups, and workflows are stored in a workflows/ folder, you would set: repo.owner → john-doe repo.name → n8n-backups repo.path → workflows/ Required Credentials GitHub API** – Access to your repository n8n API** – To import workflows into your n8n instance Who Is This For? This template is ideal for users who want to restore their workflows from GitHub backups, ensuring easy migration and recovery in case of data loss. Check out my other templates: 👉 My n8n Templates