36 templates found
Category:
Author:
Sort:

AI voice chatbot with ElevenLabs & OpenAI for customer service and restaurants

The "Voice RAG Chatbot with ElevenLabs and OpenAI" workflow in n8n is designed to create an interactive voice-based chatbot system that leverages both text and voice inputs for providing information. Ideal for shops, commercial activities and restaurants How it works: Here's how it operates: Webhook Activation: The process begins when a user interacts with the voice agent set up on ElevenLabs, triggering a webhook in n8n. This webhook sends a question from the user to the AI Agent node. AI Agent Processing: Upon receiving the query, the AI Agent node processes the input using predefined prompts and tools. It extracts relevant information from the knowledge base stored within the Qdrant vector database. Knowledge Base Retrieval: The Vector Store Tool node interfaces with the Qdrant Vector Store to retrieve pertinent documents or data segments matching the user’s query. Text Generation: Using the retrieved information, the OpenAI Chat Model generates a coherent response tailored to the user’s question. Response Delivery: The generated response is sent back through another webhook to ElevenLabs, where it is converted into speech and delivered audibly to the user. Continuous Interaction: For ongoing conversations, the Window Buffer Memory ensures context retention by maintaining a history of interactions, enhancing the conversational flow. Set up steps: To configure this workflow effectively, follow these detailed setup instructions: ElevenLabs Agent Creation: Create a FREE account on ElevenLabs Begin by creating an agent on ElevenLabs (e.g., named 'test_n8n'). Customize the first message and define the system prompt specific to your use case, such as portraying a character like a waiter at "Pizzeria da Michele". Add a Webhook tool labeled 'testchatbotelevenlabs' configured to receive questions via POST requests. Qdrant Collection Initialization: Utilize the HTTP Request nodes ('Create collection' and 'Refresh collection') to initialize and clear existing collections in Qdrant. Ensure you update placeholders QDRANTURL and COLLECTION accordingly. Document Vectorization: Use Google Drive integration to fetch documents from a designated folder. These documents are then downloaded and processed for embedding. Employ the Embeddings OpenAI node to generate embeddings for the downloaded files before storing them into Qdrant via the Qdrant Vector Store node. AI Agent Configuration: Define the system prompt for the AI Agent node which guides its behavior and responses based on the nature of queries expected (e.g., product details, troubleshooting tips). Link necessary models and tools including OpenAI language models and memory buffers to enhance interaction quality. Testing Workflow: Execute test runs of the entire workflow by clicking 'Test workflow' in n8n alongside initiating tests on the ElevenLabs side to confirm all components interact seamlessly. Monitor logs and outputs closely during testing phases to ensure accurate data flow between systems. Integration with Website: Finally, integrate the chatbot widget onto your business website replacing placeholder AGENT_ID with the actual identifier created earlier on ElevenLabs. By adhering to these comprehensive guidelines, users can successfully deploy a sophisticated voice-driven chatbot capable of delivering precise answers utilizing advanced retrieval-augmented generation techniques powered by OpenAI and ElevenLabs technologies. ---- Need help customizing? Contact me for consulting and support or add me on Linkedin.

DavideBy Davide
65772

Working with Excel spreadsheet files (xls & xlsx)

This workflow will help guide you through obtaining a spreadsheet file, reading it, making a change then saving it to local or cloud storage.

n8n TeamBy n8n Team
37259

Handling appointment leads and follow-up with Twilio, Cal.com and AI

This n8n workflow builds an appointment scheduling AI agent which can Take enquiries from prospective customers and help them book an appointment by checking appointment availability Where no appointment is booked, the Agent is able to send follow-up messages to re-engage leads. After an appointment is booked, the agent is able reschedule or even cancel the booking for the user without human intervention. For small outfits, this workflow could contribute the necessary "man-power" required to increase business sales. The sample Airtable can be found here: https://airtable.com/appO2nHiT9XPuGrjN/shroSFT2yjf87XAox 2024-10-22 Updated to Cal.com API v2. How it works The customer sends an enquiry via SMS to trigger our workflow. For this trigger, we'll use a Twilio webhook. The prospective or existing customer's number is logged in an Airtable Base which we'll be using to track all our enquries. Next, the message is sent to our AI Agent who can reply to the user and decide if an appointment booking can be made. The reply is made via SMS using Twilio. A scheduled trigger which runs every day, checks our chat logs for a list of prospective customers who have yet to book an appointment but still show interest. This list is sent to our AI Agent to formulate a personalised follow-up message to each lead and ask them if they want to continue with the booking. The follow-up interaction is logged so as to not to send too many messages to the customer. Requirements A Twilio account to receive customer messages. An Airtable account and Base to use as our datastore for enquiries. Cal.com account to use as our scheduling service. OpenAI account for our AI model. Customising this workflow Not using Airtable? Swap this out for your CRM of choice such as hubspot or your own service. Not using Cal.com? Swap this out for API-enabled services such as Acuity Scheduling or your own service.

JimleukBy Jimleuk
27828

Automated video creation using Google Veo3 and n8n workflow

Who is this for? Content creators, social media managers, digital marketers, and businesses looking to automate video production without expensive equipment or technical expertise. What problem is this workflow solving? Traditional video creation requires cameras, editing software, voice recording equipment, and hours of post-production work. This workflow eliminates all these barriers by automatically generating professional videos with audio using just text prompts. What this workflow does This automated workflow takes video ideas from Google Sheets, generates optimized prompts using AI, creates videos through Google's V3 model via Fal AI, monitors the generation progress, and saves the final video URLs back to your spreadsheet for easy access and management. Setup Sign up for Fal AI account and obtain API key Create Google Sheet with video ideas and status columns Configure n8n with required credentials (Google Sheets, Fal AI API) Import the workflow template Set up authentication for all connected services Test with sample video idea How to customize this workflow to your needs Modify the AI prompts to match your brand voice, adjust video styles and camera movements, change polling intervals for video generation status, customize Google Sheet column mappings, and add additional processing steps like thumbnail generation or social media posting.

Lakshit UkaniBy Lakshit Ukani
11315

Generate PDF invoices with CustomJS API

n8n Workflow: Invoice PDF Generator This n8n workflow captures invoice data and generates a PDF invoice, ready to be sent or saved. It uses a webhook to trigger the process, preprocesses the invoice data, and converts it to a PDF using HTML and custom styling. @custom-js/n8n-nodes-pdf-toolkit Features: Webhook Trigger: Receives incoming data, including invoice details. Preprocessing: Transforms the invoice data into HTML format. HTML to PDF Conversion: Converts the preprocessed HTML into a styled PDF document. Response: Sends the generated PDF back to the webhook response. Notice Community nodes can only be installed on self-hosted instances of n8n. Requirements Self-hosted n8n instance A CustomJS API key for website screenshots. Invoice data for PDF generation Workflow Steps: Webhook Trigger: Accepts incoming data (e.g., invoice number, recipient details, itemized list). This data is passed to the next node for processing. Set Data Node: Configures initial values for the invoice, including the recipient, sender, invoice number, and the items on the invoice. The invoice details include information like description, unit price, and quantity. Preprocess Node: Processes the raw data to format it correctly for HTML. This includes splitting addresses and converting the items into an HTML table format. HTML to PDF Conversion: Converts the generated HTML into a PDF document. The HTML includes a header, a detailed invoice table, and a footer with contact information. Respond to Webhook: Returns the generated PDF as a response to the initial webhook request. --- Setup Guide: Configure CustomJS API Sign up at CustomJS. Retrieve your API key from the profile page. Add your API key as n8n credentials. Design Workflow Create a Webhook: Set up a webhook to trigger the workflow when invoice data is received. Prepare Data: Ensure the incoming request contains fields like "Invoice No", "Bill To", "From", and "Details" (list of items with price and quantity). Customize the HTML: The HTML template for the invoice includes custom styling to give the invoice a professional look. Convert to PDF: The HTML to PDF node is configured with the data generated from the preprocessing step to convert the invoice HTML to a PDF format. --- Example Invoice Data: json { "Invoice No": "1", "Bill To": "John Doe\n1234 Elm St, Apt 567\nCity, Country, 12345", "From": "ABC Corporation\n789 Business Ave\nCity, Country, 67890", "Details": [ { "description": "Web Hosting", "price": 150, "qty": 2 }, { "description": "Domain", "price": 15, "qty": 5 } ], "Email": "support@mycompany.com" } Result PDF File

CustomJSBy CustomJS
7567

Message buffer system with Redis for efficient processing

🚀 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: js 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: { contextid: $json.contextid, message: msg, waitSeconds } }]; Buffer Message in Redis Buffer messages: LPUSH bufferin:{{$json.contextid}} with payload {text, timestamp}. Set buffer\count increment: INCR buffercount:{{$json.context_id}} with TTL {{$json.waitSeconds + 60}}. Set last\seen: record lastseen:{{$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): js 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: { contextid: j.contextid, message } }]; Cleanup & Respond Delete Redis keys: bufferin, buffercount, waitingreply, lastseen (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

Edisson GarciaBy Edisson Garcia
2050

Automated YouTube subscription notifications with RSS and email

Who is this template for? You are in the bad habit of always checking your feed to see if there are new videos? This workflow will help you get rid of this habit by delivering an email notification for each new video posted from the channels you are subscribed to. No need to check your feed again: no email = no new video. Example email How it works Every hour (by default), we: Fetch all your YouTube subscriptions from the YouTube Data v3 API. Get a list of the latest videos of each channel through RSS (we don't use YouTube's API for this step as it would put us over the daily quota). Send you a simple yet beautiful email for each new video that was published since the last run of the workflow. To go to the video, simply click on the thumbnail. Caveats Because of the way this workflow is implemented, if your n8n instance stops, you will not get emails for the videos you missed when your instance is back online. The situation could be improved if n8n gave us an easy way to access the last successful execution's timestamp. Set up instructions Complete the Set up credentials step when you first open the workflow. You'll need YouTube OAuth2 API and SMTP credentials. In the Send an email for each new video step, set the email address from which the email will be sent (an email address that your SMTP credentials allow sending from) and the email address to which you are going to send the email to (can be the same). Optional steps From the Schedule Trigger step, you can change the check frequency (default: every hour). If there are channels that you do not want notifications from, you can add their channel ID to the list in the Filter out channels step. To get a channel's ID, go to its main page, click on the description, then "Share channel" and finally "Copy channel ID". By default, shorts are excluded. But if you want them, simply remove the Filter out shorts step from the workflow. Template was created in n8n v1.84.0

SweenuBy Sweenu
1965

Convert PPTX to PDF using ConvertAPI

Who is this for? For developers and organizations that need to convert PPTX files to PDF. What problem is this workflow solving? The file format conversion problem. What this workflow does Downloads the PPTX file from the web. Converts the PPTX file to PDF. Stores the PDF file in the local file system. How to customize this workflow to your needs Open the HTTP Request node. Adjust the URL parameter (all endpoints can be found here). Use your API Token for authentication. Pass the token in the Authorization header as a Bearer token. You can manage your API Tokens in the User panel → Authentication. Optionally, additional Body Parameters can be added for the converter.

ConvertAPIBy ConvertAPI
1749

WordPress-to-Pipedrive integration: Automating contact & lead management

How it Works: Capture Contact Requests: This template efficiently handles contact requests coming through a WordPress website using the Contact Form 7 (CF7) plugin with a webhook extension. Contact Management: It automatically creates or updates contacts in Pipedrive upon receiving a new request. Lead Management: Each contact request is securely stored in the lead inbox of Pipedrive, ensuring no opportunity is missed. Task Creation: For each new contact or update, the workflow triggers the creation of a related task, streamlining follow-up actions. Note Attachment: A comprehensive note containing all details from the contact request is attached to the corresponding lead, ensuring that all information is readily accessible. Step-by-Step Guide: Estimated Setup Time: The setup process is straightforward and can be completed quickly. Specific time may vary depending on your familiarity with n8n and the systems involved. Detailed setup instructions are provided within the workflow via sticky notes. These notes offer in-depth guidance for configuring each component of the template to suit your specific needs.

kapioBy kapio
1701

Automated Instagram reels posting using Google Drive, Cloudinary & Sheets

Who is this for? This workflow is ideal for social media managers, content creators, marketing teams, and automation enthusiasts looking to streamline their Instagram Reels posting from Google Drive using n8n, Google Sheets, and Cloudinary. What problem is this workflow solving? / Use case Manually downloading video files, uploading to third-party platforms, and posting to Instagram Reels is time-consuming. This workflow automates the whole process, ensuring timely, consistent content delivery and reducing manual errors. What this workflow does Automatically fetches scheduled Reel content from Google Sheets (Sample link) Downloads video files from Google Drive folders Uploads videos to Cloudinary for hosting Posts the videos as Instagram Reels with custom captions Updates the Google Sheet to mark content as posted Setup Prepare a Google Drive folder set to public sharing for your videos Create a Cloudinary account and configure upload presets Connect an Instagram Business account (linked to a Facebook Page) Set up a Google Sheet with video post details: Video Name, Type, Caption, Status Configure the workflow schedule in n8n How to customize this workflow to your needs Adjust the schedule for desired posting frequency Add fields to your sheet for custom tags or content variations Change the Cloudinary or Instagram settings for different media types Integrate additional steps for error handling or approval workflows

HenryBy Henry
1634

Daily Email Digest with AI Summarization using Gmail, OpenRouter and LangChain

📧 Morning Mail Summary Ai Agent Simplify your mornings with this automated email summary workflow in n8n, designed for teams and individuals who want a quick, actionable snapshot of their inbox—every day, at a glance. 📌 Features Fully Automated: Triggers daily at 8 AM IST Targeted Extraction: Fetches messages from specific senders with dynamic date filtering Structured Data Aggregation: Pulls key fields (sender, recipients, snippet) AI-Powered Summarization: Uses LangChain + OpenRouter to generate: Insightful summaries Highlighted issues Assigned action items Memory-Enhanced Context: Maintains continuity across days Stylish HTML Email Output: Responsive design with: Summary section Action items Branded footer Team-Ready Sharing: Auto-distributes to team with CC support 🛠️ How It Works Trigger: Daily schedule in n8n Fetch: Retrieves last 24h emails from target sender Organize: Aggregates email metadata Summarize: AI agent produces structured report: Key updates Critical issues Actionable tasks Send: Emails digest to team 🎯 Ideal For Project managers needing stakeholder briefings Customer success teams tracking communications Leadership staying informed efficiently Anyone streamlining email review 📦 Included Resources Complete n8n workflow JSON (6 nodes) Prompt template for structured summarization (Summary, Issues, Actions, Follow‑Ups). -Styled HTML email template, with responsive design and branding sections. 🆓 Get Started Import JSON into n8n Configure: Gmail / OpenRouter credentials Recipient lists Custom prompts Modify freely for your use case --- ⭐ Benefits ⏳ Time saved: Skip inbox digging 🔍 Focus: See only what matters ✨ Clarity: Structured tasks & deadlines 🔄 Consistency: Daily alignment for teams

Roshan RamaniBy Roshan Ramani
1451

Automate email discovery for companies with Anymail Finder, Google Sheets & Telegram alerts

This automation retrieves company information from a Google Sheet, uses the Anymail Finder API to discover email addresses associated with each company, and then writes the results (including the email status) back into the same Google Sheet and send alert on Telegram. --- Key Advantages ✅ Automated Email Discovery: No need for manual lookups—emails are found via the Anymail Finder API in bulk. 🔁 Seamless Google Sheets Integration: Works directly with Google Sheets for input and output, allowing easy data management. 🧠 Smart Filtering: Automatically classifies emails as valid, risky, or not found for quality control. ⚙️ Reusable & Scalable: Can be run anytime with a manual trigger or expanded to handle thousands of records with minimal setup. 📊 Real-Time Updates: Results are immediately reflected in your spreadsheet, streamlining lead generation and outreach workflows. 💸 Cost-Efficient: Uses a free Anymail Finder trial or API key for testing and validation before scaling up. --- How it Works This automated workflow finds email addresses for a list of companies using the Anymail Finder API and updates a Google Sheets document with the results. Trigger & Data Retrieval: The workflow starts manually. It first connects to a specified Google Sheet and retrieves a list of company leads that are marked for processing (where the "PROCESSING" column is empty). Batch Processing & API Call: The list of leads is then split into batches (typically one item at a time) to be processed individually. For each company, the workflow sends the "Company Name" and "Website" to the Anymail Finder API to search for a relevant email address. Result Classification: The API's response, which includes the found email and its status (e.g., valid, risky), is passed to a Switch node. This node routes the data down different paths based on the email status. Sheet Update: Depending on the status: Valid/Risky Email: The workflow updates the original Google Sheet row. It marks the "PROCESSING" column with an "x" and writes the found email address into the "EMAIL" column. No Email Found: The workflow also updates the sheet, marking "PROCESSING" with an "x" and leaving the "EMAIL" column empty to indicate no email was found. Loop Completion: After processing each item, the workflow loops back to process the next lead in the batch until all companies have been handled. --- Set up Steps To use this workflow, you need to complete the following configuration steps: Duplicate the Template Sheet: Clone the provided Google Sheets template to your own Google Drive. This sheet contains the necessary columns ("COMPANY NAME", "WEBSITE", "EMAIL", "PROCESSING") for the workflow to function. Get an API Key: Sign up for a free trial at Anymail Finder to obtain your personal API key. Configure Credentials in n8n: Google Sheets: In both the "Get Leads" and update nodes, set up the Google Sheets OAuth2 credential to grant n8n access to your copied spreadsheet. Anymail Finder: In the "Email finder" HTTP Request node, create a new credential of type "HTTP Header Auth". Name it "Anymail Finder". In the "Name" field, enter Authorization. In the "Value" field, paste your Anymail Finder API key. Update Sheet ID in Nodes: In the n8n workflow, update all Google Sheets nodes ("Get Leads", "Email found", "Email not found") with the Document ID of your cloned Google Sheet. The Sheet ID can be found in your sheet's URL: https://docs.google.com/spreadsheets/d/[YOURSHEETID_HERE]/edit.... Execute: Once configured, add your list of companies and their websites to the sheet and run the workflow using the "Manual Trigger" node. --- Need help customizing? Contact me for consulting and support or add me on Linkedin.

DavideBy Davide
1446