11 templates found
Category:
Author:
Sort:

AI-powered WhatsApp chatbot for text, voice, images, and PDF with RAG

Who is this for? This template is designed for internal support teams, product specialists, and knowledge managers in technology companies who want to automate ingestion of product documentation and enable AI-driven, retrieval-augmented question answering via WhatsApp. What problem is this workflow solving? Support agents often spend too much time manually searching through lengthy documentation, leading to inconsistent or delayed answers. This solution automates importing, chunking, and indexing product manuals, then uses retrieval-augmented generation (RAG) to answer user queries accurately and quickly with AI via WhatsApp messaging. What these workflows do Workflow 1: Document Ingestion & Indexing Manually triggered to import product documentation from Google Docs. Automatically splits large documents into chunks for efficient searching. Generates vector embeddings for each chunk using OpenAI embeddings. Inserts the embedded chunks and metadata into a MongoDB Atlas vector store, enabling fast semantic search. Workflow 2: AI-Powered Query & Response via WhatsApp Listens for incoming WhatsApp user messages, supporting various types: Text messages: Plain text queries from users. Audio messages: Voice notes transcribed into text for processing. Image messages: Photos or screenshots analyzed to provide contextual answers. Document messages: PDFs, spreadsheets, or other files parsed for relevant content. Converts incoming queries to vector embeddings and performs similarity search on the MongoDB vector store. Uses OpenAI’s GPT-4o-mini model with retrieval-augmented generation to produce concise, context-aware answers. Maintains conversation context across multiple turns using a memory buffer node. Routes different message types to appropriate processing nodes to maximize answer quality. Setup Setting up vector embeddings Authenticate Google Docs and connect your Google Docs URL containing the product documentation you want to index. Authenticate MongoDB Atlas and connect the collection where you want to store the vector embeddings. Create a search index on this collection to support vector similarity queries. Ensure the index name matches the one configured in n8n (data_index). See the example MongoDB search index template below for reference. Setting up chat Authenticate the WhatsApp node with your Meta account credentials to enable message receiving and sending. Connect the MongoDB collection containing embedded product documentation to the MongoDB Vector Search node used for similarity queries. Set up the system prompt in the Knowledge Base Agent node to reflect your company’s tone, answering style, and any business rules, ensuring it references the connected MongoDB collection for context retrieval. Make sure Both MongoDB nodes (in ingestion and chat workflows) are connected to the same collection with: An embedding field storing vector data, Relevant metadata fields (e.g., document ID, source), and The same vector index name configured (e.g., data_index). Search Index Example: { "mappings": { "dynamic": false, "fields": { "_id": { "type": "string" }, "text": { "type": "string" }, "embedding": { "type": "knnVector", "dimensions": 1536, "similarity": "cosine" }, "source": { "type": "string" }, "doc_id": { "type": "string" } } } }

NovaNodeBy NovaNode
157516

Daily AI news briefing and summarization with Google Gemini and Telegram

Stay ahead with personalized AI news delivered straight to your Telegram! This powerful n8n workflow automates your daily news consumption, leveraging AI to bring you the most relevant trends in AI, (or cryptocurrency, the stock market) and more – all from two free news API sources (GNewsAPI and NewsAPI). What's Included: The n8n Workflow Video Guidance for Telegram Integration: A clear and concise video tutorial demonstrating how to set up the Telegram integration within your n8n instance. Who is this for? This template is ideal for: Individuals wanting to stay updated on the latest AI trends and advancements. Tech enthusiasts eager to track the latest AI breakthroughs and applications. Anyone seeking a free, automated, and highly customizable news briefing delivered directly to their Telegram. Individuals who want to save time and stay informed without the hassle of manual news searching. What problem is this workflow solving? Keeping up with the constant influx of information in fast-paced sectors like AI, crypto, and the stock market can be overwhelming and time-consuming. This n8n workflow solves this problem by automatically gathering news from two free news APIs: News API and GNews API, filtering it with AI, and delivering a concise, personalized briefing directly to your Telegram, ensuring you're always in the know without the manual effort. What this workflow does: This workflow automates the following steps using two free news API sources (GNewsAPI and NewsAPI): Automated News Gathering: Fetches the latest news on your chosen topics from two distinct free API sources. Intelligent AI Filtering: Employs an AI agent to identify and extract the most pertinent news articles related to your specified interests (default: AI, but easily customizable). Concise AI Summarization: The AI agent creates brief summaries of the key information from the top news articles. Direct Telegram Delivery: Sends a daily digest of the summarized news directly to your Telegram account for convenient access. Effortless Customization: Allows you to easily tailor the news topics to focus on AI, cryptocurrency, stock market updates, or any other area you need to monitor. Setup: Easy Telegram Integration (Video Guidance Included): Follow our step-by-step video tutorial to seamlessly integrate Telegram with this n8n workflow, enabling automated news delivery to your preferred chat. Free API Keys: This workflow utilizes the free tiers of two popular news APIs: GNewsAPI and NewsAPI. You will need to obtain your own free API keys for these services and input them into the respective HTTP Request nodes within n8n. Clear instructions on how to get these free keys are provided. First Run: Activate the workflow and execute it once to verify that all connections are established and functioning correctly. How to customize this workflow: Tailor Your News Topics: Easily customize the news you receive by modifying the search queries in the "News Source: GNewsAPI" and "News Source: NewsAPI" nodes. For example, change q=AI to q=Bitcoin for crypto news or q=Tesla stock for stock market updates. Adjust the Language: Change the lang=en parameter in the API URLs to receive news in your preferred language. Set Your Delivery Schedule: Modify the trigger time in the "Trigger workflow at 6am everyday" node to have your personalized news briefing delivered at the time that suits you best. Expand Your Sources: For even more comprehensive news coverage, you can explore and integrate additional free news APIs by adding more HTTP Request nodes to the workflow. Category: News Automation, AI, Cryptocurrency, Stock Market, Information, Personal Productivity, Free Resources

TianyiBy Tianyi
2252

Create multi-step reasoning AI agents with GPT-4 and reusable thinking tools

Unlock a new level of sophistication for your AI agents with this template. While the native n8n Think Tool is great for giving an agent an internal monologue, it's limited to one instance. This workflow provides a clever solution using a sub-workflow to create multiple, custom thinking tools, each with its own specific purpose. This template provides the foundation for building agents that can plan, act, and then reflect on their actions before proceeding. Instead of just reacting, your agent can now follow a structured, multi-step reasoning process that you design, leading to more reliable and powerful automations. Who is this for? AI and automation developers: Anyone looking to build complex, multi-tool agents that require robust logic and planning capabilities. LangChain enthusiasts: Users familiar with advanced agent concepts like ReAct (Reason-Act) will find this a practical way to implement similar frameworks in n8n. Problem solvers: If your current agent struggles with complex tasks, giving it distinct steps for planning and reflection can dramatically improve its performance. What problem does this solve? Bypasses the single "Think Tool" limit: The core of this template is a technique that allows you to add as many distinct thinking steps to your agent as you need. Enables complex reasoning: You can design a structured thought process for your agent, such as "Plan the entire process," "Execute Step 1," and "Reflect on the result," making it behave more intelligently. Improves agent reliability and debugging: By forcing the agent to write down its thoughts at different stages, you can easily see its line of reasoning, making it less prone to errors and much easier to debug when things go wrong. Provides a blueprint for sophisticated AI: This is not just a simple tool; it's a foundational framework for building state-of-the-art AI agents that can handle more nuanced and multi-step tasks. How it works The re-usable "Thinking Space": The magic of this template is a simple sub-workflow that does nothing but receive text. This workflow acts as a reusable "scratchpad." Creating custom thinking tools: In the main workflow, we use the Tool (Workflow) node to call this "scratchpad" sub-workflow multiple times. We give each of these tools a unique name (e.g., Initial thoughts, Additional thoughts). The power of descriptions: The key is the description you give each of these tool nodes. This description tells the agent when and how it should use that specific thinking step. For example, the Initial thoughts tool is described as the place to create a plan at the start of a task. Orchestration via system prompt: The main AI Agent's system prompt acts as the conductor, instructing the agent on the overall process and telling it about its new thinking abilities (e.g., "Always start by using the Initial thoughts tool to make a plan..."). A practical example: This template includes two thinking tools to demonstrate a "Plan and Reflect" cycle, but you can add many more to fit your needs. Setup Add your own "action" tools: This template provides the thinking framework. To make it useful, you need to give the agent something to do. Add your own tools to the AI Agent, such as a web search tool, a database lookup, or an API call. Customize the thinking tools: Edit the description of the existing Initial thoughts and Additional thoughts tools. Make them relevant to the new action tools you've added. For example, "Plan which of the web search or database tools to use." Update the agent's brain: Modify the system prompt in the main AI Agent node. Tell it about the new action tools you've added and how it should use your customized thinking tools to complete its tasks. Connect your AI model: Select the OpenAI Chat Model node and add your credentials. Taking it further Create more granular thinking steps: Add more thinking tools for different stages of a process, like a "Hypothesize a solution" tool, a "Verify assumptions" tool, or a "Final answer check" tool. Customize the thought process: You can change how* the agent thinks by editing the prompt inside the fromAI('Thoughts', ...) field within each tool. You could ask for thoughts in a specific format, like bullet points or a JSON object. Change the workflow trigger: Switch the chat trigger for a Telegram trigger, email, Slack, whatever you need for your use case! Integrate with memory: For even more power, combine this framework with a long-term memory solution, allowing the agent to reflect on its thoughts from past conversations.

Guillaume DuvernayBy Guillaume Duvernay
2137

Schedule social media posts from Google Sheets to Twitter & Instagram

Social Media Auto-Poster (Google Sheets → Twitter & Instagram) This workflow automatically: Pulls rows marked as Pending from a Google Sheet. Generates a formatted Instagram caption and HTML preview. Converts the HTML into an image via HCTI.io. Posts the content: As a tweet (text only) to Twitter (X). As a post (image + caption) to Instagram via the Facebook Graph API. Marks the row in Google Sheets as Posted with a timestamp. It runs every 5 hours (configurable via the Schedule Trigger). --- Requirements Google Sheets API Credentials connected in n8n. HCTI.io account (HTML → Image API). Twitter (X) OAuth1 credentials. Facebook/Instagram Graph API access token (for the business account/page). A Google Sheet with at least these columns: RowID Caption Desc Hashtags Status Set Status to Pending for any row you want posted. --- Setup Import the JSON workflow (My_workflow.json) into your n8n instance. Link all credentials (replace placeholders with your own API keys and tokens). Update the Google Sheet ID and Sheet Name inside the Get row(s) in sheet and Update Status Posted nodes. (Optional) Adjust the posting interval in the Schedule Trigger node. --- How It Works Trigger: Runs every 5 hours. Fetch Rows: Reads Google Sheets for rows with Status = Pending. Caption Generation: Combines Desc + Hashtags into final_caption. HTML → Image: Converts caption to a styled 1080x1080 post. Social Posting: Posts the caption to Twitter (text only). Uploads the image + caption to Instagram. Update Status: Marks the row as Posted on [timestamp]. --- Notes Facebook/Instagram tokens expire; refresh or use long-lived tokens. HCTI.io may require a paid plan for high volumes. Works best with a business Instagram account linked to a Facebook Page. --- License This workflow can be reused and adapted freely under the MIT license.

Parag JavaleBy Parag Javale
1402

Get real-time NFT Marketplace insights with OpenSea Marketplace Agent Tool

Track NFT listings, offers, orders, and trait-based pricing in real time! This workflow integrates OpenSea API, AI-powered analytics (GPT-4o-mini), and n8n automation to provide instant insights into NFT trading activity. Ideal for NFT traders, collectors, and investors looking to monitor the market and identify profitable opportunities. How It Works A user submits a query about NFT listings, offers, or order history. The OpenSea Marketplace Agent determines the correct API tool: Retrieve active NFT listings for a collection. Fetch valid offers for individual NFTs or entire collections. Identify the cheapest NFT listings by collection or token ID. Track the highest offer made for a single NFT. Access detailed order history for a transaction. The OpenSea API (requires API key) is queried to fetch real-time data. The AI engine processes and structures the response, making it easy to interpret. The NFT marketplace insights are delivered via Telegram, Slack, or stored in a database. What You Can Do with This Agent 🔹 Find the Best NFT Listings → Retrieve the cheapest available listings in any collection. 🔹 Track Offers on NFTs → See all active offers, including highest bids. 🔹 Analyze Collection-Wide Market Data → Compare listings, offers, and sales activity. 🔹 Retrieve Order Details → Search by order hash to check buyer, seller, and transaction status. 🔹 Fetch NFT Trait-Based Offers → Identify rare traits that receive premium bids. 🔹 Monitor Multi-Chain Listings → Works across Ethereum, Polygon (Matic), Arbitrum, Optimism, and more. Example Queries You Can Use ✅ "Show me the 10 cheapest listings for Bored Ape Yacht Club." ✅ "Find the highest bid for CryptoPunk 1234." ✅ "Track all open offers for Azuki NFTs." ✅ "Retrieve details for this OpenSea order: 0x123abc... on Ethereum." ✅ "List all NFTs for sale in the 'CloneX' collection." Available API Tools & Endpoints 1️⃣ Get All Listings by Collection → /api/v2/listings/collection/{collectionslug}/all (Fetches active listings for a collection)_ 2️⃣ Get All Offers by Collection → /api/v2/offers/collection/{collectionslug}/all (Retrieves all offers for a collection)_ 3️⃣ Get Best Listing by NFT → /api/v2/listings/collection/{collectionslug}/nfts/{identifier}/best (Finds the lowest-priced NFT listing)_ 4️⃣ Get Best Listings by Collection → /api/v2/listings/collection/{collectionslug}/best (Fetches the cheapest listings per collection)_ 5️⃣ Get Best Offer by NFT → /api/v2/offers/collection/{collectionslug}/nfts/{identifier}/best (Retrieves the highest offer for an NFT)_ 6️⃣ Get Collection Offers → /api/v2/offers/collection/{collectionslug} (Shows collection-wide offers)_ 7️⃣ Get Item Offers → /api/v2/orders/{chain}/{protocol}/offers (Fetches active item-specific offers) 8️⃣ Get Listings by Chain & Protocol → /api/v2/orders/{chain}/{protocol}/listings (Retrieves active listings across blockchains) 9️⃣ Get Order Details by Hash → /api/v2/orders/chain/{chain}/protocol/{protocoladdress}/{orderhash} (Checks order status using an order hash) 🔟 Get Trait-Based Offers → /api/v2/offers/collection/{collectionslug}/traits (Fetches offers for specific NFT traits)_ Set Up Steps Get an OpenSea API Key Sign up at OpenSea API and request an API key. Configure API Credentials in n8n Add your OpenSea API key under HTTP Header Authentication. Connect the Workflow to Telegram, Slack, or Database (Optional) Use n8n integrations to send alerts to Telegram, Slack, or save results to Google Sheets, Notion, etc. Deploy and Test Send a query (e.g., "Get the best listing for BAYC 5678") and receive instant insights! Stay ahead of the NFT market—gain powerful insights with AI-powered OpenSea analytics!

Don Jayamaha JrBy Don Jayamaha Jr
1184

Automate meeting minutes distribution with Google Sheets and Gmail

Description This workflow sends a summary of your meeting minutes via Gmail, directly from the notes stored in your Google Sheet. Context Taking notes during meetings is important, but sharing them with the team can be time-consuming. This workflow makes it simple: just write down your meeting minutes in a Google Sheets, and n8n will automatically send them by email after each meeting. Who is this for? Perfect for anyone who: Uses Google Sheets to keep track of meeting notes. Wants to automatically share minutes with teammates or stakeholders. Values speed, productivity, and automation. Requirements Google account. Google Sheets (with your meeting minutes). You will need to setup the required columns first : Topic, Status, Owner, Next Step. Gmail. How it works ⏰ Trigger starts after a new row is added in your Google Sheet. 📑 The meeting minutes are retrieved from the sheet. 📨 Gmail automatically sends the minutes to the configured recipients. Steps 🗒️ Use the sticky notes in the n8n canvas to: Add your Google credentials (Sheets + Gmail). Define your sheet and recipient email addresses. Test the workflow to check if the minutes are sent. You’ll get this: An email containing your full meeting minutes, straight from your notes. Tutorial video Watch the Youtube Tutorial video About me : I’m Yassin a Project & Product Manager Scaling tech products with data-driven project management. 📬 Feel free to connect with me on Linkedin

Yassin ZeharBy Yassin Zehar
641

Automated academic paper monitoring with PDF vector, GPT-3.5, & Slack alerts

This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Automated Academic Paper Monitoring Stay updated with the latest research in your field. This bot monitors multiple academic databases for new papers matching your interests and sends personalized alerts. Bot Features: Monitor keywords across multiple databases Filter by authors, journals, or institutions Daily/weekly digest emails Slack notifications for high-impact papers Automatic paper summarization Workflow Components: Schedule: Run daily/weekly checks Search: Query latest papers across databases Filter: Apply custom criteria Summarize: Generate paper summaries Notify: Send alerts via email/Slack Archive: Store papers for future reference Perfect For: Research groups tracking their field PhD students monitoring specific topics Labs following competitor publications

PDF VectorBy PDF Vector
619

Automate employee date tracking & reminders for HR with JavaScript

HR Date Management Automation - Complete Setup Guide 🎯 How It Works This n8n workflow transforms your HR department from reactive to proactive by automatically monitoring 5 critical employee timelines and generating smart alerts before deadlines hit. Core Components Data Input → Employee information (hire dates, contracts, certifications) Date Analysis Engine → Calculates days until critical events Smart Categorization → Sorts employees by urgency level Reminder Scheduler → Creates proactive notifications Multi-Format Export → Sends alerts to your preferred systems Business Value Prevents compliance violations ($5K-50K+ in fines) Reduces HR workload (15-20 hours/month saved) Improves employee experience (no missed reviews/renewals) Provides management visibility (dashboard reporting) ----- 🚀 Quick Start Test Import the Workflow Download the Javascript_Hr.json file Open n8n and click “Import from file” Select the downloaded JSON file Click “Import” Test with Sample Data Click the “Execute Workflow” button Review the sample output in each node Check the final export data format What you’ll see: 5 sample employees with different scenarios Calculated days until contract/certification expiry Priority levels (high/medium/low) Scheduled reminders with recipient emails Export data in multiple formats ----- 🔧 Real-World Integration Setup Option 1: Google Sheets Integration (Most Popular) Step 1: Prepare Your Employee Data Create a Google Sheet with these columns: | Employee ID | Name | Email | Department | Hire Date | Contract End | Certification Expiry | Last Review | Probation End | Vacation Days | Status | Sample data format: | 1 | John Smith | john@company.com | IT | 2024-01-15 | 2025-12-31 | 2025-03-20 | 2024-06-15 | 2024-07-15 | 20 | active | Step 2: Replace Sample Data Generator Delete the “Sample Data Generator” node Add “Google Sheets” node Connect to your Google account Configure these settings: Operation: Read Document: Your employee spreadsheet Sheet: Employee data sheet Range: A1:K100 (adjust for your data size) Options: ✅ RAW data, ✅ Header row Step 3: Map Your Data Add a “Set” node after Google Sheets to standardize field names: javascript // Map your sheet columns to workflow format { "id": "{{ $json['Employee ID'] }}", "name": "{{ $json['Name'] }}", "email": "{{ $json['Email'] }}", "department": "{{ $json['Department'] }}", "hiredOn": "{{ $json['Hire Date'] }}", "contractEndDate": "{{ $json['Contract End'] }}", "certificationExpiry": "{{ $json['Certification Expiry'] }}", "lastReviewDate": "{{ $json['Last Review'] }}", "probationEndDate": "{{ $json['Probation End'] }}", "vacationDays": "{{ $json['Vacation Days'] }}", "status": "{{ $json['Status'] }}" } Option 2: HRIS Integration (BambooHR Example) Step 1: BambooHR API Setup Get your BambooHR API key from Settings > API Keys Note your company subdomain (e.g., yourcompany.bamboohr.com) Step 2: Replace Sample Data Generator Delete the “Sample Data Generator” node Add “HTTP Request” node Configure these settings: Method: GET URL: https://api.bamboohr.com/api/gateway.php/[SUBDOMAIN]/v1/employees/directory Authentication: Basic Auth Username: Your API key Password: x (leave as ‘x’) Headers: Accept: application/json Step 3: Transform BambooHR Data Add a “Code” node to transform the API response: javascript // Transform BambooHR response to workflow format const employees = []; for (const employee of $input.all()) { const emp = employee.json; employees.push({ id: emp.id, name: ${emp.firstName} ${emp.lastName}, email: emp.workEmail, department: emp.department, hiredOn: emp.hireDate, contractEndDate: emp.terminationDate || "2025-12-31", // Default if not set certificationExpiry: emp.customCertDate || "2025-12-31", lastReviewDate: emp.customReviewDate || null, probationEndDate: emp.customProbationDate || null, vacationDays: emp.paidTimeOff || 20, status: emp.employeeStatus || "active" }); } return employees.map(emp => ({ json: emp })); Option 3: CSV File Upload Step 1: Prepare CSV File Create a CSV with the same structure as the Google Sheets format. Step 2: Use CSV Parser Replace “Sample Data Generator” with “Read Binary File” node Add “CSV Parser” node Configure settings: Include Headers: Yes Delimiter: Comma Skip Empty Lines: Yes ----- 📧 Output Integration Setup Email Notifications Step 1: Add Email Node Add “Email” node after “Reminder Scheduler” Connect to your email provider (Gmail/Outlook) Step 2: Configure Email Templates javascript // Dynamic email content based on reminder type const reminder = $json; const emailTemplates = { contract_renewal: { subject: 🚨 Contract Renewal Required - ${reminder.employeeName}, body: ` Hi HR Team, ${reminder.employeeName}'s contract expires on ${reminder.dueDate}. Days remaining: ${Math.ceil((new Date(reminder.dueDate) - new Date()) / (10006060*24))} Please initiate renewal process immediately. Best regards, HR Automation System ` }, certification_renewal: { subject: 📜 Certification Renewal Reminder - ${reminder.employeeName}, body: ` Hi ${reminder.employeeName}, Your certification expires on ${reminder.dueDate}. Please renew your certification to maintain compliance. Contact HR if you need assistance. Best regards, HR Team ` } }; const template = emailTemplates[reminder.type]; return { to: reminder.recipientEmail, subject: template.subject, body: template.body }; Slack Integration Step 1: Add Slack Node Add “Slack” node after “Advanced Date Filters” Connect to your Slack workspace Step 2: Configure Channel Alerts javascript // Send summary to hr-alerts channel const summary = $json.summary; const message = ` 🏢 Daily HR Report 👥 Total Employees: ${summary.totalEmployees} 🆕 New Hires: ${summary.newHires} ⚠️ High Priority Actions: ${summary.highPriority} 📋 Contracts Expiring: ${summary.contractsExpiring} 🎓 Certifications Expiring: ${summary.certificationsExpiring} Generated: ${new Date().toLocaleDateString()} `; return { channel: 'hr-alerts', text: message }; Google Calendar Integration Step 1: Add Calendar Node Add “Google Calendar” node after “Reminder Scheduler” Connect to your Google account Step 2: Create Calendar Events javascript // Create calendar events for upcoming deadlines const reminder = $json; const eventTitles = { contract_renewal: Contract Renewal - ${reminder.employeeName}, certification_renewal: Certification Renewal - ${reminder.employeeName}, performance_review: Performance Review - ${reminder.employeeName}, probation_review: Probation Review - ${reminder.employeeName} }; return { calendarId: 'hr-calendar@yourcompany.com', summary: eventTitles[reminder.type], description: reminder.message, start: { dateTime: reminder.dueDate, timeZone: 'America/New_York' }, end: { dateTime: reminder.dueDate, timeZone: 'America/New_York' }, attendees: [ { email: 'hr@yourcompany.com' }, { email: reminder.recipientEmail } ] }; ----- 🎯 Scheduling & Automation Daily Monitoring Setup Step 1: Add Cron Trigger Replace “Manual Trigger” with “Cron” node Set schedule: 0 9 1-5 (9 AM, Monday-Friday) Configure timezone to your business hours Step 2: Error Handling Add “Error Trigger” node Connect to email notification for failures Set up retry logic for failed integrations Weekly Reports Step 1: Create Weekly Summary Add separate “Cron” trigger for weekly reports Set schedule: 0 9 1 (9 AM every Monday) Modify the filtering logic to show weekly trends ----- 🔍 Customization Options Adjust Alert Timings In the “Date Analysis & Categorization” node: javascript // Modify these values to change alert timing const isContractExpiringSoon = daysUntilContractEnd <= 90; // Change from 90 days const isCertificationExpiringSoon = daysUntilCertificationExpiry <= 60; // Change from 60 days const needsReview = daysSinceLastReview >= 365; // Change from 365 days Add Custom Employee Categories javascript // Add new categories in the analysis node const isContractor = employee.employeeType === 'contractor'; const isRemoteWorker = employee.location === 'remote'; const isHighRisk = employee.performanceRating === 'needs_improvement'; Custom Date Formats Modify the “Date Formatting & Export” node to add your preferred formats: javascript // Add custom date format const formatters = { custom: (date) => { const options = { year: 'numeric', month: 'long', day: 'numeric', weekday: 'long' }; return date.toLocaleDateString('en-US', options); } }; ----- 🎚️ Testing & Validation Step 1: Data Validation Test with 2-3 sample employees first Verify all dates are parsing correctly Check that calculations match manual calculations Step 2: Alert Testing Create test scenarios with dates 30/60/90 days out Verify emails are sent to correct recipients Test Slack notifications in a test channel Step 3: Performance Testing Test with your full employee dataset Monitor execution time (should be under 30 seconds) Check for memory usage with large datasets ----- 🆘 Troubleshooting Guide Common Issues Date Parsing Errors javascript // Add date validation in the analysis node const parseDate = (dateStr) => { const date = new Date(dateStr); if (isNaN(date.getTime())) { console.error(Invalid date: ${dateStr}); return null; } return date; }; Missing Data Fields javascript // Add data validation const validateEmployee = (employee) => { const required = ['name', 'email', 'hiredOn']; const missing = required.filter(field => !employee[field]); if (missing.length > 0) { console.error(Missing required fields for ${employee.name}: ${missing.join(', ')}); return false; } return true; }; API Rate Limits Add “Wait” nodes between API calls Implement retry logic with exponential backoff Cache API responses when possible ----- 🚀 Advanced Features Multi-Company Support javascript // Add company filtering in the analysis node const processEmployeesByCompany = (employees, companyId) => { return employees.filter(emp => emp.companyId === companyId); }; Custom Notification Rules javascript // Advanced notification logic const shouldNotify = (employee, eventType) => { const rules = { contract_renewal: employee.department !== 'intern', certificationrenewal: employee.role === 'certifiedprofessional', performance_review: employee.status === 'active' }; return rules[eventType] || false; }; Integration with Time Tracking javascript // Connect to time tracking APIs const calculateWorkingDays = (startDate, endDate) => { // Implementation for working days calculation // Excluding weekends and holidays }; ----- This workflow transforms your HR department from reactive to proactive, preventing costly compliance issues while improving employee experience. The modular design allows you to start simple and add complexity as needed.

David OlusolaBy David Olusola
399

Deploy Docker Immich, API backend for WHMCS/WISECP

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. [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1742323788556.png) You need to manually import this template into your n8n server. [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1741284912356.png) 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. [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1742323836025.png) [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1742323899841.png) [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1742323927094.png) Create an SSH Credential for accessing a server with Docker installed. [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1741285118412.png) [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1741285147192.png) [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1741285198822.png) Modify Template Parameters In the Parameters block of the template, update the following settings: [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1742323964634.png) [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1741285412110.png) 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 [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1741875704524.png) [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1742324015958.png) 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. [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1741875960357.png) [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1742324044762.png) 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. [](https://doc.puq.info/uploads/images/gallery/2025-03/image-1741876353319.png)

PUQcloudBy PUQcloud
311

Gmail email auto-organizer with Google Sheets rules

Transform your Gmail inbox from chaos to clarity with this revolutionary email organization system that uses Google Sheets as your command center for automated email management. This powerful n8n workflow automatically processes, categorizes, and organizes your Gmail inbox using customizable rules stored in Google Sheets. Say goodbye to manual email sorting and hello to a perfectly organized inbox that adapts to your needs through simple spreadsheet management. Key Innovation: Unlike traditional email filters that require complex Gmail setup, this system uses Google Sheets for intuitive rule management, allowing anyone to update email organization rules through a simple spreadsheet interface - no technical knowledge required! What Makes This Different: Google Sheets Integration - Manage email rules through an easy-to-use spreadsheet interface Smart Pattern Matching - Automatically detects sender patterns and applies appropriate actions Flexible Rule System - Support for DELETE, PROMO, and LABEL actions with custom label names Intelligent Email Parsing - Extracts clean email addresses from various sender formats Automatic Inbox Management - Removes processed emails from inbox and marks as read Real-time Notifications - Slack integration for monitoring and completion alerts Key Benefits of Sheet-Based Organization: Easy Rule Management - Update email rules without touching the workflow code Visual Rule Interface - See all your email organization rules in one place Scalable Organization - Add unlimited rules without workflow modifications Team Collaboration - Share and manage rules with team members through Google Sheets Flexible Actions - Choose between deleting, promoting, or labeling emails Custom Label Support - Create and apply custom Gmail labels automatically --- Who's it for This template is designed for busy professionals, entrepreneurs, small business owners, and anyone overwhelmed by email management. It's perfect for individuals and teams who receive high volumes of emails and need an intelligent, automated system to organize their Gmail inbox without manual intervention. Ideal for users who want to maintain a clean, organized inbox while ensuring important emails are properly categorized and promotional emails are handled appropriately. How it works / What it does This workflow creates an intelligent email organization system that automatically processes and categorizes your Gmail inbox using customizable rules stored in Google Sheets. The system: Triggers automatically on a schedule (configurable interval) to check for new emails Retrieves all unread emails from your Gmail inbox Parses sender email addresses to extract clean email addresses from various formats Loads organization rules from a Google Sheets document with customizable patterns Applies intelligent pattern matching to categorize emails based on sender patterns Executes appropriate actions (DELETE, PROMO, or LABEL) based on matched rules Manages Gmail labels automatically, creating new labels if needed Removes processed emails from inbox and marks them as read Sends completion notifications via Slack for monitoring Key Innovation: Sheet-Based Rule Management - Unlike traditional email filters that require complex setup in Gmail, this system uses Google Sheets for easy rule management, allowing non-technical users to update email organization rules through a simple spreadsheet interface. How to set up Configure Gmail API Credentials Set up Gmail OAuth2 API credentials in n8n Ensure the account has permissions to read, modify, and manage Gmail messages Grant access to Gmail labels and message operations Set up Google Sheets Integration Create a Google Sheets document for email organization rules Set up Google Sheets OAuth2 API credentials in n8n Configure the sheet with the required columns: Pattern, Action, LabelName, RemoveFromInbox Configure Email Organization Rules Add your email organization rules to the Google Sheets document Use the Pattern column to specify sender patterns (e.g., "@company.com", "newsletter@") Set Action to DELETE, PROMO, or LABEL based on desired behavior Specify LabelName for custom labels when Action is LABEL Set RemoveFromInbox to TRUE/FALSE to control inbox removal Set up Slack Notifications (Optional) Configure Slack API credentials for the notification channel Update the channel ID where completion notifications will be sent Customize notification messages as needed Configure Schedule Adjust the Schedule Trigger node for your preferred interval Consider running every few minutes for real-time organization Test with manual execution first to verify setup Test the Integration Run a manual execution to verify all components work correctly Check your Gmail inbox and labels to see organized emails Verify Slack notifications are received (if configured) Requirements n8n instance (self-hosted or cloud) with API access Gmail account with API access and sufficient email volume Google Sheets account for rule management Slack workspace for notifications (optional but recommended) Gmail labels that need to be created and managed automatically How to customize the workflow Modify Email Processing Frequency Adjust the Schedule Trigger node for different intervals (every few minutes, hourly, daily) Add multiple schedule triggers for different email types Implement conditional scheduling based on email volume Enhance Rule Management Add more complex pattern matching (regex support, multiple conditions) Implement rule priorities and conflict resolution Add rule validation and error handling Expand Notification System Add email notifications for organization events Integrate with monitoring systems (PagerDuty, OpsGenie) Add detailed reporting on email organization statistics Advanced Email Processing Add support for email content analysis and categorization Implement sentiment analysis for email prioritization Add support for attachment handling and organization Security and Privacy Enhancements Implement email content encryption for sensitive information Add audit logging for email organization actions Set up access controls for rule management Performance Optimizations Add batch processing for high-volume email accounts Implement intelligent caching for frequently accessed rules Add email processing metrics and performance monitoring Key Features Google Sheets Integration - Manage email rules through an intuitive spreadsheet interface Smart Pattern Matching - Automatically detects sender patterns and applies appropriate actions Flexible Action System - Support for DELETE, PROMO, and LABEL actions with custom configurations Intelligent Email Parsing - Extracts clean email addresses from various sender formats Automatic Gmail Management - Creates labels, removes from inbox, and marks as read automatically Real-time Notifications - Slack integration for monitoring and completion alerts Scalable Rule System - Add unlimited rules without workflow modifications Error Handling - Graceful failure handling with detailed error reporting Technical Architecture Highlights Google Sheets Integration Dynamic Rule Loading - Rules are loaded from Google Sheets on each execution Real-time Rule Updates - Changes to the sheet are immediately reflected in email processing Flexible Rule Format - Support for Pattern, Action, LabelName, and RemoveFromInbox columns Error Handling - Graceful handling of missing or invalid rule configurations Email Processing Optimization Intelligent Email Parsing - Extracts clean email addresses from various sender formats Pattern Matching - Efficient substring matching for sender identification Batch Processing - Processes multiple emails in a single execution cycle Gmail API Integration - Direct integration with Gmail for label management and inbox operations Workflow Efficiency Parallel Data Loading - Gmail messages and labels are loaded simultaneously Smart Rule Application - Efficient pattern matching and action execution Automatic Label Management - Creates and manages Gmail labels automatically Streamlined Notifications - Single completion notification per execution cycle Use Cases Busy professionals with high email volumes needing automated organization Small business owners managing multiple email streams and client communications Entrepreneurs handling various business emails requiring different priority levels Teams needing consistent email organization across multiple team members Customer service departments requiring automated email categorization Sales teams needing lead and prospect email organization Business Value Time Savings - Eliminates manual email sorting and organization tasks Improved Productivity - Focus on important emails without inbox clutter Consistent Organization - Automated email categorization ensures nothing is missed Reduced Stress - Clean, organized inbox reduces email overwhelm Team Efficiency - Standardized email organization across team members Scalable Solution - Handles increasing email volume without performance degradation Google Sheets Rule Configuration Required Columns: Pattern - Substring to match in sender email (e.g., "@company.com", "newsletter@") Action - Action to take: DELETE, PROMO, or LABEL LabelName - Custom label name (only required when Action = LABEL) RemoveFromInbox - TRUE/FALSE to control inbox removal (optional) Example Rules: Pattern: @newsletter.com Action: PROMO LabelName: RemoveFromInbox: TRUE Pattern: @client.com Action: LABEL LabelName: Clients RemoveFromInbox: FALSE Pattern: spam@ Action: DELETE LabelName: RemoveFromInbox: TRUE This template revolutionizes email management by providing an intuitive, spreadsheet-based approach to email organization that grows with your needs while maintaining the highest levels of automation and reliability.

Omer FayyazBy Omer Fayyaz
294

Create Jira tickets from Streamlit forms with webhook & REST API

Description Automated workflow that creates Jira issues directly from Streamlit form submissions. Receives webhook data, validates and transforms it to Jira's API schema, creates the issue, and returns the ticket details to the frontend application. Context Bridges the gap between lightweight Streamlit prototypes and enterprise Jira workflows. Enables rapid ticket creation while maintaining Jira as the authoritative source of truth. Includes safety mechanisms to prevent duplicate submissions and malformed requests. Target Users Product Managers building internal request portals. Engineering Managers creating demo applications. Teams requiring instant Jira integration without complex UI development. Project Manager using Jira pour mangement and reporting. Organizations wanting controlled ticket creation without exposing Jira directly. Technical Requirements n8n instance (cloud or self-hosted) with webhook capabilities Jira Cloud project with API token and issue creation permissions Streamlit application configured to POST to n8n webhook endpoint Optional: Custom field IDs for Story Points (typically customfield_10016) Workflow Steps Webhook Trigger - Receives POST from Streamlit with ticket payload. Deduplication Guard - Filters out ping requests and rapid duplicate submissions. Data Validation - Ensures required fields are present and properly formatted. Schema Transformation - Maps Streamlit fields to Jira API structure. Jira API Call - Creates issue via REST API with error handling. Response Formation - Returns success status with issue key and URL. Key Features Duplicate submission prevention. Rich text description formatting for Jira. Configurable priority and issue type mapping. Story points integration for agile workflows. Comprehensive error handling and logging. Clean JSON response for frontend feedback. Validation Testing Ping/test requests are ignored without creating issues. First submission creates Jira ticket with proper formatting. Rapid resubmission is blocked to prevent duplicates. All field types (priority, labels, due dates, story points) map correctly. Error responses are handled gracefully. Expected Output Valid Jira issue created in specified project JSON response: {ok: true, jiraKey: "PROJ-123", url: "https://domain.atlassian.net/browse/PROJ-123"} No orphaned or duplicate tickets. Audit trail in n8n execution logs. Implementation Notes Jira Cloud requires accountId for assignee (not username). Date format must be YYYY-MM-DD for due dates. Story Points field ID varies by Jira configuration. Enable response output in HTTP node for debugging. Consider rate limiting for high-volume scenarios. Tutorial video: Watch the Youtube Tutorial video How it works ⏰ Trigger: Webhook fires when the app submits. 🧹 Guard: Ignore pings/invalid, deduplicate rapid repeats. 🧱 Prepare: Normalize to Jira’s field model (incl. Atlassian doc description). 🧾 Create: POST to /rest/api/3/issue and capture the key. 🔁 Respond: Send { ok, jiraKey, url } back to Streamlit for instant UI feedback. About me : I’m Yassin a Project & Product Manager Scaling tech products with data-driven project management. 📬 Feel free to connect with me on Linkedin

Yassin ZeharBy Yassin Zehar
264
All templates loaded