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 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 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 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 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 Davide
This workflow demonstrates how to create viral AI-generated selfie videos featuring famous characters using a fully automated and platform-independent approach. The process is designed to replicate the kind of celebrity selfie videos that are currently going viral on social media and YouTube, where a realistic selfie-style video appears to show the creator together with a well-known public figure. Instead of relying on a proprietary or closed platform, the workflow explains how to build the entire pipeline using direct access to Google Veo 3.1 APIs, giving full control over generation, orchestration, and distribution. Key Advantages 1. ✅ Fully automated video pipeline From prompt to final published video, the entire process runs without manual intervention. 2. ✅ Spreadsheet-driven control Non-technical users can manage video production simply by editing Google Sheets: Add new prompts Adjust duration Control merge logic 3. ✅ Scalable and modular Supports batch processing of many videos Easy to extend with new AI models, platforms, or output formats 4. ✅ Reliable async handling Built-in wait and status-check logic ensures robustness Prevents failures caused by long-running AI jobs 5. ✅ Centralized asset management Automatically stores video URLs and statuses Keeps production data organized and auditable 6. ✅ Multi-platform ready One generated video can be reused for: YouTube TikTok Instagram Other social channels 7. ✅ Cost and time efficiency Eliminates repetitive manual video editing Reduces production time from hours to minutes Ideal Use Cases AI-generated storytelling videos Social media content automation Marketing video campaigns Short-form video experiments at scale Faceless or semi-automated content channels How it Works This workflow automates the generation of short video clips using AI, merges them into a final video, and optionally uploads the result to multiple platforms. Trigger & Data Fetching The workflow starts with a manual trigger. It reads a Google Sheet containing prompts, image URLs (first and last frames), and duration settings for each video clip to be generated. Video Clip Generation For each row in the sheet, the workflow calls the fal.ai VEO 3.1 API to generate a video clip based on the provided prompt, start image, end image, and duration. The clip is created asynchronously, so the workflow polls the API for status until completion. Status Polling & URL Retrieval Once a clip is marked as COMPLETED, its video URL is fetched and written back to the Google Sheet in the corresponding row. Video Merging After all clips are generated, the workflow collects the video URLs from rows marked for merging and sends them to the fal.ai FFmpeg API to be combined into a single video. Final Video Processing The merged video is polled until ready, then its final URL is retrieved. The video file is downloaded via HTTP request. Upload & Distribution The final video can be uploaded to: Google Drive YouTube (via upload-post.com API) Postiz (for multi-platform social media posting) Each upload step is currently disabled and requires configuration (usernames, titles, platform settings). WARNING It may happen that the workflow stops at the video generation node with the following message: > Your request is invalid or could not be processed by the service [item 0] > The content could not be processed because it contained material flagged by a content checker. This occurs because images are checked both before and after the video generation process. If this happens, you can either use less restrictive video models while keeping the same workflow structure, or change the source images in the Google Sheets file. Set Up Steps Google Sheets Setup Prepare a Google Sheet with columns: START, LAST, PROMPT, DURATION, VIDEO URL, MERGE Connect n8n to Google Sheets using OAuth2 credentials. Fal.ai API Configuration Obtain an API key from fal.ai. Set up HTTP Header Auth credentials in n8n with the key. Upload Services Configuration Google Drive: Configure OAuth2 credentials and specify the target folder ID. YouTube/upload-post.com: Enter your username and title in the respective node. Postiz: Set up Postiz API credentials and configure platform channels. Enable Required Nodes Enable the upload nodes (Upload Video, Upload to Youtube, Upload to Postiz, Upload to Social) once credentials are configured. Adjust Polling Intervals Modify wait times (Wait 30 sec., Wait 60 sec.) as needed based on video processing times. Test Execution Start the workflow manually via the trigger node. Monitor execution in n8n’s editor and check the Google Sheet for updated video URLs. This workflow is designed for batch video creation and merging, ideal for content pipelines involving AI-generated media. 👉 Subscribe to my new YouTube channel. Here I’ll share videos and Shorts with practical tutorials and FREE templates for n8n. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by 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 James Nunn
Quick overview This workflow runs on a weekday evening schedule to generate tomorrow’s multi-platform social post using Google Gemini, stores the draft in NocoDB, generates a branded image, uploads it to Cloudinary, updates the NocoDB record with the image URL, and notifies a Telegram chat. How it works Runs on a cron schedule (20:00 UTC, Sunday–Thursday) and checks NocoDB to skip generation if an Approved post is already scheduled for tomorrow. Fetches recent content entries and active content pillars from NocoDB, and also counts existing non-rejected posts to inform pillar selection. Optionally pulls the top Approved curated article from a NocoDB queue and assigns the next pillar based on target frequencies (substituting if curated content is unavailable). Builds a detailed prompt and calls Google Gemini to generate one post with platform-native variants (LinkedIn, X, Instagram, Facebook, Bluesky, Threads) in a strict JSON format. Parses the Gemini response, calculates tomorrow’s scheduled date/time slot based on day-of-week, and creates a new Approved row in the NocoDB content calendar. Builds a branded image prompt, generates an image with Google Gemini, uploads it to Cloudinary, and extracts the hosted image URL. Updates the NocoDB calendar entry with the generated media URL and sends a Telegram message summarizing the draft with an inline Reject button. Setup Add NocoDB API token credentials and fill in your NocoDB base URL, workspace ID, project ID, and table IDs for the content calendar, pillars, and curated queue. Add a Google Gemini (PaLM) API credential for both text generation and image generation models. Add Cloudinary credentials and adjust the upload folder/tags if you want a different asset organization. Create a Telegram bot and chat, then set the bot token and target chat ID in the Telegram HTTP request node. Ensure your NocoDB content calendar table includes the fields the workflow writes/updates (for example Title, platform versions, Pillar, Status, Scheduled Datetime, Media Status, and Media URLs). Requirements Requires n8n v1.30 or later. Customization Third-party services (n8n, NocoDB, Google Gemini, Upload Post, Telegram) are subject to their own pricing and terms of service, which may change independently of this product. Additional info Find out more about the full Zo.E Suite and the AI-driven, end-to-end content automation at https://www.nunlimited.com
by Dr. Firas
Generate AI Viral Videos with VEO3 and Auto-Publish to TikTok Who is this for? This workflow is for content creators, marketers, and social media managers who want to consistently produce viral-style short videos and publish them automatically to TikTok — without manual editing or uploading. What problem is this workflow solving? / Use case Creating short-form video content that stands out takes time: ideation, scriptwriting, video generation, and publishing. This workflow automates the entire pipeline — from idea generation to TikTok upload — enabling you to scale your content strategy and focus on creativity rather than repetitive tasks. What this workflow does Generates viral video ideas** daily using GPT-5 Creates structured prompts** for before/after transformation videos Renders cinematic vertical videos** with VEO3 (9:16 format) Saves ideas and metadata** into Google Sheets for tracking Uploads videos automatically to TikTok** via Blotato integration Updates status in Google Sheets** once the video is live The result: a fully automated daily viral video publishing system. Setup Google Sheets Connect your Google Sheets account. Create a sheet with columns for idea, caption, environment, sound, production, and final_output. OpenAI Add your OpenAI API credentials (for GPT-5 mini / GPT-4.1 mini). VEO3 (Kie API) Set up your API key in the HTTP Request node (Generate Video with VEO3). Blotato Connect your Blotato account for TikTok publishing. Schedule Trigger Adjust the Start Daily Content Generation node to fit your preferred posting frequency. How to customize this workflow to your needs Platforms**: Extend publishing to YouTube Shorts or Instagram Reels by duplicating the TikTok step. Frequency**: Change the Schedule Trigger to post multiple times per day or only a few times per week. Creative Style**: Modify the system prompts to align with your brand’s style (cinematic, minimalist, neon, etc.). Tracking**: Enhance the Google Sheets logging with engagement metrics by pulling TikTok analytics via Blotato. This workflow helps you build a hands-free AI-powered content engine, turning raw ideas into published viral videos every day. 📄 🎥 Watch This Tutorial: Step by Step 📄 Documentation: Notion Guide Need help customizing? Contact me for consulting and support : Linkedin / Youtube
by Karol
How it works This workflow turns any URL sent to a Telegram bot into ready-to-publish social posts: Trigger: Telegram message (checks if it contains a URL). Fetch & parse: Downloads the page and extracts readable text + title. AI writing: Generates platform-specific copy (Facebook, Instagram, LinkedIn). Image: Creates an AI image and stores it in Supabase Storage. Publish: Posts to Facebook Pages, Instagram Business, LinkedIn. Logging: Updates Google Sheets with post URLs and sends a Telegram confirmation (image + links). Setup Telegram – create a bot, connect via n8n Telegram credentials. OpenAI / Gemini – add API key in n8n Credentials and select it in the AI nodes. Facebook/Instagram (Graph API) – create a credential called facebookGraph with: • accessToken (page-scoped or system user) • pageId (for Facebook Page photos) • igUserId (Instagram Business account ID) • optional fbApiVersion (default v19.0) LinkedIn – connect with OAuth2 in the LinkedIn node (leave as credential). Supabase – credential supabase with url and apiKey. Ensure a bucket exists (default used in the Set node is social-media). Google Sheets – replace YOUR_GOOGLE_SHEET_ID and Sheet1. Grant your n8n Google OAuth2 access. Notes • No API keys are stored in the template. Everything runs via n8n Credentials. • You can change bucket name, image size/quality, and AI prompts in the respective nodes. • The confirmation message on Telegram includes direct permalinks to the published posts. Required credentials • Telegram Bot • OpenAI (or Gemini) • Facebook/Instagram Graph • LinkedIn OAuth2 • Supabase (url + apiKey) • Google Sheets OAuth2 Inputs • A Telegram message that contains a URL. Outputs • Social posts published on Facebook, Instagram, LinkedIn. • Row appended/updated in Google Sheets with post URLs and image link. • Telegram confirmation with the generated image + post links.
by WeblineIndia
Automated Social Media Lead Processing with AI Summaries, Slack Alerts & Jira Ticketing This workflow automatically collects new lead messages from social media platforms, LinkedIn or web forms, filters relevant marketing inquiries using keywords, classifies and summarizes the lead with AI, logs it to Google Sheets, creates a Jira task and sends Slack notifications. Additionally, it generates weekly lead reports for team insights. It reduces manual triage, ensures no valid inquiry is missed and keeps your team updated with both immediate notifications and summary reports. Quick Start – Implementation Steps Connect your webhook to your social media inbox, LinkedIn, Twitter or web form. Add your OpenAI, Google Sheets, Jira and Slack credentials. Enable the workflow. Send a test message to confirm Google Sheets logging, Slack notification and Jira task creation. Activate the scheduler for weekly reports to track lead performance. What It Does This workflow performs the following key tasks: Filters incoming messages for marketing-related keywords like ad request, promo request, collaboration, partnership or social media inquiry. Uses OpenAI GPT to classify the lead into categories such as Sales, Support, Partnership, Influencer Inquiry or General Lead. Generates a short AI summary of the message. Logs structured lead data to Google Sheets, including username, source, category, summary and timestamp. Creates a Jira task automatically with summary, description, category and received time. Sends a Slack notification to alert the team instantly. Runs a scheduled workflow that aggregates weekly leads and sends a weekly report to Slack. This ensures a structured, automated pipeline for capturing, summarizing and assigning leads efficiently. Who’s It For Marketing and sales teams managing leads from social media and web forms. Agencies handling client campaigns and inquiries. Businesses that want automated notifications and ticketing. Teams using Slack and Jira for daily operations. Requirements to Use This Workflow n8n account or self-hosted instance. Webhook-enabled social media inbox or lead form. OpenAI API Key. Slack Bot Token with channel posting permission. Jira Software Cloud API credentials. Google Sheets credentials. Predefined keyword list for filtering messages. How It Works & Setup Steps 1. Get DM (Webhook Trigger) Receives new messages from social media or web forms and starts the workflow. 2. Lead Keyword Filter (Code Node) Filters incoming messages for predefined marketing keywords and removes irrelevant or spam messages. 3. AI Lead Classifier (OpenAI Node) Classifies the lead into categories (Sales, Support, Partnership, Influencer Inquiry, General Lead) and generates a one-line summary using GPT-4.1. 4. AI Output Parser (Code Node) Parses AI JSON output and merges it with original message data, adding timestamp and structured fields. 5. Store Lead (Google Sheets Node) Logs structured lead data to Google Sheets including username, source, category, summary and timestamp. 6. Create Task (Jira Node) Automatically creates a Jira story or task in your selected project with the AI summary, category and timestamp. 7. Send a Summary (Slack Node) Sends a formatted message to your selected Slack channel, alerting your team of the new lead. 8. Weekly Reporting Schedule Trigger** – triggers the weekly reporting workflow. Extract Lead Data** – fetches all logged leads from Google Sheets. Weekly Lead Filter** – filters data to include leads from the last week. Report Data Formatter** – calculates total leads, category counts, source counts and example leads. Weekly Report Slack** – sends a formatted weekly lead summary to Slack. How to Customize Nodes Keyword Filter Add or remove keywords in the JavaScript code to match your specific lead types or campaigns. AI Classification Update the OpenAI prompt for different summary lengths, tones, or lead categories. Google Sheets Logging Map additional columns like email, phone or campaign source as needed. Jira Fields Customize summary, description, labels, priority or assignees based on your project requirements. Slack Message Format Modify emojis, line breaks and formatting to suit your team’s Slack notifications. Add-Ons (Extend the Workflow) Send email alerts for high-priority leads. Trigger WhatsApp replies using an API provider. Integrate with CRMs like HubSpot, Zoho or Salesforce. Add sentiment analysis to detect frustrated or VIP users. Automate daily or weekly analytics reports to Slack. Use Case Examples Collecting Instagram, LinkedIn and Twitter DMs and logging them to Google Sheets. Creating automated Jira tickets for marketing inquiries. Sending instant Slack notifications for new leads. Filtering out irrelevant messages and only processing valid marketing leads. Generating weekly lead summary reports for team review. Troubleshooting Guide | Issue | Possible Cause | Solution | |-------|----------------|----------| | No leads appearing | Webhook not receiving messages | Check webhook URL and ensure messages are sent correctly | | AI summary empty | OpenAI API key invalid or model limit reached | Regenerate API key / check usage | | Jira task not created | Missing required Jira fields or incorrect project ID | Add required fields or update Jira project settings | | Slack message not sent | Wrong channel ID or missing permissions | Reconnect Slack credentials | | Filter passes 0 items | Keywords do not match | Update or expand keyword list in filter node | Need Help? If you need assistance setting up this workflow, customizing nodes, building add-ons or automating more processes, our n8n workflow development team at WeblineIndia is happy to help. We can guide you through integrations, scaling or building end-to-end automation systems tailored to your business.