D2C · Video ads
WorkflowD2C brandsShort product video ads from one approved still
Every new product needs a few seconds of motion for Reels and TikTok. This architecture turns one approved still into vertical and square drafts with a voiceover script, and nothing goes out until a person approves it.
Valnora & Elric team5 min read
A new product goes live, and the paid team wants motion for Reels, TikTok and feed placements by the end of the week. Booking a shoot for every SKU is slow. A standalone video generator is fast, but the clips end up in someone's downloads folder with no record of the prompt, the cost or who approved it.
This post lays out an architecture in Agent Serve that starts from one approved product still and produces short vertical and square drafts, with a voiceover and captions, in a workflow your team can rerun for every new product.
The architecture
From an approved still to video ad drafts
Workflow · Brief
- 01New product or brief rowA Shopify webhook to the Webhook trigger, or a manual run for one brief row.
- 02Approved stillA product image someone already approved, used as the first frame.
- 03Script and shot promptWrites a 10 to 15 second script, a motion prompt and caption lines.
Workflow · Generate
- 04Video Generator · 9:16Image-to-video from the first frame for Reels and TikTok.
- 05Video Generator · 1:1A square cut for feed placements.
- 06Text-to-SpeechVoiceover from the approved script, saved as audio.
- 07LibraryGenerated/Videos and Generated/Audio, each with prompt, model and cost.
People · Approve and post
- 08Creative reviewChecks product accuracy, claims, captions and music rights.
- 09Post after approvalUpload to TikTok as a draft, or publish the Reel on Instagram, once approved.
The design rests on one choice: video starts from an image someone has already approved. Image-to-video models take that still as the first frame and add motion. The product's colour, label and shape come from the approved image, not from a text prompt, so drafts stay closer to the real thing. If you do not have stills yet, the UGC-style images playbook covers making them.
Step 1 · Start a run per product
There are two ways in.
- New product. Shopify has no built-in trigger, so point a Shopify product webhook at the workflow's generic Webhook trigger. Each new product starts one run.
- Brief row. Keep a brief Table with the product, key message, claims you may make and formats. Run the workflow for a row, or loop it over a short list with a Loop or Parallel block.
It does not generate for a whole table automatically. One run, one product, one set of drafts keeps cost and review manageable.
Step 2 · Script, then motion
An Agent block reads the brief and writes three things: a 10 to 15 second script, a short motion prompt ("slow push in, light moves across the bottle, steam rises from a cup in the background") and caption lines. Keep claims to what the brief allows. For supplements, cosmetics and anything health-related, the reviewer checks every claim.
The Video Generator block then runs image-to-video with the still as the first frame. Run it twice: once at 9:16 for Reels and TikTok, once at 1:1 for feed. Models come from a live catalogue, so test a few such as:
- Veo 3.1 Fast for quick, low-cost drafts while you test scripts.
- Seedance 2.5 or Kling v3.0 when you want a different motion style or a final cut.
- Veo 3.1 for finals where detail matters.
In Chat, you can try the same thing by hand first: open + → Media models, pin a video model for the chat, attach the still and ask for a 9:16 clip. It is a good way to settle the prompt before building the workflow.
Step 3 · Voiceover and captions
The Text-to-Speech block turns the approved script into a voiceover, saved under Generated/Audio. Captions come from the same script, so the words on screen match the words spoken. Many people scroll with the sound off, so captions carry the message.
Treat the clip, the voiceover and the captions as parts. Combine them in your editor, or use the captions as the post text, depending on how your team finishes ads.
What the solution produces
Run summary for one product (illustrative)
Record- Product
- Cold-pressed hair oil, 100 ml
- First frame
- Approved still · bottle on bathroom shelf, morning light
- Script
- "Ten drops, two minutes, once a week. Cold-pressed, nothing added. Your Sunday hair ritual, sorted."
- Video model
- Veo 3.1 Fast · 9:16 and 1:1, 8 seconds each
- Voiceover
- Text-to-Speech · warm female voice · 9 seconds
- Captions
- 4 lines, from the approved script
- Status
- Drafts in Library · waiting for creative review
Step 4 · Cost checks
Video generation is the most expensive step. Admins set a cost confirmation threshold in Access policies under Cost confirmation (USD), US$1 by default. A generation estimated above it asks before running, and a running generation shows a progress card with cancel. Use a fast model for drafts and a stronger one only for the cut you will post. Every file in the Library records its model and cost, so you can see what a product's drafts actually cost.
Step 5 · Review, then post
Every draft lands in the Library under Generated/Videos with its prompt, model and cost. A reviewer checks the product looks right, the claims match the brief, captions are spelled correctly and any music is cleared.
Only then does anything leave the workspace:
- TikTok. The TikTok block uploads the video as a draft. Someone finishes and posts it in TikTok.
- Instagram. The Instagram block can publish a Reel. Keep that in a separate workflow that a person runs after approving, rather than at the end of the generation run.
Label AI-generated content where each platform requires it.
Controls and governance
Deployed versions
Workflows run from a deployed version, so a change is reviewed before it reaches production runs.
Run logs
Every workflow run records each block’s inputs, outputs and errors, so a reviewer can trace how a result was reached.
Roles and permission groups
Admin, write and read roles per workspace, plus permission groups that limit which models, blocks and integrations a team can use.
Audit trail
Proposals, approvals, declines and executed actions are written to the workspace audit log, which admins can export.
Bring your own keys
Use your organisation’s own model provider keys at organisation or workspace level.
More on how Agent Serve handles access, data and audit on the security page.
What to measure
Track drafts made per product, drafts approved, cost per approved video and time from product launch to first approved draft. Once ads are live, running Meta ads from Agent Serve covers reading performance back.
Questions teams ask
Does the voiceover come out already mixed into the video?
Plan for them as separate files. The Video Generator and Text-to-Speech blocks each save their own output to the Library. Some video models generate their own audio, but for a scripted voiceover most teams combine the clip and the audio in their editor before posting.
Can I run this for my whole catalogue in one go?
The workflow runs once per product or per brief row. You can trigger it for each new product, or loop it over a list of rows with a Loop or Parallel block. Each run still asks before an expensive generation and still waits for review.
Will it post straight to TikTok?
The TikTok block uploads a video as a draft, which you finish and post from TikTok. Instagram supports publishing a Reel directly, so keep that step behind a person’s approval.
What you need
- An approved still for each product, ideally from your UGC or studio image process
- A brief table with product, key message, claims you may make and target formats
- A video model chosen for drafts and one for finals
- A cost confirmation threshold set by admins in Access policies
- Instagram and TikTok accounts connected, if the workflow should post or upload drafts
- A named reviewer for claims, captions and music before anything is posted