by Angel Menendez
Have you ever wanted to throttle Plex when connecting remotely to your server? Well here is the script for you! The instructions to deploy are below: You will need: A plex server with Plex Pass (for webhooks) n8n running locally (either in docker on via the desktop app) Qbittorent with WebUI enabled Begin by installing n8n by visiting n8n.io. You can install the desktop version or the docker version, whichever works best for your but I'm doing this on my desktop version of n8n. Copy the code from this page into your n8n install canvas. You should see the script appear before your eyes. From there, you Double click on the Webhook node at the beginning of the script. Copy both the Test and Production URLs that appear there. Now make your way to Plex and visit your settings. On the left, you should see the webhooks option if you have Plex Pass. This will setup your triggers. Next visit your qBitTorrent instance and enable WebUI. Notate your Username, Password, and Port. You will also need to know the IP of the machine that qbittorent is running on. If you have an iPhone you can connect to the same wireless network as your computer and use the Fing app to scan the network for the IP. Open up the script and edit the Global Variables to reflect the values you copied. Hit save at the top right, and then activate the script. Enjoy!!
by Shahrear
๐ AI-Powered Contract Management Pipeline (Google Drive + VLM Run + Sheets + Calendar + Slack) โ๏ธ What This Workflow Does This workflow automatically extracts, organizes, and tracks legal contract details from documents uploaded to Google Drive. Using VLM Runโs Execute Agent, it parses key metadata such as contract ID, parties, dates, and terms โ then stores, alerts, and schedules reminders through Google Sheets, Calendar, and Slack. ๐งฉ Requirements Google Drive OAuth2** for monitoring and downloads VLM Run API credentials** with Execute Agent access Google Sheets OAuth2** for structured record storage Google Calendar OAuth2** for key date reminders Slack API credentials** for team notifications A reachable Webhook URL (for receiving parsed contract data) โกQuick Setup Configure Google Drive OAuth2 and create upload folder and folder for saving extracted images. Install the verified VLM Run node by searching for VLM Run in the node list, then click Install. Once installed, you can start using it in your workflows. Add VLM Run API credentials for document parsing. Configure Google Sheet and Calendar. For Google Sheet, from the document list, pick your Google Sheet (e.g., test). Then select the sheet inside it (e.g., Sheet1). Set the operation to Append Row โ this will add new contract details as new rows. Turn on Map Each Column Manually. Match each contract field (like Contract ID, Title, Parties, Effective Date, Termination Date) to its corresponding column in your Google Sheet. Configure Slack for notifications. โ๏ธ How It Works Monitor Contract Uploads โ Watches a target Google Drive folder for new file uploads (PDFs, images, or scans). Download Contract File โ Automatically downloads new contracts for AI analysis. VLM Run ContractParser โ Sends the file to the VLM Run Execute Agent, which extracts structured contract data, including: Contract ID Title Parties (with roles) Property address Effective date Termination date Rent, deposit, payment terms, and governing law Receive Contract Data โ The webhook endpoint receives the structured JSON response. Format Contract Data โ Normalizes fields, formats dates, and prepares for storage. Save to Expense Database (Google Sheets) โ Appends extracted data to a master Google Sheet for centralized contract tracking. Notify via Slack โ Posts a concise summary to a Slack channel, showing key contract details for visibility. Create Calendar Events โ Automatically schedules Google Calendar events for: Effective Date Termination Date Renewal Reminder (60 days before termination) ๐ก Why Use This Workflow Manual contract management is error-prone and time-consuming key details like renewal dates, payment terms, or termination clauses often get lost in email threads or folders. This workflow ensures: Zero missed deadlines** automatic Google Calendar reminders keep your team on track. Instant team visibility** - Slack notifications keep legal, finance, and operations aligned. End-to-end automation** no need for manual parsing, data entry, or follow-ups. ๐ง Perfect For Legal teams automating contract intake and tracking Real estate or lease management workflows Finance or procurement teams needing expiration alerts Organizations centralizing contract metadata in Sheets ๐ ๏ธ How to Customize Modify Extraction Fields Edit the VLM Run Execute Agent schema to add fields like contract value, payment schedule, department, or contact email. Change Storage Swap Google Sheets for Airtable, Notion, or BigQuery if you manage large datasets or need relational tracking. Customize Notifications Send Slack alerts only for high-value or expiring contracts, and tag relevant teams (e.g., @legal, @finance). Add Calendar Events Auto-create events for reviews or payment milestones using extra date fields. Add Approvals or Signatures Insert a Google Form or Slack approval step, or trigger DocuSign for e-signature automation. โ ๏ธ Community Node Disclaimer This workflow uses community nodes (VLM Run) that may need additional permissions and custom setup.
by Davide
This workflow is designed to generate SEO-friendly content with DeepSeek R1 (or V3), publish it on WordPress, and update a Google Sheets document with the details of the created post. Below is a detailed analysis of what each node in the workflow does: How It Works Triggering the Workflow: The workflow starts with a Manual Trigger node, which is activated when the user clicks "Test workflow" in the n8n interface. Fetching Data: The Get Ideas node retrieves data from a Google Sheets document. It reads a specific sheet and filters the data based on the "ID POST" column, returning the first matching row. Setting the Prompt: The Set your prompt node extracts the PROMPT field from the Google Sheets data and assigns it to a variable for use in subsequent steps. Generating Content: The Generate article node uses an AI model (DeepSeek) to create an SEO-friendly article based on the prompt. The article includes an introduction, 2-3 chapters, and a conclusion, formatted in HTML. The Generate title node uses the same AI model to generate a concise, SEO-optimized title for the article. Publishing on WordPress: The Create post on WordPress node creates a new draft post on WordPress using the generated title and article content. Generating and Uploading an Image: The Generate Image node creates a photorealistic image based on the article title using an AI model (OpenAI). The Upload image node uploads the generated image to WordPress as a media file. The Set Image node assigns the uploaded image as the featured image for the WordPress post. Updating Google Sheets: The Update Sheet node updates the original Google Sheets document with the post details, including the title, post ID, creation date, and row number. Set Up Steps Configure Google Sheets Integration: Set up the Google Sheets node to connect to your Google account and specify the document ID and sheet name to read from and update. Set Up AI Models: Configure the OpenAI nodes (for generating the article, title, and image) with the appropriate API credentials and model settings (e.g., deepseek-reasoner for text generation). Configure WordPress Integration: Set up the WordPress node with your WordPress site's API credentials to allow creating posts and uploading media. Define the Prompt and Content Structure: In the Set your prompt node, ensure the prompt variable is correctly mapped to the data from Google Sheets. In the Generate article and Generate title nodes, define the instructions for the AI model to generate the desired content. Set Up Image Generation: Configure the Generate Image node with the appropriate prompt and image settings (e.g., size, quality, style). Configure HTTP Requests for Media Upload: Set up the Upload image and Set Image nodes to use the WordPress REST API for uploading and assigning the featured image. Map Data for Google Sheets Update: In the Update Sheet node, map the relevant fields (e.g., title, post ID, date) to the appropriate columns in the Google Sheets document. Test and Activate the Workflow: Run the workflow manually to ensure all steps execute correctly. Once verified, activate the workflow for automated execution. Overall purpose of the workflow This workflow automates the creation of SEO-friendly content for a WordPress blog. Starting from a prompt extracted from a Google Sheets document, it generates an article, a title, and an image, publishes the post on WordPress, and updates the Google Sheets document with the details of the created post. This process is useful for blog managers who want to automate content creation and publishing. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by Yaron Been
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. This workflow automatically discovers and collects information about Stack Overflow user profiles for lead generation. It saves you time by eliminating the need to manually browse through developer profiles and provides a centralized database of potential leads with their technical expertise. Overview This workflow automatically scrapes Stack Overflow user profiles and extracts key information like developer names, locations, reputation scores, and technical tags. It uses Bright Data to access Stack Overflow without being blocked and AI to intelligently parse user data into structured format. Tools Used n8n**: The automation platform that orchestrates the workflow Bright Data**: For scraping Stack Overflow user profiles without being blocked OpenAI**: AI agent for intelligent data extraction and parsing Google Sheets**: For storing and organizing lead information How to Install Import the Workflow: Download the .json file and import it into your n8n instance Configure Bright Data: Add your Bright Data credentials to the MCP Client node Set Up OpenAI: Configure your OpenAI API credentials Configure Google Sheets: Connect your Google Sheets account and specify the target spreadsheet Customize: Adjust the Stack Overflow URL and user criteria you want to target Use Cases Recruitment Teams**: Find developers with specific technical skills for hiring Business Development**: Identify potential clients or partners in the tech industry Sales Teams**: Build targeted outreach lists for developer-focused products Research**: Gather data on developer communities and skill distributions Connect with Me Website**: https://www.nofluff.online YouTube**: https://www.youtube.com/@YaronBeen/videos LinkedIn**: https://www.linkedin.com/in/yaronbeen/ Get Bright Data**: https://get.brightdata.com/1tndi4600b25 (Using this link supports my free workflows with a small commission) #n8n #automation #stackoverflow #leadgeneration #brightdata #webscraping #developers #recruitment #businessdevelopment #salesleads #n8nworkflow #workflow #nocode #leadautomation #developerscraping #techtalent #userprofiles #aiautomation #datamining #prospecting #outreach #techrecruiting #developerleads #stackoverflowscraping #profilescraping #leadcollection #techcommunity #developerdatabase #automatedleads #intelligentscraping
by Angel Menendez
Automate Report Generation with n8n & Qualys Introducing the Save Qualys Reports to TheHive Workflowโa robust solution designed to automate the retrieval and storage of Qualys reports in TheHive. This workflow fetches reports from Qualys, filters out already processed reports, and creates cases in TheHive for the new reports. It runs every hour to ensure continuous monitoring and up-to-date vulnerability management, making it ideal for Security Operations Centers (SOCs). How It Works: Set Global Variables:** Initializes necessary global variables like base_url and newtimestamp. This step ensures that the workflow operates with the correct configuration and up-to-date timestamps. Ensure to change the Global Variables to match your environment. Fetch Reports from Qualys:** Sends a GET request to the Qualys API to retrieve finished reports. Automating this step ensures timely updates and consistent data retrieval. Convert XML to JSON:** Converts the XML response to JSON format for easier data manipulation. This transformation simplifies further processing and integration into TheHive. Filter Reports:** Checks if the reports have already been processed using their creation timestamps. This filtering ensures that only new reports are handled, avoiding duplicates. Process Each Report:** Loops through the list of new reports, ensuring each is processed individually. This step-by-step handling prevents issues related to bulk processing and improves reliability. Create Case in TheHive:** Generates a new case in TheHive for each report, serving as a container for the report data. Automating case creation improves efficiency and ensures that all relevant data is captured. Download and Attach Report:** Downloads the report from Qualys and attaches it to the respective case in TheHive. This automation ensures that all data is properly archived and easily accessible for review. Get Started: Ensure your Qualys and TheHive integrations are properly set up. Customize the workflow to fit your specific vulnerability management needs. Need Help? Join the discussion on our Forum or check out resources on Discord! Deploy this workflow to streamline your vulnerability management process, improve response times, and enhance the efficiency of your security operations.
by Harshil Agrawal
This workflow handles the incoming issues and issues comments for your open-source project. If a contributor is interested, the workflow will assign them the issue. Note: For organizations, you will have to use the Webhook node to trigger the workflow. You will also have to use the HTTP Request node instead of the regular GitHub node. You can learn more about this workflow by reading the blog on https://n8n.io/blog.
by Edoardo Guzzi
This template integrates OpenAI's image generation and editing endpoints via the GPT-Image-1 model to visually create and manipulate images based on prompts. It features base64 conversion, binary handling, and prompt chaining. Perfect for marketing, design, product visuals and creative workflows. ๐ ๏ธ Requirements OpenAI account with access to gpt-image-1(probably you need organizations verifications for access to that model) OpenAI API credentials configured in n8n A self-hosted or cloud n8n instance Basic familiarity with the n8n UI (no programming required) ๐ง Step-by-step Instructions Step 1: Manual Trigger Starts the workflow on click. Ideal for testing the generation and edit logic. Step 2: Generate Image The Create image call node sends a prompt to OpenAI and returns a base64 image. Example prompt: A cyberpunk city at night with flying cars and neon lights Step 3: Convert to Binary The base64 image is converted into a usable binary PNG file with the Convert json binary to File node. Step 4: Edit the Image The binary file is passed to OpenAIโs /images/edits endpoint. A new prompt applies changes to the image. Example: Add a glowing robot in the foreground with a neon sword โ Supports model: gpt-image-1 โ ๏ธ Requires binary file (not base64) Step 5: Final Conversion Converts the final edited image from base64 to file so it can be downloaded or used in other nodes. ๐ฏ Real-World Use Cases ๐จ Artists & Creators: concept art and illustration variations ๐๏ธ E-commerce: auto-generate product mockups ๐ฐ Marketing: create eye-catching blog or social visuals ๐ก Bonus Ideas Add a Telegram or Slack node to generate or edit images via chat Use a Webhook to feed prompts from a form or frontend Add a mask to restrict edits to specific areas (e.g., background only)
by Priya Jain
This workflow provides an OAuth 2.0 auth token refresh process for better control. Developers can utilize it as an alternative to n8n's built-in OAuth flow to achieve improved control and visibility. In this template, I've used Pipedrive API, but users can apply it with any app that requires the authorization_code for token access. This resolves the issue of manually refreshing the OAuth 2.0 token when it expires, or when n8n's native OAuth stops working. What you need to replicate this Your database with a pre-existing table for storing authentication tokens and associated information. I'm using Supabase in this example, but you can also employ a self-hosted MySQL. Here's a quick video on setting up the Supabase table. Create a client app for your chosen application that you want to access via the API. After duplicating the template: a. Add credentials to your database and connect the DB nodes in all 3 workflows. Enable/Publish the first workflow, "1. Generate and Save Pipedrive tokens to Database." Open your client app and follow the Pipedrive instructions to authenticate. Click on Install and test. This will save your initial refresh token and access token to the database. Please watch the YouTube video for a detailed demonstration of the workflow: How it operates Workflow 1. Create a workflow to capture the authorization_code, generate the access_token, and refresh the token, and then save the token to the database. Workflow 2. Develop your primary workflow to fetch or post data to/from your application. Observe the logic to include an if condition when an error occurs with an invalid token. This triggers the third workflow to refresh the token. Workflow 3. This workflow will handle the token refresh. Remember to send the unique ID to the webhook to fetch the necessary tokens from your table. Detailed demonstration of the workflow: https://youtu.be/6nXi_yverss
by Brian Burnett
Basics Provides a mechanism to save all your workflows into a github repository and path (of your choosing). These can then be shared through your entire org and used to track changes (if you make any sad 'oopsies'. Flow Obtains and creates listing of currently configured workflows. Iterates through each workflow looking at the following Github source (if present) Actual workflow code (from N8N) Workflow code is sorted and compared for any changes If changed (or new) the workflows are saved / archived into github. Configuration Most of the configuration is done in the Globals node which houses the repo detail for github nodes. The only other dependency is that it by default looks for a GitHub credential, if you use something other than that precise wording you will need to change the credential used on the respective nodes. We gave it 'Manage' rights, but that was only so that it was able to override a requirement for checks to complete? Most would probably only need 'Write' privileges. Background Well, so we initially started using N8N just as a kubernetes-based service housed with its DB running inside the pod. Worked great for getting to know N8N and we jut kept all our workflows and credentials listed in a readme. Fast forward about a year... We have migrated this into our 'production' toolsets and maintain a bunch of team worflows inside it (not company-wide, but LOTS of team fun). While trying to spin a copy of our production RDS database, the ++actual++ production database was deleted, and in doing so AWS was nice enough to wipe our snapshots too!! Yea! Thankfully it only took us a few hours to get everything back up and running thanks to this, so I'm sharing it for everyone to benefit. We have used it to restore old workflows, changes, and now to test our full DR proceedures! (Ok, I might have taken that a bit far)
by Lucas Perret
This workflow monitor G2 reviews URLS. When a new review is published, it will: trigger a Slack notification record the review in Google Sheets To install it, you'll need: access to Slack, Google Sheets and ScrapingBee Full guide here: https://lempire.notion.site/Scrape-G2-reviews-with-n8n-3f46e280e8f24a68b3797f98d2fba433?pvs=4
by Jonathan
This workflow takes Dialpad call information for an answered call and pushes it into Syncro as either a ticket or an update to an existing ticket. You will need to have a workflow for each technician at this time. It also saves call/ticket information to a Google Sheet to be queried by the dialpad_to_syncro_timer.json workflow. This will match to inbound and outbound calls, so if that's not desired you need to add in an IF to only proceed on either inbound or outbound calls. > This workflow is part of an MSP collection, The original can be found here: https://github.com/bionemesis/n8nsyncro
by Ranjan Dailata
Who this is for This workflow is designed for Finance teams, accounting professionals, and automation engineers. Use Case: Automates processing of invoice submissions received via JotForm. Core Function:** Extracts structured data such as: Invoice number Client information Totals and tax amounts Line items or services Key Benefit:** Eliminates manual data entry, saving time and reducing human error. Automation Goal:** Streamline document handling with AI-powered PDF parsing and structured output generation. Ideal users include: Accounting or finance teams handling form-based invoice uploads Automation specialists using n8n for document processing Developers integrating invoice data into Google Sheets or CRMs What problem this workflow solves Manually extracting structured data from invoice PDFs submitted through JotForm is time-consuming, error-prone, and repetitive. This workflow solves that by: Automatically receiving the PDF through JotFormโs webhook Extracting structured fields (invoice number, company, client, line items, totals, etc.) using GPT-4-mini Saving the extracted data directly to Google Sheets Writing structured JSON data to disk for archival or further processing What this workflow does Webhook Trigger (JotForm โ n8n) JotForm submission sends invoice data and attachment link to n8n. Parse Submission & Extract Metadata Extracts submission metadata (form ID, user details, invoice number, file link, etc.) using the Information Extractor node. Download PDF Attachment Fetches the uploaded PDF from JotFormโs secure file URL via the HTTP Request node, authenticated using a JotForm API key. Store & Process File Saves the invoice to disk and prepares it for AI processing. Extract Invoice Text Content Uses the Extract from File node to parse text from the PDF document. AI-Powered Structured Extraction (OpenAI GPT-4.1-mini) Sends the extracted text to a LangChain LLM Chain with a Structured Output Parser, ensuring consistent JSON output aligned with a defined schema. Save Extracted Data Writes structured JSON to disk Appends parsed results to Google Sheets for easy reporting Setup Instructions Prerequisites A JotForm account with a form containing an invoice PDF upload field You may build the invoice Jotform by leveraging the Jotform Templates A Google Sheets account with a connected spreadsheet OpenAI** n8n running locally or on a server with public webhook access (e.g. via loca.lt, ngrok, or n8n.cloud) Make sure to get the Jotform API Key via the Jotform Account API Key Steps Import the provided JSON into n8n Go to n8n โ Workflows โ Import from File/Clipboard Paste the provided JSON definition Configure Webhook Copy the webhook URL from the Webhook node Paste it into your JotFormโs Settings โ Integrations โ Webhook URL Set API Keys & Credentials Ensure the Jotform API key has been setup to download the Jotform PDF document Ensure your Google Sheets and OpenAI credentials are connected Test Submission Submit your JotForm with an invoice PDF n8n workflow will trigger automatically Check Outputs Open your Google Sheet to see structured invoice entries Check the disk folder (e.g., C:\Invoices) for JSON exports How to customize this workflow Change AI Model** Use the OpenAI Chat Model for Structured Data node. โ Replace gpt-4.1-mini with gemini-1.5-pro or any other LLM node of your choice. Adjust Output Schema** Modify the Structured Output Parser node. โ Edit the JSON schema to match your desired output fields and format. Save to a Different Location** In the Write the Structured Invoice to Disk node, โ Update the file path pattern (e.g. /data/invoices/{{invoiceId}}.json). Log to a Database Instead of Google Sheets** Replace the Append or Update Row in Sheet node โ with a MySQL or PostgreSQL node for database logging. Add Notifications** Extend the workflow by adding Slack or Email nodes โ to send alerts when a new invoice extraction is completed. Summary The Structured Invoice Data Extraction from JotForm PDFs via Google Gemini, Converts JotForm-uploaded invoice PDFs into structured financial data automatically. Key Features: No manual parsing fully automated Works with any invoice layout via AI Saves structured results to Google Sheets + JSON file Extensible for CRMs, QuickBooks, or ERP sync