by Tomoki
Video Processing Pipeline with Thumbnail Generation and CDN Distribution Summary Automated video processing system that monitors S3 for new uploads, generates thumbnails and preview clips, extracts metadata, transcodes to multiple formats, and distributes to CDN with webhook notifications. Detailed Description A comprehensive video processing workflow that receives S3 events or manual triggers, validates video files, extracts metadata via FFprobe, generates thumbnails at key frames, creates animated GIF previews, transcodes to multiple resolutions, invalidates CDN cache, and sends completion notifications. Key Features S3 Event Monitoring**: Automatic detection of new video uploads Thumbnail Generation**: Multiple sizes at key frame intervals Video Metadata**: FFprobe extraction of duration, resolution, codec info Preview GIF**: Animated preview clips for video galleries Multi-Format Transcoding**: Convert to 1080p, 720p, 480p CDN Distribution**: Cloudflare cache invalidation and signed URLs Webhook Callbacks**: Notify origin system on completion Use Cases Video hosting platforms Media asset management systems Content delivery networks Video streaming services Social media platforms E-learning video processing User-generated content platforms Required Credentials AWS S3 Credentials (for video storage) FFmpeg API credentials (via HTTP) Cloudflare API Token (for CDN) Slack Bot Token (for notifications) Google Sheets OAuth (for logging) Node Count: 24 (19 functional + 5 sticky notes) Unique Aspects Uses Webhook for S3 event notifications Uses Code nodes for S3 info extraction and URL generation Uses If node for video format validation Uses HTTP Request nodes for FFprobe, FFmpeg, and CDN APIs Uses Aggregate node for collecting parallel processing results Uses Merge nodes for multiple workflow path consolidation Implements parallel processing for thumbnails, GIF, and transcoding Workflow Architecture [S3 Event Webhook] [Manual Webhook] | | +--------+----------+ | v [Merge Triggers] | v [Extract S3 Info] (Code) | v [Check Is Video] (If) / \ Yes No | | v v [Get Video Metadata] [Invalid Response] (FFprobe) | | | v | [Parse Video Metadata] | (Code) | /|\ | / | \ | v v v | Thumbs[Transcode] | \ | / | \ | / | v v | [Aggregate Results] | | | v | [Invalidate CDN Cache] | | | v | [Generate Signed URLs] | / \ | / \ | v v | [Log Sheet] [Slack] | \ / | \ / | v | [Merge Output Paths] | | | +---------+-------+ | v [Merge All Paths] | v [Respond to Webhook] Configuration Guide S3 Event: Configure S3 bucket notification to send events to webhook FFmpeg API: Use a hosted FFmpeg service (e.g., api.ffmpeg-service.com) Cloudflare: Set zone ID and API token for cache invalidation Slack Channel: Set #video-processing for notifications Google Sheets: Connect for processing metrics logging Supported Video Formats | Extension | MIME Type | |-----------|----------| | .mp4 | video/mp4 | | .mov | video/quicktime | | .avi | video/x-msvideo | | .mkv | video/x-matroska | | .webm | video/webm | | .m4v | video/x-m4v | Thumbnail Generation | Size | Dimensions | Suffix | |------|------------|--------| | Large | 1280x720 | _large | | Medium | 640x360 | _medium | | Small | 320x180 | _small | Thumbnails generated at: 10%, 30%, 50%, 70%, 90% of video duration Transcoding Presets | Preset | Resolution | Bitrate | Codec | |--------|------------|---------|-------| | 1080p | 1920x1080 | 5000k | H.264 | | 720p | 1280x720 | 2500k | H.264 | | 480p | 854x480 | 1000k | H.264 | Output Structure { "job_id": "job_1705312000_abc123", "status": "completed", "original": { "filename": "video.mp4", "resolution": "1920x1080", "duration": "00:05:30" }, "thumbnails": { "large": "https://cdn/thumbnails/job_id/thumb_0_large.jpg", "medium": "https://cdn/thumbnails/job_id/thumb_0_medium.jpg", "small": "https://cdn/thumbnails/job_id/thumb_0_small.jpg" }, "preview_gif": "https://cdn/previews/job_id/preview.gif", "transcoded": { "1080p": "https://cdn/transcoded/job_id/video_1080p.mp4", "720p": "https://cdn/transcoded/job_id/video_720p.mp4", "480p": "https://cdn/transcoded/job_id/video_480p.mp4" } } `
by Jitesh Dugar
Convert your customer satisfaction into high-converting social media content with this fully automated social proof pipeline. This workflow scans your database for top-tier reviews, generates a branded quote card, and publishes it directly to Instagram, ensuring a consistent stream of credibility for your brand. π― What This Workflow Does This template manages the entire lifecycle of a testimonial post, from data retrieval to final notification: π Review Dispatch Automation Schedule Trigger:** Automatically fires daily at 10:00 AM; cadence can be adjusted via cron expression. Airtable β Fetch Review:** Retrieves the oldest 5-star, unposted record using a specific filter formula to prevent duplicates. IF β Has Valid Review?:** Validates the data; the workflow exits gracefully if no new reviews are found and only proceeds when a 5-star review is ready. βοΈπ¨ Dynamic Asset Generation Code β Prepare Payload:** Formats review data into a JSON body, mapping fields like name and truncated text to Bannerbear layers while generating the final Instagram caption. HTTP β Create Image Job:** Submits the request to the Bannerbear API and retrieves a unique job uid for asynchronous processing. π Status Verification & Media Hosting HTTP β Poll Status:** Regularly checks the job status via the Bannerbear API to see if the rendering is finished. IF β Image Ready?:** Confirms completion; if still processing, it triggers a "Wait 3s + re-poll" loop for up to 5 retries before passing the image_url forward. uploadtourl Bridge:** Mandatory CDN step that uploads the rendered image binary and returns a stable public URL, which is required for Instagram's API to access the file. πΈ Instagram Publishing & Tracking IG β Create & Publish:** Executes the two-step Instagram Graph API flow to create a media container and publish it to your feed after a safe 6-second buffer. Airtable β Mark as Posted:** Updates the original record with the Post ID and timestamp to prevent duplicate posting. Slack Notification:** Sends a final team alert with a preview of the card and the live link. β¨ Key Features Adaptive Polling:** Instead of a static wait time, the workflow intelligently polls Bannerbear until the image is confirmed ready. Automated CDN Bridge:** Uses uploadtourl to bypass Instagram's rejection of base64/binary payloads by providing a direct public URL. Intelligent Truncation:** Automatically shortens long reviews to 180 characters to ensure perfect readability on your branded quote card. Full Audit Trail:** Every post is logged back to Airtable with its live Instagram ID and CDN URL for easy reporting. πΌ Perfect For SaaS Companies:** Showcasing user feedback and "Love letters" from customers. E-commerce Brands:** Sharing 5-star product reviews to build buyer confidence. Service Providers:** Highlighting client testimonials on a regular schedule. Digital Marketers:** Automating the "Social Proof" pillar of a social media strategy. π§ What You'll Need Required Integrations Bannerbear:** API key and a Template ID with layers named reviewer_name, review_text, and star_label. Instagram Graph API:** A Business or Creator account access token. uploadtourl:** Credentials configured in n8n for mandatory media hosting. Airtable:** A base with a Reviews table containing fields for the name, text, and rating.
by Jitesh Dugar
π¦ Automated Instagram Product Drop via uploadtourl Streamline your e-commerce marketing with this end-to-end Instagram publishing pipeline. This workflow automates the transition from a new product entry to a live social media announcement, ensuring your brand stays active and consistent across platforms. π― What This Workflow Does This template handles the complex multi-step process of social media publishing through a single trigger: π Smart Data Intake The Webhook Trigger accepts data from Shopify, Airtable, or manual inputs. A normalization node then sanitizes the raw data, mapping nested fields to a consistent schema and applying fallback defaults for missing captions or hashtags. βοΈ Image Processing & Hosting The system fetches your product image from any public source and passes the binary to the uploadtourl node. This converts your raw image into a public CDN URL, which is required for the Instagram Graph API to access the file. πΈ Instagram Publishing Flow A dedicated Code Node assembles a brand-ready caption with emojis, prices, and CTAs, automatically truncating text to 2,200 characters to meet API limits. The workflow then executes Instagram's two-step flow: creating a media container and publishing it after a safe 5-second buffer. π Audit & Notification Once the post is live, the workflow records the Live Post ID, product name, and timestamp in Airtable for future analytics. Finally, it sends a formatted alert to your team via Slack with a direct link to the new post. β¨ Key Features Multi-Source Support: Works natively with Shopify products/create webhooks and Airtable automations. Automated CDN Hosting: Bypasses manual file uploads by using uploadtourl to generate API-compatible links. Safe Buffer Logic: Built-in wait timers ensure Instagram finishes asynchronous image processing before the final publish call. Brand Guardrails: Centralized caption builder ensures every post follows your brand's emoji and hashtag style. πΌ Perfect For SMM Managers: Automating repetitive product announcement tasks. E-commerce Owners: Linking Shopify new arrivals directly to Instagram. Creative Agencies: Managing high-volume product drops for multiple clients. Content Operations: Creating an automated audit log of all social media activity. π§ What You'll Need Required Integrations Instagram Graph API: A Business or Creator account access token. uploadtourl Account: Credentials configured in n8n for media hosting. Airtable & Slack: (Optional) For logging and team notifications. Configuration Steps API Keys: Connect your Instagram and uploadtourl credentials. Environment Variables: Set your IG_ACCOUNT_ID, AIRTABLE_BASE_ID, and SLACK_CHANNEL_ID in n8n.
by Paolo Ronco
Notify on menu orders via ntfy and Home Assistant TTS with daily BAC tracking Receive instant push notifications on your phone and voice announcements on your Google Home every time someone orders from your intranet menu β with cumulative BAC tracking per person. > Full documentation & step-by-step setup guides: > π Notion Documentation > π» GitHub Repository What This Workflow Does Every time a customer submits an order from your intranet menu website, this workflow: Receives the order via Webhook Logs it to an n8n DataTable and reads all orders for that person today Calculates the cumulative BAC (Blood Alcohol Content) using the Widmark formula Sends a push notification via ntfy (with order history + BAC level) Triggers a Home Assistant script β voice announcement on Google Home No cloud TTS fees. No external AI services. Fully self-hosted. Flow Webhook β Prepare Order β DataTable (INSERT) β Read Today's Orders β BAC Calculator β ntfy Push Notification β Home Assistant TTS Example Output Push notification (ntfy app): π Order from Mario Mario: 1x Pizza, 2x Beer 33cl π 12:30 π Ordered before: 1x Prosecco π 11:45 πΈ BAC ~0.54 g/L π΄ Google Home voice announcement: Mario has ordered Pizza Prerequisites Before importing this workflow, you need: A running n8n instance (self-hosted or cloud) reachable from the internet Home Assistant** on your local network (e.g. homeassistant.local:8123) At least one Google Home (or Chromecast-capable) device added to HA via the Google Cast integration ntfy** deployed via Docker (self-hosted push notification server) A public HTTPS URL for ntfy β recommended via Cloudflare Tunnel (no open ports needed) An Android or iOS device with the ntfy app installed Credentials Required | Credential | Used For | | ------------------------------------------------------ | ---------------------------------------- | | Home Assistant | Calling the annuncia_ordine TTS script | | Header Auth (Authorization: Bearer <ntfy_token>) | Sending authenticated requests to ntfy | n8n DataTable Schema Create a DataTable in n8n β Data β Tables with these columns: | Column | Type | Description | | -------------- | ------ | ------------------------------------------------------ | | item | Text | Full order string (e.g. "2x Negroni, 1x Messina 33cl") | | person | Text | Normalised person name | | alcol_grammi | Number | Total grams of alcohol for this order | | data | Text | ISO date (YYYY-MM-DD) | | orario | Text | Time string from the order | Copy the DataTable ID and paste it into the DataTable nodes inside the workflow. Webhook Payload Your menu website must POST this JSON to the Webhook Production URL: { "name": "Mario", "time": "26/03/2026, 12:30:00", "order": [ { "section": "Food", "name": "Pizza", "details": "", "quantity": 1 }, { "section": "Drinks", "name": "Beer", "details": "33cl", "quantity": 2 } ], "total": 3 } Setup Steps 1. Deploy ntfy (self-hosted push notifications) Add ntfy to your docker-compose.yml: ntfy: image: binwiederhier/ntfy command: serve volumes: ./ntfy/config:/etc/ntfy ./ntfy/data:/var/lib/ntfy ports: "8095:80" In server.yml, set auth-default-access: deny-all. Then create an admin user and generate a token: docker exec -e NTFY_PASSWORD="your_password" ntfy ntfy user add --role=admin admin docker exec ntfy ntfy token add admin 2. Expose ntfy over HTTPS (Cloudflare Tunnel) Add an ingress rule to your Cloudflare Tunnel config: hostname: ntfy.YOUR_DOMAIN.com service: http://localhost:8095 3. Configure Home Assistant TTS In HA, go to Settings β Automations & Scenes β Scripts β Add script β Edit in YAML and paste: alias: annuncia_ordine sequence: action: tts.speak target: entity_id: tts.google_translate_en_com data: media_player_entity_id: media_player.YOUR_GOOGLE_HOME_ENTITY message: "{{ message }}" language: it mode: single > Replace media_player.YOUR_GOOGLE_HOME_ENTITY with your actual entity ID. Then go to your HA profile β Security β Long-lived access tokens β create and copy a token. 4. Import and configure the workflow Import the workflow JSON into n8n Create the DataTable (columns listed above) β copy its ID Create the Header Auth credential for ntfy: Header Name: Authorization Header Value: Bearer YOUR_NTFY_TOKEN Create the Home Assistant credential: Host: http://homeassistant.local:8123 Access Token: your HA long-lived token In the ntfy notification node, replace YOUR_TOPIC in the URL In the Home Assistant TTS node, set the message attribute expression: ={{ $('Webhook').item.json.body.nome }} has ordered {{ $('Webhook').item.json.body.ordine[0].nome }} Activate the workflow and copy the Webhook Production URL 5. Configure your menu website Set the webhook URL in your menu site config: // menu-data.js "orderWebhook": "https://YOUR_N8N_DOMAIN/webhook/menu" BAC Calculation (Widmark Formula) BAC [g/L] = total_alcohol_grams_today / (70 Γ 0.68) Assumes ~70 kg body weight. Italian legal driving limit: 0.5 g/L | Emoji | Level | BAC | | ----- | ---------- | ------------- | | β¬ | None | 0 g/L | | π’ | Low | < 0.2 g/L | | π‘ | Warning | 0.2 β 0.5 g/L | | π΄ | Over limit | > 0.5 g/L | BAC is cumulative per day per person and resets automatically the next day. Customization | What | How | | ----------------------------------------- | ------------------------------------------------------------ | | Change the TTS message | Edit the message expression in the HA TTS node | | Announce all ordered items | Use $json.body.ordine.map(i => i.quantita + ' ' + i.nome).join(', ') | | Change TTS language | Edit language in the annuncia_ordine HA script | | Announce on multiple Google Home devices | Add multiple media_player_entity_id entries to the HA script | | Disable TTS (keep only push notification) | Remove or deactivate the Home Assistant TTS node | Security | Layer | Mechanism | | -------------------- | ---------------------------------------------------- | | Transport (ntfy) | HTTPS via Cloudflare Tunnel | | ntfy access | auth-default-access: deny-all β no anonymous reads | | n8n β ntfy | Dedicated Bearer token (revokable, no expiry) | | n8n β Home Assistant | Long-lived access token | | Mobile app | Username/password on the ntfy server | Documentation & Source | | | | ------------------------ | ------------------------------------------------------------ | | π Full documentation | Notion β step-by-step setup guides | | π» GitHub Repository | paoloronco/n8n-templates | Related Resources ntfy.sh documentation Home Assistant TTS documentation Home Assistant Scripts Google Cast integration n8n Home Assistant node
by Dhruv Dalsaniya
This workflow is designed for e-commerce, marketing teams, or creators who want to automate the production of high-quality, AI-generated product visuals and ad creatives. Here is what the workflow does: It accepts a product description and other creative inputs through a web form. It uses AI to transform your text input into a detailed, creative prompt. This prompt is then used to generate a product image. The workflow analyzes the generated image and creates a new prompt to generate a second image that includes a model, adding a human element to the visual. A final prompt is created from the model image to generate a short, cinematic video. All generated assets (images and video) are automatically uploaded to your specified hosting platform, providing you with direct URLs for immediate use. This template is an efficient solution for scaling your content creation efforts, reducing time spent on manual design, and producing a consistent stream of visually engaging content for your online store, social media, and advertising campaigns. Prerequisites: OpenRouter Account:** Required for AI agents to generate image and video prompts. GOAPI Account:** Used for the final video generation process. Media Hosting Platform:** A self-hosted service like MediaUpload, or any alternative like Google Drive or a similar service that can provide a direct URL for uploaded images and videos. This is essential for passing the visuals between different steps of the workflow.
by Jitesh Dugar
Branded Social Proof Automation via Bannerbear and uploadtourl Convert your customer satisfaction into high-converting social media content with this fully automated social proof pipeline. This workflow scans your database for top-tier reviews, generates a branded quote card, and publishes it directly to Instagram, ensuring a consistent stream of credibility for your brand. π― What This Workflow Does This template manages the entire lifecycle of a testimonial post, from data retrieval to final notification: π Review Dispatch Automation Schedule Trigger:** Automatically fires daily at 10:00 AM; cadence can be adjusted via cron expression. Airtable β Fetch Review:** Retrieves the oldest 5-star, unposted record using a specific filter formula to prevent duplicates. IF β Has Valid Review?:** Validates the data; the workflow exits gracefully if no new reviews are found and only proceeds when a 5-star review is ready. βοΈπ¨ Dynamic Asset Generation Code β Prepare Payload:** Formats review data into a JSON body, mapping fields like name and truncated text to Bannerbear layers while generating the final Instagram caption. HTTP β Create Image Job:** Submits the request to the Bannerbear API and retrieves a unique job uid for asynchronous processing. π Status Verification & Media Hosting HTTP β Poll Status:** Regularly checks the job status via the Bannerbear API to see if the rendering is finished. IF β Image Ready?:** Confirms completion; if still processing, it triggers a "Wait 3s + re-poll" loop for up to 5 retries before passing the image_url forward. uploadtourl Bridge:** Mandatory CDN step that uploads the rendered image binary and returns a stable public URL, which is required for Instagram's API to access the file. πΈ Instagram Publishing & Tracking IG β Create & Publish:** Executes the two-step Instagram Graph API flow to create a media container and publish it to your feed after a safe 6-second buffer. Airtable β Mark as Posted:** Updates the original record with the Post ID and timestamp to prevent duplicate posting. Slack Notification:** Sends a final team alert with a preview of the card and the live link. β¨ Key Features Adaptive Polling:** Instead of a static wait time, the workflow intelligently polls Bannerbear until the image is confirmed ready. Automated CDN Bridge:** Uses uploadtourl to bypass Instagram's rejection of base64/binary payloads by providing a direct public URL. Intelligent Truncation:** Automatically shortens long reviews to 180 characters to ensure perfect readability on your branded quote card. Full Audit Trail:** Every post is logged back to Airtable with its live Instagram ID and CDN URL for easy reporting. πΌ Perfect For SaaS Companies:** Showcasing user feedback and "Love letters" from customers. E-commerce Brands:** Sharing 5-star product reviews to build buyer confidence. Service Providers:** Highlighting client testimonials on a regular schedule. Digital Marketers:** Automating the "Social Proof" pillar of a social media strategy. π§ What You'll Need Required Integrations Bannerbear:** API key and a Template ID with layers named reviewer_name, review_text, and star_label. Instagram Graph API:** A Business or Creator account access token. uploadtourl:** Credentials configured in n8n for mandatory media hosting. Airtable:** A base with a Reviews table containing fields for the name, text, and rating.
by Muhammad Farooq Iqbal
Transform any product image into engaging UGC (User-Generated Content) videos and images using AI automation. This comprehensive workflow analyzes uploaded images via Telegram, generates realistic product images, and creates authentic UGC-style videos with multiple scenes. Key Features: π± Telegram Integration**: Upload images directly via Telegram bot π AI Image Analysis**: Automatically analyzes and describes uploaded images using GPT-4 Vision π¨ Smart Image Generation**: Creates realistic product images using Fal.ai's nano-banana model with reference images π¬ UGC Video Creation**: Generates 3-scene UGC-style videos using KIE.ai's Veo3 model πΉ Video Compilation**: Automatically combines multiple video scenes into a final output π€ Instant Delivery**: Sends both generated images and final videos back to Telegram Perfect For: E-commerce businesses creating authentic product content Social media marketers needing UGC-style content Influencers and content creators Marketing agencies automating content production Anyone looking to scale UGC content creation What It Does: Receives product images via Telegram Analyzes image content with AI vision Generates realistic product images with UGC styling Creates 3-scene video prompts (Hook β Product β CTA) Generates individual video scenes Combines scenes into final UGC video Delivers both image and video results Technical Stack: OpenAI GPT-4 Vision for image analysis Fal.ai for image generation and video merging KIE.ai Veo3 for video generation Telegram for input/output interface Ready to automate your UGC content creation? This workflow handles everything from image analysis to final video delivery! Updated
by simonscrapes
Overview This n8n automation is a complete LinkedIn Content Engine that turns simple topic ideas into fully written, visual, and scheduled posts. It features a "Human-in-the-Loop" design, meaning AI handles the heavy lifting of writing and image creation, but nothing goes live until you manually approve it in Google Sheets. How It Works The system runs two separate workflows in parallel: 1. The "Creator" Workflow Input: Detects when you add a new topic to your "Content Calendar" Google Sheet. Brand Alignment: Pulls your specific "Brand Voice" guidelines from a separate tab to ensure the AI sounds like you. Creation: Uses Gemini Flash 1.5 to write the post and DALL-E 3 to generate a matching professional image. Drafting: Uploads the image to ImgBB and saves the full draft back to your sheet with a status of "Draft." 2. The "Publisher" Workflow Daily Scan: Wakes up every morning to check your Content Calendar. Verification: Looks for posts that match two criteria: Date Scheduled matches today's date. Status is marked as "Approved" (by you). Publishing: If both match, it automatically uploads the text and image to LinkedIn and updates the sheet status to "Posted." Tools Used: n8n, Google Sheets, OpenRouter (Gemini / OpenAI), ImgBB. Connect & Learn More YouTube Channel: Simon Scrapes β More tutorials on AI & Automation. Community: Skool Community β Master AI & Automation with us. Full Video Tutorial: Watch the step-by-step build here
by Automate With Marc
π₯ Telegram Image-to-Video Generator Agent (Veo3 / Seedance Integration) β οΈ This template uses [community nodes] and some credential-based HTTP API calls (e.g. Seedance/Wavespeed). Ensure proper credentials are configured before running. π οΈ In the accompanying video tutorial, this logic is built as two separate workflows: Telegram β Image Upload + Prompt Agent Prompt Output β Video Generation via API Watch Full Video Tutorial: https://youtu.be/iaZHef5bZAc&list=PL05w1TE8X3baEGOktlXtRxsztOjeOb8Vg&index=1 β¨ What This Workflow Does This powerful automation allows you to generate short-form videos from a Telegram image input and user prompt β perfect for repurposing content into engaging reels. From the moment a user sends a photo with a caption to your Telegram bot, this n8n workflow: πΈ Captures the image and saves it to Google Drive π§ Uses an AI Agent (via LangChain + OpenAI) to craft a Seedance/Veo3-compatible video prompt π Logs the interaction to a Google Sheet ποΈ Sends the prompt + image to the Seedance (Wavespeed) API to generate a video π Sends the resulting video back to the user on Telegram β fully automated π How It Works (Step-by-Step) Telegram Bot Trigger Listens for incoming images and captions Conditional Logic Filters out invalid inputs AI Agent (LangChain) Uses OpenAI GPT to: Generate a video prompt Attach the most recent image URL (from Google Sheet) Google Drive Upload Saves the Telegram image and logs the share link Google Sheets Logging Appends a new row with date + file link Wavespeed (Seedance/Veo3) API Calls the /bytedance/seedance-v1-pro-i2v-480p endpoint with image and prompt Video Polling & Output Waits for generation completion Sends back final video file to Telegram user π οΈ Tools & APIs Used Telegram Bot (Trigger + Video Reply) LangChain Agent Node OpenAI GPT-4.1-mini for Prompt Generation Simple Memory & Tools (Google Sheets) Google Drive (Image upload) Google Sheets (Log prompts + image URLs) Wavespeed / Seedance API (Image-to-video generation) π§© Requirements Before running this workflow: β Set up a Telegram Bot and configure credentials β Connect your Google Drive and Google Sheets credentials β Sign up for Wavespeed / Seedance and generate an API key β Replace placeholder values in: HTTP Request nodes Google Drive folder ID Google Sheet document ID π¦ Suggested Use Cases Generate short-form videos from image ideas Reformat static images into dynamic reels Repurpose visual content for TikTok/Instagram
by Snehasish Konger
How it works: This template takes approved Notion pages and syncs them to a Webflow CMS collection as draft items. It reads pages marked Status = Ready for publish in a specific Notion database/project, merges JSON content stored across page blocks into a single object, then either creates a new CMS item or updates the existing one by name. On success it sets the Notion page to 5. Done; on failure it switches the page to On Hold for review.  Step-by-step: Manual Trigger You start the run with When clicking βExecute workflowβ. Get Notion Pages (Notion β Database: Tech Content Tasks) Pull all pages with Status = Ready for publish scoped to the target Project. Loop Over Items (Split In Batches) Process one Notion page at a time. Code (Pass-through) Expose page fields (e.g., name, id, url, sector) for downstream nodes. Get Notion Block (children) Fetch all blocks under the page id. Merge Content (Code) Concatenate code-block fragments, parse them into one mergedContent JSON, and attach the page metadata. Get Webflow Items (HTTP GET) List items in the target Webflow collection to see if an item with the same name already exists. Update or Create (Switch) No match: Create Webflow Item (POST) with isDraft: true, mapping all fieldData (e.g., category titles, meta title, excerpt, hero copy/image, benefits, problem pointers, FAQ, ROI). Match: Update Webflow Item (Draft) (PATCH) for that id. Keep the existing slug, write latest fieldData, leave isDraft: true. Write Back Status (Notion) Success path β set Status = 5. Done. Error path β set Status = On Hold. Log Submission (Code) Log a compact object with status, notionPageId, webflowItemId, timestamp, and action. Wait β Loop Short pause, then continue with the next page. Tools integration: Notion** β source database and page blocks for approved content. Webflow CMS API* β destination collection; items created/updated as *drafts**. n8n Code** β JSON merge and lightweight logging. Split In Batches + Wait** β controlled, item-wise processing. Want hands-free publishing? Add a Cron trigger before step 2 to run on a schedule.
by Elvis Sarvia
Validate AI-generated outputs before your workflow acts on them. This template sends a support ticket through AI classification, parses the JSON response, and checks that categories, urgency levels, and confidence scores are all within valid ranges. What you'll do Send a support ticket to the AI for classification. Watch the Code node parse and validate the AI's JSON response against a defined schema. See how valid outputs continue through the workflow while invalid ones get flagged. What you'll learn How to structure AI prompts to return valid JSON How Code nodes parse and validate AI output against expected schemas How to check confidence scores, valid categories, and urgency levels programmatically How to build retry and fallback paths for malformed AI responses Why it matters AI models don't always return what you expect. A confidence score of "high" instead of 0.95, a missing category field, or a malformed JSON response can silently break downstream steps. This template catches those failures before they propagate. This template is a learning companion to the Production AI Playbook, a series that explores strategies, shares best practices, and provides practical examples for building reliable AI systems in n8n. https://go.n8n.io/PAP-D&A-Blog
by Alok Kumar
π Generate Product Requirements Document (PRD) and test scenarios form input to PDF with OpenRouter and APITemplate.io This workflow generates a Product Requirements Document (PRD) and test scenarios from structured form inputs. It uses OpenRouter LLMs (GPT/Claude) for natural language generation and APITemplate.io for PDF export. Whoβs it for This template is designed for product managers, business analysts, QA teams, and startup founders who need to quickly create Product Requirement Documents (PRDs) and test cases from structured inputs. How it works A Form Trigger collects key product details (name, overview, audience, goals, requirements). The LLM Chain (OpenRouter GPT/Claude) generates a professional, structured PRD in Markdown format. A second LLM Chain creates test scenarios and Gherkin-style test cases based on the PRD. Data is cleaned and merged using a Set node. The workflow sends the formatted document to APITemplate.io to generate a polished PDF. Finally, the workflow returns the PDF via a Form Completion node for easy download. β‘ Requirements OpenRouter API Key (or any LLM) APITemplate.io account π― Use cases Rapid PRD drafting for startups. QA teams generating test scenarios automatically. Standardized documentation workflows. π Customize by editing prompts, PDF templates, or extending with integrations (Slack, Notion, Confluence). Need Help? Ask in the n8n Forum! Happy Automating with n8n! π