by Akshay
Overview This project is an AI-powered hotel receptionist built using n8n, designed to handle guest queries automatically through WhatsApp. It integrates Google Gemini, Redis, MySQL, and Google Sheets via LangChain to create an intelligent conversational system that understands and answers booking-related questions in real time. A standout feature of this workflow is its AI model-switching system — it dynamically assigns users to different Gemini models, balancing traffic, improving performance, and reducing API costs. How It Works WhatsApp Trigger The workflow starts when a hotel guest sends a message through WhatsApp. The system captures the message text, contact details, and session information for further processing. Redis-Based Model Management The workflow checks Redis for a saved record of the user’s previously assigned AI model. If no record exists, a Model Decider node assigns a new model (e.g., Gemini 1 or Gemini 2). Redis then stores this model assignment for an hour, ensuring consistent routing and controlled traffic distribution. Model Selector The Model Selector routes each user’s request to the correct Gemini instance, enabling parallel execution across multiple AI models for faster response times and cost optimization. AI Agent Logic The LangChain AI Agent serves as the system’s reasoning core. It: Interprets guest questions such as: “Who checked in today?” “Show me tomorrow’s bookings.” “What’s the price for a deluxe suite for two nights?” Generates safe, read-only SQL SELECT queries. Fetches the requested data from the MySQL database. Combines this with dynamic pricing or promotions from Google Sheets, if available. Response Delivery Once the AI Agent formulates an answer, it sends a natural-sounding message back to the guest via WhatsApp, completing the interaction loop. Setup & Requirements Prerequisites Before deploying this workflow, ensure the following: n8n Instance** (local or hosted) WhatsApp Cloud API** with messaging permissions Google Gemini API Key** (for both models) Redis Database** for user session and model routing MySQL Database** for hotel booking and guest data Google Sheets Account** (optional, for pricing or offer data) Step-by-Step Setup Configure Credentials Add all API credentials in n8n → Settings → Credentials (WhatsApp, Redis, MySQL, Google). Prepare Databases MySQL Tables Example: bookings(id, guest_name, room_type, check_in, check_out) rooms(id, type, rate, status) Ensure the MySQL user has read-only permissions. Set Up Redis Create Redis keys for each user: llm-user:<whatsapp_id> = { "modelIndex": 0 } TTL: 3600 seconds (1 hour). Connect Google Sheets (Optional) Add your sheet under Google Sheets OAuth2. Use it to manage room rates, discounts, or seasonal offers dynamically. WhatsApp Webhook Configuration In Meta’s Developer Console, set the webhook URL to your n8n instance. Select message updates to trigger the workflow. Testing the Workflow Send messages like “Who booked today?” or a voice message. Confirm responses include real data from MySQL and contextual replies. Key Features Text & voice support** for guest interactions Automatic AI model-switching** using Redis Session memory** for context-aware conversations Read-only SQL query generation** for database safety Google Sheets integration** for live pricing and availability Scalable design** supporting multiple LLM instances Example Guest Queries | Guest Query | AI Response Example | |--------------|--------------------| | “Who checked in today?” | “Two guests have checked in today: Mr. Ahmed (Room 203) and Ms. Priya (Room 410).” | | “How much is a deluxe room for two nights?” | “A deluxe room costs $120 per night. The total for two nights is $240.” | | “Do you have any discounts this week?” | “Yes! We’re offering a 10% weekend discount on all deluxe and suite rooms.” | | “Show me tomorrow’s check-outs.” | “Three check-outs are scheduled tomorrow: Mr. Khan (101), Ms. Lee (207), and Mr. Singh (309).” | Customization Options 🧩 Model Assignment Logic You can modify the Model Decider node to: Assign models based on user load, region, or priority level. Increase or decrease TTL in Redis for longer model persistence. 🧠 AI Agent Prompt Adjust the system prompt to control tone and response behavior — for example: Add multilingual support. Include upselling or booking confirmation messages. 🗂️ Database Expansion Extend MySQL to include: Staff schedules Maintenance records Restaurant reservations Then link new queries in the AI Agent node for richer responses. Tech Stack n8n** – Workflow automation & orchestration Google Gemini (PaLM)** – LLM for reasoning & generation Redis** – Model assignment & session management MySQL** – Booking & guest data storage Google Sheets** – Dynamic pricing reference WhatsApp Cloud API** – Messaging interface Outcome This workflow demonstrates how AI automation can transform hotel operations by combining WhatsApp communication, database intelligence, and multi-model AI reasoning. It’s a production-ready foundation for scalable, cost-optimized, AI-driven hospitality solutions that deliver fast, accurate, and personalized guest interactions.
by Manav Desai
WhatsApp RAG Chatbot with Supabase, Gemini 2.5 Flash, and OpenAI Embeddings This n8n template demonstrates how to build a WhatsApp-based AI chatbot that answers user questions using document retrieval (RAG) powered by Supabase for storage, OpenAI embeddings for semantic search, and Gemini 2.5 Flash LLM for generating high-quality responses. Use cases are many: Turn your WhatsApp into a knowledge assistant for FAQs, customer support, or internal company documents — all without coding. Good to know The workflow uses OpenAI embeddings for both document embeddings and query embeddings, ensuring accurate semantic search. Gemini 2.5 Flash LLM** is used to generate user-friendly answers from the retrieved context. Messages are processed in real-time and sent back directly to WhatsApp. Workflow is modular — you can split document ingestion and query handling for large-scale setups. Supabase and WhatsApp API credentials must be configured before running. How it works Trigger: A new WhatsApp message triggers the workflow via webhook. Message Check: Determines if the message is a query or a document upload. Document Handling: Fetch file URL from WhatsApp. Convert binary to text. Generate embeddings with OpenAI and store them in Supabase. Query Handling: Generate query embeddings with OpenAI. Retrieve relevant context from Supabase. Pass context to Gemini 2.5 Flash LLM to compose a response. Response: Send the answer back to the user on WhatsApp. Optional: Add Gmail node to forward chat logs or daily summaries. How to use Configure WhatsApp Business API webhook for incoming messages. Add your Supabase and OpenAI credentials in n8n’s credentials manager. Upload documents via WhatsApp to populate the Supabase vector store. Ask queries — the bot retrieves context and answers using Gemini 2.5 Flash. Requirements WhatsApp Business API** (or Twilio WhatsApp Sandbox) Supabase account** (vector storage for embeddings) OpenAI API key** (for generating embeddings) Gemini API access** (for LLM responses) Customising this workflow Swap WhatsApp with Telegram, Slack, or email for different chat channels. Extend ingestion to other sources like Google Drive or Notion. Adjust the number of retrieved documents or prompt style in Gemini for tone control. Add a Gmail output node to send logs or alerts automatically.
by Yusuke Yamamoto
Daily AI News Summary & Gmail Delivery This n8n template demonstrates how to build an autonomous AI agent that automatically scours the web for the latest news, intelligently summarizes the top stories, and delivers a professional, formatted news digest directly to your email inbox. Use cases are many: Create a personalized daily briefing to start your day informed, keep your team updated on industry trends and competitor news, or automate content curation for your newsletter. Good to know At the time of writing, costs will depend on the LLM you select via OpenRouter and your usage of the Tavily Search API. Both services offer free tiers to get started. This workflow requires API keys and credentials for OpenRouter, Tavily, and Gmail. The AI Agent's system prompt is configured to produce summaries in Japanese. You can easily change the language and topics by editing the prompt in the "AI News Agent" node. How it works The workflow begins on a daily schedule, which you can configure to your preferred time. A Code node dynamically generates a search query for the current day's most important news across several categories. The AI Agent receives this query. It uses its attached tools to perform the task: It uses the Tavily News Search tool to find relevant, up-to-date articles from the web. It then uses the OpenRouter Chat Model to analyze the search results, identify the most significant stories, and write a summary for each. The agent's output is strictly structured into a JSON format, containing a main title and an array of individual news stories. Another Code node takes this structured JSON data and transforms it into a clean, professional HTML-formatted email. Finally, the Gmail node sends the beautifully formatted email to your specified recipient. How to use Before you start, you must add your credentials for OpenRouter, Tavily, and Gmail in their respective nodes. Customize the schedule in the "Schedule Trigger" node to set the daily delivery time. Change the recipient's email address in the final "Send a message" (Gmail) node. Requirements OpenRouter account (for access to various LLMs) Tavily AI account (for the real-time search API) Google account with Gmail enabled for sending emails via OAuth2 Customising this workflow Change the delivery channel:** Easily swap the final Gmail node for a Slack, Discord, or Telegram node to send the news summary to a team channel. Focus the news topics:** Modify the "Prepare News Query" node to search for highly specific topics, such as "latest advancements in artificial intelligence" or "financial news from the European market." Archive the news:** Add a node after the AI Agent to save the structured JSON data to a database or Google Sheet, allowing you to build a searchable news archive over time.
by gotoHuman
This workflow automatically classifies every new email from your linked mailbox, drafts a personalized reply, and creates Linear tickets for bugs or feature requests. It uses a human-in-the-loop with gotoHuman and continuously improves itself by learning from approved examples. How it works The workflow triggers on every new email from your linked mailbox. Self-learning Email Classifier: an AI model categorizes the email into defined categories (e.g., Bug Report, Feature Request, Sales Opportunity, etc.). It fetches previously approved classification examples from gotoHuman to refine decisions. Self-learning Email Writer: the AI drafts a reply to the email. It learns over time by using previously approved replies from gotoHuman, with per-classification context to tailor tone and style (e.g., different style for sales vs. bug reports). Human Review in gotoHuman: review the classification and the drafted reply. Drafts can be edited or retried. Approved values are used to train the self-learning agents. Send approved Reply: the approved response is sent as a reply to the email thread. Create ticket: if the classification is Bug or Feature Request, a ticket is created by another AI agent in Linear. Human Review in gotoHuman: How to set up Most importantly, install the gotoHuman node before importing this template! (Just add the node to a blank canvas before importing) Set up credentials for gotoHuman, OpenAI, your email provider (e.g. Gmail), and Linear. In gotoHuman, select and create the pre-built review template "Support email agent" or import the ID: 6fzuCJlFYJtlu9mGYcVT. Select this template in the gotoHuman node. In the "gotoHuman: Fetch approved examples" http nodes you need to add your formId. It is the ID of the review template that you just created/imported in gotoHuman. Requirements gotoHuman (human supervision, memory for self-learning) OpenAI (classification, drafting) Gmail or your preferred email provider (for email trigger+replies) Linear (ticketing) How to customize Expand or refine the categories used by the classifier. Update the prompt to reflect your own taxonomy. Filter fetched training data from gotoHuman by reviewer so the writer adapts to their personalized tone and preferences. Add more context to the AI email writer (calendar events, FAQs, product docs) to improve reply quality.
by Simeon Penev
Who’s it for Marketing, growth, and analytics teams who want a decision-ready GA4 summary—automatically calculated, clearly color-coded, and emailed as a polished HTML report. How it works / What it does Get Client (Form Trigger)* collects *GA4 Property ID (“Account ID”), **Key Event, date ranges (current & previous), Client Name, and recipient email. Overall Metrics This Period / Previous Period (GA4 Data API)** pull sessions, users, engagement, bounce rate, and more for each range. Form Submits This Period / Previous Period (GA4 Data API)** fetch key-event counts for conversion comparisons. Code** normalizes form dates for API requests. AI Agent* builds a *valid HTML email**: Calculates % deltas, applies green for positive (#10B981) and red for negative (#EF4444) changes. Writes summary and recommendations. Produces the final HTML only. Send a message (Gmail)** sends the formatted HTML report to the specified email address with a contextual subject. How to set up 1) Add credentials: Google Analytics OAuth2, OpenAI (Chat), Gmail OAuth2. 2) Ensure the form fields match your GA4 property and event names; “Account ID” = GA4 Property ID. Property ID - https://take.ms/vO2MG Key event - https://take.ms/hxwQi 3) Publish the form URL and run a test submission. Requirements GA4 property access (Viewer/Analyst) • OpenAI API key • Gmail account with send permission. Resources Google OAuth2 (GA4) – https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/ OpenAI credentials – https://docs.n8n.io/integrations/builtin/credentials/openai/ Gmail OAuth2 – https://docs.n8n.io/integrations/builtin/credentials/google/ GA4 Data API overview – https://developers.google.com/analytics/devguides/reporting/data/v1
by Incrementors
Overview: This n8n workflow automates the complete blog publishing process from topic research to WordPress publication. It researches topics, writes SEO-optimized content, generates images, publishes posts, and notifies teams—all automatically from Google Sheets input. How It Works: Step 1: Client Management & Scheduling Client Data Retrieval:** Scans master Google Sheet for clients with "Active" project status and "Automation" blog publishing setting Publishing Schedule Validation:** Checks if current day matches client's weekly frequency (Mon, Tue, Wed, Thu, Fri, Sat, Sun) or if set to "Daily" Content Source Access:** Connects to client-specific Google Sheet using stored document ID and sheet name Step 2: Content Planning & Selection Topic Filtering:** Retrieves rows where "Status for Approval" = "Approved" and "Live Link" = "Pending" Content Validation:** Ensures Focus Keyword field is populated before proceeding Single Topic Processing:** Selects first available topic to maintain quality and prevent API rate limits Step 3: AI-Powered Research & Writing Comprehensive Research:** Google Gemini analyzes search intent, competitor content, audience needs, trending subtopics, and LSI keywords Content Generation:** Creates 800-1000 word articles with natural keyword integration, internal linking, and conversational tone optimized for Indian investors Quality Assessment:** Evaluates content for human-like writing, conversational tone, readability, and engagement factors Content Optimization:** Automatically fixes grammar, punctuation, sentence flow, and readability issues while maintaining HTML structure Step 4: Visual Content Creation Image Prompt Generation:** OpenAI creates detailed prompts based on blog title and content for professional visuals Image Generation:** Ideogram AI produces 1248x832 resolution images with realistic styling and professional appearance Binary Processing:** Downloads and converts generated images to binary format for WordPress upload Step 5: WordPress Publication Media Upload:** Uploads generated image to WordPress media library with proper filename and headers Content Publishing:** Creates new WordPress post with title, optimized content, and embedded image Featured Image Assignment:** Sets uploaded image as post's featured thumbnail for proper display Category Assignment:** Automatically assigns posts to predefined category Step 6: Tracking & Communication Status Updates:** Updates Google Sheet with live blog URL in "Live Link" column using S.No. as identifier Team Notification:** Sends Discord message to designated channel with published blog link and review request Process Completion:** Triggers next iteration or workflow conclusion based on remaining topics Setup Steps: Estimated Setup Time: 45-60 minutes Required API Credentials: 1. Google Sheets API Service account with sheets access OAuth2 credentials for client-specific sheets Proper sharing permissions for all target sheets 2. Google Gemini API Active API key with sufficient quota Access to Gemini Pro model for content generation Rate limiting considerations for bulk processing 3. OpenAI API GPT-4 access for creative prompt generation Sufficient token allocation for daily operations Fallback handling for API unavailability 4. Ideogram AI API Premium account for quality image generation API key with generation permissions Understanding of rate limits and pricing 5. WordPress REST API Application passwords for each client site Basic authentication setup with proper encoding REST API enabled in WordPress settings User permissions for post creation and media upload 6. Discord Bot API Bot token with message sending permissions Channel ID for notifications Guild access and proper bot roles Master Sheet Configuration: Document Structure: Create primary tracking sheet with columns Client Name:** Business identifier Project Status:** Active/Inactive/Paused Blog Publishing:** Automation/Manual/Disabled Website URL:** Full WordPress site URL with trailing slash Blog Posting Auth Code:** Base64 encoded username: password On Page Sheet:** Google Sheets document ID for content planning WeeklyFrequency:** Daily/Mon/Tue/Wed/Thu/Fri/Sat/Sun Discord Channel:** Channel ID for notifications Content Planning Sheet Structure: Required Columns (exact naming required): S.No.:** Unique identifier for tracking Focus Keyword:** Primary SEO keyword Content Topic** Article title/subject Target Page:** Internal linking target Words:** Target word count Brief URL:** Content brief reference Content URL:** Draft content location Status for Approval:** Pending/Approved/Rejected Live Link:** Published URL (auto-populated) WordPress Configuration: REST API Activation:** Ensure wp-json endpoint accessibility User Permissions:** Create dedicated user with Editor or Administrator role Application Passwords:** Generate secure passwords for API authentication Category Setup:** Create or identify category ID for automated posts Media Settings:** Configure upload permissions and file size limits Security:** Whitelist IP addresses if using security plugins Discord Integration Setup: Bot Creation:** Create application and bot in Discord Developer Portal Permissions:** Grant Send Messages, Embed Links, and Read Message History Channel Configuration:** Set up dedicated channel for blog notifications User Mentions:** Configure user ID for targeted notifications Message Templates:** Customize notification format and content Workflow Features & Capabilities: Content Quality Standards: SEO Optimization:** Natural keyword integration with LSI keywords and related terms Readability:** Conversational tone with short sentences and clear explanations Structure:** Proper HTML formatting with headings, lists, and internal links Length:** Consistent 800-1000 word count for optimal engagement Audience Targeting:** Content tailored for Indian investor audience with relevant examples Image Generation Specifications: Resolution:** 1248x832 pixels optimized for blog headers Style:** Realistic professional imagery with human subjects Design:** Clean layout with heading text placement (bottom or left side) Quality:** High-resolution output suitable for web publishing Branding:** Light beige to gradient backgrounds with golden overlay effects Error Handling & Reliability: Graceful Failures:** Workflow continues even if individual steps encounter errors API Rate Limits:** Built-in delays and retry mechanisms for external services Data Validation:** Checks for required fields before processing Backup Processes:** Alternative paths for critical failure points Logging:** Comprehensive tracking of successes and failures Security & Access Control: Credential Encryption:** All API keys stored securely in n8n vault Limited Permissions:** Service accounts with minimum required access Authentication:** Basic auth for WordPress with encoded credentials Data Privacy:** No sensitive information exposed in logs or outputs Access Logging:** Track all sheet modifications and blog publications Troubleshooting: Common Issues: API Rate Limits:** Check your API quotas and usage limits WordPress Authentication:** Verify your basic auth credentials are correct Sheet Access:** Ensure Google Sheets API has proper permissions Image Generation Fails:** Check Ideogram API key and quotas Need Help?: For technical support or questions: Email: info@incrementors.com Contact Form: https://www.incrementors.com/contact-us/
by Habeeb Mohammed
Who's it for This workflow is perfect for individuals who want to maintain detailed financial records without the overhead of complex budgeting apps. If you prefer natural language over data entry forms and want an AI assistant to handle the bookkeeping, this template is for you. It's especially useful for: People who want to track cash and online transactions separately Anyone who lends money to friends/family and needs debt tracking Users comfortable with Slack as their primary interface Those who prefer conversational interactions over manual spreadsheet updates What it does This AI-powered finance tracker transforms your Slack workspace into a personal finance command center. Simply mention your bot with transactions in plain English (e.g., "₹500 cash food, borrowed ₹1000 from John"), and the AI agent will: Parse transactions using natural language understanding via Google Gemini Calculate balance changes for cash and online accounts Show a preview of changes before saving anything Update Google Sheets only after you approve Track debts (who owes you, who you owe, repayments) Send daily reminders at 11 PM with current balances and active debts The workflow maintains conversational context using PostgreSQL memory, so you can say things like "yesterday's transactions" or "that payment to Sarah" and it understands the context. How it works Scheduled Daily Check-in (11 PM) Fetches current balances from Google Sheets Retrieves all active debts Formats and sends a Slack message with balance summary Prompts you to share the day's transactions AI Agent Transaction Processing When you mention the bot in Slack: Phase 1: Parse & Analyze Extracts amount, payment type (cash/online), category (food, travel, etc.) Identifies transaction type (expense, income, borrowed, lent, repaid) Stores conversation context in PostgreSQL memory Phase 2: Calculate & Preview Reads current balances from Google Sheets Calculates new balances based on transactions Shows formatted preview with projected changes Waits for your approval ("yes"/"no") Phase 3: Update Database (only after approval) Logs transactions with unique IDs and timestamps Updates debt records with person names and status Recalculates and stores new balances Handles debt lifecycle (Active → Settled) Phase 4: Confirmation Sends success message with updated balances Shows active debts summary Includes logging timestamp Requirements Essential Services: n8n instance (self-hosted or cloud) Slack workspace with admin access Google account Google Gemini API key PostgreSQL database Recommended: Claude AI model (mentioned in workflow notes as better alternative to Gemini) How to set up 1. Google Sheets Setup Create a new Google Sheet with three tabs named exactly: Balances Tab: | Date | Cash_Balance | Online_Balance | Total_Balance | |------|--------------|----------------|---------------| Transactions Tab: | Transaction_ID | Date | Time | Amount | Payment_Type | Category | Transaction_Type | Person_Name | Description | Added_At | |----------------|------|------|--------|--------------|----------|------------------|-------------|-------------|----------| Debts Tab: | Person_Name | Amount | Type | Date_created | Status | Notes | |-------------|--------|------|--------------|--------|-------| Add header rows and one initial balance row in the Balances tab with today's date and starting amounts. 2. Slack App Setup Go to api.slack.com/apps and create a new app Under OAuth & Permissions, add these Bot Token Scopes: app_mentions:read chat:write channels:read Install the app to your workspace Copy the Bot User OAuth Token Create a dedicated channel (e.g., #personal-finance-tracker) Invite your bot to the channel 3. Google Gemini API Visit ai.google.dev Create an API key Save it for n8n credentials setup 4. PostgreSQL Database Set up a PostgreSQL database (you can use Supabase free tier): Create a new project Note down connection details (host, port, database name, user, password) The workflow will auto-create the required table 5. n8n Workflow Configuration Import the workflow and configure: A. Credentials Google Sheets OAuth2**: Connect your Google account Slack API**: Add your Bot User OAuth Token Google Gemini API**: Add your API key PostgreSQL**: Add database connection details B. Update Node Parameters All Google Sheets nodes: Select your finance spreadsheet Slack nodes: Select your finance channel Schedule Trigger: Adjust time if you prefer a different check-in hour (default: 11 PM) Postgres Chat Memory: Change sessionKey to something unique (e.g., finance_tracker_your_name) Keep tableName as n8n_chat_history_finance or rename consistently C. Slack Trigger Setup Activate the "Bot Mention trigger" node Copy the webhook URL from n8n In Slack App settings, go to Event Subscriptions Enable events and paste the webhook URL Subscribe to bot event: app_mention Save changes 6. Test the Workflow Activate both workflow branches (scheduled and agent) In your Slack channel, mention the bot: @YourBot ₹100 cash snacks Bot should respond with a preview Reply "yes" to approve Verify Google Sheets are updated How to customize Change Transaction Categories Edit the AI Agent's system message to add/remove categories. Current categories: travel, food, entertainment, utilities, shopping, health, education, other Modify Daily Check-in Time Change the Schedule Trigger's triggerAtHour value (0-23 in 24-hour format). Add Currency Support Replace ₹ with your currency symbol in: Format Daily Message code node AI Agent system prompt examples Switch AI Models The workflow uses Google Gemini, but notes recommend Claude. To switch: Replace "Google Gemini Chat Model" node Add Claude credentials Connect to AI Agent node Customize Debt Types Modify AI Agent's system prompt to change debt handling logic: Currently: I_Owe and They_Owe_Me You can add more types or change naming Add More Payment Methods Current: cash, online To add more (e.g., credit card): Update AI Agent prompt Modify Balances sheet structure Update balance calculation logic Change Approval Keywords Edit AI Agent's Phase 2 approval logic to recognize different approval phrases. Add Spending Analytics Extend the daily check-in to calculate: Weekly/monthly spending summaries Category-wise breakdowns Use additional Code nodes to process transaction history Important Notes ⚠️ Never trigger with normal messages - Only use app mentions (@botname) to avoid infinite loops where the bot replies to its own messages. 💡 Context Awareness - The bot remembers conversation history, so you can reference "yesterday", "last week", or previous transactions naturally. 🔒 Data Privacy - All your financial data stays in your Google Sheets and PostgreSQL database. The AI only processes transaction text temporarily. 📊 Backup Regularly - Export your Google Sheets periodically as backup. Pro Tips: Start with small test transactions to ensure everything works Use consistent person names for debt tracking The bot understands various formats: "₹500 cash food" = "paid 500 rupees in cash for food" You can batch transactions in one message: "₹100 travel, ₹200 food, ₹50 snacks"
by Václav Čikl
Description: This sophisticated workflow automates personalized email campaigns for musicians and band managers. The system processes contact databases, analyzes previous Gmail conversation history, and uses AI to generate contextually appropriate emails tailored to different contact categories (venues, festivals, media, playlists). Key Features: Multi-category support**: Bookers, festivals, media, playlist curators Conversation context analysis**: Maintains relationship history from Gmail AI-powered personalization**: Custom prompts for each contact type Multi-language support**: Localized content and prompts Gmail integration**: Automatic draft creation with signatures Bulk processing**: Handle hundreds of contacts efficiently Use Cases: Album/single promotion campaigns Tour booking automation Festival submission management Playlist pitching campaigns Media outreach automation Venue relationship management Perfect For: Independent musicians and bands Music managers and booking agents Record labels with multiple artists PR agencies in music industry Festival organizers (for artist outreach) Required Setup: 1. Credentials & APIs: Gmail OAuth2** (read messages + create drafts permissions) Google Sheets API** (for AutomatizationHelper configuration) OpenAI API** or compatible LLM (for content generation) 2. Required Files: Contact Database** (CSV): Your venue/media/festival contacts AutomatizationHelper** (Google Sheets): Campaign configuration, prompts, links 3. Example Data: 📁 Download Example Files The folder contains: Sample contact database (CSV) AutomatizationHelper template (CSV + Google Sheets) Detailed setup instructions (README) Data Structure: Contact Database Fields: venue_name - Organization name category - booker/festival/media/playlisting email_1 - Primary email (required) email_2 - Secondary email (optional, for CC) active - active/inactive (for filtering) language - EN/DE/etc. (for localization) AutomatizationHelper Fields: LANGUAGE - Language code CATEGORY - Contact type LATEST_SINGLE - Spotify/Apple Music link LATEST_VIDEO - YouTube/Vimeo link EPK - Electronic Press Kit URL SIGNATURE - HTML email signature PROMPT - AI prompt for this category SUBJECT - Email subject template Setup Instructions: Step 1: Prepare Your Data Download example files from the Google Drive folder Replace sample data with your real contacts and band information Customize AI prompts for your communication style Update signature with your contact details Step 2: Configure APIs Set up Gmail OAuth2 credentials in n8n Configure Google Sheets API access Add OpenAI API key for content generation Step 3: Import & Configure Workflow Import the workflow JSON Connect your credentials to respective nodes Update Google Sheets URL in AutomatizationHelper node Test with a small contact sample first Step 4: Customize & Run Adjust AI prompts in AutomatizationHelper for your style Update contact categories as needed Run workflow - drafts will be created in Gmail for review Tips: Start small**: Test with 5-10 contacts first Review drafts**: Always review AI-generated content before sending Update regularly**: Keep your AutomatizationHelper current with latest releases Monitor responses**: Track which prompts work best for different categories Language mixing**: You can have contacts in multiple languages Important Notes: Emails are created as Gmail drafts - manual review recommended Respects Gmail API rate limits automatically Conversation history analysis works best with existing email threads HTML signatures are automatically added (Gmail API limitation workaround) Handles multiple languages simultaneously Maintains conversation context across campaigns Generates unique content for each contact Template Author: Questions or need help with setup? Email: xciklv@gmail.com LinkedIn: https://www.linkedin.com/in/vaclavcikl/
by Roshan Ramani
Generate Personalized & Aggregate Survey Reports with Jotform and Gemini AI Overview Automatically transform Jotform survey responses into intelligent, professional reports. This workflow generates personalized insights for each respondent and statistical summaries for administrator, all hands-free. Who Should Use This Survey managers needing automated report generation Market researchers analyzing response data Product teams collecting customer feedback Organizations using Jotform without built-in analytics What It Does Two-Part Report System: Personal Reports (Instant) Triggers immediately when respondent submits survey AI analyzes their individual responses using Google Gemini Generates customized insights and recommendations Sends professional HTML report to respondent's email Weekly Aggregate Reports (Scheduled) Runs automatically every week Collects all survey submissions Calculates statistics, percentages, and trends Identifies patterns across all respondents Sends comprehensive analysis to admin Key Features ✓ Real-time personal report generation ✓ Intelligent AI-powered analysis (Google Gemini) ✓ Professional HTML email formatting ✓ Automatic weekly summaries ✓ Statistical analysis and trend identification ✓ Zero manual processing required ✓ Fully customizable prompts and styling ✓ Works with any Jotform survey structure Setup Requirements Jotform** account with active survey form Get Jotform from here n8n** instance (cloud or self-hosted) Google Gemini API** key Gmail** account (for sending reports) Jotform API** key What You Get in Reports Personal Reports Include: Respondent Profile** – Auto-extracted demographics (age, role, location, email) Key Insights** – 3-4 AI-generated insights specific to their responses Personalized Recommendations** – 3-4 actionable suggestions based on their answers Professional Formatting** – HTML-styled email with your branding colors Mobile Responsive** – Looks great on all devices Fully Customizable: Edit the AI prompt to generate different types of insights Change HTML styling (colors, fonts, layout) Add/remove sections (logos, footers, additional analysis) Adjust the tone (professional, casual, technical, etc.) Include custom branding and messaging Aggregate Reports Include: Total Respondents Count** – How many submissions in the period Demographic Breakdown** – Distribution of respondent profiles Response Statistics** – Percentages and frequencies for each question Answer Distribution** – Most popular choices across all responses Trend Analysis** – Patterns and correlations in the data Key Findings** – Top 5-7 insights from all responses combined Statistical Metrics** – Averages, frequencies, comparisons Fully Customizable: Choose which statistics to calculate and display Change how data is visualized and presented Customize report styling and branding Adjust analysis depth and metrics focus Add custom sections for your specific needs Modify HTML layout and design How Reports Look Personal Report Structure (Email): Header: Professional gradient background with thank you message Section 1: Respondent Details (extracted from survey) Section 2: Key Insights (AI-generated from their responses) Section 3: Recommendations (personalized suggestions) Footer: Thank you message and company info Aggregate Report Structure (Email): Header: Report title and date range Section 1: Total respondent count and demographics Section 2: Question-by-question response breakdown Section 3: Statistical analysis and trends Section 4: Key findings and patterns discovered Section 5: Actionable insights for decision-makers Footer: Next report date and company branding Quick Start Get your Jotform Form ID and API key Enable Google Gemini API and create API key Set up Gmail OAuth2 credentials in n8n Import this workflow Add your credentials to the nodes Test with a sample survey submission Complete setup instructions are included in the workflow as an expandable sticky note. Workflow Logic PERSONAL REPORTS: Survey Submission ↓ Collect Response Data ↓ AI Analysis & Insights Generation ↓ Create Styled HTML Report ↓ Send to Respondent Email AGGREGATE REPORTS: Weekly Schedule Triggers ↓ Fetch All Submissions ↓ Statistical Analysis & Trend Detection ↓ Generate Insights from All Data ↓ Create Summary HTML Report ↓ Send to Admin Email Use Cases Customer Feedback Surveys** – Analyze responses, send personalized insights Product Research** – Track trends across respondents weekly Market Research** – Automated statistical reporting Employee Surveys** – Personalized feedback + company trends Event Feedback** – Instant attendee insights + organizer summary Customer Satisfaction (NPS)** – Personalized follow-ups + trend analysis Lead Qualification** – Auto-analyze prospect responses and route accordingly
by Muhammadumar
This is the core AI agent used for isra36.com. Don't trust complex AI-generated SQL queries without double-checking them in a safe environment. That's where isra36 comes in. It automatically creates a test environment with the necessary data, generates code for your task, runs it to double-check for correctness, and handles errors if necessary. If you enable auto-fixing, isra36 will detect and fix issues on its own. If not, it will ask for your permission before making changes during debugging. In the end, you get thoroughly verified code along with full details about the environment it ran in. Setup It is an embedded chat for the website, but you can pin input data and run it on your own n8n instance. Input data sessionId: uuid\_v4. Required to handle ongoing conversations and to create table names (used as a prefix). threadId: string | nullable. If aiProvider is openai, conversation history is managed on OpenAI’s side. This is not needed in the first request—it will start a new conversation. For ongoing conversations, you must provide this value. You can get it from the OpenAIMainBrain node output after the first run. If you want to start a new conversation, just leave it as null. apiKey: string. Your API key for the selected aiProvider. aiProvider: string. Currently supported values: openai, openrouter. model: string. The AI model key (e.g., gpt-4.1, o3-mini, or any supported model key from OpenRouter). autoErrorFixing: boolean. If true, it will automatically fix errors encountered when running code in the environment. If false, it will ask for your permission before attempting a fix. chatInput: string. The user's prompt or message. currentDbSchemaWithData: string. A JSON representation of the database schema with sample data. Used to inform the AI about the current database structure during an ongoing conversation. Please use the '[]' value in the first request. Example string for filled db structure : '{"users":[{"id":1,"name":"John Doe","email":"john.d@example.com"},{"id":2,"name":"Jane Smith","email":"jane.s@example.com"}],"products":[{"product_id":101,"product_name":"Laptop","price":999.99}]}' Make sure to fill in your credentials: Your OpenAI or OpenRouter API key Access to a local PostgreSQL database for test execution You can view your generated tables using your preferred PostgreSQL GUI. We recommend DBeaver. Alternatively, you can activate the “Deactivated DB Visualization” nodes below. To use them, connect each to the most recent successful Set node and manually adjust the output. However, the easiest and most efficient method is to use a GUI. Workflow Explanation We store all input values in the localVariables node. Please use this node to get the necessary data. OpenAI has a built-in assistant that manages chat history on their side. For OpenRouter, we handle chat history locally. That’s why we use separate nodes like ifOpenAi and isOpenAi. Note that if logic can also be used inside nodes. The AutoErrorFixing loop will run only a limited number of times, as defined by the isMaxAutoErrorReached node. This prevents infinite loops. The Execute_AI_result node connects to the PostgreSQL test database used to execute queries. Guidance on customization This setup is built for PostgreSQL, but it can be adapted to any programming language, and the logic can be extended to any programming framework. To customize the logic for other programming languages: Change instruction parameter in localVariables node. Replace the Execute_AI_result PostgreSQL node with another executable node. For example, you can use the HTTP Request node. Update the GenerateErrorPrompt node's prompt parameter to generate code specific to your target language or framework. Any workflows built on top of this must credit the original author and be released under an open-source license.
by Marth
Automated Employee Recognition Bot with Slack + Google Sheets + Gmail Description Turn employee recognition into an automated system. This workflow celebrates great work instantly it posts recognition messages on Slack, sends thank-you emails via Gmail, and updates your tracking sheet automatically. Your team feels appreciated. Your HR team saves hours. Everyone wins. ⚙️ How It Works You add a new recognition in Google Sheets. The bot automatically celebrates it in Slack. The employee receives a thank-you email. HR gets notified and the sheet updates itself. 🔧 Setup Steps 1️⃣ Prepare Your Google Sheet Create a sheet called “Employee_Recognition_List” with these columns: Name | Department | Reason | Date | Email | Status | EmailStatus Then add one test row — for example, your own name — to see it work. 2️⃣ Connect Your Apps Inside n8n: Google Sheets:** Connect your Google account so the bot can read the sheet. Slack:** Connect your Slack workspace to post messages in a channel (like #general). Gmail:** Connect your Gmail account so the bot can send emails automatically. 3️⃣ (Optional) Add AI Personalization If you want the messages to sound more natural, add an OpenAI node with this prompt: > “Write a short, friendly recognition message for {{name}} from {{dept}} who was recognized for {{reason}}. Keep it under 2 sentences.” This makes your Slack and email messages feel human and genuine. 4️⃣ Turn It On Once everything’s connected: Save your workflow Set it to Active Add a new row in your Google Sheet The bot will instantly post on Slack and send a thank-you email 🎉
by KPendic
This n8n flow demos basic dev-ops operation task, dns records management. AI agent with light and basic prompt functions like getter and setter for DNS records. In this special case, we are managing remote dns server, via API calls - that are handled on CloudFlare platform side. Use-cases for this flow can be standalone, or you can chain it in your pipe-line to get powerful infrastructure flows for your needs. How it works we created basic agent and gave it a prompt to know about one tool: cf_tool - sub-routine (to itself flow - or it can be separate dedicated one) prompt have defined arguments that are needed for passing them when calling agent, for each action specifically tool it self have basic if switch that is - based of a action call - calling specific CloudFlare API endpoint (and pass down the args from the tool) Requirements For storing and processing of data in this flow you will need: CloudFlare.com API key/token - for retrieving your data (https://dash.cloudflare.com/?to=/:account/api-tokens) OpenAPI credentials (or any other LLM provider) saved - for agent chat (Optional) PostGres table for chat history saving Official CloudFlare api Documentation For full details and specifications please use API documentation from: https://developers.cloudflare.com/api/ Linkedin post Let me know if you found this flow usefull on my Linkedin post > here. tags: #cloudflare, #dns, #domain