by Dr. Firas
💥 Automate video ads with NanoBanana, Seedream 4, ChatGPT Image and Veo 3 Who is this for? This template is designed for marketers, content creators, and e-commerce brands who want to automate the creation of professional ad videos at scale. It’s ideal for teams looking to generate consistent, high-quality video ads for social media without spending hours on manual design, editing, or publishing. What problem is this workflow solving? / Use case Creating video ads usually requires multiple tools and a lot of time: writing scripts, designing product visuals, editing videos, and publishing them across platforms. This workflow automates the entire pipeline — from idea to ready-to-publish ad video — ensuring brands can quickly test campaigns and boost engagement without production delays. What this workflow does Generates ad ideas from Telegram input (text + product image). Creates product visuals using multiple AI image engines: 🌊 Seedream 4.0 (realistic visuals) 🍌 NanoBanana (image editing & enhancement) 🤖 ChatGPT Image / GPT-4o (creative variations) Produces cinematic video ads with Veo 3 based on AI-generated scripts. Merges multiple short clips into a polished final ad. Publishes automatically to multiple platforms (TikTok, Instagram, LinkedIn, X, Threads, Facebook, Pinterest, Bluesky, YouTube) via Blotato. Stores metadata and results in Google Sheets & Google Drive for easy tracking. Notifies you via Telegram with the video link and copy. Setup Connect your accounts in n8n: Telegram API (for input and notifications) Google Drive + Google Sheets (storage & tracking) Kie AI API (Seedream + Veo 3) Fal.ai API (NanoBanana + video merging) OpenAI (for script and prompt generation) Blotato API (for social publishing) Prepare a Google Sheet with brand info and settings (product name, category, features, offer, website URL). Deploy the workflow and connect your Telegram bot to start sending ad ideas (photo + caption). Run the workflow — it will automatically generate images, create videos, and publish to your chosen channels. How to customize this workflow to your needs Brand customization**: Adjust the Google Sheet values to reflect your brand’s offers and product features. Platforms**: Enable/disable specific Blotato nodes depending on which platforms you want to publish to. Video style**: Edit the AI agent’s system prompt to control tone, format, and transitions (cinematic, playful, modern, etc.). Notifications**: Adapt Telegram nodes to send updates to different team members or channels. Storage**: Change the Google Drive folder IDs to store generated videos and images in your preferred location. This workflow lets you go from idea → images → cinematic ad video → auto-published content in minutes, fully automated. 📄 🎥 Watch This Tutorial: Step by Step 📄 Documentation: Notion Guide Need help customizing? Contact me for consulting and support : Linkedin / Youtube
by Miha
This n8n template drafts customer-ready email replies using Google Gemini, enriched with HubSpot context (contact, deals, companies, tickets). Each draft is routed to Slack for one-click approval before it’s sent from Gmail—so you move fast without losing control. Ideal for support and sales teams that want speedy, personalized responses while keeping humans in the loop. How it works Gmail Trigger** watches for new inbound emails. Sender filter** excludes internal domains (e.g., n8n.io) to avoid auto-replying to teammates. HubSpot contact lookup* finds the sender and fetches associated *deals/companies/tickets** via association + batch read. CRM context is normalized** into clean, LLM-friendly fields (no IDs or sensitive noise). Gemini (Google AI Studio)** generates a concise, friendly reply using: Sender name, subject, and message snippet Safe, relevant HubSpot context (e.g., top 1–2 deals or an open ticket) Style constraints (≤ \~150 words, single CTA, optional clarifying question) Slack approval* posts the draft to a channel; if *approved, n8n **replies via Gmail in the original thread. How to use Gmail: Connect the same account for the trigger and reply nodes. HubSpot: Connect OAuth on the search + HTTP request nodes. Gemini: Add your Google AI Studio API key to the Google Gemini Chat Model node. Slack: Connect and select the channel for draft approvals. (Optional) Filter: Adjust the Allowed Sender filter before going live. (Optional) Prompt: Edit “Draft Reply (AI Agent)” tone/length or how much CRM detail to include. Activate the workflow. New emails will produce Slack-approved replies automatically. Requirements Gmail** (trigger + send) HubSpot** (OAuth2) for contact + associations Slack** for approval step Google Gemini** (Google AI Studio API key) Notes & customization Safety rails:** The prompt avoids exposing IDs/raw JSON and caps CRM details to what’s useful. Auto-send mode:** Skip Slack if you want fully automated replies for specific senders/labels. Richer context:** Extend the batch read to pull more properties (e.g., next step, renewal date). Triage:** Branch on subject/labels to route billing vs. technical requests to different prompts. QA queue:* If the model asks a clarifying question, keep it to *one**—the node enforces that.
by yu-ya
Schedule and optimize social media posts to Twitter and LinkedIn using AI This workflow automates the entire lifecycle of social media management—from fetching draft content to AI-driven optimization and multi-platform publishing. Who’s it for Social media managers, marketing teams, and content creators who use Google Sheets to plan their content but want to leverage AI for better engagement and automate the repetitive task of cross-platform posting. How it works The workflow is triggered either hourly or manually via a webhook. It fetches scheduled content from a designated Google Sheet and identifies posts ready for publication. An AI Agent (OpenAI) then analyzes the raw content to generate two optimized versions: a punchy, character-limited post for Twitter and a more professional, detailed version for LinkedIn. After generating relevant hashtags and engagement tips, the workflow publishes the posts simultaneously. Finally, it logs the live URLs back to your spreadsheet and sends a performance summary to a Slack channel for easy tracking. How to set up Google Sheet: Create a sheet with columns for status, content, platforms, scheduled_time, hashtags, and tone. Credentials: Connect your Google Sheets, OpenAI, Twitter (X), LinkedIn, and Slack accounts. Node Configuration: Select your specific spreadsheet and worksheet in both the "Fetch Content" and "Update Content" nodes. Slack: Specify the channel name or ID in the Slack node to receive notifications. Activation: Test with the Manual Webhook, then toggle the workflow to "Active." Requirements Google Sheets OAuth2** OpenAI API Key** (using GPT-4o-mini or higher) Twitter (X) OAuth2** LinkedIn OAuth2** Slack Bot Token** How to customize the workflow AI Tone**: Modify the "System Message" in the AI Content Optimizer node to match your brand's unique voice. Additional Platforms**: Extend the branching logic after the AI Parse node to include platforms like Discord, Facebook, or Mastodon. Advanced Scheduling**: Adjust the Filter node's JavaScript code if you use a different date format or status labels in your spreadsheet.
by Juan Carlos Cavero Gracia
This automation workflow is designed for e-commerce businesses, digital marketers, and entrepreneurs who need to create high-quality promotional content for their products quickly and efficiently. From a single product image and description, the system automatically generates 4 promotional carousel-style images, perfect for social media, advertising campaigns, or web catalogs. Note: This workflow uses Gemini 2.5 Flash API for image generation, imgbb for image storage, and upload-post.com for automatic Instagram, Tiktok, Facebook and Youtube publishing* Who Is This For? E-commerce Owners:** Transform basic product photos into professional promotional content featuring real people using products in authentic situations. Digital Marketers & Agencies:** Generate multiple advertising content variations for Facebook Ads, Instagram Stories, and digital marketing campaigns. Small Businesses & Entrepreneurs:** Create professional promotional material without expensive photo shoots or graphic designers. Social Media Managers:** Produce engaging and authentic content that drives engagement and conversions across all social platforms. What Problem Does This Workflow Solve? Creating quality promotional content requires time, resources, and design skills. This workflow addresses these challenges by: Automatic Carousel Generation:** Converts a single product photo into 4 promotional images featuring people using the product naturally. Authentic & Engaging Content:** Generates images showing real product usage, increasing credibility and conversions. Integrated Promotional Text:** Automatically includes visible offers, benefits, and call-to-actions in the images. Social Media Optimization:** Produces vertical 9:16 format images, perfect for Instagram, TikTok, and Facebook Stories. Automatic Publishing:** Optionally publishes the complete carousel directly to Instagram with AI-generated optimized descriptions. How It Works Product Upload: Upload a product image and provide detailed description through the web form. Smart Analysis: The AI agent analyzes the product and creates a storyboard of 4 different promotional images. Image Generation: Gemini 2.5 Flash generates 4 variations showing people using the product in authentic contexts. Automatic Processing: Images are automatically processed, optimized, and stored in imgbb. Promotional Description: GPT-4 generates an attractive, social media-optimized description based on the created images. Optional Publishing: The system can automatically publish the complete carousel to Instagram. Setup fal.ai Credentials: Sign up at fal.ai and add your API token to the Gemini 2.5 Flash nodes. imgbb API: Create an account at imgbb.com Get your API key and configure it in the "Set APIs Vars" node Upload-Post (Optional): For automatic Instagram publishing: Register your account at upload-post.com Connect your Instagram business account Configure credentials in the "Upload Post" node OpenAI API: Configure your OpenAI API key for promotional description generation. Requirements Accounts:** n8n, fal.ai, imgbb.com, OpenAI, upload-post.com (optional), Instagram business (optional). API Keys:** fal.ai token, imgbb API key, OpenAI API key, upload-post.com credentials. Image Format:** Any standard image format (JPG, PNG, WebP) of the product to promote. Features Advanced Generative AI:** Uses Gemini 2.5 Flash to create realistic images of people using products Smart Storyboard:** Automatically creates 4 different concepts to maximize engagement Integrated Promotional Text:** Includes offers, benefits, and CTAs directly in the images Optimized Format:** Generates vertical 9:16 images perfect for social media Parallel Processing:** Generates all 4 images simultaneously for maximum efficiency Automatic Publishing:** Option to publish directly to Instagram with optimized descriptions Use this template to transform basic product photos into complete promotional campaigns, saving time and resources while generating high-quality content that converts visitors into customers.
by Jay Emp0
Heygen Viral UGC Generation Stop manually creating short-form video content. This n8n workflow automatically generates AI talking-head UGC videos using HeyGen and publishes them to Instagram and Facebook every single day — fully on autopilot. Real reel posted to @pinkmatchaprints — generated and published entirely by this workflow. See It In Action: Real Results from Pink Matcha Watch a live reel generated by this workflow See all published reels on @pinkmatchaprints Every single one of these videos was generated and posted automatically — no recording, no editing, no manual uploading. How It Works The workflow runs every day on a schedule. Here's the full pipeline: Picks today's content from a Google Sheet using a day-of-year rotation across all rows marked Idea Randomly selects a HeyGen talking-photo avatar from a pool of 14 for visual variation across posts Generates a 30-second script using GPT-4.1-mini with a warm, spiritual persona called "The Shepherd" Submits to HeyGen API to render a 720x1280 portrait talking-head video Polls HeyGen every 50 seconds (up to 20 times, ~16 min max) until the video is ready Publishes to Instagram and Facebook via upload-post.com with an auto-generated caption Logs every step to a Production Logs Google Sheet — script, video ID, video URL, and status What You're Getting AI-Generated Scripts with a Defined Persona The workflow uses GPT-4.1-mini with a custom system prompt called "The Shepherd" — a calm, wise, spiritual guide. Every script is: 75 to 90 words (~30 seconds when spoken naturally) Written in warm, grounded, accessible language Tailored to the specific content section from your workbook Always ending with: "Visit the link in bio to learn more." A Content Rotation System That Never Repeats Your content pool lives in a Google Sheet. The workflow selects today's section using day-of-year modulo total rows — so it automatically cycles through your content library without manual scheduling. Add more rows to expand the rotation. Full Production Logging Every execution is tracked row by row in a Production Logs sheet. You can see exactly what ran, what script was used, what the HeyGen video ID is, and what the final status is. Async Video Generation with Smart Polling HeyGen renders videos asynchronously. The workflow handles this gracefully — it submits the job, waits, polls the status API, and routes automatically based on the result: Still processing** → waits and retries Completed** → extracts video URL and posts Failed or timed out** → logs the failure reason to the sheet Dual Platform Publishing Videos are published to both Instagram and Facebook in one execution using upload-post.com. The caption is auto-built from the section title and first 100 characters of the script. Google Sheets Structure The workflow uses a single Google Sheets workbook with two tabs: Tab 1: Workbook Content Your content pool. The workflow reads from this every day. | Column | Description | |---|---| | section_title | Title used in the video caption and script prompt | | workbook_content | Full context for the AI to generate the script from | | key_message | The core takeaway — passed to the AI as emphasis | | Status | Set to Idea to include in rotation. Any other value skips the row. | Tab 2: Production Logs Auto-populated. Do not edit manually. | Column | Description | |---|---| | Date | Date the video was generated | | Section Title | Which content section was used | | Script Text | The generated script | | HeyGen Video ID | Used to poll render status | | Raw Video URL | Direct HeyGen video URL | | Final Video URL | Final URL passed to the publishing step | | Status | Lifecycle status or failure reason | Setup Guide Step 1: Credentials | Service | Credential Type | Where Used | |---|---|---| | HeyGen | HTTP Header Auth (X-Api-Key) | Generate and poll videos | | upload-post.com | HTTP Header Auth | Post to Instagram / Facebook | | Google Sheets | OAuth2 | Read content, write logs | | OpenAI | API Key | Generate scripts (GPT-4.1-mini) | Step 2: Google Sheets Duplicate the workbook structure described above Replace the documentId in all Google Sheets nodes with your spreadsheet ID Populate the Workbook Content tab and set Status = Idea on each row Step 3: HeyGen Avatars The workflow ships with 14 hardcoded talking-photo avatar IDs in the Code: Select Random Avatar & Combine Data node. Replace these with your own HeyGen avatar IDs from your HeyGen account. Step 4: upload-post.com Account Update the user field in both the facebook and instagram nodes from pink-matcha to your upload-post.com username. Step 5: Enable Facebook (When Ready) The facebook node is disabled by default. Once you confirm Instagram is posting correctly, enable it in n8n. Step 6: Adjust the Schedule The trigger is set to fire daily at 12pm noon. The node name says "9am" — rename or adjust the time in the Schedule node to match your target posting time. Technical Specs Script AI**: OpenAI GPT-4.1-mini Video Generation**: HeyGen v2 API (talking-photo avatars) Video Format**: 720x1280 portrait (Reels / Shorts) Polling**: 50-second intervals, max 20 attempts (~16 min timeout) Publishing**: upload-post.com multipart API Logging**: Google Sheets (OAuth2) Error Workflow**: Separate n8n error workflow for unexpected crashes Platform**: n8n (self-hosted or cloud) Frequently Asked Questions Q: Do I need a HeyGen subscription? A: Yes. You need a HeyGen account with API access and at least one talking-photo avatar created in your account. Q: What is upload-post.com? A: A third-party service that handles posting video content to Instagram and Facebook on your behalf. You need an account connected to your social profiles. Q: Can I change the AI persona? A: Yes. Edit the system prompt in the Generate Script node to use any persona, tone, or style you want. Q: Can I post to TikTok or YouTube Shorts? A: upload-post.com supports other platforms. You can add additional HTTP request nodes following the same pattern as the instagram node and change the platform[] parameter. Q: How do I add more content? A: Add rows to the Workbook Content tab in Google Sheets and set Status = Idea. The rotation automatically picks them up. Q: What happens if HeyGen fails? A: The workflow detects failure or timeout and writes the reason to the Production Logs sheet. A separate n8n error workflow handles unexpected crashes. Q: How long does one execution take? A: Typically 5 to 15 minutes end-to-end, depending on HeyGen render time. Join the Community Other free n8n workflows GitHub repository Join AI + Automation Discord Official website Live example account Powered by n8n • OpenAI • HeyGen • Google Sheets • upload-post.com
by Zain Ali
🧠 RAG with Full Gmail history + Real time email updates in RAG using OpenAI & Qdrant > Summary: > This workflow listens for new Gmail messages, extracts and cleans email content, generates embeddings via OpenAI, stores them in a Qdrant vector database, and then enables a Retrieval‑Augmented‑Generation (RAG) agent to answer user queries against those stored emails. It’s designed for teams or bots that need conversational access to past emails. 🧑🤝🧑 Who’s it for Support teams** who want to surface past customer emails in chatbots or help‑desk portals Sales ops** that need AI‑powered summaries and quick lookup of email histories Developers** building RAG agents over email archives ⚙️ How it works / What it does Trigger Gmail Trigger polls every minute for new messages. Fetch & Clean Get Mail Data pulls full message metadata and body. Code node normalizes the body (removes line breaks, collapses spaces). Embed & Store Embeddings OpenAI node computes vector embeddings. Qdrant Vector Store inserts embeddings + metadata into the emails_history collection. Batch Processing SplitInBatches handles large inbox loads in chunks of 50. RAG Interaction When chat message received → RAG Agent → uses Qdrant Email Vector Store as a tool to retrieve relevant email snippets before responding. Memory Simple Memory buffer ensures the agent retains recent context. 🛠️ How to set up n8n Instance Deploy n8n (self‑hosted or via Coolify/Docker). Credentials Create an OAuth2 credential in n8n for Gmail (with Gmail API scopes). Add your OpenAI API key in n8n credentials. Qdrant Stand up a Qdrant instance (self‑hosted or Qdrant Cloud). Note your host, port, and API key (if any). Import Workflow In n8n, go to Workflows → Import → paste the JSON you provided. Ensure each credential reference (Gmail & OpenAI) matches your n8n credential IDs. Test Click Execute Workflow or send a test email to your Gmail. Monitor n8n logs: you should see new points in Qdrant and RAG responses. 📋 Requirements n8n** (Self-hosted or Cloud) Gmail API** enabled on a Google Cloud project OpenAI API** access (with Embedding & Chat endpoints) Qdrant** (hosted or cloud) with a collection named emails_history 🎨 How to customize the workflow Change Collection Name** Update the qdrantCollection.value in all Qdrant nodes if you prefer a different collection. Adjust Polling Frequency** In the Gmail Trigger node, switch from everyMinute to everyFiveMinutes or a webhook‑style trigger. Metadata Tags** In Enhanced Default Data Loader, tweak the metadataValues to tag by folder, label, or sender domain. Batch Size** In SplitInBatches, change batchSize to suit your inbox volume. RAG Agent Prompt** Customize the systemMessage in the RAG Agent node to set the assistant’s tone, instruct on date handling, or add additional tools. Additional Tools** Chain other n8n nodes (e.g., Slack, Discord) after the RAG Agent to broadcast AI answers to team channels.
by Intuz
This n8n template from Intuz provides a complete end-to-end content factory to automate the entire lifecycle of creating and publishing AI-driven videos. It transforms a single text prompt into a fully scripted, visually rich video with AI-generated images and voiceovers, then distributes it across multiple social media platforms. Who's this workflow for? Content Creators & YouTubers Social Media Managers & Agencies Digital Marketers & Entrepreneurs Brands looking to scale video content production Objective Generate viral video scripts with Gemini AI (via LangChain). Break scripts into structured scenes(hooks, retention, CTA). Create image prompts and high-quality background visuals automatically. Store all scenes, prompts, images, and metadata into Airtable. Handle file formatting, uploads, and naming automatically. Add error handling and retry logic for smooth execution. Uploading into Social Media platforms. How it works 1. AI Script Generation: The workflow starts with a single command. A powerful Google Gemini AI model, acting as a "Content Brain," generates a complete, viral video script with a title, description, and multiple scenes. 2. Content Management in Airtable: The entire script is broken down and saved systematically into an Airtable base, which acts as the central Content Management System (CMS) for the video production pipeline. 3. AI Image Generation: The workflow loops through each scene in Airtable. It uses an AI agent to enhance the image prompts and sends them to an image generation API (like Pollinations.ai) to create a unique, high-quality image for each scene. These images are then automatically uploaded back into Airtable. 4. Automated Video Rendering: Once all images are ready, the workflow gathers the script text and the corresponding image URLs from Airtable and sends them to Creatomate. Creatomate uses a pre-defined template to assemble the final video, complete with AI-generated voiceovers for each scene. 5. Multi-Platform Publishing: After a brief wait for the video to render, the workflow retrieves the final video file and automatically publishes it across your connected social media channels, including YouTube and Instagram. Key Requirements to Use This Template Before you start, please ensure you have the following accounts and assets ready: 1. n8n Instance & Required Nodes: An active n8n account (Cloud or self-hosted). This workflow relies on the official n8n LangChain integration (@n8n/n8n-nodes-langchain). If you are using a self-hosted version of n8n, please ensure this package is installed on your instance. 2. AI & Video Accounts: Google Gemini AI Account: A Google Cloud account with the Vertex AI API enabled and an API Key. Creatomate Account: It's platform to generate videos. An account with Creatomate for video rendering, and your API key and a pre-designed video template ID. 3. Content & Social Media Accounts: Airtable Account: An Airtable base set up to manage the video content. Using the complementary Airtable template is highly recommended. YouTube Account: A YouTube channel with API access enabled via Google Cloud Console. Upload-Post.com Account: An account for posting to other platforms like Instagram. Workflow Steps 1.▶️ Trigger (Manual/Auto) Start workflow manually or via schedule. 2.🧠 Content Brain (Gemini + LangChain) Role-trained viral strategist prompt. Generates 6 scene scripts with: Hook → Retention → Value → CTA. Follows viral content rules (engagement triggers, curiosity gaps, shareable moments). 3.📑 Structured Output Parser Enforces JSON schema: video_id video_title description scenes[] → scene_number, text, image_prompt 4.📄 Airtable – Store Scenes Each scene stored with: Video ID, Title, Description Scene Number & Text Image Prompt & Generated Image link 5.🤖 AI Agent – Image Prompt Creator Transforms scene text →optimized image prompts using structured rules. 6.🎨 Pollination AI – Image Generation Generates vertical 9:16 visuals with parameters: Model: flux Resolution: 1080x1920 Steps: 12 Guidance Scale: 3.5 Safety Checker: Enabled Options: seed=42, nologo=true 7.📂 File Handling & Conversion Assigns filenames automatically (e.g., images_001.png). Converts binary image → base64 for Airtable storage. 8.📤 Airtable Upload – Store Images Attaches generated visuals directly into Generated Image field. 9.⚡ Switch & Error Handling Branches for: ✅ Success → continue ❌ Failed → stop with error message ⏳ Processing → wait/retry 10.Social Media Upload In YouTube via YouTube API from official documentation In Instagram Via Upload Post API Setup Instructions 1. AI Configuration: In the Google Gemini Chat Model nodes, connect your Google Gemini API account. In the Content Brain node, you can customize the core prompt to change the video's niche, style, or topic. 2. Airtable Setup (Crucial): Connect your Airtable account in the Airtable nodes. Set up your Airtable base using the provided template or ensure your base has identical table and field names. Update the Base ID and Table IDs in the Airtable nodes. Airtable Schema: 3. Video Rendering Setup (Creatomate): In the Video Rendering - Creatomate node, add your Creatomate API key to the header authorization. In the Template for Creatomate node, replace the template_id with the ID of your own video template from your Creatomate account. 4. Social Media Connections: In the Upload on YouTube node, connect your YouTube account via OAuth2. In the Upload on Instagram node, replace the API key in the header authorization with your key from Upload-Post.com. 5. Execute the Workflow: Click "Execute workflow" to kick off your automated video content factory. Connect with us Website: https://www.intuz.com/services Email: getstarted@intuz.com LinkedIn: https://www.linkedin.com/company/intuz Get Started: https://n8n.partnerlinks.io/intuz For Custom Worflow Automation Click here- Get Started
by Madame AI
Automate social media content aggregation to a Telegram channel This n8n template automatically aggregates and analyzes key updates from your social media platforms Home Page, delivering them as curated posts to a Telegram channel. This workflow is perfect for digital marketers, brand managers, or data analysts and Busy people, seeking to monitor real-time trends and competitor activity without manual effort. How it works The workflow is triggered automatically on a schedule to aggregate the latest social media posts. A series of If and Wait nodes monitor the data processing job until the full data is ready. An AI Agent, powered by Google Gemini, refines the content by summarizing posts and removing duplicates. An If node checks for an image in the post to decide if a photo or a text message should be sent. Finally, the curated posts are sent to your Telegram channel as rich media messages. How to use Set up BrowserAct Template: In your BrowserAct account, set up “Twitter/X Content Aggregation” template. Set up Credentials: Add your credentials for BrowserAct In Run Node , Google Gemini in Agent Node, and Telegram in Send Node. Add Workflow ID: Change the workflow_id value inside the HTTP Request inside the Run Node, to match the one from your BrowserAct workflow. Activate Workflow: To enable the automated schedule, simply activate the workflow. Requirements BrowserAct** API account BrowserAct* *“Twitter/X Content Aggregation”** Template Gemini** account Telegram** credentials customizing this workflow This workflow provides a powerful foundation for social media monitoring. You could: Replace the Telegram node with an email or Slack node to send notifications to a different platform. Add more detailed prompts to the AI Agent for more specific analysis or summarization. customize BrowserAct Workflow to reach your desire. Need Help ? How to Find Your BrowseAct API Key & Workflow ID How to Connect n8n to Browseract How to Use & Customize BrowserAct Templates Workflow Guidance and Showcase Automate Your Social Media: Get All X/Twitter Updates Directly in Telegram!
by isaWOW
Description Automate LinkedIn organization page posting with precise time scheduling and Google Drive media management. Runs hourly during business hours, processes approved posts scheduled for today, waits until exact time, publishes to LinkedIn, and updates tracking sheet—perfect for maintaining consistent LinkedIn presence. What this workflow does This workflow automates LinkedIn organization page posting with precise timing control and a centralized Google Sheets content calendar. It runs four times daily (9:45 AM, 10:45 AM, 11:45 AM, 12:45 PM) and reads your Google Sheet to find posts marked with Approval Status = "Good" and Platform = "LinkedIn" that are scheduled for today. Unlike batch processing workflows, this processes ONE post per run to prevent duplicate scheduling. Once it finds a post, it marks it as "Scheduled" in your sheet, then uses a Wait node to pause the workflow execution until the exact scheduled time (with automatic timezone conversion from Eastern to India time). At the scheduled moment, it either downloads an image from Google Drive and publishes a Creative Post, or publishes an Article link—depending on the Post Type. After successfully publishing to your LinkedIn organization page, it updates your Google Sheet with the live post URL and changes the Approval Status to "Published", creating a complete audit trail with precise timing control. Perfect for social media managers maintaining consistent LinkedIn presence, marketing agencies scheduling client LinkedIn content with approval checkpoints, content creators batch-planning professional posts, and teams needing collaborative LinkedIn calendars with exact time control. Key features Precise time scheduling with Wait node: Unlike immediate publishing, this workflow uses n8n's Wait node to pause execution until the exact scheduled time—ensuring posts publish at 10:00 AM sharp, not 9:45 AM when the workflow runs. Timezone conversion included: Automatically converts "Scheduled On" times from Eastern Time (content creator's timezone) to India Time (server timezone) using DateTime.fromFormat—no manual calculation needed. One post per run: Processes only the first pending post each time the workflow runs, preventing duplicate scheduling if multiple posts share the same time slot—ensures clean execution and tracking. Dual post type support: Handles both Creative Posts (image posts downloaded from Google Drive) and Articles (link posts with article URL)—automatically routes based on Post Type column. LinkedIn organization posting: Posts directly to your LinkedIn organization/company page (not personal profile) using LinkedIn Community Management API with proper OAuth authentication. Status progression tracking: Three-stage workflow: Good (approved) → Scheduled (waiting for time) → Published (live on LinkedIn)—always know what's queued vs. what's live. Google Sheets content calendar: Manage LinkedIn posts in a familiar spreadsheet with columns for Scheduled On, Platform, Post Type, Caption, Media URL, and Approval Status—no complex tools needed. Google Drive media integration: Stores images in Google Drive (centralized storage), then automatically downloads them when publishing Creative Posts—supports shared drives and private files. Post URL tracking: After publishing, updates Google Sheet with the live LinkedIn post URL (https://www.linkedin.com/feed/update/{urn})—enables easy performance tracking and reporting. Runs during business hours only: Schedule trigger fires at :45 minutes (9-12 AM) to catch morning posts—won't run at night or on weekends unless you modify the cron. How it works 1. Hourly trigger during business hours A cron trigger runs at 9:45 AM, 10:45 AM, 11:45 AM, and 12:45 PM every day. The :45 timing gives a 15-minute buffer before the hour to schedule posts for :00, :15, :30, or :45 times. 2. Load LinkedIn credentials The workflow reads a separate ".env" sheet in your Google Sheets document containing: LinkedIn Organization ID:** Your company page's unique ID (e.g., 56420402) Other LinkedIn-specific configuration This centralizes credentials so multiple workflows can share the same settings. 3. Fetch approved LinkedIn posts The workflow reads your main "Post URL" sheet and applies two filters: Approval Status = "Good":** Only processes approved posts Platform = "LinkedIn":** Filters out Facebook, Instagram, etc. This returns all approved LinkedIn posts regardless of date. 4. Filter posts scheduled for today A Code node compares the "Scheduled On" column value against today's date (ignores time, just checks the date part). Only posts scheduled for today pass through. Supported date format: "2025-10-30 10:00" (YYYY-MM-DD HH:MM) Time uses 24-hour format 5. Process first post only Critical difference from Facebook workflow: A Code node extracts only the FIRST item from the filtered posts. Why only one post? Prevents duplicate scheduling if workflow runs multiple times Wait node works on single execution paths Ensures precise timing per post Next run will pick up the next pending post 6. Route by post type A Switch node checks the Post Type column: Output 0 (Creative Post):** Posts with images (routes to Branch A) Output 1 (Article):** Posts with article links (routes to Branch B) Branch A: Creative Post with Image 7a. Mark as scheduled in sheet Before waiting, the workflow updates the Google Sheet: Approval Status:** "Scheduled" This prevents the same post from being picked up again in the next hourly run. 8a. Wait until scheduled time Most critical node: The Wait node pauses workflow execution until the exact scheduled time. Timezone conversion logic: DateTime.fromFormat( $('Route by Post Type').item.json['Scheduled On'], 'yyyy-MM-dd HH-mm', { zone: 'America/New_York' } // Input timezone (Eastern) ) .setZone('Asia/Kolkata') // Server timezone (India) .toFormat("yyyy-MM-dd'T'HH:mm:ss") Example: Sheet value: "2025-10-30 14:00" (Eastern Time) Converted to: "2025-10-30T23:30:00" (India Time) Workflow resumes at exactly 11:30 PM India time = 2:00 PM Eastern 9a. Prepare post data Aggregate node (keeps data structure intact for next nodes). 10a. Download image from Google Drive Uses the Media URL (Google Drive sharing link) to download the image file. Supports: Direct Google Drive file URLs Shared Drive files Public or private files (as long as OAuth account has access) The image is downloaded as binary data. 11a. Publish creative post to LinkedIn Uses n8n's LinkedIn node with these settings: Authentication:** communityManagement (LinkedIn Community Management API) Post as:** organization Organization:** 56420402 (your company page ID) Text:** Caption from Google Sheet Share media category:** IMAGE Binary data:** Downloaded image The LinkedIn API returns a URN (unique post identifier). 12a. Save post URL & mark published Constructs the LinkedIn post URL: https://www.linkedin.com/feed/update/{urn} Then updates the Google Sheet row: Approval Status:** "Published" Post URL:** Constructed LinkedIn URL Branch B: Article Post with Link 7b. Mark article as scheduled Updates Google Sheet: Approval Status = "Scheduled" 8b. Wait until article scheduled time Same Wait node logic as Creative Posts—pauses until exact scheduled time with timezone conversion. 9b. Prepare article data Aggregate node. 10b. Publish article link to LinkedIn Uses LinkedIn node with these settings: Authentication:** communityManagement Post as:** organization Organization:** 56420402 Text:** Caption from Google Sheet Share media category:** ARTICLE Original URL:** Media URL (the article link) LinkedIn scrapes the article URL and creates a rich preview card. 11b. Save article URL & mark published Same as Creative Posts—constructs post URL and updates sheet with "Published" status. Setup requirements Tools you'll need: Active n8n instance (self-hosted or n8n Cloud) Google Sheets with OAuth access Google Drive with OAuth access LinkedIn organization/company page (not personal profile) LinkedIn Community Management API credentials Estimated setup time: 35–40 minutes Configuration steps 1. Set up LinkedIn Community Management API Go to LinkedIn Developer Console Create an app (or use existing) Add "Community Management API" product Request access for your organization page Under Auth → OAuth 2.0 settings: Add redirect URL: https://your-n8n-instance.com/rest/oauth2-credential/callback Note your Client ID and Client Secret In n8n: Credentials → Add credential → LinkedIn Community Management OAuth2 API Complete OAuth flow and select your organization page 2. Find your LinkedIn Organization ID Method 1 (URL): Go to your LinkedIn company page URL will be: https://www.linkedin.com/company/{company-name}/ View page source and search for "organizationId" Copy the numeric ID (e.g., 56420402) Method 2 (API): Use LinkedIn API endpoint: /v2/organizationalEntityAcls?q=roleAssignee Find your organization in the response 3. Set up Google Sheets Create two sheets in one Google Sheets document: Sheet 1: ".env" (credentials) | LinkedIn Organization ID | |---| | 56420402 | Sheet 2: "Post URL" (content calendar) | Scheduled On | Platform | Post Type | Caption | Media URL | Approval Status | Post URL | row_number | |---|---|---|---|---|---|---|---| | 2025-10-30 10:00 | LinkedIn | Creative Post | Excited to announce our new product! | https://drive.google.com/file/d/xxx | Good | | 1 | | 2025-10-30 14:00 | LinkedIn | Article | Check out our latest blog post | https://blog.example.com/post | Good | | 2 | Important column details: Scheduled On:** Format YYYY-MM-DD HH-MM (24-hour, Eastern Time) Platform:** Must be "LinkedIn" (case-sensitive) Post Type:** "Creative Post" (with image) or "Article" (with link) Caption:** Post text (LinkedIn supports up to 3,000 characters) Media URL:** Google Drive URL for Creative Post, article URL for Article Approval Status:** "Good" (publish), "Pending" (hold), "Rejected" (skip) Post URL:** Leave empty (auto-filled after publishing) row_number:** Auto-generated by Google Sheets 4. Connect Google Sheets OAuth In n8n: Credentials → Add credential → Google Sheets OAuth2 API Complete OAuth authentication Update these nodes with your sheet URL: "Load LinkedIn Organization Credentials" → .env sheet "Fetch Approved LinkedIn Posts" → Post URL sheet "Mark as Scheduled in Sheet" → Post URL sheet "Save Post URL & Mark Published" → Post URL sheet "Mark Article as Scheduled" → Post URL sheet "Save Article URL & Mark Published" → Post URL sheet 5. Connect Google Drive OAuth In n8n: Credentials → Add credential → Google Drive OAuth2 API Complete OAuth authentication Open "Download Image from Google Drive" node Select your Google Drive credential 6. Update LinkedIn Organization ID Open these nodes and replace "56420402" with your organization ID: "Publish Creative Post to LinkedIn"** "Publish Article Link to LinkedIn"** 7. Adjust timezone (if needed) If your content calendar uses a different timezone than Eastern: Open "Wait Until Scheduled Time" node Change { zone: 'America/New_York' } to your timezone Common values: 'America/Los_Angeles' (Pacific), 'UTC', 'Europe/London' If your n8n server is not in India Time: Change .setZone('Asia/Kolkata') to your server's timezone 8. Test the workflow Add a test post scheduled for 5 minutes from now Set Platform = "LinkedIn", Post Type = "Creative Post", Approval Status = "Good" Manually trigger the workflow (or wait for next hourly run) Verify: Sheet updated to "Scheduled" Workflow execution shows as "Waiting" in n8n At scheduled time, post publishes to LinkedIn Sheet updated to "Published" with URL 9. Activate the workflow Toggle the workflow to Active The workflow will now run automatically 4 times daily Check your LinkedIn page to verify posts are publishing correctly Use cases Social media managers: Schedule 15-20 LinkedIn posts per week from one Google Sheet. Team members add content, you approve, workflow handles precise timing and publishing—no manual LinkedIn.com logins. B2B marketing teams: Maintain consistent LinkedIn company page presence with thought leadership articles, product updates, and team highlights. Schedule weeks in advance, let automation publish at optimal times. Content creators: Batch-create LinkedIn content on Mondays, schedule throughout the week with precise timing. Focus on creation, not distribution—workflow handles publishing. Agencies managing client pages: One Google Sheet per client, separate workflows per organization ID. Centralized content calendar with approval workflow before posting to client pages. Recruiting teams: Schedule hiring posts, culture updates, and employee spotlights to maintain active company presence. Track all post URLs for performance analysis. Personal brands using company pages: If you manage a LinkedIn company page for your personal brand or business, schedule promotional content, case studies, and announcements with professional timing control. Customization options Process multiple posts per run Change "Process First Post Only" node logic: Current: Returns only item 0 Modified: Return all items (use Loop node to process sequentially) Note: Wait nodes won't work with loops—consider using scheduled_publish_time if LinkedIn API supports it Change scheduling frequency Edit the "Run Every Hour" cron expression: Current: 45 9-12 * * * (9:45-12:45 AM hourly) All day: 45 * * * * (every hour at :45) Business hours extended: 45 9-17 * * 1-5 (9 AM-5 PM, Monday-Friday) Twice daily: 0 9,15 * * * (9:00 AM and 3:00 PM) Add video post support LinkedIn supports video posts via Community Management API: Add "Post Type" = "Video" Download video from Google Drive (instead of image) Change share media category to VIDEO Upload video to LinkedIn media upload endpoint first, then create post Support personal profiles If you want to post to personal profiles (not organization): Change authentication from "communityManagement" to "oAuth2" Change "Post as" from "organization" to "person" Use LinkedIn OAuth2 API credentials (not Community Management) Add Slack notifications After publishing nodes, add: Slack node** to send confirmation Format:** "Published LinkedIn post: [URL] at [time]" Include:** Post caption preview for context Multi-organization support Modify .env sheet to support multiple company pages: | Organization Name | LinkedIn Organization ID | |---|---| | Main Brand | 56420402 | | Sub Brand | 78901234 | Add "Organization Name" column to Post URL sheet, then filter and route by organization. Troubleshooting Posts not publishing OAuth expired:** Re-authenticate LinkedIn Community Management API credentials in n8n. Organization permissions:** Verify your LinkedIn account has admin/content creator role on the organization page. API access:** Ensure your LinkedIn app has Community Management API product added and approved. Organization ID wrong:** Double-check the ID matches your actual company page. Wait node not working Scheduled time in past:** n8n Wait node requires future times. If "Scheduled On" is in the past when workflow runs, it fails. Ensure posts are scheduled for future times only. Timezone mismatch:** If posts publish at wrong times, verify timezone conversion is correct (Eastern → your server timezone). DateTime format error:** Ensure "Scheduled On" uses exactly "YYYY-MM-DD HH-MM" format with space between date and time. Images not downloading from Google Drive OAuth expired:** Re-authenticate Google Drive credentials. File permissions:** Ensure the Google account connected to n8n has "Viewer" access to Drive files. Sharing link format:** Media URL must be full Google Drive URL (https://drive.google.com/file/d/FILE_ID/view), not shortened. Multiple posts with same time Current limitation:** This workflow processes ONE post per run. If multiple posts share the same scheduled time, only the first will publish. Solution:** Stagger times by 1 minute (10:00, 10:01, 10:02) or modify workflow to process multiple posts. Sheet not updating OAuth expired:** Re-authenticate Google Sheets credentials. Sheet name mismatch:** Verify sheet tab name is exactly "Post URL" and ".env" (case-sensitive). row_number missing:** Ensure the sheet has a row_number column auto-generated by formula: =ROW()-1 Article previews not showing URL not accessible:** LinkedIn needs to scrape the article URL. Ensure it's publicly accessible (not behind login/paywall). No Open Graph tags:** Article pages need Open Graph meta tags (og:title, og:description, og:image) for LinkedIn to generate previews. LinkedIn cache:** Sometimes LinkedIn caches old previews. Use LinkedIn Post Inspector to refresh cache. Resources n8n documentation LinkedIn Community Management API LinkedIn OAuth Guide Google Sheets API Google Drive API n8n Wait node n8n LinkedIn node Support Need help or custom development? 📧 Email: info@isawow.com 🌐 Website: https://isawow.com/
by Muhammad Farooq Iqbal
This n8n template demonstrates how to create authentic-looking User Generated Content (UGC) advertisements using AI image generation, voice synthesis, and lip-sync technology. The workflow transforms product images into realistic customer testimonial videos that mimic genuine user reviews and social media content. Use cases are many: Generate authentic UGC-style ads for social media campaigns, create customer testimonial videos without hiring influencers, produce localized UGC content for different markets, automate TikTok/Instagram-style product reviews, or scale UGC ad production for e-commerce brands! Good to know The workflow creates UGC-style content that appears genuine and authentic Uses multiple AI services: OpenAI GPT-4o for analysis, ElevenLabs for voice synthesis, and WaveSpeed AI for image generation and lip-sync Voice synthesis costs vary by ElevenLabs plan (typically $0.18-$0.30 per 1K characters) WaveSpeed AI pricing: ~$0.039 per image generation, additional costs for lip-sync processing Processing time: ~3-5 minutes per complete UGC video Optimized for Malaysian-English content but easily adaptable for global markets How it works Product Input: The Telegram bot receives product images to create UGC ads for AI Analysis: ChatGPT-4o analyzes the product to understand brand, colors, and target demographics UGC Content Creation: AI generates authentic-sounding testimonial scripts and detailed prompts for realistic customer scenarios Character Generation: WaveSpeed AI creates believable customer avatars that look like real users reviewing products Voice Synthesis: ElevenLabs generates natural, conversational audio using gender-appropriate voice models UGC Video Production: WaveSpeed AI combines generated characters with audio to create TikTok/Instagram-style review videos Content Delivery: Final UGC videos are delivered via Telegram, ready for social media posting The workflow produces UGC-style content that maintains authenticity while showcasing products in realistic, relatable scenarios that resonate with target audiences. How to use Setup Credentials: Configure OpenAI API, ElevenLabs API, WaveSpeed AI API, Cloudinary, and Telegram Bot credentials Deploy Workflow: Import the template and activate the workflow Send Product Images: Use the Telegram bot to send product images you want to create UGC ads for Automatic UGC Generation: The workflow will automatically create authentic-looking customer testimonial videos Receive UGC Content: Get both testimonial images and final UGC videos ready for social media campaigns Pro tip: The workflow automatically detects product demographics and creates appropriate customer personas. For best UGC results, use clear product images that show the item in use. Requirements OpenAI API** account for GPT-4o product analysis and UGC script generation ElevenLabs API** account for authentic voice synthesis (requires voice cloning credits) WaveSpeed AI API** account for realistic character generation and lip-sync processing Cloudinary** account for UGC content storage and hosting Telegram Bot** setup for content input and delivery n8n** instance (cloud or self-hosted) Customizing this workflow Platform-Specific UGC: Modify prompts to create UGC content optimized for TikTok, Instagram Reels, YouTube Shorts, or Facebook Stories. Brand Voice: Adjust testimonial scripts and character personas to match your brand's target audience and tone. Regional Adaptation: Customize language, cultural references, and character demographics for different markets and demographics. UGC Style Variations: Create different UGC formats - unboxing videos, before/after comparisons, day-in-the-life content, or product demonstrations. Influencer Personas: Develop specific customer personas (age groups, lifestyles, interests) to create targeted UGC content for different audience segments. Content Scaling: Set up batch processing to generate multiple UGC variations for A/B testing different approaches and styles.
by zawanah
Categorise and route emails with GPT 5 This workflow demonstrates how to use AI text classifier to classify incoming emails, and uses a multi-agent architecture to respond for each email category respectively. Use cases Business owners with a lot of incoming emails, or anyone who has huge influx of emails How it Works Any incoming emails will be read by the text classifier powered by GPT 5, and routed according to the defined categories where respective agents will take next steps. Workflow is triggered when an email comes in GPT will read email's "subject","from" and "content" to route it accurately to respective designated categories For customer support enquiries, customer support agent will take knowledge from the pinecone vector database about FAQs and policies, reply via gmail, and label the email as "Customer Support" For finance-related queries, finance agent will label email as "Finance" and assess if email is about making payment or receiving from customers. If payment-related, email will be sent to the payments team to take action. If receipts-related, email will be sent to the receivables team to take action. User will be notified via telegram after any email is sent. For sales/leads enquiries, leads agent will label the email as "Sales Opportunities", take knowledge from the pinecone vector database about the business to generate a response and draft into gmail and user will be notified via telegram to review and send. If there is lack of information for agent to generate a response, user will be notified of this via telegram as well. Any internal team member emails will be routed to the internal agent. The agent will label message as "Internal" and send user a summary of the email message via telegram. How to set up Set up Telegram bot via Botfather. See setup instructions here Setup OpenAI API for transcription services (Credits required) here Set up Openrouter account. See details here Set up Pinecone database. See details here Customization Options Other than Gmail, it is possible to connect to Outlook as well. Other than Pinecone vector database, there are other vector database that should serve the same purpose eg. supabase, qdrant, weviate Requirements Gmail account Telegram bot Pinecone account Open router account
by Pratyush Kumar Jha
Video → Newsletter AI Agent This n8n workflow converts a YouTube video into a polished, email-ready newsletter. It scrapes the transcript, extracts a thumbnail/logo and brand color theme, uses multiple AI agents to (1) clean & summarize the transcript into three newsletter sections, (2) convert that content into a styled HTML newsletter (color-aware), then saves the draft to Google Sheets and sends the email to subscribers via Gmail. The flow is optimized for batch sending and brand-consistent HTML output. How it works (step-by-step) Trigger — On form submission accepts Brand Name, Brand Website, and YouTube video link. Site scrape & colour study — HTTP requests + Information Extractor → AI agent derives brand color theme (primary/secondary/accent/background). Transcript retrieval — Two YouTube transcript scrapers (Apify acts) fetch the video transcript and thumbnail; a small Code node merges transcript chunks. Summarization & journalism — AI Agent2 (LangChain/Gemini) cleans the transcript, extracts thesis + key points, and writes 3 newsletter sections in a journalistic tone. HTML conversion — Convert Newsletter to HTML (AI) agent applies the fixed layout and injects only text color variables (keeps layout intact) and outputs Subject + HTML body (≤1000 words). Aggregate & merge — Merge + Aggregate assemble files, assets, and parsed outputs. Save & send — Save the email draft to Google Sheets (Save Newsletter Draft in Google Sheet) and loop through subscribers from a subscribers sheet; Sending Emails to all the Subscribers (Gmail node) sends the HTML to each address in batches. Batching & looping — Split In Batches handles large subscriber lists; Loop Over Items triggers the HTML-conversion per recipient batch. Quick Setup Guide 👉 Demo & Setup Video 👉 Sheet Template 👉 Course Nodes of interest On form submission (formTrigger) — entry point for video + brand inputs. You Tube Transcript Scraper, You Tube Transcript Scraper1 (HTTP Request → Apify) — transcript + thumbnail fetching. Information Extractor & AI Agent1 — website color/theme extraction. Code in JavaScript — merges transcript pieces into a single text payload. AI Agent2 (LangChain agent + Gemini Chat Model) — transcript → journalist-style newsletter sections. Convert Newsletter to HTML (AI) (LangChain agent + Structured Output Parser) — builds constrained, brand-aware HTML email and subject. Structured Output Parser1/2 — enforce schemas for color theme / structured outputs. Get row(s) in sheet & Save Newsletter Draft in Google Sheet (Google Sheets) — subscriber list + draft storage. Loop Over Items / Split In Batches — batch processing for sends. Sending Emails to all the Subscribers (Gmail) — SMTP/OAuth send. OpenRouter Chat Model — LM compute provider configured in the workflow. What you’ll need (credentials & resources) Google Sheets OAuth2 (for reading subscribers & saving drafts). Gmail OAuth2 (for sending HTML emails). Gemini / LLM provider credentials (Gemini API key or equivalent) for the LangChain agents. Apify API key (for the YouTube transcript scrapers). ConvertAPI (or similar) key if you convert logos (SVG→PNG) server-side. Host storage / publicly accessible URLs for images (thumbnails, logos) or a file-store (S3). Optional: SendGrid / Mailgun credentials if you swap Gmail for a transactional email provider. Security note: do NOT hardcode credentials in node parameters; use n8n credentials manager or environment variables. Recommended settings & best practices Batch size & rate-limits:** set Split In Batches to a conservative batch size (e.g., 50–200) and add delays between batches to avoid provider rate limits and Gmail throttling. Retries & timeouts:** enable retries for HTTP Request nodes and set sensible timeouts (e.g., 30–60s). Use exponential backoff. LM controls:** set token/response length limits and max_output_tokens (or equivalent) to avoid runaway costs; enforce the 1000-word HTML hard limit in the prompt. Validation:** validate the YouTube URL and that transcript content exists before invoking AI summarization (fail fast with a clear error). Schema enforcement:** use Structured Output Parser nodes with strict JSON schemas to prevent malformed outputs. Testing:** run with a small subscriber test sheet and use a safety test Gmail account before sending to production lists. Logging & monitoring:** log each run (video URL, subject, send count, errors) to a monitoring sheet or external logging service. Privacy & compliance:** ensure recipients have consent to receive emails (store opt-ins); include unsubscribe handling if you move beyond one-off sends. Comply with CAN-SPAM / local laws. Credential rotation:** rotate API keys periodically and revoke compromised tokens. Content safety:** instruct the LM agents to avoid hallucinated citations — only include links you can verify. Customization ideas Multi-language support: auto-detect video language and run summarizer in that language. A/B subject testing: generate 2–3 subject lines and send variations to subsets. Scheduling: add a scheduler node to delay sends or publish at optimal send-times per recipient timezone. Integrate with SendGrid/Mailgun for higher throughput and analytics (opens/clicks). Add personalization tokens (first name, company) from subscribers sheet to the HTML (merge fields). Auto-attach transcript as plain-text footer or include “Read more” link to a hosted full article. Add analytics: record opens, clicks, and engagement back into Google Sheets or a database. Support other platforms: ingest videos from Vimeo, Loom, or uploaded MP4s. Use a templating engine to allow multiple newsletter layouts and style variants. Auto-generate social posts (Twitter/X, LinkedIn) from the newsletter summary. Tags n8n newsletter youtube transcript langchain gemini apify gmail google-sheets html-email automation batching ai content-ops