by dave
Filters articles based on keywords, checks against MongoDB for unique links, then sends results to different webhooks
by James Li
Summary Onfleet is a last-mile delivery software that provides end-to-end route planning, dispatch, communication, and analytics to handle the heavy lifting while you can focus on your customers. This workflow template listens to Onfleet driver sign-up events and automatically notifies you on Slack. Configurations Update the Onfleet node with your own Onfleet credentials, to register for an Onfleet API key, please visit https://onfleet.com/signup to get started Update the Slack node with your own Slack credentials Update the Slack channel to something that exists in your Slack workspace, the default is set to #new-driver-signup in this example which may not apply to your workspace Update the Slack message to something customized, ideally with driver information such as phone number and name
by Sean Lon
GCalendar Smart Booking System Demo github code Try yourself ๐ Description Transform your booking chaos into streamlined automation with this production-ready GCalendar Smart Booking System. This comprehensive n8n workflow eliminates weeks of custom development by providing two powerful REST APIs that handle everything from input validation to calendar integration. What makes this special? Unlike basic booking forms, this system includes enterprise-grade features like intelligent conflict detection, public holiday awareness, business hours enforcement, and automatic Google Calendar integration with Meet links. It's battle-tested with real-world business logic including lunch breaks, timezone handling, and comprehensive error responses. Privacy & Cost Benefits: ๐ Privately yours & free** - No need to purchase expensive booking software or worry about data breaches. Your booking data stays secure in your own Google Calendar, completely under your control. ๐ฏ All-in-One solution** - No manual invitation sending required. Google Calendar automatically handles attendee notifications and generates real Google Meet links for every booking, creating a seamless experience for both you and your clients. No need pay for API to get public holiday, use the google calendar free default . Perfect for rapid deployment: Whether you're building for clients, launching an MVP, or replacing expensive booking software, this template gets you from zero to production in under 15 minutes. The clean API design makes frontend integration effortless, while the robust validation ensures reliable operation at scale. Two endpoints, endless possibilities: /make-booking - Complete booking creation with multi-layer validation /check-booking-date - Real-time slot availability listing (comes with conflict detection, business hour checks) Built by developers, for developers - with comprehensive documentation, testing examples, and customization guides included. Purpose This workflow provides a webhook API endpoint that your frontend can easily integrate typically triggered by a submit button on a booking form. When the frontend calls this REST API, the workflow handles the booking logic by performing several key checks: Valid Input โ Ensures all required fields are present and correctly formatted. Date & Time Validation โ Confirms the requested slot falls within business hours, excludes lunch/dinner breaks, and respects public holidays. Conflict Detection โ Checks for any existing bookings at the requested time to prevent overlaps. Calendar Integration โ Once all checks pass, the workflow automatically creates a booking entry in your Google Calendar, keeping everything synced and visible. ๐ฏ Target Audience This template is perfect for: ๐ฅ Healthcare & Medical Professionals: Clinics, dental offices, physiotherapy centers, and medical practices needing automated appointment scheduling with proper business hours validation and no-show reduction. ๐ผ Professional Service Providers: Consultants, lawyers, accountants, financial advisors, and coaches who require sophisticated booking systems with calendar integration and conflict prevention. ๐ Educational Institutions: Universities, tutoring centers, training academies, and educational consultants needing student appointment scheduling with academic calendar integration. ๐ข Small to Medium Businesses: Service-based businesses like salons, spas, repair services, and consulting firms looking to automate their booking process without expensive software subscriptions. ๐จโ๐ป Software Development Teams: Developers and engineering teams who need to rapidly deploy booking functionality for client projects without building from scratch. ๐ Digital Agencies: Web development agencies, marketing firms, and digital consultancies building booking solutions for multiple clients across different industries. ๐จ Hospitality & Events: Meeting room booking, event venue scheduling, equipment rental companies, and co-working spaces requiring intelligent availability management. ๐ง Freelancers & Solo Entrepreneurs: Independent professionals like designers, photographers, personal trainers, and contractors who need professional booking systems on a budget. ๐ Product Managers: Teams building SaaS products that require booking/scheduling features as part of their core functionality or user experience. ๐ Startup Founders: Early-stage companies needing to validate booking-related business models quickly without significant development investment. ๐จ Creative Professionals: Photographers, videographers, music instructors, and artists who need client appointment scheduling with portfolio integration possibilities. โ๏ธ Technical Operations Teams: DevOps engineers and system administrators who need to implement booking systems for internal resource allocation (servers, equipment, meeting rooms). This template eliminates weeks of development time while providing enterprise-grade validation, making it ideal for anyone who values rapid deployment, reliability, and professional functionality in their booking systems. โ๏ธ How It Works ๐ Booking Flow (Step-by-Step) Phase 1: Input Validation // Real validation logic from the workflow โ Name, email, phone, date, time validation โ Email format verification (RFC compliant) โ Phone number format checking โ Date/time format standardization (YYYY-MM-DD, HH:MM) Phase 2: Business Logic Validation // Business hours: Monday-Friday, 9AM-9PM (customizable) โ Weekend blocking โ Business hours enforcement โ Lunch break exclusion (12PM-2PM) โ Dinner break exclusion (6PM-8PM) โ Timezone handling (Malaysia/UTC+8 default) Phase 3: Intelligent Conflict Detection // Multi-calendar checking โ Public holiday calendar integration โ Main booking calendar conflict detection โ Real-time availability verification โ Overlap prevention algorithms Phase 4: Calendar Integration // Google Calendar automation โ Event creation with attendee invitation โ Google Meet link generation โ Custom event descriptions and summaries โ Calendar color coding ๐ Availability API Flow Date Input โ Validates YYYY-MM-DD format Weekend/Holiday Check โ Blocks non-working days Slot Generation โ Creates available time slots Conflict Mapping โ Marks booked vs available slots Response Formatting โ Returns structured availability data ๐ ๏ธ Quick Start Guide Prerequisites n8n instance (cloud or self-hosted) Google Cloud Project with Calendar API enabled Google Calendar credentials Simple Setup Guide Step 1: Import the Workflow โฌ๏ธ Download the smart-booking-system.json file In your n8n instance: Workflows โ Import from File Select the downloaded JSON file Click Import Step 2: Set Up Google Calendar Credentials ๐ Create Google Cloud Project: Go to Google Cloud Console Create new project or select existing one Enable Google Calendar API Configure n8n Credentials: In n8n: Credentials โ Add Credential โ Google Calendar OAuth2 API Enter your Google Cloud Client ID and Client Secret Save as "Google Calendar account" Update Workflow Nodes: Find nodes: Create Calendar Event, Check Calendar Availability, etc. Select your Google Calendar credential in each node Step 3: Configure Your Calendars ๐ Main Booking Calendar: Create a dedicated Google Calendar for bookings Copy the Calendar ID (found in Calendar Settings) Replace YOUR_BOOKING_CALENDAR_ID@group.calendar.google.com in these nodes: Create Calendar Event Check Calendar Availability - Main Check Calendar Availability Holiday Calendar (Optional): Add your country's holiday calendar to Google Calendar Find the calendar ID (e.g., en.usa#holiday@group.v.calendar.google.com) Update Check Calendar Availability - public holiday and Check Public Holiday Calendar nodes Step 4: Customize Business Hours โฐ Find the ConfigTimeSlots node Edit the time slots array: [ { "time": "09:30", "display": "9:30 AM - 10:30 AM", "available": true }, { "time": "10:30", "display": "10:30 AM - 11:30 AM", "available": true }, { "time": "11:30", "display": "11:30 AM - 12:30 PM", "available": true }, { "time": "14:30", "display": "2:30 PM - 3:30 PM", "available": true }, { "time": "15:30", "display": "3:30 PM - 4:30 PM", "available": true }, { "time": "16:30", "display": "4:30 PM - 5:30 PM", "available": true }, { "time": "17:30", "display": "5:30 PM - 6:30 PM", "available": true }, { "time": "20:30", "display": "8:30 PM - 9:30 PM", "available": true } ] Step 5: Activate & Test ๐ Activate the workflow: Toggle the workflow Active switch Get your webhook URLs: Booking: https://your-n8n-domain/webhook/suarify-make-booking Availability: https://your-n8n-domain/webhook/suarify-check-booking-date Test with sample requests: Test booking creation curl -X POST 'https://your-n8n-domain/webhook/suarify-make-booking' \ -H 'Content-Type: application/json' \ -d '{ "name": "John Doe", "email": "john@example.com", "phone": "+1234567890", "date": "2024-03-15", "time": "14:30" }' Test availability checking curl -X POST 'https://your-n8n-domain/webhook/suarify-check-booking-date' \ -H 'Content-Type: application/json' \ -d '{"date": "2024-03-15"}' Step 6: Integrate with Your Frontend ๐ป Use the webhook URLs in your booking form Handle the JSON responses for success/error states Display available time slots from the availability API ๐ You're ready to start taking bookings! ๐ API Documentation ๐ค Booking Creation API Endpoint: POST /webhook/make-booking Request Body: { "name": "John Doe", "email": "john@example.com", "phone": "+1234567890", "date": "2024-03-15", "time": "14:30", "source": "Website Form" } Success Response (200): { "success": true, "message": "Booking confirmed successfully!", "bookingDetails": { "name": "John Doe", "email": "john@example.com", "phone": "+1234567890", "date": "2024-03-15", "time": "14:30", "eventId": "abc123def456", "eventLink": "https://calendar.google.com/event?eid=...", "calendarEvent": { /* Full calendar event object */ } }, "confirmationMessage": "Hi John Doe, your booking has been confirmed for 2024-03-15 at 14:30. You will receive a calendar invitation shortly." } Error Response (400): { "success": false, "error": "Invalid email format", "message": "Booking request failed validation", "details": { /* Error context */ } } ๐ Availability Check API Endpoint: POST /webhook/check-booking-date Request Body: { "date": "2024-03-15" } Success Response (200): { "success": true, "isWorkingDay": true, "isWeekend": false, "holidayName": "", "availableSlots": [ { "time": "09:30", "display": "9:30 AM - 10:30 AM", "available": true }, { "time": "10:30", "display": "10:30 AM - 11:30 AM", "available": false, "status": "booked" } ], "totalConflicts": 3 } ๐๏ธ Customization Guide Business Hours Configuration Edit the ConfigTimeSlots node to modify available booking times: const timeSlots = [ { time: '09:00', display: '9:00 AM - 10:00 AM', available: true }, { time: '10:00', display: '10:00 AM - 11:00 AM', available: true }, // Lunch break automatically excluded { time: '14:00', display: '2:00 PM - 3:00 PM', available: true }, // Customize as needed... ]; Timezone Adjustment Modify the Business Hours Check node: // Change from Malaysia (UTC+8) to your timezone const timezone = 'America/New_York'; // UTC-5 const timezoneOffset = '-05:00'; Holiday Calendar Update calendar ID in holiday checking nodes: // Replace with your country's holiday calendar "value": "en.usa#holiday@group.v.calendar.google.com" Business Rules Customize validation in the Business Hours Check node: // Business hours: Mon-Fri, 9am-6pm (example) const isWithinBusinessHours = timeInMinutes >= 540 && timeInMinutes <= 1080; // Remove lunch breaks if not needed const isNotLunchBreak = true; // Always allow Start automating in under 15 minutes! ๐ Made with โค๏ธ for the engineering community. Star this repo if it saves you time!
by Rahi
n8n Workflow: WhatsApp Lead Nurturing (MQL) ๐ Purpose This workflow fetches unqualified leads from Postgres at defined retry intervals, sends personalized WhatsApp template messages via Gallabox API, and logs message activity while updating lead status in the database. ๐งฉ Workflow Structure Schedule Trigger Type: n8n-nodes-base.scheduleTrigger Runs the workflow automatically at set intervals (seconds-based). Entry point of the workflow. Execute a SQL query Type: n8n-nodes-base.postgres Fetches leads from mql_contacts that: Have count = 0, 1, 2, or 3. Respect time delays: count=1 โ after 3 minutes count=2 โ after 5 minutes count=3 โ after 8 minutes Must have disposition = unqualified. Loop Over Items4 Type: n8n-nodes-base.splitInBatches Iterates over each lead individually. Ensures one-by-one processing. Code1 Type: n8n-nodes-base.code Selects message content based on: Leadโs model (nexus, magnus, reo, general). Current count (0โ3). Ensures personalized, varied message text. new_lead_4 Type: n8n-nodes-base.httpRequest Sends WhatsApp template message through Gallabox API. Dynamic fields: Leadโs name and phone. Message details selected from Code1. Quick reply buttons: Show Brochure, Get Showroom Location, Not Interested. Insert rows in a table4 Type: n8n-nodes-base.postgres Inserts a record into mql_logs. Captures: Phone, name, disposition. Message count, message_id, timestamps. Gallabox API response (status, code). Update rows in a table4 Type: n8n-nodes-base.postgres Updates mql_contacts: Increments count by 1. Updates last_message_sent timestamp. Matches using phone number. Sticky Notes Provide inline documentation: SQL query purpose. Message matrix explanation. Gallabox API role. Postgres update/logging details. โ๏ธ Data Flow Summary Trigger** โ Runs every X seconds SQL Query** โ Fetches eligible leads (unqualified, retry intervals) Loop** โ Processes each lead sequentially Code1** โ Chooses personalized message based on model & count HTTP Request** โ Sends WhatsApp template via Gallabox Insert Log** โ Stores activity in mql_logs Update Contact** โ Updates count & last sent in mql_contacts Cycle repeats** until all leads are processed ๐ Use Case Automates WhatsApp drip campaigns for unqualified leads. Respects retry intervals to avoid spamming. Uses personalized message variations based on product model & retry count. Provides full traceability with logs and lead updates.
by Mohamed Abdelwahab
This n8n template provides a production-ready, memory-safe pipeline for ingesting large Hugging Face datasets into MongoDB using batch pagination. It is designed as a reusable data ingestion layer for RAG systems, recommendation engines, analytics pipelines, and ML workflows. The template includes: A main workflow that orchestrates pagination and looping A subworkflow that fetches dataset rows, sanitizes them, and inserts them into MongoDB safely ๐ What This Template Does Fetches rows from a Hugging Face dataset using the datasets-server API Processes data in configurable batches (offset + length) Removes Hugging Face _id fields to avoid MongoDB duplicate key errors Inserts clean documents into MongoDB Automatically loops until all dataset rows are ingested Handles large datasets without memory overflow ๐งฉ Architecture Overview Main Workflow (Orchestrator) Starts the ingestion process Defines dataset, batch size, and MongoDB collection Repeatedly calls the subworkflow until no rows remain Subworkflow (Batch Processor) Fetches a single batch of rows from Hugging Face Splits rows into individual items Removes _id fields Inserts documents into MongoDB Returns batch statistics to the main workflow ๐ Workflow Logic (High-Level) Set initial configuration: Dataset name Split (train, test, etc.) Batch size Offset Fetch rows from Hugging Face If rows exist: Split rows into items Remove _id Insert into MongoDB Increase offset Repeat until no rows are returned ๐ฆ Default Configuration | Parameter | Default Value | |---------|--------------| | Dataset | MongoDB/airbnb_embeddings | | Config | default | | Split | train | | Batch Size | 100 | | MongoDB Collection | airbnb | All values can be changed easily from the Config_Start node. ๐ Prerequisites n8n (self-hosted or cloud) MongoDB (local or hosted) MongoDB credentials configured in n8n Internet access to datasets-server.huggingface.co โถ๏ธ How to Use Import the workflow JSON into n8n Configure MongoDB credentials in the MongoDB node Update dataset parameters if needed: Dataset name Split Batch size Collection name Run the workflow using the Manual Trigger Monitor execution until completion ๐ง Why _id Is Removed Hugging Face dataset rows often include an _id field. MongoDB requires _id values to be unique, so reusing these values can cause insertion failures. This template: Removes the Hugging Face _id** Lets MongoDB generate its own ObjectId Prevents duplicate key errors Allows safe re-runs and incremental ingestion ๐ Ideal Use Cases โ RAG (Retrieval-Augmented Generation) Store dataset content as source documents Add embeddings later using OpenAI, Mistral, or local models Connect MongoDB to a vector database or hybrid search โ Recommendation Systems Build item catalogs from public datasets Use embeddings or metadata for similarity search Combine with user behavior data downstream โ ML & Analytics Pipelines Centralize dataset ingestion Normalize data before training or analysis โ๏ธ Recommended Enhancements You can easily extend this template with: Upsert logic** using a deterministic hash (idempotent ingestion) Embedding generation** before or after insertion Schema validation** or field filtering Rate-limit handling & backoff** Parallel ingestion** for faster processing โ ๏ธ Notes & Best Practices Reduce batch size if you encounter memory limits Verify dataset license before production use Add indexes in MongoDB for faster downstream querying Use upserts if you plan to re-run ingestion frequently ๐ License & Disclaimer This workflow template is provided as-is. You are responsible for: Dataset licensing compliance Infrastructure costs Downstream data usage Hugging Face datasets are subject to their respective licenses. โญ Template Summary Category: Data Ingestion Complexity: Intermediate Scalability: High Memory Safe: Yes Production Ready: Yes If you want a version with: Upserts instead of inserts Built-in embeddings Vector database support Logging & monitoring Just say the word and Iโll generate the enhanced workflow JSON.
by Paul Abraham
This n8n template transforms any website into a fully functional RAG-ready chatbot knowledge base. It crawls sites using the AI Training Data Scraper community node, chunks content intelligently, generates embeddings, and stores everything in Pinecone for semantic search-powered conversations. Perfect for turning documentation, blogs, or marketing sites into instant AI chat assistants. Use cases Convert documentation sites into intelligent support chatbots Build product knowledge bases from marketing websites Create internal search tools from company intranets Power customer support agents with scraped competitor analysis Generate training data for fine-tuning company-specific AI models Good to know This workflow connects to external services requiring API credentials. Works on n8n Cloud and self-hosted instances. Initial setup takes 10 minutes including community node installation. Requirements n8n Cloud or self-hosted instance Community Node Apify API key OpenAI API key Pinecone account & index Customising this workflow Replace Pinecone with Qdrant, Weaviate, or pgvector for self-hosted vector storage Swap OpenAI embeddings with Ollama or Hugging Face for zero-cost processing Add content filtering by language, code presence, or section type Extend with conversation memory using Redis or Postgres Build a frontend dashboard for managing multiple website indexes Add multi-site RAG (query across multiple domains simultaneously)
by Jayesh Kaithwas
This workflow pulls articles from multiple RSS feeds, filters them by date, fetches the full webpage content, and summarizes each article into a clean, structured Markdown format using Google Gemini (via LangChain). Summaries are automatically saved into Google Sheets for long-term storage and into a daily sheet for fresh news. ๐ Example Google Sheet (pre-configured for this workflow): News Summaries Sheet Key Features RSS Feeds from Google Sheets** โ Flexible feed management. Date Filtering** โ Only process articles from the last X days. Duplicate Checking** โ Avoids re-processing links already stored. Full Article Parsing** โ Extracts clean body content, ignoring ads and images. AI Summarization** โ Uses a Gemini LLM to create concise, structured summaries with takeaways and insights. Multi-Sheet Output** โ Saves summaries to both a permanent โArticlesโ sheet and a โTodayโ sheet for daily highlights. Scheduled or Manual Run** โ Can run daily at a set time or on demand. Requirements Google Sheets account (for storing feeds, articles, and daily news). Google Gemini (PaLM) API credentials. Possible Use Cases Personal daily news digest. Team knowledge hub for curated, AI-summarized articles. Automated research assistant for niche topics.
by Michael Taleb
Workflow Summary This workflow automatically scrapes new Reddit posts from your chosen subreddits and keywords, analyzes them with AI to extract summaries, pain points, and content angles, and then saves the insights into a Google Sheet. Itโs a fully automated Content Research Engine that delivers fresh marketing ideas and community pain points straight into your database. Setting up the workflow Connect Reddit โข In n8n, create a Reddit credential. โข Add the subreddits and keywords you want to track. Connect Google Sheets โข Make a copy of the database sheet. โข Connect your Google account in n8n. Connect OpenAI โข Add your OpenAI API key as a credential. โข The AI will summarize posts, extract pain points, and suggest content ideas. Run the workflow โข The workflow will search Reddit on a schedule. โข Results are processed by AI and automatically added to your Google Sheet.
by Noman Mohammad
How it Works This workflow builds a free lead generation system that scrapes emails from Google Maps listings and exports them directly into Google Sheets. Itโs built in n8n using HTTP requests and JavaScriptโno paid APIs required. Hereโs what it does at a high level: ๐ Scrapes business listings from Google Maps based on search queries (e.g., โMiami lawyersโ) ๐ Extracts real business website URLs using regex filtering ๐ง Finds and validates email addresses from each website ๐งน Cleans data by removing duplicates and invalid entries ๐ Exports clean email lists into Google Sheets automatically Set Up Steps Estimated setup time: 1โ2 hours Create a Google Sheet with two tabs: searches โ add your search queries (e.g., โCalgary dentistโ) emails โ results will be stored here automatically Connect Google Sheets credentials in n8n Update your Google Sheet document ID in the workflow nodes Test with small batches first, then scale up ๐ Get More Resources & Advanced Workflows For additional resources, advanced automation tutorials, and business strategies that help you generate more leads and grow your agency, check out my website: ๐ Noman Mohammad Youโll find downloads, guides, and proven systems used by successful marketers and entrepreneurs.
by Rapiwa
Who is this for? This workflow is designed for online store owners, customer-success teams, and marketing operators who want to automatically verify customers' WhatsApp numbers and deliver order updates or invoice links via WhatsApp. It is built around WooCommerce order WooCommerce Trigger (order.updated) but is easily adaptable to Shopify or other platforms that provide billing and line_items in the WooCommerce Trigger payload. What this Workflow Does / Key Features Listens for WooCommerce order events (example: order.updated) via a Webhook or a WooCommerce trigger. Filters only orders with status "completed" and maps the payload into a normalized object: { data: { customer, products, invoice_link } } using the Code node Order Completed check. Iterates over line items using SplitInBatches to control throughput. Cleans phone numbers (Clean WhatsApp Number code node) by removing all non-digit characters. Verifies whether the cleaned phone number is registered on WhatsApp using Rapiwa's verify endpoint (POST https://app.rapiwa.com/api/verify-whatsapp). If verified, sends a templated WhatsApp message via Rapiwa (POST https://app.rapiwa.com/api/send-message). Appends an audit row to a "Verified & Sent" Google Sheet for successful sends, or to an "Unverified & Not Sent" sheet for unverified numbers. Uses Wait and batching to throttle requests and avoid API rate limits. Requirements HTTP Bearer credential for Rapiwa (example name in flow: Rapiwa Bearer Auth). WooCommerce API credential for the trigger (example: WooCommerce (get customer)) Running n8n instance with nodes: WooCommerce Trigger, Code, SplitInBatches, HTTP Request, IF, Google Sheets, Wait. Rapiwa account and a valid Bearer token. Google account with Sheets access and OAuth2 credentials configured in n8n. WooCommerce store (or any WooCommerce Trigger source) that provides billing and line_items in the payload. How to Use โ step-by-step Setup 1) Credentials Rapiwa: Create an HTTP Bearer credential in n8n and paste your token (flow example name: Rapiwa Bearer Auth). Google Sheets: Add an OAuth2 credential (flow example name: Google Sheets). WooCommerce: Add the WooCommerce API credential or configure a Webhook on your store. 3) Configure Google Sheets The exported flow uses spreadsheet ID: 1S3RtGt5xxxxxxxXmQi_s (Sheet gid=0) as an example. Replace with your spreadsheet ID and sheet gid. Ensure your sheet column headers exactly match the mapping keys listed below (case and trailing spaces must match or be corrected in the mapping). 5) Verify HTTP Request nodes Verify endpoint: POST https://app.rapiwa.com/api/verify-whatsapp โ sends { number } (uses HTTP Bearer credential). Send endpoint: POST https://app.rapiwa.com/api/send-message โ sends number, message_type=text, and a templated message that uses fields from the Clean WhatsApp Number output. Google Sheet Column Structure The Google Sheets nodes in the flow append rows with these column keys. Make sure the spreadsheet headers A Google Sheet formatted like this โค sample | Name | Number | Email | Address | Product Title | Product ID | Total Price | Invoice Link | Delivery Status | Validity | Status | |----------------|---------------|-------------------|------------------------------------------|-----------------------------|------------|---------------|--------------------------------------------------------------------------------------------------------------|-----------------|------------|-----------| | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs | Air force 1 Fossil 1:1 - 44 | 238 | BDT 5500.00 | Invoice link | completed | verified | sent | | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs h#1168 rd#10 av#10 mirpur dohs dhaka | Air force 1 Fossil 1:1 - 44 | 238 | BDT 5500.00 | Invoice link | completed | unverified | not sent | Important Notes Do not hard-code API keys or tokens; always use n8n credentials. Google Sheets column header names must match the mapping keys used in the nodes. Trailing spaces are common accidental problems โ trim them in the spreadsheet or adjust the mapping. The IF node in the exported flow compares to the string "true". If the verify endpoint returns boolean true/false, convert to string or boolean consistently before the IF. Message templates in the flow reference $('Clean WhatsApp Number').item.json.data.products[0] โ update templates if you need multiple-product support. Useful Links Dashboard:** https://app.rapiwa.com Official Website:** https://rapiwa.com Documentation:** https://docs.rapiwa.com Support & Help WhatsApp**: Chat on WhatsApp Discord**: SpaGreen Community Facebook Group**: SpaGreen Support Website**: https://spagreen.net Developer Portfolio**: Codecanyon SpaGreen
by Oneclick AI Squad
This n8n workflow automates airline customer support by classifying travel-related questions, fetching relevant information, generating AI answers, and delivering structured responses to users. It ensures accurate travel information delivery, tracks user satisfaction, and logs interactions for future insights โ reducing manual support load and improving customer experience. Key Features Allows users to ask airline/travel questions directly through chat via webhook integration. Automatically classifies questions into categories like baggage, refunds, visas, bookings, and travel info. Fetches verified travel knowledge and generates responses using AI. Performs satisfaction check and offers human support if needed. Logs all conversations and system responses for analytics and support auditing. Workflow Process The Webhook Entry Point node receives passenger questions from chat/website (e.g., WhatsApp, web chat widget, or API). The Data Extraction & Cleaning node formats the user query by removing noise and structuring text. The Question Categorization node uses AI to classify the inquiry (e.g., baggage policy, cancellation rules, destination info). The Category Parsing node routes the query to the appropriate context source or knowledge logic. The Knowledge Retrieval node fetches verified travel or airline-specific information. The AI Response Generator node produces a natural, accurate customer-facing reply using the retrieved context. The Response Formatting node adds clarity, structured bullet points, links, and travel guidance tips. The Satisfaction Check node asks if the user is happy with the answer and branches: If satisfied โ continue to logging If not satisfied โ send request to human support channel The Human Escalation Path node hands unresolved queries to human support teams. The Interaction Logger node stores conversation data (question, category, AI response, feedback status) in a database. The Final Delivery node sends the formatted response back to the user chat channel. Setup Instructions Import the workflow into n8n and configure the Webhook Entry Point with your chat platform or airline support portal. Add OpenAI API credentials in the AI Response Generator and Categorization nodes. Set up your Knowledge Retrieval source (e.g., internal travel database, API, or curated knowledge file). Connect a database (e.g., PostgreSQL, MySQL, Supabase, MongoDB) to store conversation logs and user behavior. Configure optional human support integration (Slack, email, CRM, or support desk tool). Test the workflow by sending sample airline queries (e.g., โBaggage limit to Dubai?โ or โHow to reschedule my flight?โ). Prerequisites n8n instance with webhook, AI, and database nodes enabled. OpenAI API key for AI classification and response generation. Airline or travel knowledge source (API or internal knowledge base). Database connection for logging queries and satisfaction responses. Customer chat channel setup (WhatsApp, website widget, CRM integration, or Telegram bot). Modification Options Enhance the Knowledge Retrieval step to pull real-time data from flight APIs, visa APIs, or airline portals. Add language translation to support global passengers. Extend Satisfaction Logic to auto-escalate urgent cases (e.g., flight delays, lost baggage complaints). Build self-service functions like: Flight status lookup Refund eligibility checker Visa requirement assistant Customize the Response Formatting to include buttons/links (e.g., check baggage rules, contact support). Explore More AI Travel Workflows: Get in touch with us for custom airline automation!
by Joel Gamble
This workflow pulls news articles from NewsAPI, Mediastack, and CurrentsAPI on a scheduled basis. Each providerโs results are normalized into a consistent schema, then written into your database (NocoDB by default). Use case: automated aggregation of categorized news for content pipelines, research agents, or editorial queues. What You Must Update Before Running 1. API Keys Replace all placeholder keys: call newsapi.org - Top Headlines โ update API_KEY in URL call newsapi.org - categories โ update API_KEY call mediastack โ update "ACCESS_KEY" in JSON call currentsapi โ update "API_KEY" param 2. Database Connection Workflow uses NocoDB to store results. You must: Update the NocoDB API Token credential to your own Ensure your table includes the fields used in the create operations (source_category, title, summary, author, sources, content, images, publisher_date, etc.) If you prefer Google Sheets, Airtable, or another DB: Replace each NocoDB node with your equivalent โcreate rowโ operation The Set nodes already provide all normalized fields you need 3. Scheduling All schedulers are disabled by default. Enable the following so the workflow runs automatically: NewsAPI โ Top Headlines** NewsAPI โ Categories** Mediastack** CurrentsAPI** You may change the run times, but all four must be scheduled for the workflow to function as designed. What You Can Configure 1. Categories Defined in: newsapi.org categories mediastack categories Edit these arrays to pull only the categories you care about or to match your API plan limits. 2. Article Limits Adjust article_limit in: newsapi.org categories mediastack categories currentsapi config