by Lorena
This workflow illustrates how to convert data from JSON to binary format and import JSON data or files into Google Sheets or local spreadsheets.
by InfyOm Technologies
✅ What problem does this workflow solve? Online course prices—especially on platforms like Udemy—change frequently and often include time-limited discounts. Manually checking prices, coupon availability, and offer expiration is tedious and unreliable. This workflow automates browser-based price tracking using Airtop, detects high-discount deals, logs them in Google Sheets, and instantly notifies you on Telegram—all without scraping hacks or brittle scripts. ⚙️ What does this workflow do? Automates real browser interactions using Airtop Searches Udemy for specific course topics Extracts live course pricing and offer data Detects discounts of 50% or more Logs deal details in Google Sheets Sends real-time Telegram alerts before offers expire 🧠 How It Works – Step by Step 1. ⏱ Schedule Trigger The workflow runs automatically at a fixed interval (hourly or daily). 2. 🌐 Create Browser Session (Airtop) Starts a new Airtop browser session Opens Udemy search results for a specific keyword (e.g., n8n) 3. 🔍 Scrape Course Data Using Airtop’s extraction capabilities, the workflow collects: Course title Instructor name Current price Original price (if available) Rating Offer expiration time Course URL 4. 🔁 Loop Through Courses Each course is processed individually to: Check if an offer exists Skip non-discounted courses 5. 🧮 Calculate Discount Percentage Extracts numeric price values Computes discount percentage Filters courses with ≥ 50% discount 6. 📊 Log Deals in Google Sheets For qualifying deals, the workflow appends: Course title Instructor Original & discounted price Discount percentage Rating Offer time left Course URL This creates a persistent deal history for tracking and analysis. 7. 📣 Telegram Notification When a high-discount deal is found, a formatted Telegram alert is sent including: Course name Instructor Discount amount Price comparison Rating Direct course link Offer expiration info 8. 🧹 Cleanup Closes the Airtop browser window Terminates the session to conserve resources 🧩 Integrations Used Airtop** – No-code browser automation n8n** – Workflow orchestration Google Sheets** – Deal tracking & logging Telegram Bot API** – Instant deal alerts 👤 Who is this for? This workflow is perfect for: 🎓 Learners hunting course deals 🧠 Knowledge seekers tracking Udemy discounts 🤖 Automation enthusiasts exploring browser automation 📉 Price monitoring use cases beyond e-learning
by CompanyEnrich
This n8n template automatically enriches company records in your CRM using CompanyEnrich and keeps your data up to date without manual work. This workflow is ideal for RevOps, Sales Ops, and GTM teams who want cleaner CRM data for segmentation, scoring, and outbound workflows. Good to know Company enrichment is performed by domain, so a valid company domain is required. The template includes HubSpot, Salesforce, and Close CRM paths. Disable the CRM nodes you don’t use and remove their connection into the Extract Domain node. The workflow processes companies in batches to avoid rate limits. Enrichment is only applied when the API request is successful. How it works A Schedule Trigger runs the workflow on a recurring basis (weekly by default). Extracts the domain seeds of the companies for CompanyEnrich enrichment API. Pulls companies from: HubSpot: accounts created/updated within the time window (and can fetch full records if needed) Salesforce: accounts created/updated within the time window (and can fetch full records if needed) Close CRM: leads created within the time window via the Close search endpoint The company domain is safely extracted, even if stored in different fields. Each domain is sent to the CompanyEnrich enrichment API. The workflow checks whether the enrichment request was successful. Enriched data is mapped into HubSpot-compatible fields. The corresponding HubSpot company record is updated. The workflow continues looping until all companies are processed. How to use HubSpot Create a HubSpot private app with Company read + write scopes. Add your HubSpot credentials to the HubSpot nodes (get companies + update company). Salesforce Connect your Salesforce account on all Salesforce nodes used in the workflow. Close CRM In the Close CRM node, create a Basic Auth credential. Put your Close CRM API key in the username field. Append a colon: to the end of the API key. Leave the password field empty. ⚠️ Important: If you don’t add: and keep password blank, authentication will fail. Add your CompanyEnrich API key as an HTTP credential. Adjust the schedule if you want the workflow to run daily or on-demand. Make sure your HubSpot companies have a domain set. Once active, the workflow will keep your company data enriched automatically. Requirements CompanyEnrich API key n8n instance with HTTP Request node enabled At least one CRM connection: HubSpot private app token, or Salesforce OAuth, or Close CRM API key (Basic Auth with : rule) Customising this workflow Change the schedule to run more frequently or trigger via webhook. Add filters to enrich only specific company segments or pipelines. Map additional enriched fields to custom HubSpot properties.
by AppStoneLab Technologies LLP
👗 Virtual Try-On Telegram Bot — AI Outfit Try-On via Telegram with Async Job Polling Try on any outfit virtually - right inside Telegram. A user sends a person photo, then a garment photo (captioned garment), and the bot replies with an AI-generated try-on result image using a dedicated Virtual Try-On API. No app. No frontend. Just a Telegram chat. 🎯 Who Is This For? Fashion e-commerce brands** wanting to offer a try-before-you-buy experience via a simple chat interface Telegram bot developers** looking for a real-world async API polling pattern with state management AI product builders** who want a plug-and-play virtual fitting room for their audience Boutiques & clothing stores** wanting to let customers preview outfits before ordering ⚙️ What This Workflow Does Receives a Telegram message and checks if it contains a photo Person photo (sent without caption) → saves chat_id + file_id to Google Sheets as session state Garment photo (sent with caption garment) → looks up the saved person photo, resolves both Telegram file URLs, downloads both images, and submits a try-on job to the API Async polling loop → waits 15 seconds, checks job status, loops until completed or failed Sends the result back to the user as a photo in Telegram, then cleans up the sheet row 🔑 Credentials & APIs Required | Service | Purpose | Where to Get It | |---|---|---| | Telegram Bot Token | Receive messages & send results | Create a bot via @BotFather on Telegram → /newbot | | Virtual Try-On API Key | Submit and poll try-on jobs | Sign up at your Try-On API provider (e.g. try-on api or your own deployment) | | Google Sheets OAuth2 | Store per-user session state between messages | Connect via n8n's built-in Google Sheets OAuth2 credential | > 💡 Why Google Sheets for state? Each Telegram message triggers a separate workflow execution - there's no shared memory between runs. Google Sheets acts as a lightweight session store using chat_id as the unique key. 🛠️ Setup Instructions Step 1 - Telegram Bot Open Telegram and message @BotFather Run /newbot, follow the prompts, copy your Bot Token Paste the token into the ⚙️ Config node under botToken Step 2 - Google Sheet Create a new Google Sheet Add a tab named exactly tryon-state Add two column headers in row 1: chat_id and person_file_id Copy the Sheet ID from the URL (docs.google.com/spreadsheets/d/{THIS_PART}/edit) Paste it into the ⚙️ Config node under sheetId Step 3 - Try-On API Obtain your API key from your Virtual Try-On provider Set tryonApiKey in the ⚙️ Config node If your API base URL differs, also update tryonApiBase Verify the API accepts POST /api/v1/tryon with multipart/form-data fields person_images and garment_images, and returns { jobId, statusUrl } - adjust the Submit Try-On Job and Check Job Status nodes if your provider's schema differs Step 4 - n8n Credentials Assign your Telegram credential to all Telegram nodes (Trigger + all send nodes) Assign your Google Sheets OAuth2 credential to all Google Sheets nodes Activate** the workflow - the Telegram Trigger only works when the workflow is active 🔄 How the Polling Loop Works The Try-On API is asynchronous - submitting a job returns a jobId, not the result immediately. The workflow: Submits the job → gets jobId Waits 15 seconds Calls the status endpoint: GET /api/v1/tryon/status/{jobId} If status === "completed" → downloads and sends the result image If status === "failed" → sends an error message to the user Otherwise → loops back to the wait step Typical total wait: 15–60 seconds depending on the API and queue load. 🎨 How to Customize Change the garment trigger keyword* → Edit the caption check in *Is Garment Photo?** node from garment to anything you like (e.g. outfit, try, wear) Add a category/garment type input** → Extend the caption parsing to accept values like top, dress, jacket and pass them as an extra field to your Try-On API if supported Use a different state store* → Swap Google Sheets for Airtable, Supabase, or Redis if you have higher traffic needs; just replace the *Save Person to Sheet* and *Lookup Person from Sheet** nodes Add a paid/subscription gate** → Before saving the person photo, check a users sheet or database to see if the chat_id has remaining credits Support multiple garments in one session** → Instead of deleting the person row after each try-on, keep it for 24 hours so users can try multiple garments without re-uploading the person photo Add a result watermark* → Insert an n8n Code node after *HTTP Request** (result download) to overlay your brand logo before sending 📋 Workflow Nodes Overview | Node | Role | |---|---| | Telegram Trigger | Listens for incoming messages | | Extract Message Info | Pulls out chat_id, caption, hasPhoto, fileId | | ⚙️ Config | Single place for all configurable values — edit this first | | Has Photo? | Routes messages that contain a photo | | Is Garment Photo? | Checks if caption equals garment | | Save Person to Sheet | Stores person file_id keyed by chat_id | | Lookup Person from Sheet | Retrieves saved person photo when garment arrives | | Has Person Saved? | Guards against out-of-order photos | | Collect IDs | Bundles all required IDs for downstream nodes | | Get Person/Garment File Path | Resolves Telegram file_id → file_path via getFile API | | Download Person/Garment Image | Downloads actual image binary from Telegram CDN | | Submit Try-On Job | POSTs both images to the Try-On API | | Wait 15 Seconds | Gives the API time before first status check | | Check Job Status | Polls job status endpoint | | Is Job Complete? / Is Job Failed? | Routes to success or error path | | HTTP Request (result download) | Downloads the result image as binary | | Send Result Photo | Sends the AI try-on image back to the user | | Delete Row from Sheet | Cleans up session state after successful result | ⚠️ Notes & Gotchas Telegram file URLs expire** - the workflow resolves and downloads images immediately; never store Telegram download URLs for later use The bot must be activated** for the Telegram webhook to register - n8n does not receive messages while the workflow is inactive Google Sheets appendOrUpdate** uses chat_id as the matching key, so a user can retake their person photo any time and it will overwrite the old entry Pinned test data** is included in Submit Try-On Job and Merge State nodes for local testing — remove or disable these pins before going live 🔗 Useful Links Telegram BotFather — Create your bot n8n Telegram node docs n8n Google Sheets node docs n8n HTTP Request node docs n8n Wait node docs n8n Community Forum
by Taofiq
> This n8n workflow template uses a community node and is only compatible with the self-hosted version of n8n. Who's it for DevOps teams, platform engineers, and ops leads who use Slack bots for infrastructure tasks but need to control who can trigger what. Ideal for teams that have outgrown hardcoded IF-node permission checks. How it works A team member @mentions the bot in Slack with a DevOps request like "restart staging" or "deploy to production." OpenAI classifies the message into a structured action and resource. Permit.io then checks if that Slack user's role allows the action. If permitted, the workflow executes the action and posts the result. If denied, the bot responds with the user's current permissions and suggests who can help. How to set up Install the @permitio/n8n-nodes-permitio community node Create a Slack app with app_mentions:read, chat:write, channels:read, users:read scopes Add your OpenAI API key In Permit.io, create resources (logs, staging, production, secrets) with actions (view, deploy, restart, rotate) and roles (viewer, developer, sre, admin) Sync your team's Slack user IDs as users in Permit.io and assign roles Requirements Self-hosted n8n instance Slack workspace with a bot app OpenAI API key Permit.io account (free tier works) How to customize Replace the mock HTTP Request node with your actual infrastructure endpoints (GitHub Actions, ArgoCD, Jenkins, etc.) Add ABAC conditions in Permit.io for time-based or context-based rules without changing the workflow Extend with additional resources and actions to match your team's operations
by Omer Fayyaz
This n8n template implements an AI-Powered Chatbot for Automated WHMCS Support Ticket Creation Who's it for This template is designed for web hosting companies, domain registrars, and IT service providers who want to automate their customer support ticket creation process. It's perfect for businesses looking to streamline support operations by automatically converting customer chat conversations into structured WHMCS support tickets while maintaining professional, empathetic customer interactions. How it works / What it does This workflow creates an AI-powered chatbot that automatically converts customer chat messages into structured support tickets within the WHMCS system. The AI agent automatically: Receives customer queries through a webhook endpoint Processes natural language requests using Google Gemini AI Extracts key information from customer conversations: Customer name and email Issue description and subject Appropriate support department Priority level (Low, Medium, High) Fetches valid support departments from WHMCS using the GetSupportDepartments API Creates structured support tickets via WHMCS OpenTicket API Maintains conversation context with session-based memory Provides professional responses while gathering necessary information The system ensures 100% accuracy by always mapping to valid WHMCS departments and never inventing ticket fields, maintaining data integrity and proper ticket routing. How to set up 1. Configure Google Gemini API Set up your Google Gemini API credentials in the Google Gemini Chat Model node Ensure you have sufficient API quota for your expected usage 2. Configure WHMCS API Update the WHMCS API credentials in both HTTP Request Tool nodes Replace https://WHMCS_URL.com/includes/api.php with your actual WHMCS API endpoint Ensure your WHMCS API has the necessary permissions for: GetSupportDepartments action OpenTicket action 3. Customize AI Agent Behavior Modify the system message in the AI Agent node to match your company's tone and policies Adjust the agent's response style and ticket creation workflow Customize department mapping and priority assignment logic 4. Set up the Webhook The workflow creates a unique webhook endpoint for receiving customer queries Use this endpoint URL in your customer-facing chat interface Ensure proper security measures for webhook access 5. Test Department Integration Verify that the GetSupportDepartments API call returns your actual support departments Test ticket creation with various customer scenarios Ensure proper error handling for API failures Requirements Google Gemini API account** with appropriate credentials n8n instance** (self-hosted or cloud) WHMCS installation** with API access enabled Support department structure** already configured in WHMCS Customer chat interface** or messaging system How to customize the workflow Modify AI Agent Behavior Edit the system message in the AI Agent node to change the bot's personality and response style Adjust ticket creation logic and required field validation Customize priority assignment algorithms based on keywords or urgency indicators Enhance Ticket Creation Add custom fields to the ticket creation process Implement ticket categorization based on conversation content Add automatic assignment to specific support staff members Improve Customer Experience Add ticket confirmation and tracking information Implement follow-up message scheduling Add customer satisfaction surveys after ticket resolution Security Enhancements Implement API key rotation and monitoring Add request validation and sanitization Set up usage analytics and abuse prevention Key Features Automatic ticket creation** from natural language conversations Intelligent department mapping** using WHMCS API Professional customer interaction** with empathetic responses Session-based memory** for contextual conversations Structured ticket data** with proper validation Priority assignment** based on conversation analysis Scalable webhook architecture** for high-volume usage Direct WHMCS integration** for seamless ticket management Use Cases 24/7 automated support ticket creation** for web hosting companies Customer service automation** with human-like interaction Support team efficiency** by reducing manual ticket entry Consistent ticket formatting** across all customer interactions Improved response times** through immediate ticket creation Customer self-service** with professional guidance Chat Session Management The workflow automatically manages chat sessions with the following features: Unique Session IDs** for each customer conversation Automatic information extraction** from customer messages Conversation history tracking** with chronological message storage Session persistence** across multiple interactions Contextual responses** based on conversation history Example Customer Interactions The AI agent can handle various customer scenarios: Technical Issues**: "My website is down" → Creates ticket in Technical Support department Billing Questions**: "I need help with my invoice" → Creates ticket in Billing department Domain Services**: "I want to transfer my domain" → Creates ticket in Domain Services department General Support**: "I have a question about my hosting plan" → Creates ticket in General Support department Ticket Creation Process The workflow follows a structured approach: Information Gathering: The AI agent identifies missing required information (email, name, etc.) Department Selection: Fetches available departments from WHMCS and maps customer needs appropriately Priority Assessment: Determines ticket priority based on urgency indicators in the conversation Ticket Creation: Generates a well-structured ticket with clear subject and detailed message Confirmation: Provides customer with ticket creation confirmation and next steps This template transforms your web hosting business by providing instant, automated support ticket creation while maintaining the personal touch that customers expect from professional service providers. The AI agent becomes an extension of your support team, handling routine inquiries and ensuring no customer request goes unaddressed.
by Omer Fayyaz
This n8n template implements a Customer Support Chat Agent for Web Hosting Companies with Google Gemini, Google Sheets Knowledge base and WHMCS API to Check Domain Name Availability Who's it for This template is designed for web hosting companies, domain registrars, and IT service providers who want to automate their customer support with an AI-powered chatbot. It's perfect for businesses looking to provide 24/7 customer assistance for hosting plans, domain services, and technical support while maintaining a professional, human-like interaction experience. How it works / What it does This workflow creates an AI-powered customer support chatbot that provides comprehensive assistance for web hosting and domain services. The AI agent (named Matt) automatically: Receives customer queries through a webhook endpoint Captures customer information (name and email) at the start of each session Processes natural language requests using Google Gemini AI Accesses real-time information from multiple Google Sheets knowledge bases: Shared Hosting Plans (pricing, features, specifications) Domain Prices (registration, transfer, renewal costs) Hosting Features (technical capabilities and specifications) FAQs (common questions and answers) Payment Method Details (accepted payment options) Company Offerings (available products and services) Checks domain availability via WHMCS API integration Provides accurate, contextual responses based on the knowledge base Maintains conversation history with session-based memory Stores complete chat sessions in Google Sheets for analysis and follow-up The system ensures 100% accuracy by only providing information that exists in the knowledge base, eliminating guesswork and maintaining brand consistency. How to set up 1. Configure Google Sheets Knowledge Base Set up a Google Sheets document with the following sheets: Shared_Hosting_Plans: Hosting plan details, pricing, and specifications Domain_Prices: Domain registration and renewal pricing Hosting_Features: Technical features and capabilities FAQs: Frequently asked questions and answers Payment_Method_Details: Payment options and instructions Offerings: Available products and services Update the Google Sheets credentials in each tool node 2. Set up Google Gemini API Configure your Google Gemini API credentials in the Google Gemini Chat Model node Ensure you have sufficient API quota for your expected usage 3. Configure WHMCS API (Optional) Replace Your_WHMCS_Identifier with your actual WHMCS API identifier Replace Your_WHMCS_Secret with your actual WHMCS API secret Update https://your_whmcs_url.com/includes/api.php with your WHMCS domain This enables domain availability checking for customers 4. Set up Chat Storage Create a Google Sheet for storing chat inquiries Update the document ID and credentials in the Chat_Inquiries node This will automatically store all customer conversations for analysis 5. Deploy the Webhook The workflow creates a unique webhook endpoint for receiving customer queries Use this endpoint URL in your customer-facing application or chat interface Requirements Google Sheets account** with the knowledge base set up Google Gemini API account** with appropriate credentials n8n instance** (self-hosted or cloud) WHMCS installation** (optional, for domain availability checking) Web hosting or domain services business** How to customize the workflow Modify AI Agent Behavior Edit the system message in the AI Agent node to change the bot's personality and response style Adjust response length and tone to match your brand voice Customize the agent's name (currently "Matt") Enhance Knowledge Base Add more Google Sheets tools for additional information sources Include product catalogs, pricing tables, or technical documentation Add multi-language support for international customers Improve Customer Experience Add domain suggestion algorithms based on customer input Integrate with your existing customer database for personalized recommendations Add notification systems (email, Slack, SMS) for high-value inquiries Security Enhancements Implement API key rotation and monitoring Add request validation and sanitization Set up usage analytics and abuse prevention Key Features Real-time information access** from Google Sheets knowledge base AI-powered natural language processing** for customer queries Session-based memory** for contextual conversations Automatic domain availability checking** via WHMCS API Professional, customer-focused responses** that maintain brand standards Complete chat history storage** for analysis and follow-up Scalable webhook architecture** for high-volume usage Multi-tool integration** for comprehensive customer support Use Cases 24/7 customer support automation** for web hosting companies Sales team assistance** with real-time product information Customer self-service portals** with intelligent assistance Lead generation** through proactive service recommendations Customer retention** via improved support experience Support ticket reduction** by handling common queries automatically Chat Session Management The workflow automatically manages chat sessions with the following features: Unique Session IDs** for each customer conversation Automatic customer information capture** (name and email) Conversation history tracking** with chronological message storage Session persistence** across multiple interactions Data export** to Google Sheets for analysis and follow-up Example Customer Interactions The AI agent can handle various customer scenarios: Hosting Plan Inquiries**: Detailed information about shared hosting plans, features, and pricing Domain Services**: Domain availability checking, pricing, and registration guidance Technical Support**: Feature explanations, setup guidance, and troubleshooting Payment Information**: Accepted payment methods and transaction processes General Support**: Company information, service offerings, and FAQ responses This template transforms your web hosting business by providing instant, accurate customer support while maintaining the personal touch that customers expect from professional service providers. The AI agent becomes an extension of your support team, handling routine inquiries and allowing human agents to focus on complex technical issues.
by Easy8.ai
Automated Helpdesk Ticket Alerts to Microsoft Teams from Easy Redmine Intro/Overview This workflow automatically posts a Microsoft Teams message whenever a new helpdesk ticket is created in Easy Redmine. It’s perfect for IT teams who want real-time visibility into new issues without constantly checking ticket queues or inboxes. By integrating Easy Redmine with Teams, this setup ensures tickets are discussed and resolved faster, improving both response and resolution times. How it works Catch Easy Webhook – New Issue Created Triggers whenever Easy Redmine sends a webhook for a newly created ticket. Uses the webhook URL generated from Easy Redmine’s webhook settings. Get a new ticket by ID Fetches full ticket details (subject, priority, description) via the Easy Redmine API using the ticket ID from the webhook payload. Pick Description & Create URL to Issue Extracts the ticket description. Builds a direct link to the ticket in Easy Redmine for quick access. AI Agent – Description Processing Uses an AI model to summarize the ticket and suggest possible solutions based on the issue description. MS Teams Message to Support Channel Formats and sends the ticket details, priority, summary, and issue link into a designated Microsoft Teams channel. Uses the Teams message layout for clarity and quick scanning. How to Use Import the workflow into your n8n instance. Set up credentials: Easy Redmine API credentials with permission to read helpdesk tickets. Microsoft Teams credentials for posting messages to a channel. Configure Easy Redmine webhook To trigger on ticket creation events. Insert n8n webhook URL to your active Easy Redmine Webhook which can be created at https://easy-redmine-application.com/easy_web_hooks Adjust node settings: In the webhook node, use your Easy Redmine webhook URL. In the “Get a new ticket by ID” node, insert your API endpoint and authentication. In the Teams message node, select the correct Teams channel. Adjust timezone or scheduling if your team works across different time zones. Test the workflow by creating a sample ticket in Easy Redmine and confirming that it posts to Teams. Example Use Cases IT Helpdesk**: Notify the support team immediately when new issues are logged. Customer Support Teams**: Keep the entire team updated on urgent tickets in real time. Project Teams**: Ensure critical bug reports are shared instantly with the right stakeholders. Requirements Easy Redmine application Easy Redmine technical user for API calls with “read” permissions on tickets Microsoft Teams technical user for API calls with “post message” permissions Active n8n instance Customization Change the AI prompt to adjust how summaries and solutions are generated. Modify the Teams message format (e.g., bold priority, add emojis for urgency). Add filters so only high-priority or specific project tickets trigger notifications. Send alerts to multiple Teams channels based on ticket type or project. Workflow Improvement Suggestions: Rename nodes for clarity (e.g., “Fetch Ticket Details” instead of “get-one-issue”). Ensure no private ticket data is exposed beyond intended recipients. Add error handling for failed API calls to avoid missing ticket alerts.
by Khairul Muhtadin
WP Category Toolkit automates mapping content topics to your WordPress category IDs using your WordPress REST API and a GPT-5mini model. It replaces manual copy-paste and guesswork when assigning categories, speeds up publishing, and reduces tagging errors so your site stays organized and search friendly without you learning new dev magic (just a bit of prompt craft). 💡 Why Use WP Category Toolkit? Saves time:** Cuts hours of manual category lookup and mapping—deploy batches of posts in minutes, not coffee breaks. Stops messy tagging:** Eliminates inconsistent category assignments so your archive and SEO behave themselves. Measurable improvement:** Expect faster publish cycles and fewer category fixes (reduce manual mapping errors by ~90%). Competitive edge:** Uses an LLM to interpret topic intent, so your categories align with content meaning, not guesswork—like having a librarian who understands your jokes. ⚡ Perfect For Content Managers:** Keep large WordPress catalogs neat without the spreadsheet gymnastics. Agencies:** Onboard client sites faster by automating taxonomy mapping across projects. Developers & Automators:** Add an LLM-powered mapping step to content pipelines without building custom classifiers. 🔧 How It Works ⏱ Trigger: Manual start (kick it off when you’re ready to map categories). 📎 Process: Pull all site categories from your WordPress REST endpoint, aggregate the list, and feed the source content + current topic into the mapping step. 🤖 Smart Logic: A Chain LLM node (Category-Mapping) uses a small prompt to decide which WordPress category IDs match the content topic (GPT5-mini handles the reasoning). 💌 Output: A clean category ID mapping you can paste into your Body Post WordPress node or use to patch posts automatically. 🔐 Quick Setup Import JSON file to your n8n instances → n8n Import Link Add credentials: WordPress API credential & Azure OpenAI (GPT5-mini) credential or you can use usual open AI node Update: Replace the WP endpoint URLand any post-body endpoints you’ll write back to Test: Run with a sample post and copy the output mapping into your Body Post WordPress node to confirm IDs match expected categories 🧩 You'll Need Active n8n instances → n8n Partner Link WordPress REST API access and credentials (wp-json access) Azure OpenAI account with access to GPT5-mini Integrations: WordPress API node, Chain LLM / Azure OpenAI node (Optional) Staging WordPress site to test mappings safely 🛠️ Level Up Ideas Auto-write category descriptions based on mapped content using the LLM. (It’ll sound smarter than your coffee.) Patch posts automatically after mapping so mapping becomes truly zero-touch. Add fallback heuristics: if the LLM is uncertain, route to a Slack/Microsoft Teams approval step. Made by: Khairul Tags: WordPress, Categories, AI, n8n Category: WordPress Need custom work? Contact me
by Rosh Ragel
Automatically Upload Expenses to QuickBooks from Google Sheets What It Does This n8n workflow template automates the process of uploading categorized expenses from Google Sheets into QuickBooks Online. It leverages your Google Sheets data to create expense entries in QuickBooks with minimal manual effort, streamlining the accounting process. Prerequisites QuickBooks Online Credential**: Set up your QuickBooks Online connection in n8n for expense creation. Google Sheets Credential**: Set up your Google Sheets connection in n8n to read and write data. How It Works Refresh Google Sheets Data: The workflow will first refresh the list of vendors and chart of accounts from your Google Sheets template. Import Bank Transactions: Open the provided Google Sheets template and copy-paste your transactions from your online banking CSV file. Categorize Transactions: Quickly categorize the transactions in Google Sheets, or assign this task to a team member. Run the Workflow: Once the transactions are categorized, run the workflow again, and each expense will be created automatically in QuickBooks Online. Example Use Cases Small Business Owners**: Automatically track and upload monthly expenses to QuickBooks Online without manually entering data. Accountants**: Automate the transfer of bank transactions to QuickBooks, streamlining the financial process. Bookkeepers**: Quickly categorize and upload business expenses to QuickBooks with minimal effort. Setup Instructions Connect Your Google Sheets and QuickBooks Credentials: In n8n, connect your Google Sheets and QuickBooks accounts. Follow the credential setup instructions for both services. Setup the Google Sheets Node: Link the specific Google Sheet that contains your expense data. Make sure the sheet includes the correct columns for transactions, vendors, and accounts. Setup the QuickBooks Node: Configure the QuickBooks Online node to create expense entries in QuickBooks from the data in your Google Sheets. Setup the HTTP Node for API Calls: Use the HTTP node to make custom API calls to QuickBooks Configure the QuickBooks Realm ID: Obtain the QuickBooks Realm ID from your QuickBooks Online Developer account to use for custom API calls. This ensures the workflow targets the correct QuickBooks instance. How to Use Import Transactions: Copy and paste your bank transactions from the CSV into the provided Google Sheets template. Categorize Transactions: Manually categorize the transactions in the sheet, or delegate this task to another person to ensure they’re correctly tagged (e.g., Utilities, Office Supplies, Travel). Run the Workflow: Execute the workflow to automatically upload the categorized expenses into QuickBooks. Verify in QuickBooks: After the workflow runs, log into QuickBooks Online to confirm the expenses have been created and categorized correctly. Free Google Sheets Template To get started quickly, download my free Google Sheets template that includes pre-configured sheets for bank transactions, vendors, and chart of accounts. This template will make it easier for you to import and categorize your expenses before running the n8n workflow. Download the Free Google Sheets Template Customization Options Category Mapping**: Customize how categories in Google Sheets are mapped to QuickBooks expense types. Additional API Calls**: Add custom API calls if you need extra functionality, such as creating custom reports or syncing additional data. Notifications**: Configure email or Slack notifications to alert you when the expenses have been successfully uploaded. Why It's Useful Time-Saving**: Automatically upload and categorize expenses in QuickBooks without needing to enter them manually. Error Reduction**: Minimize human error by automating the process of uploading and categorizing transactions. Efficiency**: Connects Google Sheets to QuickBooks, making it easy to manage expenses in one place without having to toggle between multiple apps. Accuracy**: Syncs data between Google Sheets and QuickBooks in a structured, automated way for consistent and reliable financial reporting. Flexibility**: Allow external users or lower-permission employees to categorize financial transactions without providing direct access to QBO
by Robert Breen
Send VAPI voice requests into n8n with memory and OpenAI for conversational automation This template shows how to capture voice interactions from VAPI (Voice AI Platform), send them into n8n via a webhook, process them with OpenAI, and maintain context with memory. The result is a conversational AI agent that responds back to VAPI with short, business-focused answers. ✅ What this template does Listens for POST requests from VAPI containing the session ID and user query Extracts session ID and query for consistent conversation context Uses OpenAI (GPT-4.1-mini) to generate conversational replies Adds Memory Buffer Window so each VAPI session maintains history Returns results to VAPI in the correct JSON response format 👤 Who’s it for Developers and consultants building voice-driven assistants Businesses wanting to connect VAPI calls into automation workflows Anyone who needs a scalable voice → AI → automation pipeline ⚙️ How it works Webhook node catches incoming VAPI requests Set node extracts session_id and user_query from the request body OpenAI Agent generates short, conversational replies with your business context Memory node keeps conversation history across turns Respond to Webhook sends results back to VAPI in the required JSON schema 🔧 Setup instructions Step 1: Create Function Tool in VAPI In your VAPI dashboard, create a new Function Tool Name: send_to_n8n Description: Send user query and session data to n8n workflow Parameters: session_id (string, required) – Unique session identifier user_query (string, required) – The user’s question Server URL: https://your-n8n-instance.com/webhook/vapi-endpoint Step 2: Configure Webhook in n8n Add a Webhook node Set HTTP method to POST Path: /webhook/vapi-endpoint Save, activate, and copy the webhook URL Use this URL in your VAPI Function Tool configuration Step 3: Create VAPI Assistant In VAPI, create a new Assistant Add the send_to_n8n Function Tool Configure the assistant to call this tool on user requests Test by making a voice query — you should see n8n respond 📦 Requirements An OpenAI API key stored in n8n credentials A VAPI account with access to Function Tools A self-hosted or cloud n8n instance with webhook access 🎛 Customization Update the system prompt in the OpenAI Agent node to reflect your brand’s voice Swap GPT-4.1-mini for another OpenAI model if you need longer or cheaper responses Extend the workflow by connecting to CRMs, Slack, or databases 📬 Contact Need help customizing this (e.g., filtering by campaign, connecting to CRMs, or formatting reports)? 📧 rbreen@ynteractive.com 🔗 https://www.linkedin.com/in/robert-breen-29429625/ 🌐 https://ynteractive.com
by Cong Nguyen
📄 What this workflow does This workflow turns your n8n into an automated product-video generator powered by Google Sheets. When a new row is added with status = run, it: Downloads the product image from Google Drive. Converts the image to base64 and sends it to Gemini, which creates a branded ad-style variant. Saves the generated image back into a designated Google Drive folder. Sends the image to FAL (image-to-video) to generate a short promotional video clip. Polls FAL’s response_url until the video is ready. Uploads the video to Google Drive (videos folder). Updates the original Google Sheet row with the video link and sets status = finished. Handles API latency via wait/polling and logs failures into the sheet if needed. 👤 Who is this for Marketing teams automating creative asset production. E-commerce businesses needing quick product promo videos. Agencies creating branded ad content at scale. ✅ Requirements An n8n instance. A Google Sheet with at least these columns: STT, link_image, note, status, link_video. Google Sheets & Google Drive OAuth2 credentials connected in n8n. Gemini API key (for ad-style image generation). FAL API key (for image-to-video). ⚙️ How to set up Import the provided workflow JSON into n8n. Connect Google Sheets credentials and point to your sheet (documentId + gid). Connect Google Drive credentials and update folder IDs in the two Upload File nodes (images/videos). Add Gemini and FAL API keys in the respective HTTP Request headers (via Credentials). Test: add a row with link_image, note, and status = run. The workflow should generate and save a video, then update the sheet with the link. 🔁 How it works Trigger → Google Sheets Trigger fires on rowAdded where status = run. Pre-processing → Download the product image from Google Drive → extract base64. LLM Image Generation → Gemini generates an ad-style variant based on note. Storage → Upload the generated image into the “images” Drive folder. Video Creation → FAL converts the branded image into a short video. Polling → Wait node + HTTP Request check job status until video is completed. Write-back → Upload final video into the “videos” Drive folder, update the sheet with the link_video, and set status = finished.