by Fahmi Fahreza
Weekly SEO Watchlist Audit to Google Sheets (Gemini + Decodo) Sign up for Decodo HERE for Discount Automatically fetches page content, generates a compact SEO audit (score, issues, fixes), and writes both a per-URL summary and a normalized βAll Issuesβ table to Google Sheetsβgreat for weekly monitoring and prioritization. Whoβs it for? Content/SEO teams that want lightweight, scheduled audits of key pages with actionable next steps and spreadsheet reporting. How it works Weekly trigger loads the Google Sheet of URLs. Split in Batches processes each URL. Decodo fetches page content (markdown + status). Gemini produces a strict JSON audit via the AI Chain + Output Parser. Code nodes flatten data for two tabs. Google Sheets nodes append Summary and All Issues rows. Split in Batches continues to the next URL. How to set up Add credentials for Google Sheets, Decodo, and Gemini. Set sheet_id and Sheet GIDs in the Set node. Ensure input sheet has a URL column. Configure your Google Sheets tabs with proper headers matching each field being appended (e.g., URL, Decodo Score, Priority, etc.). Adjust schedule as needed. Activate the workflow.
by Aleks Sidorecs
Who's it for Supply chain and logistics specialists, freight forwarders, importers/exporters, and risk teams who need early warning when maritime, carrier, geopolitical, or weather events threaten their cargo or trade lanes. If you've ever found out about a Red Sea diversion, an OFAC sanctions package, a Panama Canal restriction, or a Gulf hurricane after it hit your bookings - this template fixes that. It turns 12 free public feeds into a single Claude-classified Telegram alert stream, scoped to the chokepoints, lanes, and risk dimensions you actually care about. How it works The workflow runs every 6 hours and polls 12 free public RSS feeds across 4 supply chain risk dimensions: Maritime**: gCaptain, Maritime Executive, Safety4Sea, Splash247 Carrier**: The Loadstar, FreightWaves, Container News Geopolitical**: Google News searches for sanctions, tariffs, OFAC, export bans Weather**: GDACS (Global Disaster Alerts), NOAA Hurricane Center, USGS Significant Earthquakes Each new item is deduped against past runs using n8n workflow static data - no database needed. Then Claude Sonnet 4.5 (the Sonar Analyst) classifies it into a structured JSON with primary risk dimension, severity 1-5, affected region, geo node, trade lanes affected, source reliability, and recommended action (monitor / alert / escalate). Five few-shot examples cover one case from each dimension plus an "other" fallback. Items at or above your severity threshold are reformatted by a second Claude pass (the Sonar Reporter) into a scannable HTML Telegram alert with dimension-specific emoji, severity color codes, and a direct link to the source. Items below threshold end silently. How to set up Connect your Anthropic API credential to both Claude Sonnet sub-nodes - the same credential can be reused for both the Analyst and the Reporter. Connect your Telegram Bot credential (token from BotFather) and set the TELEGRAM_CHAT_ID environment variable in n8n to your operator chat ID. The Send Telegram Alert node already references this env var, so you only need to set the variable once. Open the Configuration node and adjust: severity_threshold (1-5) - minimum severity to alert on (default: 3) watched_dimensions - comma-separated dimensions: maritime, carrier, geopolitical, weather watched_regions - geographic focus list (defaults cover the major chokepoints + global lanes) post_all_clear_digest - set to true if you want a digest even when nothing critical hit Click Execute Workflow once to test. You'll see items flow through the canvas, the Analyst classify them, and the IF gate filter them. If the result is below threshold you'll see a green checkmark on End (Below Threshold) - that's expected. Toggle Active in the top-right when you're happy. The schedule trigger will fire every 6 hours. Requirements Anthropic API key** (Claude Sonnet 4.5 recommended - the prompts are tuned for it) Telegram Bot token** from BotFather A Telegram chat ID** for receiving alerts (your personal chat, a group, or a channel) That's it. No databases, no Docker, no scraping, no paid APIs. The dedupe Code node uses n8n workflow static data so nothing needs to be installed beyond a working n8n instance. How to customize the workflow Add or remove RSS feeds in the lane that matches your dimension. Each lane has its own visual sticky note so you can see at a glance which feeds belong where. To add a feed, copy any existing RSS Feed Read node, change the URL, and connect it to the Merge node. Change the schedule in the Every 6 Hours node - for high-stakes operations you might want every 2 hours; for lower-touch monitoring, daily. Edit the Sonar Analyst system prompt (in the AI Agent node) to add new risk categories, region keywords, or industry-specific few-shot examples. The current schema supports adding new crisis_type enum values and new chokepoints without breaking the IF gate. Swap Telegram for Slack, Discord, or email by replacing the final Send Telegram Alert node. The Sonar Reporter outputs HTML which renders cleanly in any of these channels. Tighten the dedupe cap (currently 40 items per run, 800 cached URLs) if your LLM cost is a concern. The cap lives at the top of the Dedupe + Tag Source Code node. Localize the alerts by changing the alert_language field in the Configuration node - the Reporter prompt respects it (currently supports english, spanish, french, german). The workflow ships as a single importable JSON, 29 nodes total, with one yellow main sticky note explaining the whole template and four neutral lane sticky notes labeling each risk dimension lane. Zero credentials are bundled - you wire your own.
by Club de Inteligencia Artificial PolitΓ©cnico CIAP
Telegram Appointment Scheduling Bot with n8n π Description Tired of managing appointments manually? This template transforms your Telegram account into a smart virtual assistant that handles the entire scheduling process for you, 24/7. This workflow allows you to deploy a fully functional Telegram bot that not only schedules appointments but also checks real-time availability in your Google Calendar, logs a history in Google Sheets, and allows your clients to cancel or view their upcoming appointments. It's the perfect solution for professionals, small businesses, or anyone looking to automate their booking system professionally and effortlessly. β¨ Key Features Complete Appointment Management:** Allows users to schedule, cancel, and list their future appointments. Conflict Prevention:** Integrates with Google Calendar to check availability before confirming a booking, eliminating the risk of double-booking. Automatic Logging:** Every confirmed appointment is saved to a row in Google Sheets, creating a perfect database for tracking and analysis. Smart Interaction:** The bot handles unrecognized commands and guides the user, ensuring a smooth experience. Easy to Adapt:** Connect your own accounts, customize messages, and tailor it to your business needs in minutes. π Setup Follow these steps to deploy your own instance of this bot: 1. Prerequisites An n8n instance (Cloud or self-hosted). A Telegram account. A Google account. 2. Telegram Bot Talk to @BotFather on Telegram. Create a new bot using /newbot. Give it a name and a username. Copy and save the API token it provides. 3. Google Cloud & APIs Go to the Google Cloud Console. Create a new project. Enable the Google Calendar API and Google Sheets API. Create OAuth 2.0 Client ID credentials. Make sure to add your n8n instance's OAuth redirect URL. Save the Client ID and Client Secret. 4. Google Sheets Create a new spreadsheet in Google Sheets. Define the column headers in the first row. For example: id, Client Name, Date and Time, ISO Date. 5. n8n Import the workflow JSON file into your n8n instance. Set up the credentials: Telegram: Create a new credential and paste your bot's token. Google Calendar & Google Sheets (OAuth2): Create a new credential and paste the Client ID and Client Secret from the Google Cloud Console. Review the Google Calendar and Google Sheets nodes to select your correct calendar and spreadsheet. Activate the workflow! π¬ Usage Once the bot is running, you can interact with it using the following commands in Telegram: To start the bot:** /start To schedule a new appointment:** agendar YYYY-MM-DD HH:MM Your Full Name To cancel an existing appointment:** cancelar YYYY-MM-DD HH:MM Your Full Name To view your future appointments:** mis citas Your Full Name π₯ Authors Jaren PazmiΓ±o President of the Polytechnic Artificial Intelligence Club (CIAP)
by Santhej Kallada
Who is this for? Creators, designers, and developers exploring AI-powered image generation. Automation enthusiasts who want to integrate image creation into n8n workflows. Telegram bot builders looking to add visual AI capabilities. Marketers or freelancers automating creative content workflows. What problem is this workflow solving? Creating AI images usually requires multiple tools and manual setup. This workflow removes the complexity by: Connecting Nano Banana (AI image model) directly to n8n. Allowing image generation via Telegram chatbot. Providing a no-code setup that is fully automated and scalable. What this workflow does This workflow demonstrates how to generate AI images using Nano Banana and n8n, with an integrated Telegram chatbot interface. The process includes: Connecting Gemini Nano Banana to n8n. Automating image generation requests triggered from Telegram. Returning AI-generated images back to the user. Allowing customization of prompts and styles dynamically. By the end, youβll have a fully functional automation to generate and send AI-created images through Telegram β no coding required. Setup Create accounts: Sign up on n8n.io and ensure you have Telegram Bot API access. Connect your Nano Banana or Gemini API endpoint. Set up your Telegram Bot: Use BotFather to create a new bot and get the token. Add the βTelegram Triggerβ node in n8n. Configure Nano Banana connection: Add an HTTP Request node for Nano Banana API. Insert your API key and prompt parameters. Handle responses: Parse the AI-generated image output. Send the image file back to the Telegram user. Test and Deploy: Run a sample image prompt. Verify that Telegram returns the correct generated image. How to customize this workflow to your needs Modify prompts or styles to fit different artistic use cases. Add conditional logic for image size, aspect ratio, or filters. Integrate with Google Drive or Notion for image storage. Schedule automatic image generation for campaigns or content creation. Expand with OpenAI or Stability AI for hybrid workflows. Notes Nano Banana API may have rate limits depending on usage. Ensure your Telegram bot has permission to send files and images. You can host this workflow on n8n Cloud or self-hosted setups. Want A Video Tutorial on How to Setup This Automation: Β https://youtu.be/0s6ZdU1fjc4
by Growth AI
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Website sitemap generator and visual tree creator Who's it for Web developers, SEO specialists, UX designers, and digital marketers who need to analyze website structure, create visual sitemaps, or audit site architecture for optimization purposes. What it does This workflow automatically generates a comprehensive sitemap from any website URL and creates an organized hierarchical structure in Google Sheets. It follows the website's sitemap to discover all pages, then organizes them by navigation levels (Level 1, Level 2, etc.) with proper parent-child relationships. The output can be further processed to create visual tree diagrams and mind maps. How it works The workflow follows a five-step automation process: URL Input: Accepts website URL via chat interface Site Crawling: Uses Firecrawl to discover all pages following the website's sitemap only Success Validation: Checks if crawling was successful (some sites block external crawlers) Hierarchical Organization: Processes URLs into a structured tree with proper level relationships Google Sheets Export: Creates a formatted spreadsheet with the complete site architecture The system respects robots.txt and follows only sitemap-declared pages to ensure ethical crawling. Requirements Firecrawl API key (for website crawling and sitemap discovery) Google Sheets access Google Drive access (for template duplication) How to set up Step 1: Prepare your template (recommended) It's recommended to create your own copy of the base template: Access the base Google Sheets template Make a copy for your personal use Update the workflow's "Copy template" node with your template's file ID (replace the default ID: 12lV4HwgudgzPPGXKNesIEExbFg09Tuu9gyC_jSS1HjI) This ensures you have control over the template formatting and can customize it as needed Step 2: Configure API credentials Set up the following credentials in n8n: Firecrawl API: For crawling websites and discovering sitemaps Google Sheets OAuth2: For creating and updating spreadsheets Google Drive OAuth2: For duplicating the template file Step 3: Configure Firecrawl settings (optional) The workflow uses optimized Firecrawl settings: ignoreSitemap: false - Respects the website's sitemap sitemapOnly: true - Only crawls URLs listed in sitemap files These settings ensure ethical crawling and faster processing Step 4: Access the workflow The workflow uses a chat trigger interface - no manual configuration needed Simply provide the website URL you want to analyze when prompted How to use the workflow Basic usage Start the chat: Access the workflow via the chat interface Provide URL: Enter the website URL you want to analyze (e.g., "https://example.com") Wait for processing: The system will crawl, organize, and export the data Receive your results: Get an automatic direct clickable link to your generated Google Sheets - no need to search for the file Error handling Invalid URLs: If the provided URL is invalid or the website blocks crawling, you'll receive an immediate error message Graceful failure: The workflow stops without creating unnecessary files when errors occur Common causes: Incorrect URL format, robots.txt restrictions, or site security settings File organization Automatic naming: Generated files follow the pattern "[Website URL] - n8n - Arborescence" Google Drive storage: Files are automatically organized in your Google Drive Instant access: Direct link provided immediately upon completion Advanced processing for visual diagrams Step 1: Copy sitemap data Once your Google Sheets is ready: Copy all the hierarchical data from the generated spreadsheet Prepare it for AI processing Step 2: Generate ASCII tree structure Use any AI model with this prompt: Create a hierarchical tree structure from the following website sitemap data. Return ONLY the tree structure using ASCII tree formatting with βββ and βββ characters. Do not include any explanations, comments, or additional text - just the pure tree structure. The tree should start with the root domain and show all pages organized by their hierarchical levels. Use proper indentation to show parent-child relationships. Here is the sitemap data: [PASTE THE SITEMAP DATA HERE] Requirements: Use ASCII tree characters (βββ βββ β) Show clear hierarchical relationships Include all pages from the sitemap Return ONLY the tree structure, no other text Start with the root domain as the top level Step 3: Create visual mind map Visit the Whimsical Diagrams GPT Request a mind map creation using your ASCII tree structure Get a professional visual representation of your website architecture Results interpretation Google Sheets output structure The generated spreadsheet contains: Niv 0 to Niv 5: Hierarchical levels (0 = homepage, 1-5 = navigation depth) URL column: Complete URLs for reference Hyperlinked structure: Clickable links organized by hierarchy Multi-domain support: Handles subdomains and different domain structures Data organization features Automatic sorting: Pages organized by navigation depth and alphabetical order Parent-child relationships: Clear hierarchical structure maintained Domain separation: Main domains and subdomains processed separately Clean formatting: URLs decoded and formatted for readability Workflow limitations Sitemap dependency: Only discovers pages listed in the website's sitemap Crawling restrictions: Some websites may block external crawlers Level depth: Limited to 5 hierarchical levels for clarity Rate limits: Respects Firecrawl API limitations Template dependency: Requires access to the base template for duplication Use cases SEO audits: Analyze site structure for optimization opportunities UX research: Understand navigation patterns and user paths Content strategy: Identify content gaps and organizational issues Site migrations: Document existing structure before redesigns Competitive analysis: Study competitor site architectures Client presentations: Create visual site maps for stakeholder reviews
by Sona Labs
Automatically enrich company records with comprehensive firmographic data by pulling domains from Google Sheets, setting up custom HubSpot fields, enriching through Sona API, and syncing complete profiles to HubSpot CRM with custom property mapping. Import company domains from a Google Sheet, configure custom HubSpot fields for Sona data, automatically enrich domains with detailed firmographic intelligence, and create fully populated company records in HubSpotβso you can build rich prospect databases without manual research. How it works Step 1: Get Company List Reads company domains from your Google Sheet Aggregates all domains into a single array Prepares data for batch processing Step 2: Setup HubSpot Fields Creates custom Sona fields in HubSpot CRM Defines all enrichment data fields needed Ensures proper field mapping for incoming data Step 3: Prepare for Processing Converts aggregated domains into individual items Sets data for batch loop processing Readies each company for enrichment Step 4: Enrich & Sync to HubSpot Loops through each company domain Calls Sona API for enrichment data Creates company in HubSpot with standard fields Formats and updates custom Sona properties Combines firmographics + tech data in one profile Includes 2-second wait between operations for rate limiting What you'll get The workflow enriches each company record with: Firmographic Data**: Company size, employee count, revenue estimates, headquarters location, and founding year Contact Information**: Phone numbers, social media profiles, and timezone details Business Intelligence**: Company descriptions and industry positioning Custom HubSpot Properties**: All Sona data mapped to dedicated custom fields Organized CRM Records**: All data automatically synced to HubSpot for immediate use Domain Tracking**: Companies linked to their websites for future reference Why use this Eliminate manual research**: Save 10-15 minutes per company by automating firmographic lookups Build rich databases**: Transform basic domain lists into comprehensive company profiles Custom field management**: Automatically creates and populates HubSpot custom properties Improve targeting**: Segment and prioritize accounts based on size, location, and other firmographics Keep data current**: Run scheduled enrichments to maintain up-to-date company information Scale your prospecting**: Process hundreds of companies in minutes instead of days Better lead qualification**: Make informed decisions with complete company intelligence Streamlined workflow**: One-click enrichment from spreadsheet to CRM with custom field setup Setup instructions Before you start, you'll need: Google Sheets with a column named website_Domain containing company domains (e.g., example.com) HubSpot Account & App Token - Get an app token by creating a legacy app: Go to HubSpot Settings β Integrations β Legacy Apps Click Create Legacy App Select Private (for one account) In the scopes section, enable the following permissions: crm.schemas.companies.write crm.objects.companies.write crm.schemas.companies.read crm.objects.companies.read Click Create Copy the access token from the Auth tab Sona API Key (for company enrichment) Sign up at https://app.sonalabs.com Free tier available for testing Configuration steps: Prepare your data: Create a Google Sheet with a "website_Domain" column and add 2-3 test companies (e.g., example.com, anthropic.com) Connect Google Sheets: In the "Get Company List from Sheet" node, authenticate with Google and select your spreadsheet and sheet name Configure HubSpot field creation: In the "Create Custom HubSpot Fields" node (Step 2), authenticate with your HubSpot access token and review the custom Sona fields that will be created Add Sona credentials: In the "Sona Enrich" node, authenticate with your Sona API key Connect HubSpot for company creation: In the "Create HubSpot Company" and "Update Company with AI Data" nodes, authenticate using your HubSpot access token Test with sample data: Run the workflow with 2-3 test companies and verify: Custom fields are created in HubSpot Company records appear correctly in HubSpot All firmographic data is populated in custom properties Add error handling: Configure notifications for failed enrichments or API errors (optional but recommended) Scale and automate: Process your full company list, then optionally add a Schedule Trigger for automatic daily or weekly enrichment to keep your CRM data fresh
by Δα» ThΓ nh NguyΓͺn
Automated Facebook Page Story Video Publisher (Google Drive β Facebook β Google Sheet) > Recommended: Self-hosted via tino.vn/vps-n8n?affid=388 β use code VPSN8N for up to 39% off. This workflow is an automated solution for publishing video content from Google Drive to your Facebook Page Stories, while using Google Sheets as a posting queue manager. What This Workflow Does (Workflow Function) This automation orchestrates a complete multi-step process for uploading and publishing videos to Facebook Stories: Queue Management: Every 2 hours and 30 minutes, the workflow checks a Google Sheet (Get Row Sheet node) to find the first video whose Stories column is empty β meaning it hasnβt been posted yet. Conditional Execution: An If node confirms that the videoβs File ID exists before proceeding. Video Retrieval: Using the File ID, the workflow downloads the video from Google Drive (Google Drive node) and calculates its binary size (Set to the total size in bytes node). Facebook 3-Step Upload: It performs the Facebook Graph APIβs three-step upload process through HTTP Request nodes: Step 1 β Initialize Session: Starts an upload session and retrieves the upload_url and video_id. Step 2 β Upload File: Uploads the binary video data to the provided upload_url. Step 3 β Publish Video: Finalizes and publishes the uploaded video as a Facebook Story. Status Update: Once completed, the workflow updates the same row in Google Sheets (Update upload status in sheet node) using the row_number to mark the video as processed. Prerequisites (What You Need Before Running) 1. n8n Instance > Recommended: Self-hosted via tino.vn/vps-n8n?affid=388 β use code VPSN8N for up to 39% off. 2. Google Services Google Drive Credentials:** OAuth2 credentials for Google Drive to let n8n download video files. Google Sheets Credentials:** OAuth2 credentials for Google Sheets to read the posting queue and update statuses. Google Sheet:** A spreadsheet (ID: 1RnE5O06l7W6TLCLKkwEH5Oyl-EZ3OE-Uc3OWFbDohYI) containing: File ID β the videoβs unique ID in Google Drive. Stories β posting status column (leave empty for pending videos). row_number β used for updating the correct row after posting. 3. Facebook Setup Page ID:** Your Facebook Page ID (currently hardcoded as 115432036514099 in the info node). Access Token:* A *Page Access Token** with permissions such as pages_manage_posts and pages_read_engagement. This token is hardcoded in the info node and again in Step 3. Post video. Usage Guide and Implementation Notes How to Use Queue Videos: Add video entries to your Google Sheet. Each entry must include a valid Google Drive File ID. Leave the Stories column empty for videos that havenβt been posted. Activate: Save and activate the workflow. The Schedule Trigger will automatically handle new uploads every 2 hours and 30 minutes. Implementation Notes β οΈ Token Security:* Hardcoding your *Access Token* inside the info node is *not recommended**. Tokens expire and expose your Page to risk if leaked. π Action: Replace the static token with a secure Credential setup that supports token rotation. Loop Efficiency:* The *βfalseβ** output of the If node currently loops back to the Get Row Sheet node. This creates unnecessary cycles if no videos are found. π Action: Disconnect that branch so the workflow stops gracefully when no unposted videos remain. Status Updates:* To prevent re-posting the same video, the final Update upload status in sheet node must update the *Stories** column (e.g., write "POSTED"). π Action: Add this mapping explicitly to your Google Sheets node. Automated File ID Sync:** This workflow assumes that the Google Sheet already contains valid File IDs. π You can build a secondary workflow (using Schedule Trigger1 β Search files and folders β Append or update row in sheet) to automatically populate new video File IDs from your Google Drive. β Result Once active, this workflow automatically: pulls pending videos from your Google Sheet, uploads them to Facebook Stories, and marks them as posted β all without manual intervention.
by Joe V
π AI Video Polling Engine - Long-Running Job Handler for Veo, Sora & Seedance The async backbone that makes AI video generation production-ready β‘π¬ π₯ See It In Action π Full Demo: youtu.be/OI_oJ_2F1O0 β οΈ Must Read First This is a companion workflow for the main AI Shorts Generator: π Main Workflow: AI Shorts Reactor This workflow handles the "waiting game" so your main bot stays fast and responsive. Think of it as the backstage crew that handles the heavy lifting while your main workflow performs on stage. π€ The Problem This Solves Without This Workflow: User sends message β Bot calls AI API β β³ Bot waits 2-5 minutes... (BLOCKED) β β Timeout errors β Execution limits exceeded β Users think bot is broken β Can't handle multiple requests With This Workflow: User sends message β Bot calls AI API β β Bot responds instantly: "Video generating..." β π This webhook polls in background β β‘ Main bot handles other users β β Video ready β Auto-sends to user Result: Your bot feels instant, scales infinitely, and never times out π π What This Workflow Does This is a dedicated polling webhook that acts as the async job handler for AI video generation. It's the invisible worker that: 1οΈβ£ Receives the Job POST /webhook/poll-video { "sessionId": "user_123", "taskId": "veo_abc456", "model": "veo3", "attempt": 1 } 2οΈβ£ Responds Instantly 200 OK - "Polling started" (Main workflow never waits!) 3οΈβ£ Polls in Background Wait 60s β Check status β Repeat β±οΈ Waits 1 minute between checks (API-friendly) π Polls up to 15 times (~15 minutes max) π― Supports Veo, Sora, and Seedance APIs 4οΈβ£ Detects Completion Handles multiple API response formats: // Veo format { status: "completed", videoUrl: "https://..." } // Market format (Sora/Seedance) { job: { status: "success", result: { url: "..." } } } // Legacy format { data: { video_url: "..." } } (No matter how the API responds, this workflow figures it out) 5οΈβ£ Delivers the Video Once ready: π₯ Downloads video from AI provider βοΈ Uploads to your S3 storage πΎ Restores user session from Redis π± Sends Telegram preview with buttons π Enables video extension (Veo only) π Logs metadata for analytics βοΈ Technical Architecture The Flow: Main Workflow Polling Webhook β β βββ[Trigger AI Job]βββββββββββ€ β "Task ID: abc123" β β β βββ[Return Instantly] β β "Generating..." β β β βββ[Handle New User] β β βββ[Wait 60s] β β β βββ[Check Status] β β "Processing..." β β β βββ[Wait 60s] β β β βββ[Check Status] β β "Completed!" β β β βββ[Download Video] β β β βββ[Upload to S3] β β β βββ[Send to User] β β ββββββββββββββββββββββββββββββββββββ "Your video is ready!" π Key Features β‘ Non-Blocking Architecture Main workflow never waits Handle unlimited concurrent jobs Each user gets instant responses π Intelligent Polling Respects API rate limits (60s intervals) Auto-retries on transient failures Graceful timeout handling (15 attempts max) π― Multi-Provider Support Handles different API formats: Veo** - record-info endpoint Sora** - Market job status Seedance** - Market job status π‘οΈ Robust Error Handling β Missing video URL β Retry with fallback parsers β API timeout β Continue polling β Invalid response β Parse alternative formats β Max attempts reached β Notify user gracefully πΎ Session Management Stores state in Redis Restores full context when video is ready Supports video extension workflows Maintains user preferences π Production Features Detailed logging at each step Metadata tracking (generation time, model used, etc.) S3 storage integration Telegram notifications Analytics-ready data structure π§© Integration Points Works Seamlessly With: | Use Case | How It Helps | |----------|--------------| | π€ Telegram Bots | Keeps bot responsive during 2-5 min video generation | | πΊ YouTube Automation | Polls video, then triggers auto-publish | | π¬ Multi-Video Pipelines | Handles 10+ videos simultaneously | | π’ Content Agencies | Production-grade reliability for clients | | π§ͺ A/B Testing | Generate multiple variations without blocking | Required Components: β Main workflow that triggers video generation β Redis for session storage β S3-compatible storage for videos β KIE.ai API credentials β Telegram Bot (for notifications) π How to Use Step 1: Set Up Main Workflow Import and configure the AI Shorts Reactor Step 2: Import This Webhook Add this workflow to your n8n instance Step 3: Configure Credentials KIE.ai API key Redis connection S3 storage credentials Telegram bot token Step 4: Link Workflows In your main workflow, call this webhook: // After triggering AI video generation const response = await httpRequest({ method: 'POST', url: 'YOUR_WEBHOOK_URL/poll-video', body: { sessionId: sessionId, taskId: taskId, model: 'veo3', attempt: 1 } }); Step 5: Activate & Test Activate this polling webhook Trigger a video generation from main workflow Watch it poll in background and deliver results π― Real-World Example Scenario: User generates 3 videos simultaneously Without This Workflow: User A: "Generate video" β Bot: β³ Processing... (BLOCKED 5 min) User B: "Generate video" β Bot: β Timeout (main workflow still processing User A) User C: "Generate video" β Bot: β Never receives request With This Workflow: User A: "Generate video" β Bot: β "Generating! Check back in 3 min" β Polling webhook handles in background User B: "Generate video" β Bot: β "Generating! Check back in 3 min" β Second polling instance starts User C: "Generate video" β Bot: β "Generating! Check back in 3 min" β Third polling instance starts 3 minutes later--- User A: πΉ "Your video is ready!" [Preview] [Publish] User B: πΉ "Your video is ready!" [Preview] [Publish] User C: πΉ "Your video is ready!" [Preview] [Publish] All three users served simultaneously with zero blocking! π π§ Customization Options Adjust Polling Frequency // Default: 60 seconds // For faster testing (use credits faster): const waitTime = 30; // seconds // For more API-friendly (slower updates): const waitTime = 90; // seconds Change Timeout Limits // Default: 15 attempts (15 minutes) const maxAttempts = 20; // Increase for longer videos Add More Providers Extend to support other AI video APIs: switch(model) { case 'veo3': // Existing Veo logic case 'runway': // Add Runway ML polling case 'pika': // Add Pika Labs polling } Custom Notifications Replace Telegram with: Discord webhooks Slack messages Email notifications SMS via Twilio Push notifications π Monitoring & Analytics What Gets Logged: { "sessionId": "user_123", "taskId": "veo_abc456", "model": "veo3", "status": "completed", "attempts": 7, "totalTime": "6m 32s", "videoUrl": "s3://bucket/videos/abc456.mp4", "metadata": { "duration": 5.2, "resolution": "1080x1920", "fileSize": "4.7MB" } } Track Key Metrics: β±οΈ Average generation time per model π Polling attempts before completion β Failure rate by provider π° Cost per video (API usage) π Concurrent job capacity π¨ Troubleshooting "Video never completes" β Check KIE.ai API status β Verify task ID is valid β Increase maxAttempts if needed β Check API response format hasn't changed "Polling stops after 1 attempt" β Ensure webhook URL is correct β Check n8n execution limits β Verify Redis connection is stable "Video downloads but doesn't send" β Check Telegram bot credentials β Verify S3 upload succeeded β Ensure Redis session exists β Check Telegram chat ID is valid "Multiple videos get mixed up" β Confirm sessionId is unique per user β Check Redis key collisions β Verify taskId is properly passed ποΈ Architecture Benefits Why Separate This Logic? | Aspect | Monolithic Workflow | Separated Webhook | |--------|--------------------|--------------------| | β‘ Response Time | 2-5 minutes | <1 second | | π Concurrency | 1 job at a time | Unlimited | | π° Execution Costs | High (long-running) | Low (short bursts) | | π Debugging | Hard (mixed concerns) | Easy (isolated logic) | | π Scalability | Poor | Excellent | | π§ Maintenance | Complex | Simple | π οΈ Requirements Services Needed: β n8n Instance (cloud or self-hosted) β KIE.ai API (Veo, Sora, Seedance access) β Redis (session storage) β S3-compatible Storage (videos) β Telegram Bot (optional, for notifications) Skills Required: Basic n8n knowledge Understanding of webhooks Redis basics (key-value storage) S3 upload concepts Setup Time: ~15 minutes Technical Level: Intermediate π·οΈ Tags webhook polling async-jobs long-running-tasks ai-video veo sora seedance production-ready redis s3 telegram youtube-automation content-pipeline scalability microservices n8n-webhook job-queue background-worker π‘ Best Practices Do's β Keep polling interval at 60s minimum (respect API limits) Always handle timeout scenarios Log generation metadata for analytics Use unique session IDs per user Clean up Redis after job completion Don'ts β Don't poll faster than 30s (risk API bans) Don't store videos in Redis (use S3) Don't skip error handling Don't use this for real-time updates (<10s) Don't forget to activate the webhook π Success Stories After Implementing This Webhook: | Metric | Before | After | |--------|--------|-------| | β‘ Bot response time | 2-5 min | <1 sec | | π¬ Concurrent videos | 1 | 50+ | | β Timeout errors | 30% | 0% | | π User satisfaction | 6/10 | 9.5/10 | | π° Execution costs | $50/mo | $12/mo | π Related Workflows π¬ Main: AI Shorts Reactor - The full video generation bot π€ YouTube Auto-Publisher - Publish completed videos π¨ Video Style Presets - Custom prompt templates π Analytics Dashboard - Track all generations π License MIT License - Free to use, modify, and distribute! β‘ Make your AI video workflows production-ready. Let the webhook handle the waiting. β‘ Created by Joe Venner | Built with β€οΈ and n8n | Part of the AI Shorts Reactor ecosystem
by WeblineIndia
Zoho CRM Sales Cycle Performance Analyzer & Improver This workflow automatically analyzes your Zoho CRM deal cycles with AI-powered intelligence, compares them against historical performance data from Google Sheets, and delivers actionable insights to Slack. It identifies bottlenecks, predicts outcomes, analyzes sentiment, generates smart recommendations, creates data visualizations, and builds a historical dataset for future intelligenceβall without manual reporting. Quick Implementation Steps Connect Accounts: Set up credentials for Zoho CRM, Google Sheets, Slack, and OpenAI in n8n. Prepare Sheet: Create a Google Sheet with headers: Deal_Name, Stage, Created_Time, Closed_Time (or Modified_Time). Configure Nodes: Zoho Trigger: Ensure it pulls your deals. Google Sheets: Link your "Historical Data" sheet to both the "Fetch" and "Log" nodes. OpenAI Nodes: Configure your OpenAI API key for AI analysis. Slack: Select your #sales-insights channel. Activate: Turn on the workflow to start receiving AI-enhanced real-time insights on deal closure. What It Does This n8n workflow serves as an AI-powered automated data analyst for your sales team. Whenever a deal is fetched from Zoho CRM, the workflow first filters for relevance (e.g., recently closed or modified deals). It then cross-references this specific deal against your historical sales data stored in Google Sheets to calculate key performance metrics like "Days to Close" and "Stage Dwell Time." π€ AI-Enhanced Features: Sentiment Analysis**: Analyzes deal descriptions and communications for emotional tone and risk indicators Predictive Analytics**: Uses historical patterns to predict win probability and expected close dates Smart Recommendations**: Generates AI-powered, data-driven process improvement suggestions Data Visualization**: Creates charts and trend analysis for performance metrics Performance Scoring**: Calculates comprehensive performance scores and risk levels Beyond simple calculations, the workflow applies AI intelligence to generate human-readable insights. It determines if a deal was faster or slower than average, identifies which stage caused delays, analyzes sentiment for risk assessment, predicts outcomes, and suggests specific process improvements based on the data. Finally, it closes the loop by broadcasting these AI-enhanced focused insights to a Slack channel for immediate team visibility and logging the new deal's performance back into Google Sheets. This ensures your historical dataset grows richer and more accurate with every closed deal, continuously improving the quality of future AI predictions. Whoβs It For Sales Managers**: To monitor team performance and identify coaching opportunities without digging into CRM reports. RevOps Professionals**: To automate the collection of cycle-time data and spot process bottlenecks. Small Business Owners**: To get enterprise-grade sales analytics without hiring a data analyst. Sales Teams**: To get immediate feedback on their wins and losses, fostering a culture of continuous improvement. Prerequisites n8n Instance**: A self-hosted or cloud version of n8n. Zoho CRM Account**: With permission to read Deals. Google Account**: Access to Google Sheets. Slack Workspace**: Permission to post messages to channels. OpenAI Account**: API access for GPT-4 model integration. Google Sheet**: A formatted sheet to store and retrieve historical deal data. How to Use & Setup 1. Google Sheet Setup Create a new Google Sheet. In the first row, add the following headers (the workflow tries to match various case formats, but these are recommended): Deal_Name Stage Created_Time Closed_Time Stage_History (Optional, for advanced dwell time analysis) 2. Configure Credentials In your n8n dashboard, ensure you have authenticated: Zoho CRM Google Sheets Slack OpenAI** (for AI-powered analysis) 3. Node Configuration Zoho CRM - Deal Trigger**: This node is set to "Get All" deals. You might want to adjust this to a Trigger node that listens for "Deal Updated" or "Deal Created" events for real-time automation, or keep it as a scheduled poll. Filter Recent Deals (Code Node)**: Currently configured to process deals closed in the last 7 days and limit to 10 items. No changes needed unless you want to process larger batches. Fetch Historical Averages (Google Sheets)**: Select your Credential. Resource: Document -> Select your prepared Sheet. Operation: Get Many ("GetAll" or "Read"). Return All: True. AI Sentiment Analysis (OpenAI)**: Select your OpenAI Credential. Model: GPT-4 (recommended for best results). Automatically analyzes deal sentiment and emotional tone. AI Predictive Analytics (OpenAI)**: Uses historical data to predict outcomes and win probabilities. Provides risk assessment and expected close dates. AI Smart Recommendations (OpenAI)**: Generates intelligent, context-aware recommendations. Prioritizes suggestions based on impact and feasibility. Advanced Data Visualization**: Creates charts for cycle trends, stage distribution, and performance metrics. Generates data for visual analysis and reporting. Slack Notification**: Select your Credential. Channel: Enter the name of your channel (e.g., #sales-insights). Now includes AI-enhanced insights in the message format. Log to Historical Sheet (Google Sheets)**: Select your Credential. Resource: Document -> Select the same sheet as above. Operation: Append. 4. Running the Workflow Test**: Click "Execute Workflow" manually to test with the "Zoho CRM - Deal Trigger" (conceptually acting as a manual fetch here). Production*: Switch the trigger to a legitimate *Schedule Trigger (e.g., run every morning) or a Zoho CRM Trigger (Real-time) to automate the process. How To Customize Nodes Adjusting the Risk/Insight Logic The core intelligence lives in the Analyze Cycle code node. You can modify the JavaScript here to change thresholds. Change "Slow" Threshold**: Look for if (totalDays > avgDays * 1.25). Change 1.25 to 1.5 to only flag deals that are 50% slower than average. custom Suggestions**: Add new if statements in the // Process improvement suggestions section to add your own coaching advice based on specific stages or owners. Customizing AI Prompts The AI nodes use specific prompts that can be customized: AI Sentiment Analysis**: Modify the prompt in the OpenAI node to focus on specific aspects (e.g., competitor mentions, pricing concerns). AI Predictive Analytics**: Adjust the prediction criteria or add custom factors relevant to your business. AI Smart Recommendations**: Customize the recommendation style or focus on specific business objectives. Changing the Output Format The Slack Notification node uses a template. You can customize the message layout by editing the Text field. You can use standard Slack markdown (e.g., bold, italics) and add variables from specific fields in your CRM (like "Lead Source" or "Competitor"). AI Model Configuration Model Selection**: Change from GPT-4 to GPT-3.5-turbo for faster processing (slightly less accurate). Temperature Adjustment**: Modify creativity level in AI responses (0.0 = deterministic, 1.0 = highly creative). Token Limits**: Adjust response length for more detailed or concise AI outputs. Addβons To extend the functionality of this workflow, consider adding: Weekly Report Email**: Add an "Email" node at the end to send a summary digest to the CEO every Friday. Manager Alert**: Add an IF node before Slack to tag the Sales Manager (@user) only if the totalDays exceeds 60 days or if AI risk level is "High". CRM Update: Write the calculated "Days to Close" and **AI predictions back into custom fields in Zoho CRM so you can report on it directly inside Zoho. Dashboard Integration**: Send visualization data to tools like Grafana or Power BI for real-time dashboards. Competitor Analysis**: Add AI node to analyze deal descriptions for competitor mentions and market trends. Use Case Examples 1. Post-Mortem on Lost Deals When a deal is marked "Closed Lost," the workflow calculates how long it sat in each stage. AI sentiment analysis detects negative communication patterns, and the Slack alert highlights this bottleneck, prompting a review of the negotiation strategy. 2. Celebrating Efficiency A deal closes in 15 days when the average is 45. The workflow identifies this anomaly, calculates it is "66% faster than average," AI predicts high success factors, and posts a celebratory message, asking the rep to share what worked. 3. Reviewing Stalled Deals By changing the trigger to look for open deals, you can use this logic to flag active deals that have already exceeded the average winning cycle time, signaling they are "at risk." AI predictive analytics provides win probability for each stalled deal. 4. Onboarding Usage New sales reps can see immediate feedback on their deals compared to the company historical average, helping them calibrate their pace without constant manager intervention. AI recommendations provide personalized coaching tips. 5. Product/Service Specific Analysis Duplicate the workflow and filter by "Product Type" in the Code node. Maintain separate Google Sheets for "Enterprise" vs "SMB" deal cycles to get more accurate baselines for different business lines. AI sentiment analysis can identify product-specific communication patterns. 6. AI-Enhanced Deal Scoring NEW: The workflow now provides AI-powered deal scoring, sentiment-based risk assessment, and predictive win probabilities, enabling sales teams to prioritize high-potential deals and focus resources effectively. Troubleshooting Guide | Issue | Possible Cause | Solution | | :--- | :--- | :--- | | No insights generated | Google Sheet is empty or headers don't match. | Ensure your Google Sheet has at least one row of valid historical data with matching headers (Created_Time, Closed_Time). | | "Invalid Date" errors | Date formats in Zoho or Sheets are inconsistent. | Check that your system regional settings match. The Code node expects standard date strings. | | Slack message is empty | Deal_Name or sensitive data is missing. | The "Check Valid Data" node filters out incomplete records. Ensure your test deals have a Name and timestamps. | | Workflow times out | Too many deals being processed. | The "Filter Recent Deals" node limits to 10 items. If you remove this limit, n8n may timeout on large datasets. Keep the batch size small. | | Google Sheets Error | Authentication or Sheet ID missing. | Re-authenticate your Google account and re-select the Document and Sheet from the list in the node settings. | | AI nodes not working | OpenAI API key missing or invalid. | Configure your OpenAI credentials in n8n settings and ensure the API key has sufficient credits. | | AI responses too slow | Using GPT-4 with large datasets. | Switch to GPT-3.5-turbo for faster processing, or reduce the amount of data sent to AI nodes. | | Sentiment analysis inaccurate | Limited deal description data. | Ensure your Zoho deals have meaningful descriptions and communication logs for better sentiment analysis. | | Predictions seem wrong | Insufficient historical data. | AI predictions improve with more historical data. Ensure at least 50+ historical deals for accurate predictions. | Need Help? Setting up custom analytics or complex logic in Code nodes can be tricky. If you need help tailoring this workflow to your specific business rules, creating advanced Add-ons or integrating with other CRMs: Contact WeblineIndia We specialize in building robust business process automation solutions. Whether you need a simple tweak or a fully custom enterprise automation suite, our experts are ready to assist. Reach out to us today to unlock the full potential of your sales data!
by LΓ©o Mathurin
β¨ Try It Out! Sync your Linear issues to Todoist automatically with this n8n workflow. When an issue is created, updated, or completed in Linear, a corresponding task is created, updated, or closed in Todoist. βοΈ How It Works Triggered by issue changes via linearTrigger Routes based on action (create, update, remove) Checks if a matching Todoist task already exists (via issue ID) If the issue has: A due date And is assigned to you (youremail@example.com) β€ Then it creates or updates the task accordingly If the issue is marked Done, the Todoist task is closed If it's deleted in Linear, the Todoist task is also removed Sub-issues get enriched with their parent title for clarity π οΈ Customization Replace youremail@example.com with your Linear email in the IF nodes Adjust which states are synced (e.g. βIn Progressβ, βTodoβ...) Customize the Todoist project, labels, or title formatting β οΈ Bi-directional Sync? This workflow is one-way (Linear β Todoist). Bi-directional syncing might be possible but isnβt handled hereβit would be a cool upgrade! β Requirements n8n with OAuth2 access to Linear and Todoist Your Linear email set in the workflow for filtering A target Todoist project (default: Inbox) π¬ Need Help? Ask in the n8n Forum or join the Discord. Happy Automating! π
by Avkash Kakdiya
How it works The workflow triggers on a new checkout event from Shopify and extracts all relevant cart data. It filters carts based on value and age to isolate qualified abandoned checkouts. For each qualified cart, it sends a follow-up email, updates or creates the corresponding HubSpot contact, and generates a CRM note linked to that contact. Finally, it logs the processed cart into Google Sheets for tracking and review. Step-by-step Trigger on new Shopify checkout** Shopify Trigger β Starts the workflow when a new checkout is created. Normalize and structure cart data** Parse Cart Data β Extracts email, customer name, items, cart totals, timestamps, and hours since creation. Filter carts that meet follow-up criteria** Filter Qualified Carts β Passes only carts older than 12 hours and valued above 50. Send follow-up message** Send a message β Delivers a reminder email to the customer about the pending checkout. Create or update CRM contact** Create or update a contact β Ensures the shopper exists as a HubSpot contact. Prepare CRM note details** Generates Note Data β Builds a structured note containing timing, cart details, and follow-up context. Create the HubSpot note** Create HubSpot Note β Submits the prepared note to HubSpotβs CRM. Associate note with the contact** Associate Note with Contact in HubSpot β Links the generated note to the correct HubSpot contact. Record activity in tracker sheet** Log to Google Sheets β Appends processed cart fields including items, totals, timestamps, and customer info. Why use this? Identifies high-value or long-abandoned carts automatically and follows up without manual effort. Keeps CRM records updated and adds contextual notes sales teams can act on. Maintains a structured audit trail of every abandoned cart interaction. Improves recovery chances by combining email outreach with CRM enrichment and logging. Enables analysis of abandoned checkout patterns directly from Google Sheets.
by Brian
This template automates posting to Instagram Business and Facebook Pages using the Meta Graph API. It supports both short-lived and long-lived tokens, with a secure approach using System User tokens for reliable, ongoing automation. Includes detailed guidance for authentication, token refresh logic, and API use. Features: πΈ Publish to Instagram via /media + /media_publish π Post to Facebook Pages via /photos π Long-lived token support via Meta Business System User β»οΈ Token refresh support using staticData in n8n π§ In-line sticky note instructions Use Cases: Schedule and publish branded social media content Automate marketing flows with CRM + social sync Empower internal teams or clients to post without manual steps Tags: Instagram, Facebook, Meta Graph API, Social Media, Token Refresh, Long-Lived Token, Marketing Automation, System User