by George Zargaryan
AI Real Estate Agent with OpenRouter and SrpAPI to talk with property objects from propertyfinder.ae This n8n template demonstrates a simple AI Agent that can: Scrape information from a provided propertyfinder.ae listing link. Answer questions about a specific property using the scraped information. Use SerpAPI to find details that are missing from the scraped data. Answer general real-estate questions using SerpAPI. Use Case This workflow serves as a starting point for building complex AI assistants for real estate or other domains. See the demo video Potential Enhancements Expand Knowledge:** Augment the workflow with your own knowledge base using a vector database (RAG approach). Add More Sources:** Adapt the scraper to support other real estate websites. Optimize Speed:** Add a cache for scraped data to reduce response latency. Improve Context Handling:** Implement reliable persistence to track the current listing instead of iterating through conversation history. Customize Prompts:** Write more tailored prompts for your specific needs (the current one is for demonstration only). Integrate Channels:** Connect the workflow to communication channels like Instagram, Telegram, or WhatsApp. How It Works The workflow is triggered by a "When chat message received" node for simple demonstration. The Chat Memory Manager node extracts the last 30 messages for the current session. A code node finds the property link, first by checking the most recent user message and then by searching the conversation history. If a link is found, an HTTP Request node scrapes the HTML content from the listing page. The Summarize code node parses the HTML, retrieves key information, and passes it to the AI Agent as a temporary knowledge base. The final AI Agent node answers user queries using the scraped knowledge base and falls back to the SerpAPI tool when information is missing. How to Use You can test this workflow directly in n8n or integrate it into any social media channel or your website. The AI Agent node is configured to use OpenRouter. Add your OpenRouter credentials, or replace the node with your preferred LLM provider. Add your SerpAPI key to the SerpAPI tool within the AI Agent node. Requirements An API key for OpenRouter (or credentials for your preferred LLM provider). A SerpAPI key. You can get one from their website; a free plan is available for testing. Need Help Building Something More? Contact me on: Telegram:** @ninesfork LinkedIn:** George Zargaryan Happy Hacking! 🚀
by johappel
Main Workflow “AI Nextcloud” Entry point**: A public chat-trigger greets the user; every incoming chat message starts the flow. AI agent**: A LangChain agent (“AI Nextcloud”) uses the configured OpenAI model plus short-term memory to continue the dialogue in context. Purpose**: Answers questions about files stored in a Nextcloud folder. The user simply includes the folder path in their question. Tool integration**: Calls the sub-workflow “Nextcloud Tool” whenever it needs to read files and pass their text back to the AI. Sub-Workflow “Nextcloud Tool” Invocation: Triggered by other workflows with the input parameter path (folder path). File listing: Retrieves every file in the specified folder via the Nextcloud API. Filter: Allows only readable formats (PDF, Markdown, DOCX). Download & text extraction PDF → Text via Extract From File Markdown → Raw text DOCX → Text via community node word2text Aggregation: Combines all extracted text into a single output field and returns it. > Outcome: Each call yields the plain content of every supported file in a Nextcloud folder—providing rich context for the AI agent to answer user questions accurately.
by Harshil Agrawal
This workflow demonstrates how to use the Netlify Trigger node to capture form submissions and add it Airtable. You can reuse the workflow to add the data to another similar database by replacing the Airtable node with the corresponding node. Netlify Trigger node: This node triggers the workflow when a new form is submitted. Select your site from the Site Name/ID dropdown list and the form from the Form ID dropdown list. Set node: This node extract the required data from the Netlify Trigger node. In this example, we only want to add the Name, Email, and Role of the user. Airtable node: This node appends the data to Airtable. If you want the data to Google Sheets or a database, replace this node with the corresponding node.
by Felix
How It Works This workflow automatically detects duplicate invoices from Gmail. Incoming PDF attachments are scanned by the easybits AI Extractor, then checked against the Master Finance File in Google Sheets. Duplicates trigger a Slack alert – new invoices get added to the sheet. Flow overview: Gmail picks up new emails labeled as invoices (polls every minute) The PDF attachment is extracted and converted to base64 easybits Extractor reads the document and returns structured data The invoice number is compared against all existing entries in Google Sheets If duplicate → Slack DM alert to felix.sattler If new → Invoice is appended to the Master Finance File Step-by-Step Setup Guide 1. Set Up Your easybits Extractor Pipeline Before connecting this workflow, you need a configured extraction pipeline on easybits. Go to extractor.easybits.tech and click "Create a Pipeline". Fill in the Pipeline Name and Description – describe the type of document you're processing (e.g. "Invoice / Receipt"). Upload a sample receipt or invoice as your reference document. Click "Map Fields" and define the following fields to extract: invoice_number (String) – Unique identifier of the invoice, e.g. IN-2026-0022514 total_amount (Number) – Total amount due on the invoice, e.g. 149.99 Click "Save & Test Pipeline" in the Test tab to verify the extraction works correctly. Go to Pipeline Details → View Pipeline and copy your Pipeline ID and API Key. 2. Connect the easybits Node in n8n Open the HTTP Request node in the workflow. Replace the Pipeline ID in the URL with your own. Set up a Bearer Auth credential with your API Key. > The node sends the PDF to your pipeline and receives the extracted fields back under json.data. 3. Connect Gmail Open the Gmail Trigger node. Connect your Gmail account via OAuth2. Create a label called invoice in Gmail (or use your preferred label). Update the label filter in the node to match your label. Make sure Download Attachments is enabled under Options. > The trigger polls every minute for new emails matching the label. 4. Connect Google Sheets Open the Check Google Sheets and Add to Master List nodes. Connect your Google Sheets account via OAuth2. Select your target spreadsheet (Master Finance File) and sheet. Make sure your sheet has at least these columns: Invoice Number and Final Amount (EUR). 5. Connect Slack Go to api.slack.com/apps and create a new Slack App. Under OAuth & Permissions, add these Bot Token Scopes: chat:write, chat:write.public, channels:read, groups:read, users:read, users.profile:read. Install the app to your workspace via Settings → Install App. Copy the Bot User OAuth Token and add it as a Slack API credential in n8n. Open the Slack: Alert Finance node and select the user or channel to receive duplicate alerts. 6. Activate the Workflow Click the "Active" toggle in the top-right corner of n8n to enable the workflow. Label an email with an invoice attachment as invoice in Gmail to test it end to end. Check your Google Sheet – a new row with the invoice number and amount should appear. Send the same invoice again – you should receive a Slack DM alerting you to the duplicate.
by Didac Fernandez
🤖 Autonomous Email Assistant - AI-Powered Inbox Management > Transform Your Email Workflow with Intelligent Automation This advanced n8n workflow creates a fully autonomous email assistant that processes incoming emails through AI-powered classification, generates contextually-aware responses in your personal brand voice, and automatically organizes your inbox. Perfect for: Professionals managing high email volumes who want to maintain response quality while saving hours each week. 🎯 What This Workflow Does The Autonomous Email Assistant monitors your Outlook inbox and intelligently processes every incoming email through a sophisticated multi-stage pipeline: 🏷️ Smart Classification - Automatically categorizes emails into 7 distinct types (Commercial/Spam, Internal, Meeting, Newsletter, Notifications, Urgent, Other) ✍️ AI Response Generation - Creates draft responses tailored to the email type, maintaining your unique communication style 📅 Meeting Automation - Checks your calendar availability and handles meeting requests automatically ⚡ Priority Handling - Sends Slack notifications for urgent emails requiring immediate attention 📂 Inbox Organization - Files processed emails into categorized folders with AI tagging 📊 Comprehensive Logging - Records all processed emails and responses in Excel for audit trails ✨ Key Features 🔍 Dual Classification System Primary LLM classifier for fast categorization Secondary text classifier for validation 7 predefined categories with smart routing logic 🎨 Brand Voice Integration Maintains consistent communication style across all responses Customizable writing patterns and key phrases Professional tone with configurable formality levels 📆 Intelligent Meeting Handler Calendar integration with availability checking Automatic event creation for confirmed meetings Suggests alternative times when unavailable Maintains 15-minute buffers between meetings Respects working hours (8:30 AM - 5:00 PM) 👤 Human-in-the-Loop for Critical Emails Slack notifications for urgent messages Approval workflow with feedback incorporation Draft responses for review before sending 📥 Complete Inbox Management Auto-marking as read AI category tagging for tracking Organized folder archiving by email type Excel logging for analytics and compliance 🛠️ Workflow Requirements 🔐 Required Credentials Microsoft Outlook OAuth2** - Email access, calendar permissions Microsoft Excel 365** - For logging workbook OpenRouter API** - GPT-5-mini model recommended Slack OAuth2** - Optional, for urgent notifications 💻 Technical Stack | Component | Technology | |-----------|-----------| | AI Model | OpenRouter GPT-5-mini | | Email Provider | Microsoft Outlook | | Data Storage | Microsoft Excel 365 | | Notifications | Slack | | Polling Interval | Every minute (configurable) | ⚙️ How It Works Stage 1️⃣: Email Ingestion Microsoft Outlook Trigger monitors inbox → Information Extractor pulls sender details Stage 2️⃣: Classification Dual AI classifiers determine email category → Routes to appropriate handler Stage 3️⃣: Response Generation General emails** → emailReplier Meeting requests** → AI Agent with calendar tools Urgent emails** → urgentReplier + Slack notification Others** → Context-aware handler Stage 4️⃣: Brand Voice Application All responses pass through brand voice nodes for style consistency Stage 5️⃣: Organization ✅ Mark as read 🏷️ Apply AI category tag 📁 Archive to appropriate folder 📝 Log to Excel 🎛️ Customization Options 📋 Adjust Classification Categories Modify the Virtual Postman categories to match your specific needs. Add industry-specific classifications or merge existing ones. ✏️ Personalize Brand Voice The embedded brand voice prompts can be completely customized: Update key phrases and sign-offs Adjust sentence length preferences Modify formality and tone Add company-specific terminology ⚙️ Configure Response Behaviors Change meeting scheduling preferences Update working hours Modify urgent email criteria Adjust buffer times between meetings 🔔 Notification Preferences Switch Slack to email notifications Add multiple notification channels Customize urgency thresholds 💼 Use Cases | Role | Benefits | |------|----------| | 🎯 Busy Executives | Handle routine correspondence while maintaining personal touch | | 🎧 Customer Support | First-line response generation with consistent brand voice | | 💰 Sales Teams | Automated meeting scheduling and follow-up management | | 📊 Project Managers | Internal communication routing and priority handling | | 💡 Consultants | Client communication management across multiple projects | 🚀 Setup Guide Import Workflow - Import the JSON into your n8n instance Configure Credentials - Add all four required OAuth2 connections Create Excel Workbook - Set up "Email Automator" workbook with specified columns Create Outlook Folders - Add the 7 category folders to your Outlook Customize Brand Voice - Update the brand voice prompts with your writing style Test Classification - Send test emails to verify category routing Activate Workflow - Enable the workflow to start processing ⚠️ Important Notes ⚡ All urgent emails require human approval before sending 📝 Most responses are saved as drafts for review 📊 Comprehensive Excel logging enables quality assurance 🏷️ AI tagging allows easy identification of automated processing 📅 Calendar integration respects existing commitments 🔒 Data Privacy & Security This workflow processes emails locally within your n8n instance. Email content is sent to OpenRouter for AI processing. Review OpenRouter's data policies and ensure compliance with your organization's data handling requirements. 📜 Version History v1.0 - Initial Release 7-category classification system Brand voice integration Meeting automation Excel logging Slack notifications 💬 Support & Community For questions, customization help, or to share improvements, visit the n8n community forum. This workflow is designed to be highly customizable - adapt it to your specific needs! Created by: Didac Fernandez Girona | AutoSolutions.ai - AI Consulting Services Tags: email automation AI assistant outlook calendar management brand voice inbox organization meeting scheduler
by n8n Team
This n8n workflow automates the analysis of email messages received in a Microsoft Outlook inbox to identify indicators of compromise (IOCs), specifically suspicious URLs. It can be triggered manually or scheduled to run daily at midnight. The workflow begins by retrieving up to 100 read email messages from the Outlook inbox. However, there seems to be a configuration issue as it should retrieve unread messages, not read ones. It then marks these messages as read to avoid processing them again in the future. The messages are then split into individual items using the Split In Batches node for sequential processing. For each email, the workflow analyzes its content to find URLs, which are considered potential IOCs. If URLs are found, the workflow proceeds to check these URLs for potential threats using two services, URLScan.io and VirusTotal, in parallel. In the first path, URLScan.io scans each URL, and if there are no errors, the results from URLScan.io and VirusTotal are merged. If there are errors, the workflow waits 1 minute before attempting to retrieve the URLScan results again. The loop then continues for the next email. In the second path, VirusTotal is used to scan the URLs, and the results are retrieved. Finally, the workflow checks if the data field is not empty, filtering out items where no data was found. It then sends a summarized Slack message to report details about the analyzed email, including the subject, sender, date, URLScan report URL, and VirusTotal verdict for URLs that were reported as malicious. Potential issues during setup include configuring the Outlook node to retrieve unread messages, resolving a configuration issue in the VirusTotal node, and handling authentication and API keys for both URLScan.io and VirusTotal nodes. Additionally, proper error handling and testing with various email content types and URLs are essential to ensure the workflow accurately identifies IOCs and reports them to the Slack channel.
by tbphp
Overview This n8n template monitors specified GitHub repositories. When a new release is published, it automatically fetches the information, uses AI (Google Gemini by default) to summarize and translate it into Chinese, and sends a formatted notification to a designated Slack channel. Core Features: Automated Monitoring**: Checks for updates on a predefined schedule. Intelligent Processing**: Uses AI to extract key information and translate. Error Handling**: Sends an error notification if fetching RSS for a single repository fails, without affecting others. Duplicate Prevention**: Remembers the last processed release ID using Redis to ensure only new content is pushed. Prerequisites Slack**: Configure your Slack app credentials in n8n. Redis**: Have an available Redis service and configure its credentials in n8n. AI Provider (Gemini)**: Configure credentials for Google Gemini (or your chosen AI model) in n8n. Configuration Instructions After importing the template, you need to modify the following key nodes: Cron Trigger: Adjust the Rule setting to change the update check frequency (default is 0 */10 9-23 * * *, checking every 10 minutes between 9 AM and 11 PM daily). GitHub Config (Repository List - Code Node): Edit the JavaScript array within this node's code area. Modify or add the repositories you want to follow. Each repository object needs a name (custom display name) and github (format: owner/repo). Example: { "name": "n8n", // Custom display name "github": "n8n-io/n8n" // GitHub path }, { "name": "LobeChat", "github": "lobehub/lobe-chat" } // ... add more repositories Redis and Redis2 (Redis Connection): Select your configured Redis credentials in both nodes. Gemini (AI Model): Select your configured Google Gemini credentials. (Optional) Replace with a different supported AI model node and select its credentials. Information Extractor (AI Processing & Translation): Main Configuration: Review the System Prompt. By default, it asks the AI to extract information and translate it into Chinese. Modify this prompt if you need a different language or summary style. Send Message and Send Error (Slack Notifications): Select your configured Slack credentials in both Slack nodes. Set the target Channel ID for notifications. Workflow Overview Start: Cron Trigger initiates the workflow on schedule. Load Config: GitHub Config provides the list of repositories to monitor. Loop: The Loop node iterates through each repository. Fetch & Check: The RSS node attempts to fetch the repository's releases feed. If No Error checks for success: Failure: Send Error posts an error to Slack, skips this repository. Success: Continues. Check for New Release: The Redis node retrieves the last recorded Release ID for this repository. The If New node compares the latest Release ID with the recorded ID: Different IDs (New Release): Proceeds to processing. Same ID (Already Processed): Skips this repository. Process & Notify (Only for New Releases): Information Extractor (with Gemini) extracts, summarizes, and translates the content. The Code node formats the information into Slack Block Kit. Send Message sends the formatted message to Slack. The Redis2 node stores the current Release ID in Redis. End: The workflow finishes after processing all repositories. Conclusion Once configured, this template automates GitHub release monitoring, uses AI to distill key information, and delivers it efficiently to your Slack workspace.
by Peter
Read a value by key from a local json file. Related workflow: WriteKey Create a subfolder in your n8n homedir: /home/node/.n8n/local-files. In docker look at the data path and create a subfolder local-files. Set the correct access rights chmod 1000.1000 local-files. Put the workflow code in a new workflow named GetKey. Create another workflow with a function item: return { file: '/4711.json', // 4711 should be your workflow id key: 'MyKey', default: 'Optional returned value if key is empty / not exists' } Pipe the function item to an Execution Workflow that calls the GetKey workflow. It would be nice if we could get someday a shiny built-in n8n node that does the job. :)
by Evoort Solutions
TikTok Transcript Generator Overview This automated workflow extracts transcripts from TikTok videos by reading video URLs from a Google Sheet, calling the API via TikTok Transcript Generator, cleaning the subtitle data, and updating the sheet with transcripts. It efficiently handles batches, errors, and rate limits to provide a seamless transcription process. Key Features Batch processing:** Reads and processes multiple TikTok video URLs from Google Sheets. Automatic transcript generation:* Uses the *TikTok Transcript Generator API on RapidAPI**. Clean subtitle output:** Removes timestamps and headers for clear transcripts. Error handling:** Marks videos with no available transcript. Rate limiting:* Implements wait times to avoid API throttling on *RapidAPI**. Seamless Google Sheets integration:** Updates the same sheet with transcript results and statuses. API Used TikTok Transcript Generator API** Google Sheet Columns | Column Name | Description | |----------------|-----------------------------------------| | Video Url | URL of the TikTok video to transcribe | | Transcript | Generated transcript text (updated by workflow) | | Generated Date | Date when the transcript was generated (YYYY-MM-DD) | Workflow Nodes Explanation | Node Name | Type | Purpose | |--------------------------|-----------------------|-------------------------------------------------------------------| | When clicking ‘Execute workflow’ | Manual Trigger | Manually starts the entire transcription workflow. | | Google Sheets2 | Google Sheets (Read) | Reads TikTok video URLs and transcript data from Google Sheets. | | Loop Over Items | Split In Batches | Processes rows in smaller batches to control execution speed. | | If | Conditional Check | Filters videos needing transcription (URL present, transcript empty). | | HTTP Request | HTTP Request | Calls the TikTok Transcript Generator API on RapidAPI to fetch transcripts. | | If1 | Conditional Check | Checks for valid API responses (handles 404 errors). | | Code | Code (JavaScript) | Cleans and formats raw subtitle text by removing timestamps. | | Google Sheets | Google Sheets (Update)| Updates the sheet with cleaned transcripts and generation dates. | | Google Sheets1 | Google Sheets (Update)| Updates sheet with “No transcription available” message on error.| | Wait | Wait | Adds delay between batches to avoid API rate limits on RapidAPI. | Challenges Resolved Manual Transcription Effort:** Eliminates the need to manually transcribe TikTok videos, saving time and reducing errors. API Rate Limits:* Introduces batching and wait periods to avoid exceeding API usage limits on *RapidAPI**, ensuring smooth execution. Incomplete or Missing Data:** Filters out videos already transcribed and handles missing transcripts gracefully by logging appropriate messages. Data Formatting Issues:** Cleans raw subtitle data to provide readable, timestamp-free transcripts. Data Synchronization:** Updates transcripts back into the same Google Sheet row, maintaining data consistency and ease of access. Use Cases Content creators wanting to transcribe TikTok videos automatically. Social media analysts extracting text data for research. Automation enthusiasts integrating transcript generation into workflows. How to Use Prepare a Google Sheet with the columns: Video Url, Transcript, and Generated Date. Connect your Google Sheets account in the workflow. Enter your RapidAPI key for the TikTok Transcript Generator API. Execute the workflow to generate transcripts. View transcripts and generated dates directly in your Google Sheet. Try this workflow to automate your TikTok video transcriptions efficiently! Create your free n8n account and set up the workflow in just a few minutes using the link below: 👉 Start Automating with n8n Save time, stay consistent, and grow your LinkedIn presence effortlessly!
by Jitesh Dugar
Newsletter Sign-up with Email Verification & Welcome Email Automation 📋 Description A complete, production-ready newsletter automation workflow that validates email addresses, sends personalized welcome emails, and maintains comprehensive logs in Google Sheets. Perfect for marketing teams, content creators, and businesses looking to build high-quality email lists with minimal manual effort. ✨ Key Features Email Verification Real-time validation** using Verifi Email API Checks email format (RFC compliance) Verifies domain existence and MX records Detects disposable/temporary email addresses Identifies potential spoofed emails Automated Welcome Emails Personalized HTML emails** with subscriber's first name Beautiful, mobile-responsive design with gradient headers Branded confirmation and unsubscribe links Sent via Gmail (or SMTP) automatically to valid subscribers Smart Data Handling Comprehensive logging** to Google Sheets with three separate tabs Handles incomplete submissions gracefully Preserves original user data throughout verification process Tracks source attribution for multi-channel campaigns Error Management Automatic retry logic on API failures Separate logging for different error types Detailed technical reasons for invalid emails No data loss with direct webhook referencing 🎯 Use Cases Newsletter sign-ups** on websites and landing pages Lead generation** forms with quality control Marketing campaigns** requiring verified email lists Community building** with automated onboarding SaaS product launches** with email collection Content creator** audience building E-commerce** customer list management 📊 What Gets Logged Master Log (All Subscribers) Timestamp, name, email, verification result Verification score and email sent status Source tracking, disposable status, domain info Invalid Emails Log Detailed rejection reasons Technical diagnostic information MX record status, RFC compliance Provider information for troubleshooting Invalid Submissions Log Incomplete form data Missing required fields Timestamp for follow-up 🔧 Technical Stack Trigger: Webhook (POST endpoint) Email Verification: Verifi Email API Email Sending: Gmail OAuth2 (or SMTP) Data Storage: Google Sheets (3 tabs) Processing: JavaScript code nodes for data formatting 🚀 Setup Requirements Google Account - For Sheets and Gmail integration Verifi Email API Key - (https://verifi.email) Google Sheets - Pre-configured with 3 tabs (template provided) 5-10 minutes - Quick setup with step-by-step instructions included 📈 Benefits ✅ Improve Email Deliverability - Remove invalid emails before sending campaigns ✅ Reduce Bounce Rates - Only send to verified, active email addresses ✅ Save Money - Don't waste email credits on invalid addresses ✅ Better Analytics - Track conversion rates by source ✅ Professional Onboarding - Personalized welcome experience ✅ Scalable Solution - Handles high-volume sign-ups automatically ✅ Data Quality - Build a clean, high-quality subscriber list 🎨 Customization Options Email Template** - Fully customizable HTML design Verification Threshold** - Adjust score requirements Brand Colors** - Match your company branding Confirmation Flow** - Add double opt-in if desired Multiple Sources** - Track different signup forms Language** - Easily translate email content 📦 What's Included ✅ Complete n8n workflow JSON (ready to import) ✅ Google Sheets template structure ✅ Responsive HTML email template ✅ Setup documentation with screenshots ✅ Troubleshooting guide ✅ Customization examples 🔒 Privacy & Compliance GDPR-compliant with unsubscribe links Secure data handling via OAuth2 No data shared with third parties Audit trail in Google Sheets Easy data deletion/export 💡 Quick Stats 12 Nodes** - Fully automated workflow 3 Data Paths** - Valid, invalid, and incomplete submissions 100% Uptime** - When properly configured Instant Processing** - Real-time email verification Unlimited Scale** - Based on your API limits 🏆 Perfect For Marketing Agencies SaaS Companies Content Creators E-commerce Stores Community Platforms Educational Institutions Membership Sites Newsletter Publishers 🌟 Why Use This Workflow? Instead of manually verifying emails or dealing with bounce complaints, this workflow automates the entire process from sign-up to welcome email. Save hours of manual work, improve your email deliverability, and create a professional first impression with every new subscriber. Start building a high-quality email list today!
by David Roberts
This workflow allows you to ask questions about a PDF document. The answers are provided by an AI model of your choice, and the answer includes a citation pointing to the information it used. You can use n8n’s built-in chat interface to ask the questions, or you could customise this workflow to use another one (e.g. Slack, Teams, etc.) Example The workflow is set up with the Bitcoin whitepaper. So you could ask things like: Question: “Which email provider does the creator of Bitcoin use?“ Answer: “GMX [Bitcoin whitepaper.pdf, lines 1-35]” Requirements A Pinecone account (they have a free tier at the time of writing that is easily enough for this workflow) Access to a large language model (e.g. an OpenAI account) Customizing this workflow The workflow only reads in one document, but you could customise it to read in all the documents in a folder (or more). The workflow is set up to use GPT 3.5, but you could swap that out for any other model (including self-hosted ones).
by David Roberts
The workflow first populates a Pinecone index with vectors from a Bitcoin whitepaper. Then, it waits for a manual chat message. When received, the chat message is turned into a vector and compared to the vectors in Pinecone. The most similar vectors are retrieved and passed to OpenAI for generating a chat response. Note that to use this template, you need to be on n8n version 1.19.4 or later.