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 Dr. Firas
Quick overview This workflow fetches trending Hacker News front-page stories for a keyword, uses OpenAI to select one and write a short-form video brief, generates an AI video via AtlasCloud, then publishes the finished clip to YouTube and TikTok through Blotato. How it works Starts when you manually execute the workflow. Pulls the latest Hacker News front-page stories that match your configured keyword and combines them into a single list. Uses OpenAI to choose the most compelling story and generate a cinematic text-to-video prompt, a short title, a caption, and hashtags. Sends the prompt to AtlasCloud to generate a short AI video with the configured duration, aspect ratio, and resolution. Polls AtlasCloud at the configured interval until the generation succeeds or fails. When the video is ready, publishes the video URL to YouTube and then TikTok via Blotato using the generated title/caption and AI-generated/synthetic media flags. Setup Add an OpenAI API credential and select it in the OpenAI Chat Model step. Create an AtlasCloud HTTP Header Auth credential (Bearer token) and select it in both AtlasCloud HTTP requests. Add a Blotato API credential, then select your YouTube and TikTok accounts in the two Blotato publish steps. Update the values in the Configuration step (keyword, AtlasCloud model, duration, aspect ratio, resolution, poll wait time, and TikTok privacy level) to match your needs. Additional info Hacker News to video content with Blotato π₯ Open full documentation on Notion Need help customizing? Contact me for consulting and support : Linkedin MY NEW YOUTUBE CHANNEL π Subscribe to my new YouTube channel. Here I'll share videos and Shorts with practical tutorials and FREE templates for n8n.
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 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 Tahir
Quick overview This workflow automatically picks a random image, uses an AI Agent to generate an engaging caption, uploads the image to Nimply, and publishes it as a post to a chosen Nimply channel, turning a manual "pick photo β write caption β post" routine into one click. How it works The workflow is started manually (swap in a Schedule Trigger to automate it). A Config node holds a list of sample image URLs to post from. A Code node picks one image at random from that list. An AI Agent, powered by an OpenRouter chat model, writes a caption for the image with emojis and exactly 3 hashtags. The image is uploaded to Nimply as media. The workflow fetches all available Nimply channels and filters them by name to find the target channel. A new post is created on Nimply using the uploaded media and the AI-generated caption. Setup Import the workflow into your n8n instance. Connect your OpenRouter credentials (or swap in your preferred LLM provider). Connect your Nimply credentials. Replace the sample image URLs in the Config node with your own images. Update the channel name check in the If node to match your target channel. Set your channel ID(s) in the Create a Post node, then activate the workflow. Requirements A Nimply account with API access enabled. An OpenRouter account and API key (or another supported LLM provider). An n8n instance (Cloud or Self-hosted). Customization Replace the Manual Trigger with a Schedule Trigger for recurring, automated posts. Pull images from Google Drive, S3, or an API instead of a static list. Adjust the caption prompt to change tone, length, or hashtag count. Route different images or topics to different Nimply channels by extending the filtering logic. Additional info This workflow is designed as a starting point for AI-assisted social publishing on Nimply. You can extend it by adding approval steps before posting, logging generated captions to a spreadsheet, generating images with AI instead of using a static list, or posting to multiple channels at once.
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! π
by Maxim Osipovs
This n8n workflow template implements a dual-path architecture for AI customer support, based on the principles outlined in the research paper "A Locally Executable AI System for Improving Preoperative Patient Communication: A Multi-Domain Clinical Evaluation" (Sato et al.). The system, named LENOHA (Low Energy, No Hallucination, Leave No One Behind Architecture), uses a high-precision classifier to differentiate between high-stakes queries and casual conversation. Queries matching a known FAQ are answered with a pre-approved, verbatim response, structurally eliminating hallucination risk. All other queries are routed to a standard generative LLM for conversational flexibility. This template provides a practical ++blueprint++ for building safer, more reliable, and cost-efficient AI agents, particularly in regulated or high-stakes domains where factual accuracy is critical. What This Template Does (Step-by-Step) Loads an expert-curated FAQ from Google Sheets and creates a searchable vector store from the questions during a one-time setup flow. Receives incoming user queries in real-time via a chat trigger. Classifies user intent by converting the query to an embedding and searching the vector store for the most semantically similar FAQ question. Routes the query down one of two paths based on a configurable similarity score threshold. Responds with a verbatim, pre-approved answer if a match is found (safe path), or generates a conversational reply via an LLM if no match is found (casual path). Important Note for Production Use This template uses an in-memory Simple Vector Store for demonstration purposes. For a production application, this should be replaced with a persistent vector database (e.g., Pinecone, Chroma, Weaviate, Supabase) to store your embeddings permanently. Required Integrations: Google Sheets (for the FAQ knowledge base) Hugging Face API (for creating embeddings) An LLM provider (e.g., OpenAI, Anthropic, Mistral) (Recommended) A persistent Vector Store integration. Best For: π¦ Organizations in regulated industries (finance, healthcare) requiring high accuracy. π° Applications where reducing LLM operational costs is a priority. βοΈ Technical support agents that must provide precise, unchanging information. π Systems where auditability and deterministic responses for known issues are required. Key Benefits: β Structurally eliminates hallucination risk for known topics. β Reduces reliance on expensive generative models for common queries. β Ensures deterministic, accurate, and consistent answers for your FAQ. β Provides high-speed classification via vector search. β Implements a research-backed architecture for building safer AI systems.
by Kristian JΓΈnsson
Quick overview This workflow turns a product photo into a short product video with Dreem AI. Tag a product dreem-video in Shopify and the finished clip arrives in Slack for approval, then lands in the product's media. How it works The workflow fires when a product update carries the tag dreem-video. The tag is swapped immediately so the workflow cannot re-trigger itself. The Dreem node animates the product's newest image into a 5-10 second video. Use an on-model photo for best results. Dreem renders in the background (up to 20 minutes) and calls the workflow back. The video link posts to Slack with Upload / Skip buttons. No click within 12 hours counts as Skip - nothing reaches the store without a yes. Posts the finished video link to Slack and sends an approval message with buttons to either upload the video to Shopify or skip. If approved, downloads the video file, creates a staged Shopify upload via the Shopify Admin GraphQL API, uploads the video to the staged target, and attaches it to the productβs media. If rendering times out or does not complete, posts a timeout message to Slack and stops without uploading anything to Shopify. Setup Add a Shopify Admin access token credential with read_products and write_products permissions and select it for the Shopify trigger and product update steps. Add a Dreem.ai API key credential and choose the prompt and duration settings you want for video generation. Add a Slack OAuth2 credential, set the target channel for both Slack messages, and ensure approvers can interact with message buttons. Replace https://YOUR-STORE.myshopify.com with your actual Shopify domain in both Shopify GraphQL HTTP requests. Tag a product with dreem-video and ensure the newest product image is the one you want to use as the videoβs first frame. Requirements Dreem account + API key, Shopify store with Admin API access, Slack (required, for the approval step) Customization Change the motion prompt, duration, and dimensions (9:16 for Reels/TikTok) on the Dreem node, or rename the trigger tag.