by WeblineIndia
AI-Powered Lead Qualification using Zoho CRM, People Data Labs, and Google Gemini This workflow automatically checks Zoho CRM every 5 minutes for newly created leads, enriches each lead using People Data Labs, evaluates its quality using Google Gemini (LLM Chain) and updates the lead status in Zoho CRM as Qualified or Not Qualified. Qualified leads trigger an automated Gmail notification to the sales team. Quick Start Setup Add Zoho CRM OAuth credentials. Add your People Data Labs API key. Add your Google Gemini (PaLM) LLM API credentials. Add Gmail OAuth credentials and set your recipient email. Activate the workflow. Create a test lead and verify enrichment → scoring → update → email. What It Does This workflow serves as an automated AI-driven lead qualification engine. Every 5 minutes, it fetches leads from Zoho CRM, filters newly created ones, enriches them using People Data Labs and scores them via Google Gemini. Based on the AI-generated score, the workflow updates the lead status and optionally sends an email notification. Who’s It For Sales teams using Zoho CRM SDR/Marketing automation teams Agencies performing automated lead pre-qualification Businesses with high inbound lead volume Anyone wanting AI-powered CRM automation via n8n Requirements n8n instance Zoho CRM OAuth credentials People Data Labs API key (can use another service , modify accordingly) Google Gemini API credentials Gmail OAuth credentials Zoho fields: Company, Email, First_Name, Last_Name, Created_Time, Lead_Status How It Works & Setup Steps Step 1: Run every 5 minutes via Schedule Trigger Triggers the workflow and computes a timestamp window. Step 2: Fetch Zoho leads Retrieves all leads from Zoho CRM. Step 3: Filter newly created leads Compares Created_Time with timestamp from previous run. Step 4: Extract website field Extract the website field, Used for People Data Labs enrichment API for search about that company. Step 5: Enrich via People Data Labs Adds company size, industry, founding year, etc. Step 6: Score using Google Gemini LLM produces a JSON response: summary, score, factors. Step 7: Update CRM status IF score > 80 → Qualified Else → Not Qualified Step 8: Send Gmail notification Send gmail notifications to sales team, Only for Qualified leads - informs that this Lead is marked as Qualified Leads Customization Adjust score threshold in IF node Edit email recipients in Gmail node Modify AI prompt in LLM Chain Change 3rd party api for enrichment, if required Modify PDL parameters Change Zoho CRM fields Add‑Ons Slack notifications Google Sheets logging Auto-create Deals in Zoho Add CRM notes Owner reassignment Tagging Use Case Examples Automated B2B lead scoring High-intent lead notifications CRM hygiene automation Enriched lead analytics SDR productivity boost Troubleshooting Guide | Issue | Cause | Solution | |-------|--------|----------| | No new leads detected | Timestamp mismatch | Validate “Compute Last Check” logic | | No enrichment data | Empty website / invalid API key | Check PDL credentials & website value | | AI output invalid | Prompt overwritten | Restore original prompt | | CRM update fails | Wrong leadId mapping | Confirm Zoho lead ID | | Gmail errors | OAuth expired | Reconnect Gmail credentials | | No qualified leads | Score too strict | Lower IF threshold | Need Help? WeblineIndia can help with workflow customization, advanced automations, CRM integrations and AI-driven business processes. Contact us for expert assistance.
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 Incrementors
Description Add TikTok video URLs to a Google Sheet and every morning at 8AM the workflow automatically processes each one, skipping cleanly if nothing is queued. WayinVideo summarizes each video, then all summaries are combined and sent to GPT-4o-mini in one call which writes a 5-section daily digest — trend overview, per-video summaries, top 3 content patterns, action recommendations, and trending tags. A formatted Telegram message is sent to your team channel with auto-truncation at 4000 characters, and everything is logged to Google Sheets. Built for social media teams, content agencies, and brand managers who want to track what is trending in their niche every morning without watching hours of videos. What This Workflow Does Stops cleanly when the queue is empty** — An early IF check detects whether there are any pending videos and exits gracefully if there are none — no errors, no failed runs Summarizes each TikTok video via WayinVideo** — Each video URL is submitted to WayinVideo's Summarization API which returns a structured summary, key highlights, and tags Combines all video summaries before writing the digest** — An aggregation step collects every processed video into one combined text block so GPT sees all the content at once Writes a 5-section daily digest in one GPT call** — GPT produces a trend overview, one-line summaries per video, top 3 content patterns, 2–3 action recommendations, and top trending tags Sends a formatted Telegram message with auto-truncation** — The digest is built in Telegram Markdown with section headers and emoji icons, auto-truncated at 4000 characters if it is too long Logs the digest to Google Sheets** — Overview, top patterns, action recommendations, tags, and send status are saved to the Digest Log tab for your records Marks all processed videos in the queue** — Every Video Queue row is updated with Processed status and today's date so the same videos are never processed again Setup Requirements Tools Needed n8n instance (self-hosted or cloud) WayinVideo account with API access OpenAI account with GPT-4o-mini API access Telegram Bot and a team channel or group chat Google Sheets (one spreadsheet with two tabs: Video Queue and Digest Log) Credentials Required WayinVideo API key (pasted into 4. WayinVideo — Submit Summarization and 6. WayinVideo — Get Summary Results) OpenAI API key Telegram Bot credential + Chat ID (used in 14. Telegram — Send Daily Digest) Google Sheets OAuth2 (used in 2. Google Sheets — Read Pending Videos, 15. Google Sheets — Log Digest, and 16. Google Sheets — Mark Videos Processed) > ⚠️ WayinVideo API key appears in 2 steps — replace YOUR_WAYINVIDEO_API_KEY in both 4. WayinVideo — Submit Summarization and 6. WayinVideo — Get Summary Results. Missing either one will cause the workflow to fail. > ⚠️ Google Sheet ID appears in 3 steps — replace YOUR_TREND_SHEET_ID in 2. Google Sheets — Read Pending Videos, 15. Google Sheets — Log Digest, and 16. Google Sheets — Mark Videos Processed. All three must use the same Sheet ID. Estimated Setup Time: 25–30 minutes Step-by-Step Setup Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import Get your WayinVideo API key — Log in to your WayinVideo account → go to Account Settings → copy your API key Add your WayinVideo API key to node 4 — Open node 4. WayinVideo — Submit Summarization → find the Authorization header value Bearer YOUR_WAYINVIDEO_API_KEY → replace YOUR_WAYINVIDEO_API_KEY with your actual key Add your WayinVideo API key to node 6 — Open node 6. WayinVideo — Get Summary Results → find the same Authorization header → replace YOUR_WAYINVIDEO_API_KEY with the same key Connect OpenAI — Open node 12. OpenAI — GPT-4o-mini Model → click the credential dropdown → add your OpenAI API key → test the connection Create a Telegram Bot — Open Telegram → search for @BotFather → send /newbot → follow the prompts → copy the Bot Token BotFather gives you Get your Telegram Chat ID — Add your bot to your team channel or group → send a message in the chat → open this URL in a browser replacing YOUR_BOT_TOKEN: https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdates → find the chat.id value in the response — it is a number (negative for groups) Connect Telegram in n8n — Open node 14. Telegram — Send Daily Digest → click the credential dropdown → add a new Telegram credential → paste your Bot Token → replace YOUR_TELEGRAM_CHAT_ID in the Chat ID field with your actual Chat ID Create your Google Sheet — Open a new or existing Google Sheet → add a tab named exactly Video Queue → add these 6 headers: Video URL, Video Title, Niche / Category, Date Added, Status, Processed Date → add your first TikTok URLs in the rows below leaving Status blank Add the Digest Log tab — In the same spreadsheet → add a second tab named exactly Digest Log → add these 9 headers: Digest Date, Niche, Videos Processed, Overview, Top Patterns, Action Recommendations, Top Tags, Telegram Sent, Sent On Get your Google Sheet ID — Open the spreadsheet in a browser → copy the string between /d/ and /edit in the URL — this is your Sheet ID Connect Google Sheets for reading — Open node 2. Google Sheets — Read Pending Videos → replace YOUR_TREND_SHEET_ID with your actual Sheet ID → click the credential dropdown → add Google Sheets OAuth2 → authorize access Connect Google Sheets for logging and marking — Open node 15. Google Sheets — Log Digest → replace YOUR_TREND_SHEET_ID with the same Sheet ID → confirm OAuth2 is selected → repeat the same Sheet ID replacement in node 16. Google Sheets — Mark Videos Processed Activate the workflow — Toggle the workflow to Active — it will run automatically every day at 8AM. To test immediately, click on node 1. Schedule — Every Day 8AM and use the manual Execute option. How It Works (Step by Step) Step 1 — Schedule: Every Day 8AM The workflow fires automatically every day at 8AM using the cron expression 0 8 * * *. It can also be triggered manually at any time using the Execute option in n8n. Step 2 — Google Sheets: Read Pending Videos All rows from your Video Queue tab are read. Each row contains a TikTok video URL, title, niche, and date added. Every row regardless of status is passed forward for the empty queue check. Step 3 — IF: Any Pending Videos Today? This is the empty queue gate. If the total number of rows is greater than zero (YES path), the workflow has videos to process and continues forward. If the sheet is empty or has no rows (NO path), the workflow stops cleanly — no error is thrown and no Telegram message is sent. This prevents the workflow from failing on mornings when no new videos have been added. Step 4 — HTTP: WayinVideo — Submit Summarization Each video URL is submitted to WayinVideo's Summarization API. Each submission returns a task ID for tracking. If multiple videos are in the queue, this step runs once per video sequentially. Step 5 — Wait: 60 Seconds The workflow pauses 60 seconds before the first status check. TikTok videos are typically shorter than webinar recordings so 60 seconds is used here instead of 90. Step 6 — HTTP: WayinVideo — Get Summary Results A GET request checks the summarization results endpoint using the task ID from step 4. It returns the current status and, once complete, the summary text, highlights array, and tags array. Step 7 — IF: Summary Complete? This is the polling gate. If the status equals SUCCEEDED (YES path), the summary is ready and the workflow moves to extraction. If still processing (NO path), the workflow routes to 8. Wait — 30 Seconds Retry which pauses 30 seconds then loops back to step 6 to check again. The retry loop runs automatically until SUCCEEDED. Step 8 — Wait: 30 Seconds Retry When the summary is not yet ready, the workflow waits 30 seconds then returns to step 6 for another check. Step 9 — Code: Extract Summary Per Video The completed summary, highlights array, and tags array are extracted from the WayinVideo response. Highlights are joined as a pipe-separated string and tags as a comma-separated string. The video URL, title, niche, and date added from the sheet row are also packaged. This produces one clean data object per processed video. Step 10 — Code: Aggregate All Summaries After all videos have been processed individually, this step collects all of them together into a single combined text block. Each video's data is formatted as a labeled block — Video N, URL, Summary, Key Highlights, Tags — separated by dashes. The total video count and niche from the first video are also extracted. This single combined output is what GPT receives. Step 11 — AI Agent: Write Daily Digest GPT-4o-mini receives the combined summary block, today's date, the niche being tracked, and the total number of videos. It writes a 300–400 word digest in five labeled sections: DIGEST_OVERVIEW (1–2 sentence trend overview), VIDEO_SUMMARIES (one bullet per video — topic and why it is trending), TOP_PATTERNS (3 bullets of content patterns being used today), ACTION_RECOMMENDATIONS (2–3 specific things the team should create or do), and TOP_TAGS (top 8 tags from today's videos comma-separated). Emojis are kept to section headers only. Step 12 — OpenAI: GPT-4o-mini Model This is the language model powering the digest writing. Step 13 — Code: Format Telegram Message All five labeled sections are extracted from the AI output using regex. A Telegram Markdown message is assembled with section headers, emoji icons, and the niche and video count as a subtitle line. If the full message exceeds 4000 characters (Telegram's limit), it is auto-truncated at 3900 characters with a note that the full version is in the Digest Log sheet. Step 14 — Telegram: Send Daily Digest The formatted Markdown message is sent to your Telegram channel or group chat via the Bot API using your Chat ID. Markdown formatting is enabled so bold text and italics render correctly. Step 15 — Google Sheets: Log Digest One row is appended to your Digest Log tab with all 9 columns: digest date, niche, videos processed count, overview, top patterns, action recommendations, top tags, Telegram Sent set to Yes, and the current timestamp. Step 16 — Google Sheets: Mark Videos Processed Every Video Queue row that was processed today is updated with Status set to Processed and today's date in the Processed Date column. This prevents the same videos from appearing in tomorrow's digest. Key Features ✅ Graceful empty queue handling — The workflow checks whether any videos are queued before doing anything — runs daily without failing on days when nothing is added ✅ Aggregation step before GPT — All per-video summaries are combined into one input so GPT can write cross-video trend analysis rather than analyzing each video in isolation ✅ 5-section digest in one GPT call — Overview, video summaries, content patterns, action recommendations, and tags are all produced together — saving API cost and keeping the digest coherent ✅ Auto-truncation at 4000 characters — Telegram messages have a hard character limit — the workflow handles this automatically and notifies your team to check the sheet for the full version ✅ Separate Digest Log and Video Queue tabs — The two tabs serve different purposes — the queue manages what to process, the log archives every digest sent — both tracked in the same spreadsheet ✅ 60-second initial wait for TikTok videos — Shorter than the 90-second wait used for longer recordings — matched to the typical length of TikTok content ✅ Niche and date context passed to GPT — The system prompt includes today's date and the niche being tracked so the digest feels current and category-specific rather than generic Customisation Options Change the daily run time — In node 1. Schedule — Every Day 8AM, edit the cron expression from 0 8 * * * to a different time — for example 0 7 * * * for 7AM or 0 9 * * 1-5 for weekdays only at 9AM. Add a retry limit to stop infinite polling — Before node 8. Wait — 30 Seconds Retry, add a Set step that increments a poll counter, then add a second IF check to stop after 15 polls and send a Telegram error message instead of looping indefinitely. Track multiple niches in separate sheet tabs — Duplicate the Video Queue tab and name new tabs by niche (e.g. Beauty, Finance, Fitness) — then duplicate the workflow and point each copy to a different tab so your team gets a separate digest per niche. Send the digest to multiple Telegram channels — After node 14. Telegram — Send Daily Digest, duplicate the Telegram step with a different Chat ID to send the same digest to a second channel — for example, a client-facing channel alongside your internal team channel. Add a Slack message alongside the Telegram digest — After node 14. Telegram — Send Daily Digest, add a Slack step that posts the overview section and top tags to a #trends channel so team members who are not on Telegram also receive the key highlights. Troubleshooting Workflow running daily but no digest being sent: The most common cause is an empty Video Queue — if no rows exist in the sheet, step 3 stops the workflow cleanly with no output and no error — this is expected behavior Confirm the workflow is Active and your n8n instance is running at 8AM — self-hosted instances that are off will not fire To test immediately, click on node 1. Schedule — Every Day 8AM and use the manual Execute option WayinVideo API key errors: Confirm YOUR_WAYINVIDEO_API_KEY is replaced in both 4. WayinVideo — Submit Summarization and 6. WayinVideo — Get Summary Results — missing either one causes a 401 error Check the execution log for the specific step that failed — node 4 errors mean the submission failed, node 6 errors mean the polling request failed Confirm your WayinVideo account is active and the key has not expired Polling loop getting stuck: Check that each TikTok URL in the sheet is publicly accessible — private TikTok videos, deleted posts, or region-blocked content will not be processed by WayinVideo Open the execution log of node 6. WayinVideo — Get Summary Results and check the raw response — WayinVideo may have returned FAILED with a specific error If a single video causes the loop to run indefinitely, remove it from the sheet, reactivate the workflow, and resubmit Telegram message not sending: Confirm YOUR_TELEGRAM_CHAT_ID in node 14. Telegram — Send Daily Digest is replaced with your actual Chat ID — group chat IDs are negative numbers (e.g. -1001234567890) Confirm your Telegram Bot credential is connected and the Bot Token is valid — regenerate the token via @BotFather if needed Make sure your bot has been added to the target channel or group and has permission to post messages Google Sheets not logging or marking rows: Confirm YOUR_TREND_SHEET_ID is replaced in all three steps: 2. Google Sheets — Read Pending Videos, 15. Google Sheets — Log Digest, and 16. Google Sheets — Mark Videos Processed Confirm the tab names match exactly: Video Queue and Digest Log — capitalization and spacing must be exact Check that the Google Sheets OAuth2 credential is connected in all three steps — it is easy to authorize in node 2 but forget in nodes 15 and 16 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 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 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 giangxai
Overview This workflow automatically creates AI product review videos from a product image and short description using n8n and Veo 3. It connects content generation, image creation, video rendering, video merging, and publishing into a single automated flow. Once configured, the workflow runs end to end with minimal manual input. The workflow is designed for creators, marketers, and affiliate builders who want a reliable and repeatable way to produce short-form product review videos without manual editing. What can this workflow do? Automatically generate AI product review videos from product images Create review scripts and structured prompts using an AI model Generate product images and video scenes with AI services Merge multiple video scenes into a single final video Publish videos automatically to social platforms Track publishing results and errors in Google Sheets This workflow helps reduce manual work while keeping the video production process structured and scalable. How it works You start by submitting a product image and basic product information through a form. The workflow analyzes the image to understand visual context and key product features. An AI Agent then generates a review script along with structured image and video prompts. Next, image generation APIs create product visuals, and video generation APIs such as Veo 3 render short video scenes. All generated scenes are automatically merged into one final product review video. The finished video is then uploaded and published to platforms like TikTok, Facebook Reels, and YouTube Shorts. Publishing results are logged to Google Sheets for monitoring. Setup steps Connect an AI model (Gemini or OpenRouter) for script and prompt generation. Add image and video generation API keys (Veo 3 or compatible providers). Configure the video merge step (custom request or ffmpeg-based API). Add Blotato API credentials for automated publishing. Connect Google Sheets to log publishing results. Once set up, the workflow runs automatically without manual intervention. Documentation For a full walkthrough and advanced customization ideas, watch the detailed tutorial on YouTube.
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 giangxai
Overview This workflow automatically creates hours-long wave music videos by combining AI-generated music from Suno with a background video, fully automated using n8n and ffmpeg-api. It connects music prompt generation, AI song creation, audio aggregation, video merging, and YouTube publishing into a single end-to-end automation. Once configured, the workflow runs continuously with no manual editing required. This workflow is built for creators producing lo-fi, wave, ambient, or long-play music content who want a reliable and scalable way to generate long-form videos automatically. What can this workflow do? Collect music themes, background video URLs, and track counts via an input form Generate multiple AI music tracks using Suno Automatically check rendering status and retrieve completed songs Concatenate multiple tracks into a single long-form audio file Merge the final audio with a background video using ffmpeg-api Upload the completed video to YouTube automatically Generate SEO-optimized titles and descriptions using an AI model This workflow reduces manual work while keeping the entire music video production process structured and repeatable. How it works You start by submitting a music theme, a background video URL, and the number of music tracks through an n8n form. The workflow initializes a working directory using ffmpeg-api to manage all audio and video assets. An AI agent converts the music theme into structured Suno prompts. Suno then generates multiple music tracks, and the workflow continuously checks their rendering status until all songs are ready. Once completed, the songs are downloaded, uploaded to ffmpeg-api storage, and concatenated into a single long-form audio track. This audio is merged with the background video to create the final hours-long wave music video. Finally, the completed video is uploaded to YouTube. An AI model generates SEO-friendly metadata, and the video is published automatically without manual intervention. Setup steps Connect an AI model (Gemini) for music prompt generation and YouTube metadata creation Configure Suno API access for AI music generation Set up ffmpeg-api for directory creation, file uploads, audio concatenation, and video merging Connect your YouTube account for automated uploads Review and customize the input form fields if needed After setup, the workflow runs end to end automatically. Documentation For a full walkthrough and advanced customization ideas, watch the detailed tutorial on YouTube.
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 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.
by Ibrahim
Quick overview Submit a YouTube URL and get a publish-ready SEO blog post. Three Gemini agents research the video, write the article, and score it. Articles scoring 7+ auto-publish to Google Docs. Lower scores route to Telegram for review. How it works The workflow starts when a POST request hits the webhook with a YouTube URL, optional target keyword, and tone. A Code node extracts the video ID and validates the URL format, then an HTTP Request node calls YouTube Data API v3 to pull the video title, description, channel name, and tags. Three Basic LLM Chain nodes run in sequence, each powered by a Google Gemini Flash sub-node connected via the native ai_languageModel port. The first chain (Research Agent) receives the video context and returns a structured JSON brief containing an SEO title, four H2 headings, primary keyword, secondary keywords, key insights, target audience, and a content angle. A Code node parses this output with a JSON fallback in case Gemini adds unexpected formatting. The second chain (Writer Agent) takes the research brief and writes a complete 1,000–1,400 word blog post following strict rules: flowing paragraphs over bullet lists, primary keyword used 3–5 times, concrete examples in at least two sections, and a link back to the original video at the end. The third chain (Editor Agent) reviews the finished article and returns a JSON score across five dimensions: SEO optimisation, readability, depth of insight, hook strength, and actionability. A Code node attaches the article text and calculates the overall score. An IF node acts as the quality gate. Articles scoring 7 or above go to Google Docs (created as a new document), logged to Google Sheets, and a success notification fires in Telegram. Articles below 7 skip publishing, and Telegram receives the editor's critique and improvement list instead. Setup Google Gemini API key (free): Go to aistudio.google.com, click Get API Key, and create a key in a new project. In n8n, add it as a Google PaLM API credential. Open all three Gemini sub-nodes (Research, Writing, Editing) and select that credential. This is the only LLM credential needed. YouTube Data API v3: In console.cloud.google.com, enable YouTube Data API v3 for your project and create an API key. Open the Fetch YouTube Video Metadata node and replace $credentials.googleYoutubeApiKey with your key, or set up a Generic Header Auth credential and reference it there. Google Docs and Sheets OAuth2: Enable the Google Docs API and Google Sheets API in your Google Cloud project. In n8n Settings > Credentials, create a Google Docs OAuth2 credential and a Google Sheets OAuth2 credential. Connect each to the corresponding node. In the Sheets node, replace YOUR_SHEETS_ID with your spreadsheet ID (found in the sheet URL). Google Sheets tab: Create a sheet named Blog Posts with these columns: Date, YouTube URL, Video Title, Blog Title, Primary Keyword, Quality Score, Word Count, Editor Note, Google Doc. Telegram: Create a bot via @BotFather on Telegram and copy the token. Add it as a Telegram API credential in n8n. Get your chat ID by messaging @userinfobot. Replace YOUR_TELEGRAM_CHAT_ID in both Telegram nodes. Test: Switch the workflow to listening mode and send a POST request: Invoke-RestMethod -Uri "YOUR_WEBHOOK_TEST_URL" -Method POST -ContentType "application/json" -Body '{"youtube_url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","target_keyword":"AI automation","tone":"professional"}' Requirements Google Gemini API key (free at aistudio.google.com, 1M tokens/day, no credit card) YouTube Data API v3 key (free, 10,000 units/day quota) Google Docs OAuth2 credential Google Sheets OAuth2 credential Telegram bot token and chat ID n8n with LangChain nodes available (Cloud or self-hosted) Customization Change the quality threshold: Open the Check Quality Score node and change 7 to any value between 1 and 10. Swap the model: Each Gemini sub-node is independent. Open any of the three and change models/gemini-1.5-flash to models/gemini-1.5-pro for higher quality output, or replace the sub-node with an Anthropic or OpenAI Chat Model node to switch providers entirely. Add a second language: After the Writer Agent, add another Basic LLM Chain with a Gemini sub-node. Prompt it to translate the article into Arabic or any other language while preserving the heading structure. Connect its output to the Sheets log alongside the English version. Adjust article length: In the Writer Agent prompt, change the target word count. The current setting is 1,000–1,400 words. Skip the quality gate: Delete the IF node and connect Review and Attach Article directly to Publish Article to Google Docs. Additional info This workflow uses native n8n LangChain nodes (@n8n/n8n-nodes-langchain.chainLlm and @n8n/n8n-nodes-langchain.lmChatGoogleGemini) rather than raw HTTP Request calls to the Gemini REST API. This means prompts are editable directly in the node UI, all three agents share a single credential, and swapping the LLM provider requires changing one sub-node rather than editing URL strings and JSON bodies across multiple nodes. The workflow costs $0 to run. Gemini 1.5 Flash is free up to 1 million tokens per day via Google AI Studio. The YouTube Data API, Google Docs API, Google Sheets API, and Telegram Bot API are all free within standard usage limits. Built by Ibrahim Maher Al-Bander, n8n Certified Level 1 automation developer. ibrahimaher.com