DEV Community

Mina Ramzy
Mina Ramzy

Posted on

Automating 5,400+ Shopify Product Videos with n8n and Zvid

A Shopify catalog with more than 5,400 products turns “make a video for each item” into an automation problem.

At 10 minutes per manually produced video, the work would take about 900 hours — more than 112 eight-hour days. We completed the catalog within one day by treating Shopify as structured input, using one data-driven Zvid design, and orchestrating the process with n8n.

The architecture

Shopify GraphQL
  → eligibility and media checks
  → product-to-template mapping
  → free Zvid validation and quote
  → editor preview or bulk render
  → review links
  → optional Shopify staged upload and association
Enter fullscreen mode Exit fullscreen mode

The workflow maps up to four images plus title, price, compare-at price, description points, sizes, vendor, product type, storefront URL, and product-specific color styling.

It carries the Shopify product GID through every stage. That is important: mapping a finished job by title would be unsafe when titles change or repeat.

Eligibility is more than a tag filter

The default product search excludes the zvid-video tag, but the workflow also inspects Shopify media. Any product with a usable VIDEO or EXTERNAL_VIDEO item is skipped even if another process created it and the tag is absent.

Products missing a title, a public image, or a priced variant are reported as skipped instead of failing the entire batch.

Safe execution modes

The import ships with:

{
  "dryRun": true,
  "publishToShopify": false
}
Enter fullscreen mode Exit fullscreen mode

The dry run validates the resolved project, returns the duration and exact credit quote, and creates an editor draft for the first product. It does not start a paid render.

After approval, dryRun: false renders the selected batch. With publishToShopify: false, the workflow returns the MP4 URLs for review. Only an explicit publishToShopify: true enables Shopify writes.

Publishing hosted video to Shopify

Shopify hosted video uses a staged-upload flow. For every approved result, the workflow:

  1. gets the MP4 byte size;
  2. calls stagedUploadsCreate;
  3. uploads to the signed staging target;
  4. associates the staged resource with the Shopify product; and
  5. adds the processed tag only when Shopify accepts the association.

Failed products remain untagged and can be retried.

Credentials

Use a Shopify Admin API access token as the value of the X-Shopify-Access-Token n8n Header Auth credential. It is not the Client ID or Client secret. The Shopify app needs read_products, write_products, and write_files.

For Zvid, install the verified community package @zvid/n8n-nodes-zvid from Settings → Community nodes. A workspace owner or admin may need to perform the installation. Create the API key at https://app.zvid.io/api-keys and store it in a Zvid API credential.

The exported JSON contains no Shopify or Zvid secret.

Why this scales

The system separates creative decisions from product variation:

  • the video design is shared;
  • catalog fields become variables;
  • each batch has a clear maximum size;
  • validation precedes rendering;
  • each output remains tied to a stable product ID; and
  • publishing is a separate approval gate.

This is what reduced a theoretical 900-hour project to a one-day automated run.

Resources

Top comments (0)