Quick overview
This workflow collects a TikTok Shop product brief via an n8n form, uses OpenAI and Replicate (Seedance 2.5) to generate a 15-second vertical product video, validates the output, and uploads it to TikTok as an inbox draft using SocialRobot (with an optional Instagram Reel upload).
How it works
- Receives a submission from an n8n Form with the product name, selling points, optional call to action, language, and up to four product photos.
- Uploads any provided photos to Replicate file storage and aggregates the returned URLs for use as Seedance reference images.
- Uses OpenAI (GPT-6-luna) to generate a timed Seedance prompt, hook/voiceover text, and a TikTok caption in the selected language.
- Submits a Replicate prediction job to run ByteDance Seedance 2.5 with the requested duration, aspect ratio, resolution, and optional audio, then polls Replicate until the job succeeds, fails, or times out.
- Downloads the generated video from Replicate and checks its media type, file size, and actual duration against configured limits.
- If the checks pass, uploads the video to TikTok via SocialRobot in “Send to Inbox (Draft)” mode and returns a run summary (and optionally also uploads the same video as an Instagram Reel).
- If any step fails (generation, timeout cancellation, validation, or SocialRobot upload), the workflow stops with a readable error message.
Setup
- Add an OpenAI credential for the chat model used to generate the Seedance prompt and TikTok caption.
- Add an HTTP Bearer Auth credential with your Replicate API token and select it in the Replicate HTTP Request steps (file upload, prediction submit, status check, and cancel).
- Install and configure the SocialRobot community node and add your SocialRobot API key, then connect your TikTok account in SocialRobot and select the TikTok account in the draft upload step.
- (Optional) Connect an Instagram account in SocialRobot and select it in the Instagram Reel step if you want cross-posting.
- Review and adjust the video constraints in the settings step (model, duration, polling interval, timeout, and max file size) to match your content and platform limits.