August 10, 2026
How to Add Human Review to Shopify Product Video Automation
Build a reviewable Shopify product-video workflow with VideoFlow, portable VideoJSON, previews, approvals, and queued MP4 rendering.
You can generate a product video for every Shopify SKU, but that does not mean every generated clip should go straight to a product page or ad account. The safer pattern is to let product data create a structured draft, give a person one clear review point, then render only approved versions.\n\nThis guide shows how to add that review step with VideoFlow, an open-source toolkit that turns code into portable VideoJSON and can preview, edit, and render the same video definition. You will need a Shopify product feed (or another normalized catalog source), Node.js, and a place to store the generated JSON and approval state.\n\n
\n\n## 1. Define the smallest video contract first\n\nStart with one product-video format, not every possible ad variation. For example, a 12-second product-page clip might need a hero image, product name, price, two benefit bullets, and a final CTA. Decide which fields are required and which have safe fallbacks.\n\nA practical record might look like this: handle, title, price, imageUrl, benefits, variantName, and status. Keep product copy short before it reaches a template. If a title is too long or an image is missing, flag that SKU for review instead of trying to make the renderer guess.\n\nVideoFlow is a good fit here because its core package lets you author layers with TypeScript and compile the result to VideoJSON. That JSON becomes the contract between your feed job, reviewer, editor, and renderer. The same idea is useful when you need product-driven video variations without maintaining separate projects for each SKU.\n\nExpected result: every candidate has the fields needed to make a predictable draft, or it is explicitly excluded before rendering.\n\n## 2. Map catalog fields into one reusable VideoJSON template\n\nCreate one TypeScript template that accepts normalized product data. Use text, image, shape, audio, and caption layers only where they support the message. VideoFlow’s fluent API can sequence scene changes, run animations in parallel, group elements, and compile the final structure into VideoJSON.\n\nts\n+import VideoFlow from "@videoflow/core";\n+\n+const $ = new VideoFlow({ name: product.handle, width: 1080, height: 1350, fps: 30 });\n+$.addImage({ src: product.imageUrl });\n+$.addText({ text: product.title, fontSize: 6, fontWeight: 800 });\n+$.wait("2s");\n+const videoJSON = await $.compile();\n+\n\nKeep the template intentionally constrained. A product feed should populate approved fields, not decide arbitrary timing, effects, or layout. Store the compiled JSON beside the input version and template version so a reviewer can trace what changed.\n\n
\n\nExpected result: each SKU produces a portable JSON draft that can be regenerated from the same source data.\n\n## 3. Preview the exact draft before you queue an MP4\n\nRender a live preview from the JSON rather than reviewing a screenshot or a guessed description. VideoFlow’s DOM renderer is built for a scrubbable, frame-accurate preview in a dashboard or internal tool. Put the SKU, template version, source image, and generated preview together in one review screen.\n\nGive reviewers only a few decisions: approve, request changes, or reject. Capture a specific reason for non-approval—cropped image, unsupported claim, poor copy fit, or missing asset—so the feed job can correct the data rather than repeating the same error. This extends the safety pattern in a reviewable VideoJSON workflow: change structured inputs, then regenerate and review the next draft.\n\nExpected result: no unreviewed draft can enter the render queue.\n\n## 4. Let a human edit only the approved scope\n\nSome products need a small adjustment even when the data is valid. For those cases, open the approved draft in VideoFlow’s React video editor. It provides a multi-track timeline, trimming, reordering, keyframes, effects, transitions, and MP4 export while keeping the video in the same JSON format.\n\nUse the editor for exceptions, not as a replacement for the template. Let a reviewer correct a line break, shorten a clip, swap an allowed image, or adjust timing. Save that edited VideoJSON as a new revision and preserve the original generated version. For a fuller operational checklist, see how to build a video review workflow.\n\n
\n\nExpected result: reviewers can make controlled changes without breaking the feed-to-video system.\n\n## 5. Render approved jobs with the right backend\n\nOnce the status is approved, place the exact VideoJSON revision on a render queue. Choose the rendering environment based on the job: use the browser renderer for small user-initiated exports, or use the server renderer for scheduled batches, APIs, and large catalog runs. Both can work from the same VideoJSON, so changing the backend does not require rebuilding the template.\n\nStore the output URL, render timestamp, and source revision with the job. Then deliver the MP4 to the appropriate destination: a product-media workflow, a social scheduling queue, a campaign folder, or an account manager’s review area. If you are already working from a Shopify feed, the queue pattern in this product-feed workflow is a useful companion.\n\n
\n\nExpected result: every published MP4 has a traceable product input, template version, approved JSON revision, and render record.\n\n## Common pitfalls\n\n- Rendering before validation: validate required assets and copy length before compiling the video.\n- Giving the template unrestricted data: normalize and limit product fields so price formats, claims, and titles remain safe.\n- Losing edits: save edited VideoJSON as a revision; never overwrite the generated source without a history.\n- Treating approval as a chat message: make approval a recorded job status that the queue checks.\n\nA human review step does not slow a product-video system down when it sits between structured generation and queued rendering. It lets your team keep automation fast while preserving brand and merchandising judgment. Start with one SKU template, generate a draft through VideoFlow, and require an explicit approval before the first batch reaches customers.