Quick overview
This workflow collects a dish photo via an n8n form, crops and hosts it on fal, optionally uses OpenAI to generate shot prompts and social captions, renders a short Kling 3.0 ASMR-style vertical video, then delivers it to your TikTok inbox as a draft via SocialRobot.
How it works
- Receives a dish photo and menu facts (dish name, ingredients, price, availability, business name, and location/link) through an n8n form trigger.
- Validates that an image was submitted, then reads the file metadata and plans a centered 9:16 crop for vertical video output.
- Uploads the image to fal storage and uses fal’s crop-image utility to produce a cropped JPG for video generation.
- Optionally sends the cropped image and the submitted facts to OpenAI to generate 1–3 Kling shot prompts plus TikTok/Instagram/Facebook/Threads captions, otherwise falls back to built-in template prompts and captions.
- Submits an image-to-video job to Kling 3.0 on fal and polls the job status until it completes, fails, or times out.
- Downloads the finished video from fal, checks its file size and actual MP4 duration, and then uploads it to TikTok as an inbox draft using SocialRobot (with optional, disabled-by-default posting to Instagram Reels, Facebook Reels, and Threads).
Setup
- Add a fal API key using an HTTP Header Auth credential (Authorization: Key YOUR_FAL_KEY) and select it in all fal HTTP Request steps.
- Install the community node
@socialrobot-io/n8n-nodes-socialrobot, add your SocialRobot API key, connect your TikTok account in SocialRobot, and select the target TikTok account in the TikTok draft step.
- Add an OpenAI credential for the OpenAI chat model step (or set
use_openai to false in the configuration step to run without OpenAI).
- Review and adjust the settings in the configuration step (video model, shot count, duration, audio, polling/timeout limits, captions, and the AI label line), and enable the optional Instagram/Facebook/Threads SocialRobot steps if you want them to publish.