All n8n workflows
Schedule Trigger Manual Trigger Edit Fields (Set) Google Sheets Code If HTTP Request Wait

Create daily motivational quote videos from Google Sheets

Turn the first pending quote in Google Sheets into a polished 1080x1920 Reel, Short, or TikTok video every day. This n8n workflow validates and renders the video, writes the finished MP4 URL back to the exact Sheet row, and lets you watch it inside n8n.

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

  1. Schedule or test manually. The workflow runs every day at 8am and also includes a manual trigger for setup and testing.
  2. Read the quote queue. Google Sheets supplies the exact columns Quote | Author | AuthorNote | Status | VideoUrl. The workflow selects the first row whose Status is empty and retains its n8n row_number.
  3. Build an adaptive vertical video. A Code node creates a two-scene 1080x1920 Zvid project. Quote and author typography scale with text length, while a deterministic day-of-year rotation chooses one of five coordinated footage-and-music looks.
  4. Validate before rendering. Zvid validates the exact project for free and returns the required credit cost. With dryRun: true, the workflow saves an editor draft and stops without charging credits or updating the Sheet.
  5. Render and poll. In normal mode, n8n submits the asynchronous render, waits, checks status, and loops until the MP4 is complete or the configured timeout is reached.
  6. Update the same row. A successful run writes done and the public VideoUrl back to the captured Sheet row. A failed render leaves the row pending for a future retry.
  7. Watch inside n8n. The final node downloads the MP4 as binary so n8n displays its built-in video player and download control.

Set up steps

  1. Import this workflow into n8n.
  2. Create a Google Sheet with the exact header row: Quote | Author | AuthorNote | Status | VideoUrl. Add up to any number of attributed quotes; leave Status and VideoUrl empty for pending rows.
  3. Create a Zvid API key at https://app.zvid.io/api-keys.
  4. In n8n, create a Header Auth credential with header name x-api-key and your Zvid API key as the value. Attach it to Validate project (free), Save draft to editor, Submit render, and Get render status.
  5. Attach your Google Sheets OAuth credential to Read quote sheet and Mark row done, then choose the same spreadsheet and tab in both nodes.
  6. Open Config and customize channelName, ctaText, and the optional timing values.
  7. Recommended: set dryRun: true and execute manually. Review the returned credit quote and open the free draft in the Zvid visual editor.
  8. Set dryRun: false for a real render. A short quote produces about 10.8 seconds of video and requires approximately 11 credits. Click Watch video when the run finishes.
  9. Confirm that only the selected row contains Status = done and its VideoUrl. Do not sort or delete rows while a run is active because the workflow updates the captured row number.
  10. Check the n8n instance timezone, then activate the workflow for the daily schedule.

The workflow uses only built-in n8n nodes, so no community package installation is required. Background footage and music come from Zvid's stock library.

More n8n workflows

Ready to ship video at scale?

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