by Oneclick AI Squad
A hands-free travel planning assistant that accepts voice messages via WhatsApp and Telegram, understands natural language travel requests, searches across multiple providers, and automatically books to your calendar with smart recommendations. How it works Voice Message Reception - WhatsApp/Telegram webhooks capture incoming voice notes and calls Audio Transcription - Converts voice to text using OpenAI Whisper or Google Speech-to-Text Intent Classification - Claude AI analyzes the request to determine travel intent and parameters Context Enrichment - Pulls user preferences, past trips, and budget profiles from database Multi-Source Travel Search - Queries flights (Skyscanner), hotels (Booking.com), activities in parallel Smart Filtering & Ranking - AI applies user preferences, budget constraints, and optimal timing Natural Response Generation - Claude crafts conversational voice-friendly responses Calendar Auto-Add - Creates Google Calendar events with travel details and reminders Voice Response Delivery - Sends text + voice message back via original messaging platform Confirmation & Booking Links - Provides quick-action buttons for booking or modifying search Proactive Follow-ups - Sends price drop alerts and departure reminders Multi-Turn Conversation - Maintains context for refinement requests Setup Steps Import workflow into n8n Configure credentials: Anthropic API - Claude AI for NLP and response generation OpenAI API - Whisper for voice transcription WhatsApp Business API - Voice message reception and sending Telegram Bot API - Alternative messaging platform Google Calendar API - Automatic event creation Flight Search API - Skyscanner, Amadeus, or Kiwi.com Hotel API - Booking.com or Hotels.com partner API Google Sheets - User preferences and conversation history MongoDB or PostgreSQL - Conversation state management Set up WhatsApp Business account and webhook Create Telegram bot via @BotFather Configure Google Calendar shared calendar for travel Populate user preferences sheet with defaults Set API keys for travel search providers Activate workflow and test with sample voice message Sample Voice Requests Simple Flight Search: "Hey, find me cheap flights to Paris next month" Complex Multi-City: "I need to go to Tokyo in March for a week, then Bangkok for 3 days, budget is $2000 total" Hotel Only: "Book a hotel in Barcelona for May 15th to 20th, somewhere near the beach under $150 per night" Full Package: "Plan a romantic weekend in Santorini for our anniversary in June, nice hotel with sunset view, under $3000 for two people" Activity Search: "What are the best things to do in Amsterdam for 3 days, we like museums and food tours" Calendar Query: "When am I flying to London next month? And can you add a reminder 2 days before?" Voice Message Webhook Payload { "platform": "whatsapp", "messageId": "wamid.ABC123XYZ", "from": "+15551234567", "timestamp": 1735804800, "type": "audio", "audio": { "id": "audio_id_12345", "mimeType": "audio/ogg", "sha256": "abc123...", "duration": 15, "url": "https://media.whatsapp.com/audio/abc123" }, "context": { "conversationId": "conv-user-001", "previousMessageId": null } } Enterprise Features Voice Intelligence: Multi-language transcription (30+ languages) Accent-adaptive recognition Background noise filtering Speaker emotion detection for urgency Smart Travel Search: Multi-provider aggregation (flights, hotels, activities) Real-time price comparison Flexible date search (±3 days optimization) Budget-aware filtering Loyalty program integration AI-Powered Personalization: Learns from past bookings and preferences Remembers dietary restrictions, seating preferences Adapts to budget patterns Suggests destinations based on season and interests Proactive Assistance: Price drop alerts for saved searches Flight delay notifications Weather warnings before departure Packing list generation Travel insurance reminders Calendar Intelligence: Conflict detection with existing events Travel time buffer insertion Timezone-aware scheduling Shared calendar support for group trips Automatic itinerary attachment Security & Privacy: End-to-end encryption for voice messages PII redaction in logs Secure credential storage GDPR-compliant data handling User data deletion on request Multi-Platform Support: WhatsApp Business Telegram Facebook Messenger SMS fallback Web widget integration
by Cheng Siong Chin
How It Works This workflow automates business intelligence reporting by aggregating data from multiple sources, processing it through AI models, and delivering formatted dashboards via email. Designed for business analysts, operations managers, and executive teams, it solves the challenge of manually compiling metrics from disparate systems into coherent reports. The system triggers on schedule or webhook, extracting data from Google Sheets, databases, and APIs. Raw data flows through transformation nodes that calculate KPIs, generate trend analyses, and create visualizations. AI models (OpenAI) provide natural language insights and anomaly detection. Results populate multiple dashboard templates—executive summary, departmental metrics, and detailed analytics—each tailored to specific stakeholder needs. Formatted reports are automatically distributed via Gmail with embedded charts and actionable recommendations. This eliminates hours of manual data gathering, reduces reporting errors, and ensures stakeholders receive timely, consistent insights. Setup Steps Configure Google Sheets credentials and specify source spreadsheet IDs Set up database connections (PostgreSQL, MySQL) with read-only access Add OpenAI API key for GPT-4 analytics and narrative generation Set Gmail OAuth credentials for automated email delivery Define recipient lists for each dashboard type (executive, departmental, detailed) Customize dashboard templates with company branding and preferred KPIs Prerequisites Active Google Workspace account with Sheets and Gmail access. Use Cases Automated weekly executive dashboards with YoY comparisons. Customization Modify dashboard templates to match corporate branding standards. Benefits Reduces report preparation time by 80% through full automation.
by Ranjan Dailata
Disclaimer Please note - This workflow is only available on n8n self-hosted as it’s making use of the community node for the Decodo Web Scraping This n8n workflow automates the process of scraping, analyzing, and summarizing Amazon product reviews using Decodo’s Amazon Scraper, OpenAI GPT-4.1-mini, and Google Sheets for seamless reporting. It turns messy, unstructured customer feedback into actionable product insights — all without manual review reading. Who this is for This workflow is designed for: E-commerce product managers** who need consolidated insights from hundreds of reviews. Brand analysts and marketing teams** performing sentiment or trend tracking. AI and data engineers** building automated review intelligence pipelines. Sellers and D2C founders** who want to monitor customer satisfaction and pain points. Product researchers** performing market comparison or competitive analysis. What problem this workflow solves Reading and analyzing hundreds or thousands of Amazon reviews manually is inefficient and subjective. This workflow automates the entire process — from data collection to AI summarization — enabling teams to instantly identify customer pain points, trends, and strengths. Specifically, it: Eliminates manual review extraction from product pages. Generates comprehensive and abstract summaries using GPT-4.1-mini. Centralizes structured insights into Google Sheets for visualization or sharing. Helps track product sentiment and emerging issues over time. What this workflow does Here’s a breakdown of the automation process: Set Input Fields Define your Amazon product URL, geo region, and desired file name. Decodo Amazon Scraper Fetches real-time product reviews from the Amazon product page, including star ratings and AI-generated summaries. Extract Reviews Node Extracts raw customer reviews and Decodo’s AI summary into a structured JSON format. Perform Review Analysis (GPT-4.1-mini) Uses OpenAI GPT-4.1-mini to create two key summaries: Comprehensive Review: A detailed summary that captures sentiment, recurring themes, and product pros/cons. Abstract Review: A concise executive summary that captures the overall essence of user feedback. Persist Structured JSON Saves the raw and AI-enriched data to a local file for reference. Append to Google Sheets Uploads both the original reviews and AI summaries into a Google Sheet for ongoing analysis, reporting, or dashboard integration. Outcome: You get a structured, AI-enriched dataset of Amazon product reviews — summarized, searchable, and easy to visualize. Setup Pre-requisite If you are new to Decode, please signup on this link visit.decodo.com Please make sure to install the n8n custom node for Decodo. Step 1 — Import the Workflow Open n8n and import the JSON workflow template. Ensure the following credentials are configured: Decodo Credentials account → Decodo API Key OpenAI account → OpenAI API Key Google Sheets account → Connected via OAuth Step 2 — Input Product Details In the Set node, replace: amazon_url → your product link (e.g., https://www.amazon.com/dp/B0BVM1PSYN) geo → your region (e.g., US, India) file_name → output file name (optional) Step 3 — Connect Google Sheets Link your desired Google Sheet for data storage. Ensure the sheet columns match: product_reviews all_reviews Step 4 — Run the Workflow Click Execute Workflow. Within seconds, your Amazon product reviews will be fetched, summarized by AI, and logged into Google Sheets. How to customize this workflow You can tailor this workflow for different use cases: Add Sentiment Analysis** — Add another GPT node to classify reviews as positive, neutral, or negative. Multi-Language Reviews** — Include a language detection node before summarization. Send Alerts** — Add a Slack or Gmail node to notify when negative sentiment exceeds a threshold. Store in Database** — Replace Google Sheets with MySQL, Postgres, or Notion nodes. Visualization Layer** — Connect your Google Sheet to Looker Studio or Power BI for dynamic dashboards. Alternative AI Models** — Swap GPT-4.1-mini with Gemini 1.5 Pro, Claude 3, or Mistral for experimentation. Summary This workflow transforms the tedious process of reading hundreds of Amazon reviews into a streamlined AI-powered insight engine. By combining Decodo’s scraping precision, OpenAI’s summarization power, and Google Sheets’ accessibility, it enables continuous review monitoring. In one click, it delivers comprehensive and abstract AI summaries, ready for your next product decision meeting or market strategy session.
by alephantAI
Quick overview This workflow exposes a paid webhook endpoint, verifies budget via Alephant usage analytics, routes the request through an OpenAI-based agent to pick the most cost-effective model, runs the chosen model through Alephant for cost tracking, then returns results with per-call margin reporting to Discord and optional throttling. How it works Receives a POST request on a webhook endpoint that is intended to be paid per call over x402. Checks current budget status using Alephant Usage analytics and returns a 402-style JSON error response if the workspace budget is exceeded. Sends the buyer request and budget context to an OpenAI-based routing agent (via Alephant) that calls Alephant UsageSummary and outputs strict JSON selecting a model tier and refined prompt. Runs the refined prompt on the chosen model using Alephant AI to capture per-call usage and cost metadata. Calculates per-call profit and margin percentage from fixed revenue, token usage, and an Alephant fee estimate. Responds to the webhook caller with the model result plus net margin metrics, posts the margin line to Discord, and calls a policy write-back HTTP endpoint to throttle if margin drops below 20%. Setup Install the Alephant community nodes and create an Alephant Virtual Key credential in n8n. Create an OpenAI credential that uses Base URL https://ai.alephant.io/v1 with your Alephant virtual key as the API key, and select it for the agent’s language model. Configure a Discord Webhook credential and set it on the Discord node used for the margin feed. Update the Per-Call P&L constants (price per call, token rate per 1k, external spend, and fee percentage) to match your real unit economics. Replace https://ai.alephant.io/REPLACE_WITH_POLICY_ENDPOINT with your real policy/throttling endpoint and set the ALEPHANT_API_KEY environment variable used for the Authorization header. Copy the webhook URL for the paid endpoint and configure your x402 buyer/agent to call this endpoint with the expected request body fields (for example, topic and runId). Requirements Alephant account with a Virtual Key, free tier works (https://alephant.io) Alephant community nodes installed: Cost Control, AI Analytics, AI Analytics Tool OpenAI credential with Base URL set to https://ai.alephant.io/v1 and your Alephant virtual key as the API key A Discord channel webhook for the margin feed Optional: an Alephant policy endpoint if you want the auto-throttle write-back Customization Change the service by editing the agent system prompt (research summary, wallet-risk scoring, data enrichment, etc.) Adjust the model tiers and routing logic the agent chooses between (premium vs economy) Set your real price, token rate, and fee in the Per-Call P&L node Tune the margin threshold that triggers throttling (default 20%) in the Margin Thin node Swap Discord for Slack or email, or add a Google Sheets row per call Register the webhook as a paid x402 endpoint in Alephant to charge per request in USDC Additional info Full information: https://developers.alephant.io/docs/overview/showcase/n8n-workflow This workflow turns an n8n webhook into a paid, self-funding AI endpoint. A buyer pays per request in USDC over x402; Alephant verifies and settles the payment before the request reaches n8n, so revenue is booked before any work runs. A budget guard gates the call, then an AI agent reads recent spend through the Alephant UsageSummary tool and picks the cheapest model that still does the job. The work runs through Alephant for full cost tracking, and a P&L step calculates net margin (revenue minus token spend minus fee) on every single call. Healthy calls just respond and log; calls that drop below the margin threshold trigger a write-back to throttle, so a bad call never quietly loses money. The agent's own reasoning is also routed through Alephant via the OpenAI Base URL override, so the thing watching cost appears in its own dashboard. Notes: the Alephant analytics tool is read-only, so enforcement happens through the HTTP policy node, not the tool. After you run the Budget Guard node once, map the real budget field into the Budget OK node, since field names depend on your workspace response. Hard budget caps still live in the Alephant Budget Circuit Breaker; this workflow tunes within those rails.
by Incrementors
Description Connect Fireflies to this workflow once and every meeting you record becomes a LinkedIn post draft automatically. The moment Fireflies finishes transcribing a call, it fires a signal to the workflow — which fetches the full transcript, extracts real insights, and uses GPT-4o-mini to write a 180–280 word scroll-stopping post with a hook, key learnings, and hashtags. The finished draft is saved to Google Drive and previewed in Slack so you can review and publish when ready. Built for founders, consultants, and sales leaders who want a consistent LinkedIn presence without spending time writing from scratch after every call. What This Workflow Does Triggers automatically when a call ends** — Fireflies sends a signal the moment transcription completes, so no manual input is ever needed Validates every incoming signal** — Checks that the signal contains a valid meeting ID and silently discards invalid or test pings Extracts real meeting insights** — Pulls speaker dialogue, Fireflies-detected pricing and question sentences, keywords, overview, and sentiment from the full transcript Writes a structured LinkedIn post** — GPT-4o-mini produces a hook, a specific insight paragraph, 3–5 emoji learnings, a closing question, and hashtags — all grounded in your actual meeting content Saves a complete Google Doc** — Stores the post alongside meeting reference details, participants, keywords, action items, and a link back to the Fireflies transcript Previews the post in Slack** — Posts the first 350 characters of the draft to your Slack channel so your team can review before the post goes live Exits cleanly for incomplete transcripts** — If Fireflies hasn't finished processing yet, the workflow stops silently without errors Setup Requirements Tools Needed n8n instance (self-hosted or cloud) Fireflies.ai account with webhook access OpenAI account with GPT-4o-mini API access Google Drive (one folder where posts will be saved) Slack workspace with OAuth2 app configured Credentials Required Fireflies API key (pasted directly into 5. Set — Config Values) OpenAI API key Google Drive OAuth2 Slack OAuth2 Estimated Setup Time: 15–20 minutes Step-by-Step Setup Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import Activate the workflow and copy the webhook URL — Toggle the workflow to Active → click on node 1. Webhook — Fireflies Transcript Done → copy the webhook URL shown Register the webhook in Fireflies — Log in to fireflies.ai → go to Settings → Developer Settings → Webhooks → paste the webhook URL → save Get your Fireflies API key — In Fireflies, go to Settings → Integrations → copy your API key Fill in Config Values — Open node 5. Set — Config Values → replace all placeholders: | Field | What to enter | |---|---| | YOUR_FIREFLIES_API_KEY | Your Fireflies API key from step 4 | | YOUR_GOOGLE_DRIVE_FOLDER_ID | The folder ID from your Google Drive URL (the string after /folders/ in the URL when you open the folder) | | #content-team | Your Slack channel name including the # | | YOUR FULL NAME | The author's full name (used in the post sign-off) | | YOUR JOB TITLE | The author's job title (e.g. CEO, SEO Consultant) | | YOUR COMPANY NAME | Your company name (used in the AI prompt) | Connect OpenAI — Open node 11. OpenAI — GPT-4o-mini Model → click the credential dropdown → add your OpenAI API key → test the connection Connect Google Drive — Open node 13. Google Drive — Save LinkedIn Post → click the credential dropdown → add Google Drive OAuth2 → sign in with your Google account → authorize access Connect Slack — Open node 14. Slack — Send Post Preview → click the credential dropdown → connect your Slack workspace via OAuth2 → invite the n8n bot to your channel in Slack (/invite @n8n) > ⚠️ The workflow must be Active before registering the webhook in Fireflies. An inactive workflow will not receive signals from Fireflies. Activate first, then paste the URL. How It Works (Step by Step) Step 1 — Webhook: Fireflies Transcript Done This step listens for a signal from Fireflies. Every time Fireflies finishes transcribing a meeting, it sends a POST request to this webhook URL containing the meeting ID. No manual trigger is needed — it fires automatically after every recorded call. Step 2 — Code: Extract Meeting ID The meeting ID is extracted from the incoming signal. Fireflies can send the payload in several different formats, so this step checks all possible locations and pulls the ID safely. If no meeting ID is found at all, a flag is set to mark the signal as invalid. Step 3 — IF: Valid Meeting ID? This is the first gate check. If a valid meeting ID was found (YES path), the workflow continues to fetch the transcript. If the signal was invalid or contained no meeting ID (NO path), the workflow routes to 4. Set — Invalid Webhook Skip and stops cleanly. Step 4 — Set: Invalid Webhook Skip This step handles the invalid signal case. It sets a brief message confirming the webhook was skipped and the workflow ends here for that trigger. Step 5 — Set: Config Values Your Fireflies API key, Google Drive folder ID, Slack channel, author name, author title, and company name are stored here. The validated meeting ID from step 2 is also carried forward so the transcript fetch can use it directly. Step 6 — HTTP: Fetch Transcript A request is sent to the Fireflies API using your API key and the meeting ID. It retrieves the complete transcript including all sentences with speaker labels, AI-detected pricing and task sentences, keyword summary, overview, gist, bullet points, and sentiment percentages. Step 7 — Code: Process Transcript Data The raw transcript is processed into clean, usable fields. All sentences are combined into a readable text block (limited to 5,000 characters for GPT efficiency). Fireflies-flagged pricing sentences, question sentences, and task sentences are extracted separately. Sentiment percentages, keywords, action items, and overview are all pulled out. A formatted document title is generated automatically using the meeting name and date. If the transcript is empty or not yet available, a flag is set for the next gate check. Step 8 — IF: Transcript Ready? This is the second gate check. If transcript data is available (YES path), the workflow moves to AI post writing. If Fireflies hasn't finished processing the transcript yet (NO path), the workflow routes to 9. Set — Transcript Not Ready Skip and stops cleanly without errors. Step 9 — Set: Transcript Not Ready Skip This step handles the not-ready case. It logs the meeting ID and a message confirming the transcript was skipped. The workflow ends here for that run. Step 10 — AI Agent: Write LinkedIn Post GPT-4o-mini receives the author details, meeting context, Fireflies summary, bullet points, keywords, action items, questions raised in the call, and the transcript excerpt. It writes a 180–280 word LinkedIn post following a fixed structure: a scroll-stopping hook (not starting with "I" or "We"), a specific insight paragraph in first person, 3–5 emoji key learnings pulled from real transcript content, a closing question or call to action, and 4–5 hashtags. A sign-off with the author's name and title is added at the end. Step 11 — OpenAI: GPT-4o-mini Model This is the language model powering the writing step. It runs at temperature 0.8 for creative, varied output and is capped at 700 tokens to keep the post within the target word count. Step 12 — Code: Build Doc and Slack Message The AI-generated post is assembled into a complete Google Doc with the post text at the top, followed by meeting reference details: title, date, duration, participants, Fireflies transcript link, keywords, and action items. A Slack preview is also built here — the first 350 characters of the post plus meeting details and a link back to the Fireflies transcript. Step 13 — Google Drive: Save LinkedIn Post The complete document is saved to your specified Google Drive folder. The file is named automatically using the meeting title and date (e.g. "LinkedIn Post — Client Strategy Call — 14 Apr 2025"). Step 14 — Slack: Send Post Preview The preview message is posted to your Slack channel at the same time the Google Doc is being saved. Your team sees the post hook and first paragraph instantly, with the full document link available in Drive for review before publishing. Key Features ✅ Fully automatic — zero manual trigger — Fireflies fires the workflow the moment any call transcript is ready, no human action needed ✅ Two validation gates — Invalid webhook signals and unready transcripts both exit cleanly without causing errors or empty posts ✅ Grounded in real content — The AI prompt feeds actual transcript sentences, keywords, bullet points, and action items so posts are specific, not generic ✅ Fixed post structure every time — Hook, insight paragraph, emoji learnings, closing CTA, hashtags, and sign-off are enforced on every run ✅ Auto-named Google Docs — Files are named by meeting title and date automatically so your Drive folder stays organized without any manual renaming ✅ Slack preview before publishing — Your team sees the draft before it goes live — one review step, no surprises ✅ Handles all Fireflies payload formats — The extraction step checks every possible payload structure so the webhook never silently fails due to a format change ✅ Temperature tuned for creative writing — GPT runs at 0.8 so each post has a natural, human tone rather than a repetitive AI pattern Customisation Options Change the post length target — In node 10. AI Agent — Write LinkedIn Post, edit the instruction from "180 to 280 words" to a different range. Also adjust maxTokens in node 11. OpenAI — GPT-4o-mini Model accordingly (e.g. set to 900 for longer posts). Add a second post format — After node 10. AI Agent — Write LinkedIn Post, add a second AI Agent step with a different prompt structure (e.g. a short 3-sentence insight post or a carousel-style numbered list) to generate two post options per call instead of one. Route posts by meeting type — In node 5. Set — Config Values, add a postCategory field. Then add an IF check after step 7 that reads the meeting title — if it contains "demo" or "sales", use a sales-focused prompt; if it contains "team" or "internal", use a thought leadership prompt. Save to a dated subfolder in Drive — In node 12. Code — Build Doc and Slack Message, generate a folder path string using the meeting date (e.g. 2025/April) and use the Google Drive step to create or find that subfolder before saving, keeping your Drive organized by month automatically. Add a Notion database entry — After node 13. Google Drive — Save LinkedIn Post, add a Notion API HTTP request to create a new row in a content calendar database with the post title, meeting date, status (Draft), and Google Drive link for content planning visibility. Troubleshooting Workflow not triggering when a call ends: Confirm the workflow is Active before expecting Fireflies to fire it — inactive workflows do not receive webhooks Log in to Fireflies → Settings → Developer Settings → Webhooks → confirm the webhook URL is saved correctly and matches the URL from node 1. Webhook — Fireflies Transcript Done Check that your Fireflies plan includes webhook support — some plans restrict this feature Fireflies API key error or empty transcript: Confirm YOUR_FIREFLIES_API_KEY in node 5. Set — Config Values is replaced with your actual key — not the placeholder text Get your key from fireflies.ai → Settings → Integrations → API Key If the transcript returns empty, the call may not have been processed yet by Fireflies — the workflow exits cleanly via 9. Set — Transcript Not Ready Skip in this case OpenAI not generating the post: Confirm the API key is connected in node 11. OpenAI — GPT-4o-mini Model and your account has available credits Check the execution log of node 10. AI Agent — Write LinkedIn Post for the raw error message If the post is under 50 characters, node 12. Code — Build Doc and Slack Message catches this and outputs a failure message instead of a broken doc Google Drive not saving the file: Confirm the Google Drive OAuth2 credential in node 13. Google Drive — Save LinkedIn Post is connected and not expired — re-authorize if needed Check that YOUR_GOOGLE_DRIVE_FOLDER_ID in node 5. Set — Config Values is the folder ID from your Drive URL, not the full URL — copy only the string after /folders/ Make sure the Google account you authorized has write access to the target folder Slack preview not arriving: Confirm the Slack OAuth2 credential in node 14. Slack — Send Post Preview is connected and authorized Check that the channel name in node 5. Set — Config Values includes the # prefix and matches your Slack channel exactly Type /invite @n8n in the target Slack channel to ensure the bot has permission to post Support Need help setting this up or want a custom version built for your team or agency? 📧 Email: info@incrementors.com 🌐 Website: https://www.incrementors.com/
by Mychel Garzon
Quick Overview This workflow receives GDPR data subject access requests via a webhook, searches Microsoft 365 for related emails and documents using Microsoft Graph eDiscovery and SharePoint search, drafts a DPO cover letter with a local Ollama model, archives a report to SharePoint, logs the request to Excel, and notifies the DPO. How it works Receives a DSAR request via a POST webhook and validates required fields like the data subject’s email address. Creates a Microsoft Graph eDiscovery case and a tenant-wide eDiscovery search across all Exchange Online mailboxes for messages involving the subject. Starts an asynchronous eDiscovery statistics estimate, waits, and then fetches the latest estimate results (mailbox and item counts). Searches SharePoint Online and OneDrive for Business for matching items in Microsoft 365. Aggregates and sanitizes the findings into counts and file links, then uses a local Ollama (via LangChain) model to draft a short cover letter using only the statistics. Builds a text report, uploads it to a restricted SharePoint library, appends/updates a compliance register in Microsoft Excel, emails the internal DPO team for review, and returns a 200 Accepted webhook response with request metadata. Setup Configure Microsoft Graph OAuth2 credentials with application permissions for the Security/eDiscovery endpoints (for example, eDiscovery.ReadWrite.All) and ensure admin consent is granted. Configure Microsoft SharePoint OAuth2 credentials with permissions to search and upload files (for example, Sites.Read.All and Files.Read.All) and select the target SharePoint site/library for archiving. Configure Microsoft Outlook and Microsoft Excel credentials, set the DPO/Legal recipient address, and point the Excel node at your compliance register workbook/table stored in SharePoint. Set up Ollama (pull the llama3 model and ensure the Ollama base URL is reachable from n8n) for the cover letter generation step. Copy the production webhook URL for the DSAR endpoint and configure your intake form or portal to POST the expected fields (subjectName, subjectEmail, requestType, requestDate, requestRef).
by Tashfeen Ahmad
Quick Overview This workflow receives inbound lead messages from HighLevel (LeadConnector), pulls prior conversation history from Supabase/Postgres, uses OpenAI to generate a short reply, and updates HighLevel custom fields (qualification data, lead disposition, and appointments) including checking availability and booking or rescheduling. How it works Receives an inbound message event from HighLevel (LeadConnector) via a webhook. If the payload indicates an appointment was booked, it fetches the contact’s upcoming appointments from HighLevel and stores the matching appointment event ID back on the contact record. If no appointment is indicated, it loads the lead’s previous chat history from Supabase, formats it into a readable transcript, and provides it as context to an OpenAI-powered conversational agent with Postgres chat memory. The agent qualifies the lead and, when appropriate, updates HighLevel custom fields (business type, inquiry volume, response time, team size, bottleneck, monthly revenue, AI experience) and the lead disposition using HighLevel API calls. When scheduling is needed, the agent calls a separate availability webhook that queries HighLevel calendar free slots and returns available times (or a no-availability message). After the agent produces the final short response, the workflow sends the message back to the lead in HighLevel conversations (for example, via SMS). Setup Create and connect credentials for OpenAI, Supabase, and Postgres (for the agent’s chat memory). Provide a HighLevel (LeadConnector) API access token and ensure the incoming webhook payload supplies it (plus Contact ID, Calendar ID, Location ID, and response channel/type). In HighLevel, create the required custom fields and update the workflow to use their field IDs (lead disposition, qualification fields, and the Event ID field). Configure the HighLevel workflow/integration that posts messages to the n8n webhook URL and maps the required customData fields (for example, “Contact Message”, “Lead Dispostions”, and calendar details). Keep the internal “get_availability” webhook URL reachable (or replace it with your own endpoint) so the agent can retrieve calendar free slots.
by Pinecone
Try it out This n8n workflow template lets you chat with your Google Drive documents (.docx, .json, .md, .txt, .pdf) using OpenAI and Pinecone vector database. It retrieves relevant context from your files in real time so you can get accurate, context-aware answers about your proprietary data—without the need to train your own LLM. Not interested in chunking and embedding your own data or figuring out which search method to use? Try our n8n quickstart for Pinecone Assistant here or check out the full workflow to chat with your Google Drive documents here. Prerequisites A Pinecone account A GCP project with Google Drive API enabled and configured An Open AI account and API key A Cohere account and API key Setup Create a Pinecone index in the Pinecone Console here Name your index n8n-dense-index Select OpenAI's text-embedding-3-small Set the Dimension to 1536 Leave everything else as default If you use a different index name, update the related nodes to reflect this change Use the Connect to Pinecone button to authenticate to Pinecone or if you self-host n8n, create a Pinecone credential and add your Pinecone API key directly Setup your Google Drive OAuth2 API, Open AI, and Cohere credentials in n8n Download these files and add them to a Drive folder named n8n-pinecone-demo in the root of your My Drive https://docs.pinecone.io/release-notes/2022.md https://docs.pinecone.io/release-notes/2023.md https://docs.pinecone.io/release-notes/2024.md https://docs.pinecone.io/release-notes/2025.md https://docs.pinecone.io/release-notes/2026.md Activate the workflow or test it with a manual execution to ingest the documents Enter the chat prompts to chat with the Pinecone release notes What support does Pinecone have for MCP? When was fetch by metadata released? Ideas for customizing this workflow Use your own data and adjust the chunking strategy Update the AI Agent System Message to reflect how the Pinecone Vector Store Tool will be used. Be sure to include info on what data can be retrieved using that tool. Update the Pinecone Vector Store Tool Description to reflect what data you are storing in the Pinecone index Need help? You can find help by asking in the Pinecone Discord community or filing an issue on this repo.
by Jonas Frewert
Blog Post Content Creation (Multi-Topic with Brand Research, Google Drive, and WordPress) Description This workflow automates the full lifecycle of generating and publishing SEO-optimized blog posts from a list of topics. It reads topics (and optionally brands) from Google Sheets, performs brand research, generates a structured HTML article via AI, converts it into an HTML file for Google Drive, publishes a draft post on WordPress, and repeats this for every row in the sheet. When the final topic has been processed, a single Slack message is sent to confirm completion and share links. How It Works 1. Input from Google Sheets A Google Sheets node reads rows containing at least: Brand (optional, can be defaulted) Blog Title or Topic A Split In Batches node iterates through the rows one by one so each topic is processed independently. 2. Configuration The Configuration node maps each row’s values into: Brand Blog Title These values are used consistently across brand research, content creation, file naming, and WordPress publishing. 3. Brand Research A Language Model Chain node calls an OpenRouter model to gather background information about the brand and its services. The brand context is used as input for better, on-brand content generation. 4. Content Creation A second Language Model Chain node uses the brand research and the blog title or topic to generate a full-length, SEO-friendly blog article. Output is clean HTML with: Exactly one `` at the top Structured ` and ` headings Semantic tags only No inline CSS No <html> or <body> wrappers No external resources 5. HTML Processing A Code node in JavaScript: Strips any markdown-style code fences around the HTML Normalizes paragraph breaks Builds a safe file name from the blog title Encodes the HTML as a binary file payload 6. Upload to Google Drive A Google Drive node uploads the generated HTML file to a specified folder. Each topic creates its own HTML file, named after the blog title. 7. Publish to WordPress An HTTP Request node calls the WordPress REST API to create a post. The post content is the generated HTML, and the title comes from the Configuration node. By default, the post is created with status draft (can be changed to publish if desired). 8. Loop Control and Slack Notification After each topic is processed (Drive upload and WordPress draft), the workflow loops back to Split In Batches to process the next row. When there are no rows left, an IF node detects that the loop has finished. Only then is a single Slack message sent to: Confirm that all posts have been processed Share links to the last generated Google Drive file and WordPress post Integrations Used OpenRouter - AI models for brand research and SEO content generation Google Sheets - Source of topics and (optionally) brands Google Drive - Storage for generated HTML files WordPress REST API - Blog post creation (drafts or published posts) Slack - Final summary notification when the entire batch is complete Ideal Use Case Content teams and agencies managing a queue of blog topics in a spreadsheet Marketers who want a hands-off pipeline from topic list to WordPress drafts Teams who need generated HTML files stored in Drive for backup, review, or reuse Any workflow where automation should handle the heavy lifting and humans only review the final drafts Setup Instructions Google Sheets Create a sheet with columns like Brand and Blog Title or Topic. In the Get Blog Topics node, set the sheet ID and range to match your sheet. Add your Google Sheets credentials in n8n. OpenRouter (LLM) Add your OpenRouter API key as credentials. In the OpenRouter Chat Model nodes, select your preferred models and options if you want to customize behavior. Google Drive Add Google Drive credentials. Update the folder ID in the Upload file node to your target directory. WordPress In the Publish to WordPress node, replace the example URL with your site’s REST API endpoint. Configure authentication (for example, Application Passwords or Basic Auth). Adjust the status field (draft or publish) to match your desired workflow. Slack Add Slack OAuth credentials. Set the channel ID in the Slack node where the final summary message should be posted. Run the Workflow Click Execute Workflow. The workflow will loop through every row in the sheet, generating content, saving HTML files to Drive, and creating WordPress posts. When all rows have been processed, a single Slack notification confirms completion.
by Thapani Sawaengsri
Description This workflow automates compliance validation between a policy/procedure and a corresponding uploaded document. It leverages an AI agent to determine whether the content of the document aligns with the expectations outlined in the provided procedure or policy. How It Works Document Upload A document (e.g., PDF) is uploaded via an HTTP Request Webhook. The content is processed into vector embeddings using a Qdrant vector store and an embedding model. Procedure Submission A policy/procedure text and description are submitted via a second HTTP Request Webhook. These serve as the basis for evaluating the uploaded document. AI-Based Validation The AI agent receives: The uploaded document (via vector embeddings) The submitted procedure/policy text The description/context It returns a structured compliance analysis including: Summary of Compliance (sections that align with policy) Summary of Non-Compliance (gaps or missing elements) Supporting Text Citations (document evidence) Confidence Level (0–100 score based on evidence quality) Setup Instructions Pre-Conditions / Requirements An n8n instance running with access to: Qdrant (for vector storage) An embedding model (e.g., OpenAI, HuggingFace, or local model) Optional: Microsoft Graph or another storage system for document retrieval. Workflow Setup HTTP Request Node 1: Document Upload Accepts binary document files (PDF, DOCX, etc.). Extracts text, generates embeddings, and stores them in Qdrant. Returns a spDocumentId for reference. HTTP Request Node 2: Procedure Submission Accepts a JSON payload with: { "procedure": "Policy or procedure text", "description": "Brief context or objective", "spDocumentId": "ID of the uploaded document" } Links the procedure to the previously uploaded document. Order of Operations Step 1: Upload the document. Step 2: Submit the procedure referencing the same spDocumentId. Step 3: AI agent evaluates compliance and returns results. Example Input & Output Example Input: Document Upload (Webhook 1) Request: Binary file upload (example_policy.pdf) Response: { "spDocumentId": "12345" } Example Input: Procedure Submission (Webhook 2) { "procedure": "All financial records must be retained for 7 years.", "description": "Retention policy compliance validation", "spDocumentId": "12345" } Example Output: AI Compliance Validation { "compliance_summary": "The document includes a 7-year retention requirement for invoices and payroll records.", "non_compliance_summary": "No reference to retention of vendor contracts.", "citations": [ { "text": "Invoices will be stored for 7 years.", "page": 4 } ], "confidence": 87 }
by Nguyen Thieu Toan
🤖 Build a customer service AI chatbot for Facebook Messenger with Google Gemini 📌 Overview A streamlined Facebook Messenger chatbot powered by AI with conversation memory. This is a simplified version designed for quick deployment, learning, and testing — not suitable for production environments. Base workflows: Smart message batching AI-powered Facebook Messenger chatbot use Data Table Smart human takeover & auto pause AI-powered Facebook Messenger chatbot 🎯 What This Workflow Does ✅ Core Features: Receives messages from Facebook Messenger via webhook Processes user messages with Google Gemini AI Maintains conversation context using Simple Memory node Automatically responds with AI-generated replies Handles webhook verification for Facebook setup Send image or video to customer through Facebook Messenger 🔹 Simplified Approach: Memory**: Simple Memory node (10-message window) Format**: Cleans text, strips markdown, truncates >1900 chars Response**: Single message delivery ⚠️ Limitations & Trade-offs: No Smart Batching → fragmented user messages cause spam-like replies No Human Takeover Detection → bot continues even when admin joins Basic Memory Management → no persistence, not reliable in production Basic Text Formatting → strips markdown, truncates brutally, no smart splitting 🚀 When to Upgrade Upgrade to full workflows when you need: Production deployment with reliability & persistence Analytics & tracking (query history, reports) Professional formatting (bold, italic, lists, code blocks) Handling long messages (>2000 chars) Smart batching for fragmented inputs Human handoff detection Full conversation persistence Key upgrades available: Smart message batching workflow Smart human takeover workflow ⚙️ Setup Requirements Facebook Setup Create Facebook App at developers.facebook.com Add Messenger product Configure webhook: URL: https://your-domain.com/webhook/your-path Verify token: secure string Subscribe to: messages, messaging_postbacks Generate Page Access Token Copy token to "Set Context" node n8n Setup Import workflow Edit "Set Context" node → update page_access_token Configure "Gemini Flash" node credentials Deploy workflow (must be publicly accessible) 🔄 How It Works User Message → Facebook Webhook → Validation ↓ Set Context (extract user_id, message, token) ↓ Mark Seen → Show Typing ↓ AI Agent (Gemini + 10-message memory) ↓ Format Output (remove markdown, truncate) ↓ Send Response via Facebook API 🏗️ Architecture Overview Section 1: Webhook & Initial Processing Facebook Webhook: handles GET (verification) & POST (messages) Confirm Webhook: returns challenge / acknowledges receipt Filters text messages only Blocks echo messages from bot itself Section 2: AI Processing with Memory Set Context: extracts user_id, message, token Seen & Typing: user feedback Conversation Memory: 10-message window, per-user isolation Process Merged Message: AI Agent with Jenix persona Gemini Flash: Google’s AI model for response generation Section 3: Format & Delivery Cuts replies >2000 chars, strips markdown Sends text via Facebook Graph API 🎨 Customisation Guide Bot Personality**: edit system prompt in "Process Merged Message" node Memory**: adjust contextWindowLength (default 10), change sessionKey if needed AI Model**: replace Gemini Flash with OpenAI, Anthropic Claude, or other LLMs 📌 Important Notes ⚠️ Production Warning: testing only, memory lost on n8n restart in queue mode 📊 No Analytics: no history storage, no reporting 🔧 Format Limitations: responses ≤1800 chars, markdown stripped, no complex formatting 🛠️ Troubleshooting Bot not responding** → check token, webhook accessibility, event subscriptions Memory not working** → verify session key, ensure not in queue mode, restart workflow Messages truncated** → adjust system prompt for conciseness, reduce response length 📜 License & Credits Created by: Nguyễn Thiệu Toàn (Jay Nguyen) Email: me@nguyenthieutoan.com Website: nguyenthieutoan.com n8n Creator: n8n.io/creators/nguyenthieutoan Company: GenStaff
by Davide
This workflow implements an AI-powered design and prototyping assistant that integrates Telegram, Google Gemini, and Google Stitch (MCP) to enable conversational UI generation and project management. Supported actions include: Creating new design projects Retrieving existing projects Listing projects and screens Fetching individual screens Generating new UI screens directly from text descriptions Key Advantages 1. ✅ Conversational Design Workflow Design and UI prototyping can be driven entirely through natural language. Users can create screens, explore layouts, or manage projects simply by chatting, without opening design tools. 2. ✅ Tight Integration with Google Stitch By leveraging the Stitch MCP API, the workflow provides direct access to structured design capabilities such as screen generation, project management, and UI exploration, avoiding manual API calls or custom scripting. 3. ✅ Intelligent Tool Selection The AI agent does not blindly call APIs. It first analyzes the user request, determines the required level of fidelity and intent, and then selects the most appropriate Stitch function or combination of functions. 4. ✅ Multi-Channel Support The workflow supports both generic chat triggers and Telegram, making it flexible for internal tools, demos, or production chatbots. 5. ✅ Security and Access Control Telegram access is restricted to a specific user ID, and execution only happens when a dedicated command is used. This prevents accidental or unauthorized usage. 6. ✅ Context Awareness with Memory The inclusion of conversational memory allows the agent to maintain context across interactions, enabling iterative design discussions rather than isolated commands. 7. ✅ Production-Ready Output Formatting Responses are automatically converted into Telegram-compatible HTML, ensuring clean, readable, and well-formatted messages without manual post-processing. 8. ✅ Extensible and Modular Architecture The workflow is highly modular: additional Stitch tools, AI models, or communication channels can be added with minimal changes, making it future-proof and easy to extend. How It Works This workflow functions as a Telegram-powered AI agent that leverages Google Stitch's MCP (Model Context Protocol) tools for design, UI generation, and product prototyping. It combines conversational AI, tool-based actions, and web search capabilities. Trigger & Authorization: The workflow is activated by an incoming message from a configured Telegram bot. A code node first checks the sender's Telegram User ID against a hardcoded value (xxx) to restrict access. Only authorized users can proceed. Command Parsing: An IF node filters messages, allowing the agent to proceed only if the message text starts with the command /stitch. This ensures the agent is only invoked intentionally. Query Preparation: The /stitch prefix is stripped from the message text, and the cleaned query, along with the user's ID (used as a session identifier), is passed to the main agent. AI Agent Execution: The core "Google Stitch Agent" node is an LLM-powered agent (using Google Gemini) equipped with: Tools: Access to several Google Stitch MCP functions (create_project, get_project, list_projects, list_screens, get_screen, generate_screen_from_text) and a Perplexity web search tool. Memory: A conversation buffer window to maintain context within a session. System Prompt: Instructs the agent to intelligently select and use the appropriate Stitch tools based on the user's design-related request (e.g., generating screens from text, managing projects). It is directed to use web search when necessary for additional context. Response Processing & Delivery: The agent's text output (in Markdown) is passed through another LLM chain ("From MD to HTML") that converts it to Telegram-friendly HTML. Finally, the formatted response is sent back to the user via the Telegram bot. Set Up Steps To make this workflow operational, you need to configure credentials and update specific nodes: Telegram Bot Configuration: In the "Code" node (id: 08bfae9e...), replace xxx in the condition $input.first().json.message.from.id !== xxx with your actual Telegram User ID. This ensures only you can trigger the agent. Ensure the "Telegram Trigger" and "Send a text message" nodes have valid Telegram Bot credentials configured. Google Stitch API Setup: Obtain an API key from Google Stitch. Configure the HTTP Header Auth credential named "Google Stitch" (referenced by all MCP tool nodes: Create Project, Get Project, etc.). Set the Header Auth with: Name: X-Goog-Api-Key Value: Your actual Google Stitch API Key (YOUR-API-KEY). AI Model & Tool Credentials: Verify the credentials for the Google Gemini Chat Model nodes are correctly set up for API access. Verify the credentials for the Perplexity API node ("Search on web") are configured if web search functionality is required. Activation: Once all credentials are configured, set the workflow to Active. The Telegram webhook will be registered, and the workflow will listen for authorized messages containing the /stitch command. 👉 Subscribe to my new YouTube channel. Here I’ll share videos and Shorts with practical tutorials and FREE templates for n8n. Need help customizing? Contact me for consulting and support or add me on Linkedin.