All n8n workflows
Manual Trigger Edit Fields (Set) HTTP Request Extract from File Code If Loop Over Items (Split in Batches) Wait Convert to File Read Write File Filter

Generate bulk personalized videos from a CSV

Render one personalized video per CSV row with the Zvid bulk API: dry-run validation, credit estimates, batching, polling and a results manifest.

Copy, then paste directly onto your n8n canvas (Ctrl/Cmd + V) — or import the downloaded file via Workflow menu → Import from file.

How it works

Feed it a customer CSV and a Zvid template, and this workflow renders a personalized video for every row — names, offers and media swapped per customer.

  • Fetch & parse: pulls template.json, campaign.json and customers.csv, then builds one render item per row.
  • Dry run first: a free /render/validate pass catches bad rows and a code node estimates the credit cost before anything is spent.
  • Batched submission: rows are chunked with Split in Batches and submitted to the Zvid bulk render API.
  • Polling loop: a wait/poll cycle checks batch status until every job finishes, with a timeout guard.
  • Manifest: the run ends with a per-customer manifest of video URLs, ready for your email or CRM step.

Set up steps

  1. Create a Zvid API key and set it in the Campaign Config node (or an n8n credential).
  2. Point the three fetch nodes at your hosted template.json, campaign.json and customers.csv (the defaults use the public Zvid example campaign).
  3. Run once with Dry run? = true to validate rows and see the credit estimate.
  4. Flip dry run off and execute — the manifest lists a video URL per customer.

More n8n workflows

Ready to ship video at scale?

Start free — your first render is only a JSON payload away.