by Harshil Agrawal
This workflow demonstrates how to merge data for different executions. The Merge Data Function node fetches the data from different executions of the RSS Feed Read node and merges them under a single object. Note: If you want to process the items that get merged, you will have to convert the single item into n8n understandable multiple items.
by Dataki
Workflow updated on 17/06/2024:** Added 'Summarize' node to avoid creating a row for each Notion content block in the Supabase table.* Store Notion's Pages as Vector Documents into Supabase This workflow assumes you have a Supabase project with a table that has a vector column. If you don't have it, follow the instructions here: Supabase Langchain Guide Workflow Description This workflow automates the process of storing Notion pages as vector documents in a Supabase database with a vector column. The steps are as follows: Notion Page Added Trigger: Monitors a specified Notion database for newly added pages. You can create a specific Notion database where you copy the pages you want to store in Supabase. Node: Page Added in Notion Database Retrieve Page Content: Fetches all block content from the newly added Notion page. Node: Get Blocks Content Filter Non-Text Content: Excludes blocks of type "image" and "video" to focus on textual content. Node: Filter - Exclude Media Content Summarize Content: Concatenates the Notion blocks content to create a single text for embedding. Node: Summarize - Concatenate Notion's blocks content Store in Supabase: Stores the processed documents and their embeddings into a Supabase table with a vector column. Node: Store Documents in Supabase Generate Embeddings: Utilizes OpenAI's API to generate embeddings for the textual content. Node: Generate Text Embeddings Create Metadata and Load Content: Loads the block content and creates associated metadata, such as page ID and block ID. Node: Load Block Content & Create Metadata Split Content into Chunks: Divides the text into smaller chunks for easier processing and embedding generation. Node: Token Splitter
by Muhammad Farooq Iqbal
This n8n template demonstrates how to create an automated emotional story generation system that produces structured video prompts and generates corresponding images using AI. The workflow creates a complete story with 5 scenes featuring a Pakistani character named Yusra, converts them into Veo 3 video generation prompts, and generates images for each scene. Use cases include: Automated story creation for social media content Video pre-production with AI-generated storyboards Content creation for educational or entertainment purposes Multi-scene narrative development with consistent character design Good to know: Uses Gemini 2.5 Flash Lite for story generation and prompt conversion Uses Gemini 2.0 Flash Exp for image generation The image generation model may be geo-restricted in some regions Workflow includes automatic Google Drive organization and Google Sheets tracking How it works: Story Creation: Gemini AI creates a 5-scene emotional story featuring Yusra, a Pakistani girl aged 20-25 in traditional dress Folder Organization: AI generates a unique folder name with timestamp for project organization Google Sheets Setup: Creates a new sheet to track all scenes and their processing status Scene Processing: Each scene is processed individually with character and action prompts Veo 3 Prompt Conversion: Converts natural language scene descriptions into structured JSON format optimized for Veo 3 video generation, including parameters like: Detailed scene descriptions Camera movements and angles Lighting and mood settings Style and quality specifications Aspect ratios and technical parameters Image Generation: Uses Gemini's image generation model to create visual representations of each scene File Management: Automatically uploads images to Google Drive and organizes them in project folders Status Tracking: Updates Google Sheets with processing status and file URLs Automated Workflow: Includes conditional logic to handle different processing states and file movements How to use: Execute the workflow manually or set up automated triggers The system will automatically create a new story with 5 scenes Each scene gets processed through the AI pipeline Generated images are organized in Google Drive folders Track progress through the Google Sheets interface The workflow handles all file management and status updates automatically Requirements: Gemini API access for both text and image generation Google Drive for file storage and organization Google Sheets for project tracking and management n8n instance with appropriate node access Customizing this workflow: Modify the character description in the Story Creator node Adjust the number of scenes by changing the story prompt Customize the Veo 3 prompt parameters for different video styles Add additional AI models or processing steps Integrate with other content creation tools Modify the folder naming convention or organization structure Technical Features: Automated retry logic for failed operations Conditional processing based on status flags Batch processing for multiple scenes Error handling and status tracking File organization with timestamp-based naming Integration with Google Workspace services This template is perfect for content creators, educators, or anyone looking to automate story-based content creation with AI assistance.
by Zacharia Kimotho
Usage This workflow gets all the posts from your WordPress site and sorts them into a clear format before publishing them to medium. Step 1. Set up the HTTP node and set the URL of the source destination. This will be the URL of the blog you want to use. We shall be using https://mailsafi.com/blog for this. Step 2. Extract the URLs of all the blogs on the page This gets all the blog titles and their URLs. Its an easy way to sort ou which blogs to share and which not to share. Step 3. Split the entries for easy sorting or a cleaner view. Step 4. Set a new https node with all the blog URLs that we got from the previous steps. Step 5. Extract the contents of the blog Step 6. Add the medium node and then set the contents that you want to be shared out. Execute your workflow and you are good to go
by Akhil Varma Gadiraju
π Form-Based X/Twitter Poster (v2) A user-friendly n8n workflow that enables users to submit tweets through a simple web form β with optional image, video, or GIF uploads β and posts them to a connected X/Twitter account. Designed for ease of use, this workflow handles both media and text-only posts, providing clear feedback upon submission. π§ Overview Workflow Name: Form-Based X/Twitter Poster (v2) Goal: Provide a web form for users to create tweets, upload optional media, and post directly to X/Twitter. π How It Works 1. Form Submission Trigger Node:** On form submission Type:** formTrigger Purpose:** Renders a web form for tweet creation. Fields:** Post Content: Required textarea for tweet text. Media: Optional file upload (.jpg, .png, .gif, .mp4, etc.). Button:** "Submit" Output:** JSON with text and binary media (if any). 2. Extract Media Details Node:** Extract Media Details Type:** code Purpose:** Extracts tweet text, checks for media, determines media type. Output Example:** { "content": "My tweet!", "mime_type": "image/jpeg", "media_type": "IMAGE" } 3. If Media Exists Node:** If Media Exists Type:** if Purpose:** Checks whether media was uploaded. True Path:** Media was uploaded. False Path:** No media uploaded. 4. Upload Media to X/Twitter (True path only) Node:** Upload Media (X) Type:** httpRequest Purpose:** Uploads media to Twitter via API v1.1. Media Category:** TWEET_IMAGE (can be customized) Auth:** Twitter OAuth1 API Output:** Includes media_id_string 5. Post Tweet with Media (True path) Node:** X Type:** twitter Purpose:** Posts tweet with uploaded media. Auth:** Twitter OAuth2 API 6. Post Text-Only Tweet (False path) Node:** X1 Type:** twitter Purpose:** Posts tweet without media. Auth:** Twitter OAuth2 API 7. Show Confirmation Message Node:** End Form Type:** form Purpose:** Displays thank-you message post-submission. Title:** Thank you so much for sharing your experience on X! π€ Message:** We truly appreciate your support and are so glad we could make a positive impact. Your words mean the world to us! π How to Customize Form Fields:** Change form title, labels, help texts, or file formats. Media Logic:** Add logic for distinguishing GIF vs VIDEO. Adjust media upload URL dynamically: https://upload.twitter.com/1.1/media/upload.json?media_category={{ $json.media_type === 'VIDEO' ? 'TWEET_VIDEO' : ($json.media_type === 'GIF' ? 'TWEET_GIF' : 'TWEET_IMAGE') }} Error Handling:** Add Error Trigger nodes to catch and manage failures gracefully. Tweet Text:** Customize tweet text with extra formatting or default content. Advanced Ideas:** Schedule tweets Post to multiple accounts Add content approval steps π Required Credentials 1. Twitter OAuth1 API Used by:** Upload Media (X) Required for:** Media upload via v1.1 Credentials:** Consumer Key, Consumer Secret, Access Token, Access Token Secret Workflow Credential Name:** X OAuth - Akhil 2. Twitter OAuth2 API Used by:** X, X1 Required for:** Posting tweets Scopes:** tweet.read, tweet.write, users.read, offline.access Workflow Credential Name:** X OAuth2 - Akhil π‘ Use Cases Easy Tweet Tool:** For non-technical users to share content. Content Approval:** Internal review system before posting. Announcements:** Quickly broadcast updates. Campaign Posting:** Streamline recurring content sharing. π§βπ» Node Naming Suggestions | Old Name | Suggested Name | |--------------------|--------------------------| | If Image Exists | If Media Exists | | X | Post Tweet with Media | | X1 | Post Text-Only Tweet | β€οΈ Made with love by Akhil using n8n
by The Higher Pitch
This workflow automatically pulls articles from an RSS feed, translates the content and title from English to Hindi using OpenAI, extracts the featured image from the HTML content, and publishes the translated post as a draft on a connected WordPress site. π§ Key Features: Polls RSS feed every 10 minutes for new articles Extracts and parses the featured image from custom HTML tags Translates content and title from English to Hindi using OpenAI Assistant Uploads the featured image to WordPress media library Associates the image with the new draft post Publishes the translated article as a draft for review π― Use Case: Ideal for multi-language blog automation or content localization workflows where original content is in English and needs to be localized into Hindi before publishing.
by Varritech
Workflow: Publish to Contentful with Rich Text Formatting β‘ About the Creators This workflow was created by Varritech Technologies, an innovative agency that leverages AI to engineer, design, and deliver software development projects 500% faster than traditional agencies. Based in New York City, we specialize in custom software development, web applications, and digital transformation solutions. If you need assistance implementing this workflow or have questions about content management solutions, please reach out to our team. ποΈ Architecture Overview This workflow takes a JSON article payload, splits its markdown content into logical chunks, converts each chunk into Contentful Rich Text JSON via an AI agent, merges the resulting rich text nodes back into a single document, formats the entire entry according to Contentful's field schema, and finally publishes it to Contentful. Trigger β Executes when called by another workflow Split by Headings β Breaks markdown into ##-delimited chunks Markdown β Rich Text β AI agent converts each chunk to Contentful Rich Text JSON Combine Rich Text Objects β Aggregates all chunk outputs into one document Format Entry β Wraps metadata and rich-text content into Contentful schema Publish Entry β HTTP POST to Contentful API π¦ Node-by-Node Breakdown flowchart LR A[When Executed by Another Workflow] --> B[Split by Headings] B --> C[Markdown to Contentful format] C --> D[Combine Rich Text Objects] D --> E[Merge1] E --> F[Format1] F --> G[Create newly formatted Contentful Entry] 1. When Executed by Another Workflow Type: Execute Workflow Trigger Input Example: title, slug, category.id, description, keywords, content, metaTitle, metaDescription, readingTime, difficulty Purpose: Receives the JSON payload from the upstream workflow. 2. Split by Headings Type: Code Logic: Splits input.content into an array of markdown chunks at each second-level heading (##). Emits one item per chunk with index, slug, title, and contentChunk. 3. Markdown to Contentful format Type: LangChain Agent (+ OpenAI Chat model) System Prompt: Defines rules for generating valid Contentful Rich Text JSON (must include nodeType, data:{}, content:[], etc.). Provides examples for paragraphs, headings, lists, links, and images. User Prompt: Here is the markdown content to convert: Purpose: Converts each markdown chunk into an array of rich-text nodes. 4. Combine Rich Text Objects Type: Code Logic: Parses and merges all content arrays returned by the AI agent into one combined content array under a document root. 5. Merge1 Type: Merge Purpose: Joins the original item (with metadata) and the combined rich-text document into a single data stream. 6. Format1 Type: Code Logic: Maps workflow data into the Contentful entry schema by setting each field (title, slug, category link, description, keywords, rich-text content, metaTitle, metaDescription, readingTime, difficulty) under the appropriate locale and structure required by Contentful. 7. Create newly formatted Contentful Entry Type: HTTP Request Method: POST URL: https://api.contentful.com/spaces Headers: Authorization: Bearer token for Contentful Management API Content-Type: application/vnd.contentful.management.v1+json X-Contentful-Version: entry version number X-Contentful-Content-Type: content type ID Body: The formatted fields object produced by the previous node Purpose: Publishes the new entry with rich-text content to Contentful. π Design Rationale & Best Practices Chunked Conversion Splitting by headings prevents AI context limits and keeps conversions modular. Strict Rich Text Schema Enforcing nodeType, data, and content structure avoids validation errors on Contentful. Two-Phase Merge Separating "combine AI outputs" and "format entry" keeps transformations clear and testable. Idempotent Publish Uses explicit versioning and content type headers to ensure correct entry creation.
by Niranjan G
Slack Bot n8n Integration Hub - Workflow Submission π Showcase: Endless Possibilities with n8n Integration This repository demonstrates a powerful Slack Bot Socket App that seamlessly integrates with n8n for automation workflows. This is just a showcase of what's possible when combining Slack's interactive capabilities with n8n's automation power - the possibilities are truly endless! π Project Overview Repository: slack-n8n-integration-hub Status: β Committed and Ready for Submission This project showcases how to create seamless interactions between Slack users and n8n workflows, demonstrating: Real-time Data Submission** from Slack to n8n workflows Interactive Approval/Rejection** workflows triggered from Slack Secure Webhook Communication** with optional Basic Authentication Dynamic Modal Interactions** with immediate feedback Error Handling and User Experience** optimization π― Key Features Demonstrated 1. Data Input Integration Users can submit custom data directly from Slack Data is instantly sent to n8n workflows for processing Real-time feedback and confirmation messages 2. Approval Workflow Automation Interactive approve/reject buttons in Slack modals Decisions trigger different n8n workflow paths Automated decision logging and processing 3. Enhanced User Experience Modal closes automatically after actions Submit button positioned below input for better UX Comprehensive error handling and user feedback 4. Security & Authentication Optional HTTP Basic Auth for webhook security Environment-based configuration management Secure credential handling π§ Technical Implementation Slack Bot Features: Socket Mode for real-time communication Custom slash commands (/automation) Interactive modals with dynamic content Button actions and form submissions n8n Integration: Webhook triggers for data reception Structured payload formats Authentication support Error handling and response management Workflow Payload Examples: Data Submission: { "type": "data_submission", "data": "User input data here", "user": { "id": "U1234567890", "name": "username" }, "timestamp": "2024-01-01T12:00:00.000Z", "source": "slack_bot" } Approval Action: { "type": "approval_action", "action": "approve", "user": { "id": "U1234567890", "name": "username" }, "timestamp": "2024-01-01T12:00:00.000Z", "source": "slack_bot" } π Why This Matters for n8n Community This project demonstrates how n8n can be the backbone for: Human-in-the-loop** automation workflows Interactive approval** processes Real-time data collection** from team communication tools Seamless integration** between chat platforms and automation Scalable workflow triggers** from multiple sources π Endless Possibilities This is just the beginning! With this foundation, you can build: IT Service Desk** automation with Slack approvals Content Publishing** workflows with team reviews Data Collection** and processing pipelines Incident Management** with automated escalations Project Management** with status updates and approvals Customer Support** ticket routing and responses DevOps Deployments** with approval gates Financial Approvals** with audit trails HR Processes** with automated workflows Marketing Campaigns** with content approvals π Repository Structure slack-n8n-integration-hub/ βββ app.js # Main Slack Bot application βββ package.json # Dependencies and scripts βββ .env.example # Environment configuration template βββ README.md # Complete setup documentation βββ CONTRIBUTING.md # Contribution guidelines βββ Slack_Bot_n8n_Integration_Hub.json # n8n workflow export βββ n8n-workflow-examples.json # Additional workflow examples βββ test-webhook.js # Webhook testing utilities π Ready for n8n Community This workflow is: β Fully Tested and working β Well Documented with setup instructions β Open Source and ready for community use β Extensible for various use cases β Production Ready with error handling π Get Started Clone the repository: git clone https://github.com/iam-niranjan/slack-n8n-integration-hub.git Follow the setup guide in the main README.md Import the n8n workflows from the JSON files Customize for your use case and explore the possibilities! This showcase demonstrates that with n8n and Slack integration, the automation possibilities are truly endless! π Ready to submit to n8n community for sharing and collaboration.
by VEED
Create AI screencast videos with VEED and automated slides Overview This n8n workflow automatically generates presentation-style "screen recording" videos with AI-generated slides and a talking head avatar overlay. You provide a topic and intention, and the workflow handles everything: scriptwriting, slide generation, avatar creation, voiceover, and video composition. Output: Horizontal (16:9) AI-generated videos with animated slides as the main content and a lip-synced avatar in picture-in-picture, ready for YouTube, LinkedIn, or professional presentations. What It Does Topic + Intention β Claude writes script β Parallel processing: βββ OpenAI generates avatar β ElevenLabs voiceover β VEED lip-sync βββ FAL Flux Pro generates slides β Creatomate composites everything β Saved to Google Drive + logged to Sheets Pipeline Breakdown | Step | Tool | What Happens | |------|------|--------------| | 1. Script Generation | Claude Sonnet 4 | Creates hook, script (25-40 sec), slide prompts, caption, and avatar description | | 2. Avatar Generation | OpenAI gpt-image-1 | Generates photorealistic portrait image (1024Γ1536) | | 3. Slide Generation | FAL Flux Pro | Creates 5-7 professional slides (1920Γ1080) with text overlays | | 4. Voiceover | ElevenLabs | Converts script to natural speech (multiple voice options) | | 5. Talking Head | VEED Fabric 1.0 | Lip-syncs avatar to audio, creates 9:16 talking head video | | 6. Video Composition | Creatomate | Combines slides + avatar in 16:9 PiP layout | | 7. Storage | Google Drive | Uploads final MP4 | | 8. Logging | Google Sheets | Records all metadata (script, caption, URLs, timestamps) | Required Connections API Keys (entered in Configuration node) | Service | Key Type | Where to Get | |---------|----------|--------------| | Anthropic | API Key | https://console.anthropic.com/settings/keys | | OpenAI | API Key | https://platform.openai.com/api-keys | | ElevenLabs | API Key | https://elevenlabs.io/app/settings/api-keys | | FAL.ai | API Key | https://fal.ai/dashboard/keys | | Creatomate | API Key | https://creatomate.com/dashboard/settings | > β οΈ OpenAI Note: gpt-image-1 requires organization verification. Go to https://platform.openai.com/settings/organization/general to verify. n8n Credentials (connect in n8n) | Node | Credential Type | Purpose | |------|-----------------|---------| | π¬ Generate Talking Head (VEED) | FAL.ai API | VEED video rendering | | π€ Upload to Drive | Google Drive OAuth2 | Store final videos | | π Log to Sheets | Google Sheets OAuth2 | Track all generated content | Configuration Options Edit the βοΈ Workflow Configuration node to customize: { // π CONTENT SETTINGS topic: "How AI is transforming content creation", intention: "informative", // informative, lead_generation, disruption brand_name: "YOUR_BRAND_NAME", target_audience: "sales teams and marketers", trending_hashtags: "#AIvideo #ContentCreation #VideoMarketing", // π¨ SLIDE STYLE slide_style: "vibrant_colorful", // See slide styles below // π₯ VIDEO SETTINGS video_resolution: "720p", // VEED only supports 720p seconds_per_slide: 6, // How long each slide shows // πΌοΈ BACKGROUND (Optional) background: "", // URL, gradient array, or empty // π API KEYS (Required) anthropic_api_key: "YOUR_ANTHROPIC_API_KEY", openai_api_key: "YOUR_OPENAI_API_KEY", elevenlabs_api_key: "YOUR_ELEVENLABS_API_KEY", creatomate_api_key: "YOUR_CREATOMATE_API_KEY", fal_api_key: "YOUR_FAL_API_KEY", // π€ VOICE SELECTION voice_selection: "susie", // cristina, enrique, susie, jeff, custom // π¨ AVATAR OPTIONS (Optional) custom_avatar_description: "", // Leave empty for AI-generated custom_avatar_image_url: "", // Direct URL to use existing image // π CUSTOM SCRIPT (Optional) custom_script: "" // Leave empty for AI-generated } Slide Style Options | Style | Description | Best For | |-------|-------------|----------| | dark_professional | Dark gradients, white text, sleek look | Tech, SaaS, premium brands | | light_modern | Light backgrounds, dark text, clean | Corporate, educational | | vibrant_colorful | Bold colors, energetic, eye-catching | Social media, startups | | minimalist | Lots of whitespace, simple, elegant | Luxury, professional services | | tech_corporate | Blue tones, geometric shapes | Enterprise, B2B | Background Options | Type | Example | Description | |------|---------|-------------| | None | "" | Full bleed layout, slides take 78% width | | URL | "https://example.com/bg.jpg" | Image background with margins | | Gradient | ["#ff6b6b", "#feca57", "#48dbfb"] | Gradient background with margins | Voice Options | Voice | Language | Description | |-------|----------|-------------| | cristina | Spanish | Female voice | | enrique | Spanish | Male voice | | susie | English | Female voice (default) | | jeff | English | Male voice | | custom | Any | Use your ElevenLabs voice clone ID | Intention Types | Intention | Content Style | Best For | |-----------|---------------|----------| | informative | Educational, value-driven, builds trust | Thought leadership, tutorials | | lead_generation | Creates curiosity, soft CTA | Product awareness, funnels | | disruption | Bold, provocative, scroll-stopping | Viral potential, brand awareness | Custom Avatar & Script Options Custom Avatar Description Leave custom_avatar_description empty to let Claude decide, or provide your own: custom_avatar_description: "female marketing influencer, cool, working in tech" Examples: "a woman in her 20s with gym clothes" "a bearded man in his 30s wearing a hoodie" "a professional woman with glasses in business casual" Custom Avatar Image URL Skip avatar generation entirely by providing a direct URL: custom_avatar_image_url: "https://example.com/my-avatar.png" > Image should be portrait orientation, high quality, with the subject looking at camera. Custom Script Leave custom_script empty to let Claude write it, or provide your own: custom_script: "This is my custom script. AI is changing how we create content..." Guidelines for custom scripts: Keep it 25-40 seconds when read aloud (60-100 words) Avoid special characters for TTS compatibility Write naturally, as if speaking Behavior Matrix | custom_avatar_description | custom_avatar_image_url | custom_script | What Claude Generates | |---------------------------|-------------------------|---------------|----------------------| | Empty | Empty | Empty | Avatar + Script + Slides + Caption | | Provided | Empty | Empty | Script + Slides + Caption | | Empty | Provided | Empty | Script + Slides + Caption | | Empty | Empty | Provided | Avatar + Slides + Caption | | Provided | Provided | Provided | Slides + Caption only | Video Layout The final video uses a picture-in-picture (PiP) layout: Without Background (Full Bleed) βββββββββββββββββββββββββββββββββββ¬βββββββ β β β β β β β SLIDES (78%) βAVATARβ β β(22%) β β β β β β β βββββββββββββββββββββββββββββββββββ΄βββββββ With Background (Margins + Rounded Corners) βββββββββββββββββββββββββββββββββββββββββββ β BG βββββββββββββββββββββββββββββ ββββββ β β β β β β β β β SLIDES (74%) β βAVA β β β β β βTAR β β β β β β20% β β β βββββββββββββββββββββββββββββ ββββββ β βββββββββββββββββββββββββββββββββββββββββββ Output Per Video Generated | Asset | Format | Location | |-------|--------|----------| | Final Video | MP4 (1920Γ1080, 60fps) | Google Drive folder | | Avatar Image | PNG (1024Γ1536) | tmpfiles.org (temporary) | | Slide Images | PNG (1920Γ1080) | FAL CDN (temporary) | | Voiceover | MP3 | tmpfiles.org (temporary) | | Metadata | Row entry | Google Sheets | Google Sheets Columns | Column | Description | |--------|-------------| | topic | Video topic | | intention | Content intention used | | brand_name | Brand mentioned | | slide_style | Visual style used | | content_theme | 2-3 word theme summary | | script | Full voiceover script | | caption | Ready-to-post caption with hashtags | | num_slides | Number of slides generated | | video_url | Google Drive link to final video | | avatar_video_url | VEED talking head video URL | | audio_url | Temporary audio URL | | status | done/error | | created_at | Timestamp | Estimated Costs Per Video | Service | Usage | Approximate Cost | |---------|-------|------------------| | Claude Sonnet 4 | 2K tokens | $0.01 | | OpenAI gpt-image-1 | 1 image (1024Γ1536) | ~$0.04-0.08 | | FAL Flux Pro | 5-7 images (1920Γ1080) | ~$0.10-0.15 | | ElevenLabs | 100 words | $0.01-0.02 | | VEED/FAL.ai | 1 video render | ~$0.10-0.20 | | Creatomate | 1 video composition | ~$0.10-0.20 | | Total | | ~$0.35-0.65 per video | > Costs vary based on script length and current API pricing. Setup Checklist Step 1: Import Workflow [ ] Import create-ai-screencast-videos-with-veed-and-automated-slides.json into n8n Step 2: Configure API Keys [ ] Open the βοΈ Workflow Configuration node [ ] Replace all YOUR_*_API_KEY placeholders with your actual API keys [ ] Verify your OpenAI organization at https://platform.openai.com/settings/organization/general Step 3: Connect n8n Credentials [ ] Click on π¬ Generate Talking Head (VEED) node β Add FAL.ai credential [ ] Click on π€ Upload to Drive node β Add Google Drive OAuth2 credential [ ] Click on π Log to Sheets node β Add Google Sheets OAuth2 credential Step 4: Configure Storage [ ] Update the π€ Upload to Drive node with your Google Drive folder URL [ ] Update the π Log to Sheets node with your Google Sheets URL [ ] Create column headers in your Google Sheet (see Output section) Step 5: Customize Content [ ] Update topic, brand_name, target_audience, and trending_hashtags [ ] Choose your preferred slide_style and voice_selection [ ] Optionally configure background, custom_avatar_description, and/or custom_script Step 6: Test [ ] Execute the workflow [ ] Check Google Drive for the output video [ ] Verify metadata was logged to Google Sheets MCP Integration (Optional) This workflow can be exposed to Claude Desktop via n8n's Model Context Protocol (MCP) integration. To enable MCP: Add a Webhook Trigger node to the workflow (in addition to the Manual Trigger) Connect it to the βοΈ Workflow Configuration node Go to Settings β Instance-level MCP β Enable the workflow Configure Claude Desktop with your n8n MCP server URL Claude Desktop Configuration (Windows): { "mcpServers": { "n8n-mcp": { "command": "supergateway", "args": [ "--streamableHttp", "https://YOUR_N8N_INSTANCE.app.n8n.cloud/mcp-server/http", "--header", "authorization:Bearer YOUR_MCP_ACCESS_TOKEN" ] } } } > Note: Install supergateway globally first: npm install -g supergateway Limitations & Notes Technical Limitations tmpfiles.org**: Temporary file URLs expire after ~1 hour. Final videos are safe in Google Drive. VEED processing**: Takes 1-3 minutes for the talking head. Creatomate processing**: Takes 30-60 seconds for composition. Total workflow time**: ~3-5 minutes per video. Content Considerations Scripts are optimized for 25-40 seconds (TTS-friendly) Avatar images are AI-generated (not real people) Slides are dynamically generated based on script length Slide count: 5-7 slides depending on script duration Best Practices Start simple: Test with default settings before customizing Review scripts: Claude generates good content but review before posting Monitor costs: Check API usage dashboards weekly Use backgrounds: Adding a background image creates a more polished look Match voice to content: Use Spanish voices for Spanish content Troubleshooting | Issue | Solution | |-------|----------| | "Organization must be verified" | Verify at platform.openai.com/settings/organization/general | | VEED authentication error | Re-add FAL.ai credential to VEED node | | Google Drive "no binary field" | Ensure Download Video outputs to binary field | | JSON parse error from Claude | Workflow has fallback content; check Claude node output | | Slides not matching script | Increase seconds_per_slide for fewer slides | | Avatar cut off in PiP | Avatar is designed for right-side placement | | MCP "Server disconnected" | Install supergateway globally: npm install -g supergateway | | Render timeout | Increase wait time in "β³ Wait for Render" node | Version History | Version | Date | Changes | |---------|------|---------| | 2.1 | Jan 2026 | Renamed workflow, improved documentation with section sticky notes, consolidated setup information | | 2.0 | Jan 2026 | Added dynamic slide count, background options, FAL Flux Pro for slides, improved PiP layout | | 1.0 | Jan 2026 | Initial release with fixed slide count, basic composition | Credits Built with: n8n** - Workflow automation Anthropic Claude** - Script & slide prompt generation OpenAI** - Avatar image generation FAL.ai** - Slide image generation (Flux Pro) ElevenLabs** - Voice synthesis VEED Fabric** - AI lip-sync video rendering Creatomate** - Video composition Google Workspace** - Storage & logging
by Jimleuk
This n8n workflow shows an easy way to automate the creation of social media assets using AI and a service like BannerBear. Designed for the busy marketer, leveraging AI image generation capabilities can help cut down production times and allow reinvesting into higher quality content. How it works This workflow generates social media banners for online events. Using a form trigger, a user can define the banner text and suggest an image to be generated. This request is passed to OpenAI's Dalle-3 image generation service to produce a relevant graphic for the event banner. This generated image is uploaded and sent to BannerBear where a template will use it and the rest of the form data to produce the banner. BannerBear returns the final banner which can now be used in an assortment of posts and publications. Requirements A BannerBear.com account and template is required An OpenAI account to use the Dalle-3 service. Customising the workflow We've only shown a small section of what BannerBear has to offer. With experimentation and other asset generating services such as AI audio and video, you should be able to generate more than just static banners!
by simonscrapes
Use Case Automate image replacement in Google Docs: You need to update document images dynamically You want to create multiple versions of a template with different images You need to batch process document images from a URL database You want to generate shareable documents with custom images What this Workflow Does The workflow automates image replacement in Google Docs: Accepts image URLs from your database Finds and replaces images in template documents Creates new document copies with updated images Optionally converts to PDF and makes documents shareable Setup Connect your image URL database (column name must be "url") Set up Google Docs OAuth 2 API credentials Optional: Create a template document in Google Drive with placeholder images Optional: Configure Google Drive authentication for additional features How to Adjust it to Your Needs Remove template copying for single document processing Adjust image ID selection for documents with multiple images Configure sharing settings and download formats Customize file naming and storage location More templates and n8n workflows >>> @simonscrapes
by Jimleuk
This n8n template takes a video and extracts frames from it which are used with a multimodal LLM to generate a script. The script is then passed to the same multimodal LLM to generate a voiceover clip. This template was inspired by Processing and narrating a video with GPT's visual capabilities and the TTS API How it works Video is downloaded using the HTTP node. Python code node is used to extract the frames using OpenCV. Loop node is used o batch the frames for the LLM to generate partial scripts. All partial scripts are combined to form the full script which is then sent to OpenAI to generate audio from it. The finished voiceover clip is uploaded to Google Drive. Sample the finished product here: https://drive.google.com/file/d/1-XCoii0leGB2MffBMPpCZoxboVyeyeIX/view?usp=sharing Requirements OpenAI for LLM Ideally, a mid-range (16GB RAM) machine for acceptable performance! Customising this workflow For larger videos, consider splitting into smaller clips for better performance Use a multimodal LLM which supports fully video such as Google's Gemini.