by Sachin Shrestha
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. This n8n workflow automates invoice management by integrating Gmail, PDF analysis, and Azure OpenAI GPT-4.1, with an optional human verification step for accuracy and control. It's ideal for businesses or individuals who regularly receive invoice emails and want to streamline their accounts payable process with minimal manual effort. The system continuously monitors Gmail for new messages from specified senders. When it detects an email with a PDF attachment and relevant subject line (e.g., "Invoice"), it automatically extracts text from the PDF, analyzes it using Azure OpenAI, and determines if it is a valid invoice. If the AI is uncertain, the workflow sends a manual approval request to a human reviewer. Valid invoices are saved to local storage with a timestamped filename, and a confirmation email is sent upon successful processing. π― Who This Is For Small to medium businesses Freelancers or consultants who receive invoices via email IT or automation teams looking to streamline document workflows Anyone using n8n with access to Gmail and Azure OpenAI β Features Gmail Monitoring** β Automatically checks for new emails from trusted senders AI-Powered Invoice Detection** β Uses Azure GPT-4.1 to intelligently verify PDF contents PDF Text Extraction** β Extracts readable text for analysis Human-in-the-Loop Verification** β Requests approval when AI confidence is low Secure File Storag**e β Saves invoices locally with structured filenames Email Notifications** β Sends confirmations or manual review alerts βοΈ Setup Instructions 1. Prerequisites An active n8n instance (self-hosted or cloud) A Gmail account with OAuth2 credentials An Azure OpenAI account with access to the GPT-4.1 model A local directory for saving invoices (e.g., C:/Test/Invoices/) 2. Gmail OAuth2 Setup In n8n, create Gmail OAuth2 credentials. Configure it with Gmail API access (read emails and attachments). Update the Gmail Trigger node to filter by sender email (e.g., sender@gmail.com). 3. Azure OpenAI Setup Create Azure OpenAI API credentials in n8n. Ensure your endpoint is correctly set and GPT-4.1 access is enabled. Link the credentials in the AI Analysis node. 4. Customize Workflow Settings Sender Email β Update in Gmail Trigger Notification Email β Update in Send Notification node Save Directory β Change in Save Invoice node 5. Testing the Workflow Send a test email from the configured sender with a PDF invoice. Wait for the workflow to trigger and check for: File saved in the directory Confirmation email received Manual review request (if needed) π Workflow Steps Gmail Trigger β Check for PDF Invoice β Extract PDF Text β Analyze with GPT-4.1 β β³ If Invoice: Save & Notify β³ If Uncertain: Request Human Review β³ If Not Invoice: Send Invalid Alert
by Mario
Purpose This workflow creates a versioned backup of an entire Clockify workspace split up into monthly reports. How it works This backup routine runs daily by default The Clockify reports API endpoint is used to get all data from the workspace based on time entries A report file is being retrieved for every month starting with the current one, going back 3 month in total by default If changes happened during a day to any report, it is being updated in Github Prerequisites Create a private Github repository Create credentials for both Clockify and Github (make sure to give permissions for read and write operations) Setup Clone the workflow and select the belonging credentials Follow the instructions given in the yellow sticky notes Activate the workflow
by n8n Team
This workflow automatically sends Zendesk tickets to Pipedrive contacts and makes them task assignees. The automation is triggered every 5 minutes, with Zendesk checking and collecting new tickets which are then individually assigned to a Pipedrive contact. Prerequisites Pipedrive account and Pipedrive credentials Zendesk account and Zendesk credentials Note: The Pipedrive and the Zendesk accounts need to be created by the same person / with the same email. How it works Cron node triggers the workflow every 5 minutes. Zendesk node collects all the tickets received after the last execution timestamp. Set node passes only the requester`s email and ID further to the Merge node. Merge by key node merges both inputs together, the tickets and their contact emails. Pipedrive node then searches for the requester. HTTP Request node gets owner information of Pipedrive contact. Set nodes keep only the requester owner's email and the agent`s email and id. Merge by key node merges the information and adds the contact owner to ticket data. Zendesk node changes the assignee to the Pipedrive contact owner or adds a note if the requester is not found. The Function Item node sets the new last execution timestamp.
by Audun
Who is this for? Security professionals Developers Individuals interested in data breach awareness Use Case Automated monitoring for new breaches Proactive identity protection Demonstration of simple cache mechanism What this workflow does Checks the Have I Been Pwned API every 15 minutes for the latest breaches. Compares new breach data against previously notified breaches. Demonstrates a simple cache mechanism to track previously seen breaches. How the Cache Functionality Works Read from Cache**: Retrieves the last known breach from cache.json to avoid redundant alerts for the same breach. Compare Against Current Breach**: The workflow checks if the latest fetched breach differs from the cached one. Update the Cache**: If a new breach is detected, it updates cache.json with the latest breach data. Setup instructions The endpoint used in this workflow does not require an API key. Add your desired alert mechanism in the red box attached to the New breach node. How to customize this workflow to your needs Modify Notification Settings**: Tailor where alerts are sent (email, Slack, etc.). Add the desired node after the New breach node. This node contains all the data from the breach so it is eaisily available. You can choose from a variety of n8n nodes to send alerts when a new breach is detected. Below are a few common options you might consider adding after the New breach node: Email Node What it does: Sends an email notification to one or more recipients. Use case: Great for simple alerts to your inbox or a team distribution list. Customization: You can include breach details in the subject or body of the email, using data from the New breach node. Slack Node What it does: Sends a message to a Slack channel or user. Use case: Perfect for real-time alerts to your team in Slack. Customization: You can post breach details directly in a channel or DM. You can also format the message (bold, code blocks, etc.). Microsoft Teams Node What it does: Sends a message to a Teams channel. Use case: For organizations that use Microsoft Teams for communication. Customization: Similar to Slack, you can customize the message content and include all relevant breach information. Discord Node What it does: Sends an alert message to a Discord channel. Use case: Useful for teams or communities that coordinate via Discord. Customization: Add formatted messages with breach details for easy viewing. Telegram Node What it does: Sends messages to a Telegram chat or group. Use case: Good for mobile notifications and fast alerts. Customization: You can include breach summaries or detailed information, and even use bots to automate this. Webhook Node (as a sender) What it does: Sends breach data to another service via a webhook. Use case: If you have an external system or app that handles alerts, you can push the data directly to it. Customization: Send JSON payloads with detailed breach information to trigger actions in other systems. SMS Nodes (like Twilio) What it does: Sends an SMS notification to one or more phone numbers. Use case: For urgent alerts that need to be seen immediately. Customization: Keep messages concise, including key breach details like the time, type of breach, and affected system. Adjust Check Frequency**: Change the interval in the Schedule Trigger node (e.g., hourly or daily).
by Jimleuk
If you have a shared or personal drive location with a high frequency of files created by humans, it can become difficult to organise. This may not matter... until you need to search for something! This n8n workflow works with the local filesystem to target the messy folder and categorise as well as organise its files into sub directories automatically. Disclaimer Unfortunately due to the intended use-case, this workflow will not work on n8n Cloud and a self-hosted version of n8n is required. How it works Uses the local file trigger to activate once a new file is introduced to the directory The new file's filename and filetype are analysed using AI to determine the best location to move this file. The AI assess the current subdirectories as to not create duplicates. If a relevant subdirectory is not found, a new subdirectory is suggested. Finally, an Execute Command node uses the AI's suggestions to move the new file into the correct location. Requirements Self-hosted version of n8n. The nodes used in this workflow only work in the self-hosted version. If you are using docker, you must create a bind mount to a host directory. Mistral.ai account for LLM model Customise this workflow If the frequency of files created is high enough, you may not want the trigger to active on every new file created event. Switch to a timer to avoid concurrency issues. Want to go fully local? A version of this workflow is available which uses Ollama instead. You can download this template here: https://drive.google.com/file/d/1iqJ_zCGussXpfaUBYGrN5opziEFAEQMu/view?usp=sharing
by Sarfaraz Muhammad Sajib
π§ Email Validation Workflow Using APILayer API This n8n workflow enables users to validate email addresses in real time using the APILayer Email Verification API. It's particularly useful for preventing invalid email submissions during lead generation, user registration, or newsletter sign-ups, ultimately improving data quality and reducing bounce rates. βοΈ Step-by-Step Setup Instructions Trigger the Workflow Manually: The workflow starts with the Manual Trigger node, allowing you to test it on demand from the n8n editor. Set Required Fields: The Set Email & Access Key node allows you to enter: email: The target email address to validate. access_key: Your personal API key from apilayer.net. Make the API Call: The HTTP Request node dynamically constructs the URL: https://apilayer.net/api/check?access_key={{ $json.access_key }}&email={{ $json.email }} It sends a GET request to the APILayer endpoint and returns a detailed response about the email's validity. (Optional): You can add additional nodes to filter, store, or react to the results depending on your needs. π§ How to Customize Replace the manual trigger with a webhook or schedule trigger to automate validations. Dynamically map the email and access_key values from previous nodes or external data sources. Add conditional logic to filter out invalid emails, log them into a database, or send alerts via Slack or Email. π‘ Use Case & Benefits Email validation is crucial in maintaining a clean and functional mailing list. This workflow is especially valuable in: Sign-up forms where real-time email checks prevent fake or disposable emails. CRM systems to ensure user-entered emails are valid before saving them. Marketing pipelines to minimize email bounce rates and increase campaign deliverability. Using APILayerβs trusted validation service, you can verify whether an email exists, check if itβs a role-based address (like info@ or support@), and identify disposable email servicesβall with a simple workflow. Keywords: email validation, n8n workflow, APILayer API, verify email, real-time email check, clean email list, reduce bounce rate, data accuracy, API integration, no-code automation
by Oneclick AI Squad
This automated n8n workflow tracks booked flight fares post-purchase using Amadeus and Skyscanner APIs to detect drops for refund or credit opportunities. It streamlines fare monitoring, updates booking statuses, and notifies users via SMS or email. Fundamental Aspects Fare Check Trigger** - Initiates the workflow Get Tracked Bookings** - Retrieves existing booking data Prepare Fare Query** - Prepares query parameters Search Current Fares** - Queries Skyscanner for current fares Analyze Fare Drops** - Identifies significant fare reductions Update Fare Tracking** - Updates fare tracking records Update Booking Status** - Updates status based on fare changes Check if Notification Needed** - Determines if alerts are required Send Fare Drop Email** - Notifies users via email Notify Slack Team** - Alerts the team via Slack Check Refund Eligible** - Assesses refund eligibility Initiate Refund Process** - Starts refund procedure if eligible Check if SMS Needed** - Decides if SMS alert is necessary Send SMS Alert** - Sends SMS notification Setup Instructions Import the workflow into n8n Configure API credentials for Amadeus and Skyscanner Run the workflow Verify notifications and refund processes Features Fare Monitoring** - Tracks and compares fares using Amadeus and Skyscanner Alert System** - Sends email and SMS notifications for fare drops Refund Management** - Checks and initiates refund processes Trend Analysis** - Analyzes fare trends for strategic decisions DB Queries Get Tracked Bookings Columns:** - booking_id, passenger_name, email, phone, flight_number, departure_date, origin, destination, airline, booking_class, original_fare, booking_date, confirmation_code, tracking_enabled, last_checked, current_lowest_fare, trend. Update Fare Tracking Columns:** - booking_id, check_date, lowest_fare, fare_source, savings_amount, savings_percentage, fare_trend, priority_level, action_recommended, refund_eligible, available_fares_json, updated_at. Update Booking Status: Columns** - last_checked, current_lowest_fare, booking_id. DB Setup: Create tables 'bookings' and 'fare_tracking' with above columns, set 'booking_id' as primary key, and ensure proper indexing for performance. Run queries after configuring DB connection in n8n with appropriate credentials. Parameters to Configure amadeus_api_key**: Amadeus API key skyscanner_api_key**: Skyscanner API key email_recipients**: List of email addresses for alerts sms_recipients**: List of phone numbers for SMS alerts slack_channel**: Slack channel for team notifications refund_threshold**: Minimum fare drop for refund eligibility
by Dr. Firas
Who Is This For This workflow is ideal for content creators, solo founders, marketers, and AI enthusiasts who want to automate the full process of blog content creation. It is especially useful for professionals in tech, AI, and automation who publish frequently and need SEO-ready content fast. What Problem Does This Workflow Solve Creating SEO-optimized blog content is time-consuming and requires consistency. Manually researching trending topics slows down the content pipeline. Formatting, publishing, and promoting across multiple platforms takes effort. This workflow automates the entire process from research to publication. What This Workflow Does Research: Uses Perplexity AI to gather up-to-date content ideas via form input. Content Generation: GPT-4 creates a short, SEO-optimized article (max 20 lines) with H1, H2 structure and meta-description. Publishing: Automatically posts the content to WordPress. Email Notification: Sends the article title and URL via Gmail. Slack Notification: Notifies a specified Slack channel when the article is live. Database Logging: Saves the article details to a Notion database. Setup Guide Prerequisites WordPress account with API access OpenAI API Key Perplexity API Key Slack Bot Token Notion integration (Database ID) Gmail API credentials (optional) Community Node Required: This workflow uses n8n-nodes-mcp, which only works on self-hosted instances of n8n. > To install: Go to Settings > Community Nodes > Install n8n-nodes-mcp Steps Import the workflow into your n8n instance Install the required community node (n8n-nodes-mcp) Set up API credentials for OpenAI, Perplexity, WordPress, Slack, Gmail, and Notion Customize the form trigger with your preferred prompt Run a test using a sample topic How to Customize This Workflow Modify the research prompt to match your niche or industry Adjust GPT-4 settings for tone, structure, or content length Customize Notion fields (e.g., add tags, categories, or labels) Add logic for generating or assigning featured images automatically
by Wyeth
Learn n8n: Interactive Lesson 1 This interactive tutorial teaches you how to build in n8n from scratch, using a live walkthrough with real-time examples. Rather than static documentation, this guided workflow explains key n8n concepts while you execute each step. It is ideal for developers new to n8n but experienced with programming, JSON, and APIs. Requirements An active n8n instance (cloud or self-hosted) Basic programming experience (JavaScript or TypeScript, JSON, and APIs) Web browser with console access (for log inspection) What This Workflow Covers Triggers, Form nodes, and data flow How n8n executes nodes one step at a time How data moves between nodes (variables, context, side effects) Merge, Split, Aggregate, and Loop patterns Code nodes in single vs multiple execution modes Debugging using Logs and console output Step-by-Step Setup Manual Setup Before starting, create your n8n account and optionally enable dark mode. A video link is included with suggested background material. Form-Based Progression The tutorial uses Form Trigger and Form nodes as interactive checkpoints. You will execute the workflow, follow the browser prompts, and observe what happens in the visual editor. Live Code and Flow Examples Key concepts like branching, merging, and data references are shown in action. Sticky notes in the workflow explain what to look for and how things work. Execution Behavior You will see how multiple items affect execution count, and how to control it using options like Execute Once, batching, and aggregation. Debugging with Logs Toward the end, the workflow encourages you to inspect inputs and outputs of each node, and use console.log() inside Code nodes to understand the data being passed around. How to Use This Workflow This workflow is meant to be a long-term reference. If you get stuck building in n8n, return to it. Each section focuses on a core concept such as how data flows, how execution counts behave, or how to merge parallel branches. You can copy and paste working examples from this tutorial directly into your own workflows to solve common problems. This is not just a lesson. It's a toolbox.
by Ventsislav Minev
Google Drive Duplicate File Manager π§Ήπ Purpose: Automate the process of finding and managing duplicate files in your Google Drive. Who's it for? Individuals and teams aiming to streamline their Google Drive. Anyone tired of manual duplicate file cleanup. What it Solves: Saves storage space πΎ. Reduces file confusion πβ‘οΈπ. Automates tedious cleanup tasks π€. How it works: Trigger: Monitors a Google Drive folder for new files. Configuration: Sets rules for keeping and handling duplicates. Find Duplicates: Identifies duplicate files based on their content (MD5Checksum). Action: Either moves duplicates to trash or renames them. Setup Guide: Google Drive Trigger β°: Set up the trigger to watch a specific folder or your entire drive (use caution with the root folder! β οΈ). Configure the polling interval (default: every 15 minutes). Config Node βοΈ: keep: Choose whether to keep the "first" or "last" uploaded file (default: "last"). action: Select "trash" to delete duplicates or "flag" to rename them with "DUPLICATE-" (default: "flag"). owner & folder: Taken from the trigger. Only change if needed. Key Considerations: Google Drive API limits:** Be mindful of API usage. Folder Scope:* The workflow handles one folder depth by default. (WARNING: If configured to work with the Root folder / all files in all sub-directories are processed so *USE THIS OPTION WITH CAUTION** since the workflow might trash/rename important files) Google Apps:** Google docs are ignored since they are not actual binary-files and their content can't be compared. Enjoy your clean Google Drive! β¨
by Hubschrauber
Fetches workflow definitions from within n8n, selecting only the ones that have one or more (configurable) assigned tags and then: Derives a suitable backup filename by reducing the workflow name to a string with alphanumeric characters and no-spaces Note: This isn't bulletproof, but works as long as workflow names aren't too crazy. Determines which workflows need to be backed up based on whether each one: has been modified. (Note: Even repositioning a node counts.) ...or... is new. (Note: Renaming counts as this.) Commits JSON copies of each workflow, as necessary, to a Gitlab repository with a generated, date-stamped commit message. Setup Credentials Create a Gitlab Credentials item and assign it to all Gitlab nodes. Create an n8n Credentials item and assign it to the n8n node Note: This was tested with http://localhost:5678/api/v1 but should work with any reachable n8n instance and API key. Modify these values in the "Globals" Node gitlab_owner - {{your gitlab account}} gitlab_project - {{ your gitlab project name }} gitlab_workflow_path - {{ subdirectory in the project where backup files should be saved/committed }} tags_to_match_for_backup - {{tag(s) to match for backup selection}} *ALERT: According to the n8n node's Filters -> tags field annotations, and API documentation, this supports a CSV list of multiple tags (e.g. tag1,tag2), but the API behavior requires workflows to have all-of the listed tags, not any-of them.* See: https://github.com/n8n-io/n8n/issues/10348 TL/DR - Don't expect a multiple tag list to be more inclusive. Possible workaround: To match more than one tag value, duplicate the n8n node into multiple single-tag matches, or split and iterate multiple values, and merge the results. Possible Enhancements Make the branch ("Reference") for all the gitlab nodes configurable. Fixed on all as "main" in the template. Add an n8n node to generate an audit and store the output in gitlab along with the backups. Extend the workflow at the end to create a Gitlab release/tag whenever any backup files are actually updated or created.
by Sk developer
π₯ Bulk TikTok Video Download Without Watermark to Google Drive This workflow automates the process of downloading TikTok videos and uploading them to Google Drive. It reads TikTok URLs from a Google Sheet, downloads the video using the TikTok Video Downloader β a tool for downloading TikTok videos without watermark in HD quality β uploads it to Drive, makes it public, and updates the same sheet with the Drive link. π§ What It Does β Manually triggered when ready to run. π Reads TikTok URLs from a Google Sheet. π Loops through each URL one at a time. π Fetches video download links using the TikTok Video Downloader β a reliable TikTok video downloader without watermark. β¬οΈ Downloads each video in high-definition (HD) format using the direct media link. βοΈ Uploads the video to Google Drive. π Sets public sharing permission for the video. βοΈ Updates the original Google Sheet with the public Drive URL. π Google Sheet Example Make sure your sheet has at least these columns: | url | drive_link (to be auto-filled) | |-------------------------------------|--------------------------------| | https://www.tiktok.com/@user1... | (blank initially) | | https://www.tiktok.com/@user2... | (blank initially) | > The workflow reads from url and fills in drive_link after upload. π§© Nodes Used | Node Name | Type | Purpose | |------------------------------|-------------------|-------------------------------------------------------| | When clicking βExecuteβ | Manual Trigger | Starts the workflow manually | | Get Data From Google Sheets | Google Sheets | Fetches rows (TikTok URLs) | | Loop Over Items | Split In Batches | Iterates over each row | | Call TikTok Downloader | HTTP Request | Gets video download link from TikTok Video Downloader | | Wait | Wait | Optional delay to prevent overload | | Download File | HTTP Request | Downloads HD video using media link | | Upload File In Google Drive | Google Drive | Uploads the video to Google Drive | | Set Public Permission | Google Drive | Makes the uploaded file publicly accessible | | Update Row In Google Sheet | Google Sheets | Adds Drive link to the same row | | Sleep | Wait | Small delay between each iteration | π Requirements β Google API credentials (Service Account) with access to: Google Sheets Google Drive π RapidAPI Key for TikTok Video Downloader β a TikTok video downloader without watermark (HD supported) π A Google Sheet with a url column containing TikTok video URLs π§© Challenges Solved | β Challenge | β Solution | |-------------|-------------| | TikTok video URLs often have watermarks and low quality | Used TikTok Video Downloader API for HD + no watermark download links | | No easy way to bulk download and organize TikToks | Automated fetching, downloading, and uploading using n8n + Google Drive | | Manual video saving and re-uploading to Drive is time-consuming | Eliminated all manual steps with a fully automated workflow | | Tracking which videos are already processed | Automatically updates the Google Sheet row with the final Drive link | | Drive files are private by default | Automatically sets public sharing permission on uploaded videos | | Risk of API rate limits or throttling | Added Wait nodes and batch processing to avoid overload | π Benefits | π Benefit | π¬ Description | |------------|----------------| | π Saves Time | Fully automates a previously manual workflow | | π₯ High Quality Content | Videos downloaded are HD + watermark-free β ready for reuse or archives | | π Reusable Setup | Can process unlimited TikTok URLs via the Google Sheet | | π Organized Output | Keeps track of source URL and uploaded Drive link in a single sheet | | π Secure but Shareable | Drive links are auto-shared publicly while remaining under your control | | π Scalable | Can be run daily, weekly, or triggered by new rows β completely scalable | | πΈ Cost-Effective | No need for paid tools or manual freelancers β runs on n8n + free APIs | π‘ Use Cases Content curation from TikTok Archiving user-submitted TikToks Automating social-to-cloud workflows Bulk migration of video content Saving TikTok videos in HD without watermark for sharing or archiving π Tips Replace manual trigger with Cron for full automation. Use the TikTok Video Downloader responsibly β check API limits. Store metadata (e.g., uploader, hashtags) in additional Google Sheet columns. This tool helps ensure you're always downloading high-quality TikTok videos without watermark.