Work your Shopify catalog until every product has a clip

By General Input

See which products still have no video, animate their hero photos into short cinematic clips, and compare motion styles side by side before you pick a winner.

Integrations

  • Higgsfield
  • Shopify
  • Google Drive
  • Slack

Type

App

Categories

  • Marketing
  • Operations

Build me an app my ecommerce team opens each week to work through our Shopify catalog and turn flat product photos into short cinematic video clips for ads and social. This is a video tool, not a photo tool: we are not generating new stills or swapping backgrounds, we are animating the hero photo we already have. The organizing idea is clip coverage across the whole catalog, and chasing that number down to zero is the reason the team keeps coming back.

The main view is a catalog grid built from Shopify "List Products": each card shows the product's hero image, title, and a coverage badge saying whether it already has an approved clip or none yet. Across the top put a coverage filter and counter, something like "148 of 320 products have a clip", with tabs for All, Has a clip, and No clip yet, plus a search box and filters on product type and vendor. Coverage is app-side state, since Shopify has no native concept of it: store a record per Shopify product id in the app's own storage holding the approved clip, the motion preset used, the Drive link, and who approved it. Products with no image at all get a muted "needs a photo" badge and are skipped by the batch button. When a product is opened, use Shopify "List Variants" to show price and SKU detail alongside it.

Selecting a product opens a workbench view: the hero photo on the left, and on the right a gallery of Higgsfield DoP motion presets loaded from "List Motions" (GET /v1/motions returns the presets by id, so render them as a selectable gallery rather than a free-text field). I pick one or more presets and hit generate, and each one submits a separate job through Higgsfield "Generate Video with DoP (Image-to-Video, Motion Presets)", passing the Shopify hero image URL straight through as the public image URL input. There is also a model picker for when the DoP presets do not give the look I want: Higgsfield "Generate Video with Kling 2.1 Pro (Image-to-Video)" and "Generate Video with Seedance v1 Pro (Image-to-Video)" against the same hero photo.

Higgsfield generation is asynchronous, so handle it properly. Every submit returns 202 with a request_id, and each clip gets its own tile in a comparison row under the photo, with its own state: queued, in progress, ready, or failed. Poll Higgsfield "Get Request Status" per tile until it reaches a terminal status and then swap the tile to an inline video player. A slow render must never block the grid or the rest of the tiles, and I need to be able to browse to another product or start more jobs while one is still rendering. Treat a failed or blocked result as a failed tile with a retry button, not a crash. When two or three tiles are ready I play them side by side, labelled with the preset or model that produced each, and approve the winner.

Approving a clip does three things: uploads the video into our Google Drive clips folder with "Upload File (Multipart)", naming the file after the product and preset; posts it to our social team's Slack channel with "Send a Message", including the product title, the preset used, and the Drive link; and marks the product as covered so the counter at the top drops. Use Google Drive "Create Folder" to make the destination folder on first run if it does not exist, and let me set the folder and Slack channel in app settings.

Add a "Do the next ten" button that kicks off an embedded background agent. It takes the next ten uncovered products from the grid in the current filter, reads each one's title, description, and product type from Shopify "List Products", and picks a sensible DoP motion preset for each based on what the product actually is, so a slow orbit for a handbag and a soft push-in for a candle rather than the same preset on everything. It submits one clip per product with "Generate Video with DoP (Image-to-Video, Motion Presets)", polls each request to a terminal status, and writes the results back into the app as a single review batch. The batch review screen shows one row per product with the hero photo, the preset the agent chose and why, and the finished clip, and I approve or reject each one. Approvals go through the same Drive upload and Slack post path as manual approvals; rejections leave the product uncovered so it comes back around next time. While the agent is running, show its progress in the app and let me keep working in the grid.

Nothing runs on a schedule, this is a surface a person opens and works in. Keep the coverage number the most prominent thing on the screen, keep every generation tile independently stateful, and do not add still-image generation to this app.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredChat quality review board for LiveChat support leadsReceiving dock console for inspecting and restocking Loop returnsWin back no-show and cancelled appointments every morningSee which influencer creators actually drove Shopify salesLive Loop returns analytics with product-level drill-downNewsletter pre-flight and approval board for Mailjet sendsTurn a prospect spreadsheet into personalized sequence enrollmentsMailjet email delivery lookup console for support teams