Pro11 min

Automating the Pipeline with n8n

At volume, clicking through Runway and Kling by hand does not scale. n8n lets you wire the pipeline together: a script model writes prompts, the generators produce clips, and the results land in storage, all triggered by a single row in a sheet. This is how one person ships ten videos a week.

Step 1: Map the flow before you build it

A working automation is a clear sequence: trigger, generate prompts, call the video API, poll for completion, store the file, notify you. Draw it before you touch n8n so each node has one job.

flow.txt
[Sheet row added]
   -> [Claude: write 4 shot prompts]
   -> [Split into 4 items]
   -> [HTTP: Runway generate]
   -> [Wait + poll until done]
   -> [Download clip]
   -> [Upload to storage]
   -> [Slack: 'batch ready']

Step 2: Generate prompts with a model node

Use a Claude Sonnet 4.6 node for the prompt-writing step. It is fast and cheap enough to run on every row, and it returns clean structured JSON you can split into individual generation calls.

claude-node-output.json
{
  "shots": [
    { "id": 1, "prompt": "slow dolly push-in on a glass of cold brew, morning light" },
    { "id": 2, "prompt": "overhead macro of milk swirling into coffee, slow motion" },
    { "id": 3, "prompt": "close-up of beans pouring into a grinder, warm light" },
    { "id": 4, "prompt": "wide shot of the finished drink on a cafe table, soft bokeh" }
  ]
}

Step 3: Call the generator API and poll

Video generation is asynchronous. You submit a job, get an id, then poll until the status is done. An n8n Wait node plus a polling loop handles this without you watching the screen.

n8n - http request node (poll)
$POST /v1/generate { prompt, duration: 5 }
202 -> { id: gen_91af, status: queued }
Wait 20s, then poll
$GET /v1/tasks/gen_91af
200 -> { status: done, url: https://.../clip.mp4 }
$
Always cap spend
An automation that loops can burn credits fast. Add a hard limit on rows per run and a budget check node before any generation call. Test with one row before you let it loose on fifty.
n8n - workflow canvas
[Sheet Trigger] -> [Claude Sonnet 4.6]
-> [Split Out] -> [Runway HTTP]
-> [Wait] -> [If done?] -> [Download]
-> [Storage] -> [Slack notify]

Result: add a row, walk away, come back to four downloaded clips and a Slack ping. The creative judgment stays human; the clicking is gone.

Hands-on tasks