Workflow Templates
Discover and use pre-built workflows to automate your tasks
3990 templates found
Discover and use pre-built workflows to automate your tasks
3990 templates found
by JaredCo
Real-time Weather Forecasts with MCP Tools This n8n workflow demonstrates how to integrate real-time weather intelligence into any automation using the Model Context Protocol (MCP). Get current conditions and 5-day forecasts with natural language queries like "What's the weather like in Miami?" or "Will it rain next Tuesday in Seattle?" - all powered by live weather data and AI. Good to know No API keys required - uses hosted MCP weather server with built-in WorldWeatherOnline integration Provides current conditions and detailed 5-day forecasts Natural language queries work for any location worldwide Powered by WorldWeatherOnline - the world's most accurate weather system Fully preconfigured and ready to run out-of-the-box Enterprise-ready with error handling and rate limiting How it works Natural Language Input**: Receives weather queries via webhook, chat, email, or voice AI Agent Processing**: n8n Agent node interprets requests and determines: Location extraction from natural language Weather data type needed (current or 5-day forecast) Response formatting preferences MCP Weather Tool**: Live hosted server provides: Real-time current conditions (temperature, humidity, wind, conditions) 5-day detailed forecasts with daily highs/lows Weather descriptions and condition codes Powered by WorldWeatherOnline's premium data Intelligent Responses**: AI formats weather data into: Conversational natural language responses Structured data for downstream automation Action-triggering data for workflows How to use Import the workflow into n8n from the template Add your preferred AI model API key to the Agent node Customize the system prompt for your specific use case Connect to your preferred input/output channels Run and start querying weather with natural language Use Cases Smart Home Automation**: "Turn on sprinklers if no rain forecast for 3 days" Travel Planning**: "Check weather for my Paris trip next week" Event Management**: "Will outdoor wedding conditions be good Saturday?" Agriculture/Farming**: "Check 5-day forecast for planting schedule" Logistics**: "Delay shipping if severe weather forecast in delivery zone" Personal Assistant**: "Should I wear a jacket today in Chicago?" Sports/Recreation**: "Surf conditions and wind forecast for weekend" Construction**: "Safe working conditions for outdoor project this week" Requirements n8n instance (cloud or self-hosted) AI model provider account (OpenAI, Anthropic, Google, etc.) Internet connection for MCP weather server access Optional: Webhook endpoints for external integrations Customizing this workflow Location Intelligence**: Add geocoding for address-to-coordinates conversion Data Storage**: Save weather history to databases for trend analysis Dashboard Integration**: Connect to Grafana, Tableau, or custom visualizations Voice Integration**: Add speech-to-text for voice weather queries Scheduling**: Set up automated daily/weekly weather briefings Conditional Logic**: Trigger different actions based on weather conditions Sample Input/Output Natural Language Queries: "What's the weather like in Miami?" "Will it rain next Tuesday in Seattle?" "5-day forecast for London" "Temperature in Tokyo tomorrow" "Weather conditions for outdoor event Saturday" Rich Responses: { "location": "Miami, FL", "current": { "temperature": "78°F", "condition": "Partly Cloudy", "humidity": "65%", "wind": "10 mph SE" }, "forecast": { "today": "High 82°F, Low 71°F, 20% rain", "tomorrow": "High 85°F, Low 73°F, Sunny" }, "ai_summary": "Perfect beach weather in Miami today! Partly cloudy with comfortable temperatures and light winds." } Why This Workflow is Unique Zero Setup Weather Data**: No API key management - MCP server handles everything World-Class Accuracy**: Powered by WorldWeatherOnline's premium weather data AI-Powered Intelligence**: Natural language understanding of complex weather queries Enterprise Ready**: Built-in error handling, rate limiting, and reliability Global Coverage**: Worldwide weather data with location intelligence Action-Oriented**: Designed for automation decisions, not just information display Transform your automations with intelligent weather awareness powered by the world's most accurate weather system! 🧪 Setup Steps ✅ The Agent node is already configured: The system prompt is included The tool endpoint is pre-set All you need to do is: Add your AI model API key to the existing Agent credential Hit run and you're done ✅ 🔗 Full project link: Github: weathertrax-mcp-agent-demo
by Viktor Klepikovskyi
Google Sheets UI for Workflow Control This n8n template provides a practical and efficient way to manage your n8n workflows using Google Sheets as a user-friendly interface. It demonstrates how to leverage a simple spreadsheet to control inputs, capture outputs, and track the processing status of individual data rows, offering a clear and visual overview of your automation tasks. Purpose of This Template: The primary purpose of this template is to illustrate how Google Sheets can serve as a dynamic UI for your n8n automations. It's designed for n8n users who need: A structured method to feed specific data into their workflows. The ability to selectively trigger workflow execution based on data status. A centralized place to view and store workflow outputs alongside original inputs. A simple, no-code solution for managing workflow data without building custom applications. Setup Instructions: To use this template, follow these steps: Create a Google Sheet: Set up a new Google Sheet (see the template here) with three columns: Color, Status, and Number. Populate the Color column with some sample data (e.g., color names) and set the Status for the rows you want to process to READY. Import the n8n Workflow: Import this n8n template into your n8n instance. Configure Google Sheets Nodes: For the first Google Sheets node (Read operation), ensure it's connected to your newly created Google Sheet and configured to read rows where the Status column is READY. You will need to authenticate your Google Sheets account. For the second Google Sheets node (Update operation), ensure it's also connected to the same Google Sheet. The node should automatically map the row_number, Number, and Status fields from the preceding nodes. Execute the Workflow: Run the workflow. Observe how it reads READY rows, processes them (calculates string length), and updates the Number and Status columns in your Google Sheet to DONE. Control Execution: To process new data, simply add new rows to your Google Sheet and set their Status to READY. Rerunning the workflow will then only process these new entries. For more details and context on this approach, you can refer to the related blog post 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 Giacomo Lanzi
Extract Title tag and meta description from url for SEO analysis. How it works The workflows takes records from Airtable, get the url in the records and extract from the related webpage the title tag (<title>) and meta description (<meta name="description" content="Some content">). If title tag and/or meta description tag isn't available on the webpage, the result will be empty. Setup Set a Base in Airtable with a table with the following structure: url (field type url), title tag (field type text string), meta desc (field type text field) Minimum suggested table structure is: url (https://example.com), title (Title example), meta desc* (This is the meta description of the example page) Connect Airtable to both Airtable nodes in the template and, with the following formula, get all the records that miss title tag and meta desc. Formula: AND(url != "", {title tag} = "", {meta desc} = "") Insert the url to be analyzed in the table in the field url and let the workflow do the rest. Extra You can also calculate the length for title tag and meta desc using formula field inside Airtable. This is the formula: LEN({title tag}) or LEN({meta desc}) You can automate the process calling a Webhook from Airtable. For this, you need an Airtable paid plan.
by Audun
Send structured logs to BetterStack from any workflow using HTTP Request Who is this for? This workflow is perfect for automation builders, developers, and DevOps teams using n8n who want to send structured log messages to BetterStack Logs. Whether you're monitoring mission-critical workflows or simply want centralized visibility into process execution, this reusable log template makes integration easy. What problem is this workflow solving? Logging failures or events across multiple workflows typically requires duplicated logic. This workflow solves that by acting as a shared log sender, letting you forward consistent log entries from any other workflow using the Execute Workflow node. What this workflow does Accepts level (e.g., "info", "warn", "error") and message fields via Execute Workflow Trigger Sends the structured log to your BetterStack ingestion endpoint via HTTP Request Uses HTTP Header Auth for secure delivery Includes a manual trigger for testing and a sample call to demonstrate usage Comes with clear sticky notes to help you get started Setup Copy your BetterStack Logs ingestion URL. Create a Header Auth credential in n8n with your Authorization: Bearer YOUR_API_KEY. Replace the URL in the HTTP Request node with your BetterStack endpoint. Optionally modify the test data or log levels for custom scenarios. Use Execute Workflow in any of your workflows to send logs here.
by Jaruphat J.
⚠️ Note: This template requires a community node and works only on self-hosted n8n installations. It uses the Typhoon OCR Python package and custom command execution. Make sure to install required dependencies locally. Who is this for? This template is for developers, operations teams, and automation builders in Thailand (or any Thai-speaking environment) who regularly process PDFs or scanned documents in Thai and want to extract structured text into a Google Sheet. It is ideal for: Local government document processing Thai-language enterprise paperwork AI automation pipelines requiring Thai OCR What problem does this solve? Typhoon OCR is one of the most accurate OCR tools for Thai text. However, integrating it into an end-to-end workflow usually requires manual scripting and data wrangling. This template solves that by: Running Typhoon OCR on PDF files Using AI to extract structured data fields Automatically storing results in Google Sheets What this workflow does Trigger: Run manually or from any automation source Read Files: Load local PDF files from a doc/ folder Execute Command: Run Typhoon OCR on each file using a Python command LLM Extraction: Send the OCR markdown to an AI model (e.g., GPT-4 or OpenRouter) to extract fields Code Node: Parse the LLM output as JSON Google Sheets: Append structured data into a spreadsheet Setup 1. Install Requirements Python 3.10+ typhoon-ocr: pip install typhoon-ocr Install Poppler and add to system PATH (needed for pdftoppm, pdfinfo) 2. Create folders Create a folder called doc in the same directory where n8n runs (or mount it via Docker) 3. Google Sheet Create a Google Sheet with the following column headers: | book\_id | date | subject | detail | signed\_by | signed\_by2 | contact | download\_url | | -------- | ---- | ------- | ------ | ---------- | ----------- | ------- | ------------- | You can use this example Google Sheet as a reference. 4. API Key Export your TYPHOON_OCR_API_KEY and OPENAI_API_KEY in your environment (or set inside the command string in Execute Command node). How to customize this workflow Replace the LLM provider in the Basic LLM Chain node (currently supports OpenRouter) Change output fields to match your data structure (adjust the prompt and Google Sheet headers) Add trigger nodes (e.g., Dropbox Upload, Webhook) to automate input About Typhoon OCR Typhoon is a multilingual LLM and toolkit optimized for Thai NLP. It includes typhoon-ocr, a Python OCR library designed for Thai-centric documents. It is open-source, highly accurate, and works well in automation pipelines. Perfect for government paperwork, PDF reports, and multilingual documents in Southeast Asia.
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 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 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
by Nskha
This N8N workflow automates the process of sharing files from Google Drive. It includes OAuth2 authentication, batch processing, public link generation, and access status modification for efficient file handling. Suitable for users seeking to streamline their Google Drive file sharing process. sutiable for bulk actions, tested on 4.2K files folder working like charm. How It Works Initialize Workflow: The process begins with a Manual Trigger, allowing the user to start the workflow at their convenience. Folder ID Specification: A 'Set Folder ID' node where the user can enter the desired Google Drive Folder ID. List Files from Google Drive: The 'Google Drive' node lists all files within the specified folder using OAuth2 authentication. Batch Processing: The 'Loop Over Items' node processes the files in batches for efficiency. Generate Public Links: The 'Generate Download Links' node creates downloadable links for each file. Change File Access: The 'Change Status' node alters the file status to make them publicly accessible. Merge and Output: A 'Merge' node consolidates the data, preparing it for further actions or output. Set Up Steps Estimated Time**: The setup should take approximately 10-15 minutes. Initial Setup**: You'll need to provide OAuth2 credentials for Google Drive and specify a folder ID. Customization**: Adjust the batch size and file access permissions according to your needs. Detailed Descriptions**: For specific configuration details, refer to the sticky notes within the workflow. Example Item output { "link": "https://drive.google.com/u/3/uc?id=1hojqPfXchNTY8YRTNkxSo-8txK9re-V4&export=download&confirm=t&authuser=0", "name": "firefox_rNjA0ybKu7.png", "kind": "drive#permission", "id": "anyoneWithLink", "type": "anyone", "role": "reader", "allowFileDiscovery": false } You can store the output data with any data store node you want, for example save them into Excel Sheet or Airtable etc... Keywords: n8n workflow, Google Drive integration, file sharing automation, batch file processing, public link generation, OAuth2 authentication, workflow automation
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)