by PUQcloud
Setting up n8n workflow Overview The Docker Immich WHMCS module uses a specially designed workflow for n8n to automate deployment processes. The workflow provides an API interface for the module, receives specific commands, and connects via SSH to a server with Docker installed to perform predefined actions. Prerequisites You must have your own n8n server. Alternatively, you can use the official n8n cloud installations available at: n8n Official Site Installation Steps Install the Required Workflow on n8n You have two options: Option 1: Use the Latest Version from the n8n Marketplace The latest workflow templates for our modules are available on the official n8n marketplace. Visit our profile to access all available templates: PUQcloud on n8n Option 2: Manual Installation Each module version comes with a workflow template file. You need to manually import this template into your n8n server. n8n Workflow API Backend Setup for WHMCS/WISECP Configure API Webhook and SSH Access Create a Basic Auth Credential for the Webhook API Block in n8n. Create an SSH Credential for accessing a server with Docker installed. Modify Template Parameters In the Parameters block of the template, update the following settings: server_domain – Must match the domain of the WHMCS/WISECP Docker server. clients_dir – Directory where user data related to Docker and disks will be stored. mount_dir – Default mount point for the container disk (recommended not to change). Do not modify the following technical parameters: screen_left screen_right Deploy-docker-compose In the Deploy-docker-compose element, you have the ability to modify the Docker Compose configuration, which will be generated in the following scenarios: When the service is created When the service is unlocked When the service is updated nginx In the nginx element, you can modify the configuration parameters of the web interface proxy server. The main section allows you to add custom parameters to the server block in the proxy server configuration file. The main\_location section contains settings that will be added to the location / block of the proxy server configuration. Here, you can define custom headers and other parameters specific to the root location. Bash Scripts Management of Docker containers and all related procedures on the server is carried out by executing Bash scripts generated in n8n. These scripts return either a JSON response or a string. All scripts are located in elements directly connected to the SSH element. You have full control over any script and can modify or execute it as needed.
by Zacharia Kimotho
N8n recently introduced folders and it has been a big improvement on workflow management on top of the tags. This means the current workflows need to be moved manually to the folders. The simplest idea to try is to convert the current tags into folders and move all the current workflows within the respective tags into the folders This assumes the tag name will be used as the folder name. To Note For workflows that use more than 1 tag, the workflow will be assigned the last tag that runs as the folder. How does it work I took the liberty of simplifying the setup of this workflow that will be needed on your part and also be beginner-friendly Copy and paste this workflow into your n8n canvas. You must have existing workflows and tags before you can run this Set your n8n login details on the node set Credentials with the n8n URL, username, and password. Setup your n8n API credentials on the n8n node get workflows Run the workflow. This opens up a form where you can select the number of tags to move and click on submit The workflow responds with the successful number of workflows that were imported Read more about the template Built by Zacharia Kimotho - Imperol
by CustomJS
! n8n Workflow: HTML to PDF Generator This n8n workflow converts HTML content into a styled PDF and returns it as a response via a webhook. The workflow receives HTML input, processes it using CustomJS's PDF toolkit, and sends back the resulting PDF to the original webhook requester. @custom-js/n8n-nodes-pdf-toolkit Features: Webhook Trigger**: Accepts incoming requests with HTML content. HTML to PDF Conversion**: Uses CustomJS to transform HTML into a PDF. Response**: Sends the generated PDF back to the webhook response. Requirements: Self-hosted** n8n instance A CustomJS API key for HTML to PDF conversion HTML content** to be converted into a PDF Workflow Steps: Webhook Trigger: Accepts incoming HTTP requests with HTML content. This data is passed to the next node for processing. HTML to PDF Conversion: Uses the CustomJS node to convert the incoming HTML into a PDF document. You can customize the HTML content to match the design requirements. Respond to Webhook: Sends the generated PDF as a binary response to the original webhook request. Setup Guide: 1. Configure CustomJS API Sign up at CustomJS. Retrieve your API key from the profile page. Add your API key as n8n credentials. 2. Design Workflow Create a Webhook: Set up a webhook to trigger the workflow when HTML content is received. Prepare HTML Content: The incoming request should include the HTML content you wish to convert into a PDF. Configure HTML to PDF Node: Use the HTML to PDF node to convert the provided HTML into a PDF. The node uses the HTML input to generate a PDF using the CustomJS API. Respond with the PDF: The Respond to Webhook node will send the generated PDF back to the original requester as a binary response. Example HTML Input: Hello CustomJS! CustomJS provides the missing toolset for your no-code projects Result PDF
by n8n Team
This workflow sends a new Clockify invoice to a Notion database of your choosing when a new invoice is created in Clockify. Prerequisites Notion account and Notion credentials. Clockify account. How it works On new invoice in Clockify webhook node will trigger when a new invoice is created in Clockify. Setup is involved. Create database page Notion node will create a database page with the information specified from the Clockify trigger. You can add additional fields if required by following the setup. Setup This workflow requires that you set up a webhook in Clockify. Follow the steps below to set up the webhook: Create a Clockify webhook by going to the webhooks section in Clockify. Create the webhook specifying the "Invoice created" event and paste in the URL provided from On new invoice in Clockify webhook step. You will also have to set up a Notion database: In Notion, create a new database. Add the following columns to the database: Invoice number (renamed from "Name") Issue date (with type "Date") Due date (with type "Date") Amount (with type "Number") Add any other fields you require to the database. Share the database to n8n. By default, the workflow will fill all the fields provided above, except for any other additional fields you add.
by Sina
👥 Who is this for? Startup founders validating or pitching new ideas Business consultants running strategy sessions Product teams defining business logic visually Agencies offering planning frameworks to clients ❓ What problem does this workflow solve? Creating a Business Model Canvas manually is time-consuming and often scattered across tools. This workflow solves that by allowing users to generate a fully populated, formatted, and printable Business Model Canvas in seconds using the power of AI, all structured in a professional A4 landscape layout. ⚙️ What this workflow does Starts with a chat input asking for your business idea Sends it to 9 separate AI agents, each focused on one section: Key Partners Key Activities Value Proposition Customer Relationships Customer Segments Key Resources Channels Cost Structure Revenue Streams Uses your preferred LLM (see below) to generate meaningful bullet points Converts output into a specific format Merges all sections into a clean, A4-styled HTML canvas Exports the result as a downloadable .html file 🛠️ Setup Import the workflow into your n8n instance Start the flow from the “When chat message received” node Describe your business idea when prompted (e.g., “Online bookshop with rare Persian literature”) Wait for AI processing to complete Visit the last node “HTML code to HTML file” Click Download to get your final canvas in .html format 🤖 LLM Flexibility (Choose Your Model) This template supports any AI model with a chat interface: Ollama (self-hosted models like LLaMA, etc.) OpenAI (GPT-4, GPT-3.5) Anything with a compatible node You can easily change the LLM by updating the Language Model Node. No need to modify any other logic or formatting. 🧪 How to customize this workflow Change the LLM** model from the Ollama node to OpenAI, etc. Modify the final HTML layout in the “Turn to HTML” node Add a PDF export, email delivery, or Google Drive sync Replace the chat trigger with a webform, CRM hook, etc. ✅ Requirements A working LLM integration (Ollama or OpenAI recommended) n8n (self-hosted or cloud) 📌 Notes Sticky notes included for setup and instructions Each node clearly named by function (e.g. "Customer Segments Generator") Designed for speed, structure, and professional presentation 📩 Need help? For setup questions, custom features, or LLM integration support, contact: sinamirshafiee@gmail.com
by n8n Team
This workflow creates a new item in a Monday.com board when a new contact is created in Mautic. Additional fields can be added to the workflow to send more data to Monday.com. Prerequisites Monday account and Monday credentials. Mautic account and Mautic credentials. How it works When a new contact is created in Mautic, the workflow creates a new item in the Monday.com board. By default the workflow will send the contact's email address to Monday.com and name the item after the contact's first and last name. Setup This workflow requires that you set up a Monday.com board. To do so, follow the steps below: In Monday.com, create a new item board. In the board, add the following columns: Email (with type "Email") Any other fields you require to the board. If more columns are created, you will need to find out what their ID's are by turning on developer mode as explained in this Monday article. With these new IDs, you can add them to the Create item Monday.com node, this is explained further in the workflow as a sticky note.
by Gregor
Awork currently does not support a check for open subtasks or open dependencies when setting a task status to done. This workflow offers you a simple workaround to add this functionality to Awork and notifies users when triggered. Multiple configuration options available. How it works Triggered via Awork Webhook call on status change of tasks If task is marked as done, subtasks and/or dependent tasks are checked for their status If unfinished tasks are found, a status rollback to previous status is performed and user gets notified Set up steps Add webhook call to Awork Configure Awork API credentials Set up workflow configuration via setup node, e.g. user notification text, restrict to subtasks/dependency checks etc.
by phil
How it works 🗣️> 📖 I set up this workflow to convert any audio or video file into structured text using the new ElevenLabs Scribe model, one of the best Speech-to-Text AIs, available in 99+ languages. This workflow integrates seamlessly with n8n and leverages the ElevenLabs Scribe API to: This workflow seamlessly integrates with n8n to: ✅ Upload audio/video files automatically ✅ Transcribe them with industry-leading accuracy in any language ✅ Export the text for further processing (summaries, subtitles, SEO content, etc.) 👉 Try the new ElevenLabs Scribe model now: Convert speech to text instantly Business Cases 🔹 Podcast Transcriptions – Convert podcast episodes into blog posts for SEO and accessibility 🔹 YouTube Subtitles – Generate captions automatically for increased engagement 🔹 Legal & Compliance – Accurately transcribe meetings, interviews, or customer calls 🔹 E-learning – Turn lectures and webinars into structured course notes 🔹 SEO & Content Marketing – Repurpose videos into articles, quotes, and social media content 💡 Boost your productivity with the new Scribe model → Start with ElevenLabs Scribe Set up steps 🚀 Quick & simple setup in n8n – Upload your file, select the model (scribe_v1), and let the AI handle the rest via the ElevenLabs API. ⸻ 📢 Why I Chose the New ElevenLabs Scribe Model? I wanted the most accurate and reliable transcription tool for my workflow. After testing different options, Scribe outperformed Google Gemini & OpenAI Whisper in independent benchmarks. It delivers high-quality transcriptions, even in underserved languages like Serbian, Mongolian, and many more. ✅ Transcribes in 99+ languages ✅ Fast, accurate, and easy to integrate ✅ Suitable for content creators, businesses, and professionals 🔗 Get started now and revolutionize your workflow with the new Scribe model → Try Scribe AI today 🚀 Phil | Inforeole
by KlickTipp
Community Node Disclaimer: This workflow uses KlickTipp community nodes. How It Works: Facebook Lead Ads to KlickTipp Integration: This workflow automatically transfers lead information submitted via Facebook Lead Ads into KlickTipp. It is ideal for automating course registrations or similar campaigns, enabling targeted email sequences based on user input. Data Handling: Lead data from Facebook is received via webhook, matched to KlickTipp’s custom fields, and the contact is tagged for segmentation and automation. Key Features Webhook Trigger for Facebook Lead Ads: Captures new lead form submissions from Facebook, including: Name Email address Chosen course Preferred payment method Optional comments Data Mapping & Validation: Maps Facebook field values to pre-defined custom fields in KlickTipp Subscriber Management in KlickTipp: Adds or updates leads as subscribers in KlickTipp Includes mapping to custom fields such as: Facebook_Leads_Ads_Kursauswahl Facebook_Leads_Ads_Zahlungsweise Facebook_Leads_Ads_Kommentar Assigns relevant tags for automated campaign triggers Setup Instructions 1. Prepare KlickTipp Custom Fields: Before using the workflow, create the following custom fields in KlickTipp under → Contacts → Custom fields: | Name | Datentyp | | - | - | | Facebook_Leads_Ads_Kommentar | Zeile | | Facebook_Leads_Ads_Kursauswahl | Zeile | | Facebook_Leads_Ads_Zahlungsweise | Zeile | 2. Facebook Lead Ads Setup: Create a lead form under Facebook Ads Manager Include custom fields for course interest, payment preference, and comments 3. Set Up Facebook Webhook in n8n: Use the Facebook Lead Ads node to create a webhook Authenticate your Facebook account Choose the Page and corresponding lead form Save and activate the webhook 4. Map Data to KlickTipp Fields: Open the KlickTipp node to Authenticate with your credentials (username&password) Map the fields from the Facebook webhook to the according custom fields in KlickTipp. Testing & Deployment Run a Test: Use Meta’s testing tool to generate a test lead Run the n8n workflow once manually Note: Facebook test email (e.g., test@fb.com) is invalid—expect an error in KlickTipp during testing. You can pin the output of the node and manipulate the address to a valid test-address. Workflow Logic Webhook Trigger from Facebook: Initiates workflow upon new lead form submission Add or Update Contact in KlickTipp: Submits mapped data into your KlickTipp account Benefits Automated Lead Management: No manual data transfers needed—new Facebook leads are instantly pushed to KlickTipp. Personalized Campaigns: Segment leads based on selected course or payment method for targeted follow-up emails. Notes: Customization: Adjust field mappings in the KlickTipp node based on your lead form structure. Ensure all required fields (email, opt-in, etc.) are mapped correctly. Resources: Use the Meta Lead Ads Testing Tool to simulate lead submissions during setup. Look into our knowledgebase article Send Facebook Leads to KlickTipp with Make or n8n to learn more. Use KlickTipp Community Node in n8n Automate Workflows: KlickTipp Integration in n8n
by Edisson Garcia
🚀 Message-Batching Buffer Workflow (n8n) This workflow implements a lightweight message-batching buffer using Redis for temporary storage and a JavaScript consolidation function to merge messages. It collects incoming user messages per session, waits for a configurable inactivity window or batch size threshold, consolidates buffered messages via custom code, then clears the buffer and returns the combined response—all without external LLM calls. 🔑 Key Features Redis-backed buffer** queues incoming messages per context_id. Centralized Config Parameters** node to adjust thresholds and timeouts in one place. Dynamic wait time** based on message length (configurable minWords, waitLong, waitShort). Batch trigger** fires on inactivity timeout or when buffer_count ≥ batchThreshold. Zero-cost consolidation** via built-in JavaScript Function (consolidate buffer)—no GPT-4 or external API required. ⚙️ Setup Instructions Extract Session & Message Trigger: When chat message received (webhook) or When clicking ‘Test workflow’ (manual). Map inputs: set variables context_id and message into a Set node named Mock input data (for testing) or a proper mapping node in production. Config Parameters Add a Set node Config Parameters with: minWords: 3 # Word threshold waitLong: 10 # Timeout (s) for long messages waitShort: 20 # Timeout (s) for short messages batchThreshold: 3 # Messages to trigger batch early All downstream nodes reference these JSON values dynamically. Determine Wait Time Node: get wait seconds (Code) JS code: const msg = $json.message || ''; const wordCount = msg.split(/\s+/).filter(w => w).length; const { minWords, waitLong, waitShort } = items[0].json; const waitSeconds = wordCount < minWords ? waitShort : waitLong; return [{ json: { context_id: $json.context_id, message: msg, waitSeconds } }]; Buffer Message in Redis Buffer messages: LPUSH buffer_in:{{$json.context_id}} with payload {text, timestamp}. Set buffer\_count increment: INCR buffer_count:{{$json.context_id}} with TTL {{$json.waitSeconds + 60}}. Set last\_seen: record last_seen:{{$json.context_id}} timestamp with same TTL. Check & Set Waiting Flag Get waiting\_reply: if null, Set waiting\_reply to true with TTL {{$json.waitSeconds}}; else exit. Wait for Inactivity WaitSeconds (webhook): pauses for {{$json.waitSeconds}} seconds before batch evaluation. Check Batch Trigger Get last\_seen and Get buffer\_count. IF (now - last_seen) ≥ waitSeconds * 1000 OR buffer_count ≥ batchThreshold, proceed; else use Wait node to retry. Consolidate Buffer consolidate buffer (Code): const j = items[0].json; const raw = Array.isArray(j.buffer) ? j.buffer : []; const buffer = raw.map(x => { try { return typeof x === 'string' ? JSON.parse(x) : x; } catch { return null; } }).filter(Boolean); buffer.sort((a, b) => new Date(a.timestamp) - new Date(b.timestamp)); const texts = buffer.map(e => e.text?.trim()).filter(Boolean); const unique = [...new Set(texts)]; const message = unique.join(' '); return [{ json: { context_id: j.context_id, message } }]; Cleanup & Respond Delete Redis keys: buffer_in, buffer_count, waiting_reply, last_seen (for the context_id). Return consolidated message to the user via your chat integration. 🛠 Customization Guidance Adjust thresholds* by editing the *Config Parameters** node. Change concatenation** (e.g., line breaks) by modifying the join separator in the consolidation code. Add filters** (e.g., ignore empty or system messages) inside the consolidation Function. Monitor performance**: for very high volume, consider sharding Redis keys by date or user segments. © 2025 Innovatex • Automation & AI Solutions • innovatexiot.carrd.co • LinkedIn
by Alex Kim
This workflow leverages n8n to perform automated Google Maps API queries and manage data efficiently in Google Sheets. It's designed to extract specific location data based on a given list of ZIP codes and categories. Features Queries the Google Maps API for location data using predefined ZIP codes and subcategories. Filters, de-duplicates, and organizes data into structured rows in Google Sheets. Implements exponential backoff retries to handle API rate limits. Logs and updates statuses directly in Google Sheets for easy tracking. Prerequisites Google OAuth Credentials: A configured Google Cloud project for Google Maps API and Sheets API access. Google Sheets: A sheet with ZIP codes and categories defined (e.g., "AZ Zips"). n8n Setup: A running instance of n8n with credentials configured for Google OAuth. Setup Instructions 1. Prepare Google Sheets Add the ZIP codes to the "AZ Zips" sheet. Define subcategories in another sheet (e.g., "Google Maps Categories"). Provide the sheet's URL in the Settings node of the workflow. 2. Configure API Access Set up Google OAuth credentials for Maps and Sheets APIs in n8n. Ensure your API key has access to the places.searchText endpoint. 3. Workflow Customization Modify textQuery parameters in the GMaps API node to match your query needs. Adjust trigger intervals as required (e.g., manual or scheduled execution). 4. Run the Workflow Execute the workflow manually or schedule periodic runs to keep your data updated. Notes This workflow includes robust error handling to retry failed API calls with exponential backoff. All data is organized and logged directly in Google Sheets for easy reference and updates. For more information or issues, feel free to reach out!
by Usman Liaqat
Description: This n8n workflow helps you capture Slack messages via a webhook and download attached media files (like images, documents, or videos) directly from those messages. How it works: Slack Trigger (Webhook) – Listens for new messages in a Slack channel where the app is added. HTTP Request – Uses the file's private download URL to retrieve the media securely. Use cases: Download files shared by team members in a Slack channel. Capture and process media from specific project or support channels. Prepare media for later processing, archiving, or review. Requirements: Slack app with appropriate permissions (files:read, channels:history, etc.). Slack webhook set up to listen to channel messages. - Authenticated HTTP request to handle private Slack file URLs. This template is ideal for users who want full control over file handling triggered by real-time Slack messages.