How we automated product videos for a 5,400+ item Shopify catalog with n8n

Hi n8n community,

A Shopify client had more than 5,400 products and wanted a branded video for every eligible product. At roughly ten minutes of repetitive work per product, the manual version would have taken about 900 hours, or more than 112 eight-hour working days.

After studying the catalog structure, we turned the process into one governed n8n workflow and generated the catalog videos within one day with Zvid.

Disclosure: I work on Zvid and helped build and test this workflow. I am sharing the workflow for free because the useful part is the catalog logic, safeguards, and product-to-video mapping—not a claim that automation replaces creative review.

Workflow template: [ADD N8N TEMPLATE URL]

Walkthrough: https://youtu.be/qe5KHfJoZmY

Workflow shape

Manual trigger or daily schedule
  → Load store, brand, query, and safety settings
  → Query active Shopify products through Admin GraphQL
  → Skip products with usable video or the processed tag
  → Skip incomplete products and report the reason
  → Map catalog data into one reusable vertical design
  → Validate the resolved project and quote the batch
  → dryRun = true: save an editor draft for review
       or
    dryRun = false: submit one Zvid bulk render and poll the batch
  → Return MP4 review links
  → publishToShopify = true: stage, upload, associate, and tag each success

The workflow has 51 nodes, including the setup and troubleshooting notes on the canvas.

What is mapped from Shopify

For each eligible product, the workflow uses:

  • the stable Shopify product GID and handle;
  • title, price, and compare-at price;
  • description bullets, vendor, product type, sizes, and storefront URL;
  • up to four public product images; and
  • product tags and existing video media for eligibility checks.

Products without a title, priced variant, or public image are skipped with an explicit reason. A product that already has usable video is not rendered again. Products with fewer than four images remain eligible because the best available image is reused safely.

Keeping every video attached to the correct product

The workflow records the Shopify product GID beside each bulk item before the render starts. When Zvid returns the finished jobs, n8n maps each job index back to that stored product record.

If Shopify publishing is enabled, each MP4 then follows Shopify’s staged-upload flow. The processed tag is added only after Shopify accepts the video association. Failed products remain untagged and eligible for a later retry.

This avoids a dangerous catalog-scale failure mode: creating the correct videos but attaching them to the wrong products.

Safe defaults

The shared workflow starts with:

{
  "dryRun": true,
  "publishToShopify": false,
  "maxProducts": 5
}

The first branch validates the real resolved design, returns the exact credit quote, and attempts to save an editable Zvid project. It does not start the bulk render. After rendering is approved, keeping publishToShopify false returns review links without changing Shopify media.

Nodes and credentials

Before importing, a workspace owner or admin may need to install the exact community package from Settings → Community nodes:

@zvid/n8n-nodes-zvid

The workflow uses Shopify Admin GraphQL through n8n HTTP Request nodes. The Shopify app needs read_products, write_products, and write_files because the optional publishing branch stages the file, associates it with the product, and adds the processed tag.

Store the returned Shopify Admin API access token in an n8n Header Auth credential named X-Shopify-Access-Token. That access token is not the Client ID or Client secret.

Create the Zvid credential with an API key from Sign in and keep the API base URL set to https://api.zvid.io. In this workflow, bulk submission uses the native Zvid community node; validation, editor-draft, and batch-status steps use documented Zvid API requests with the same credential.

Verification

The canonical JSON passed the publication validator: 51 unique node names and IDs, 29 valid connection sources, compiling Code nodes, no embedded secrets, and the correct scoped Zvid node type.

Live testing resolved, validated, and rendered five connected Shopify products as 12.6-second 1080 × 1920 H.264 videos. A Shopify staged upload and product association also succeeded for the matching product GID.

The free workflow: Create and publish Shopify product videos with Zvid | n8n workflow template

Full video walkthrough: https://youtu.be/qe5KHfJoZmY

If you work with large catalogs, I would appreciate feedback on the retry strategy: would you prefer the processed tag, a dedicated metafield, or an external job ledger as the source of truth?