Ecommerce

A creative pipeline where the machine checks the machine, and a human still decides

Two intake paths into one scoring model, generation bounded to real product photography, a second vision model inspecting every image before anyone sees it, and one human gate that nothing reaches delivery without.

Client: A direct to consumer jewellery brand

System flow and narrative

Quality control
Approver decision
A creative pipeline where the machine checks the machine, and a human still decides: system flowQuality control: Passed first time. Approver decision: Approve. Path: Daily collection, then Saved to a board, then Ad ingested, then Vision analysis, then Family scored, then Recreation brief, then Held on watchlist, then Variations generated, then Automated QC, then Passed first time, then Approval card, then Approved, then Animated and cut, then Delivered to Drive.Daily collectionAtria APISaved to a boardAtriaAd ingestedn8nVision analysisOpenAIFamily scoredn8nRecreation briefOpenAIHeld on watchlistAirtableVariations generatedOpenAIAutomated QCOpenAI visionPassed first timeAirtableRetried with reasonsOpenAIApproval cardAirtableApprovedAirtableCorrection askedAirtableRejectedAirtableAnimated and cutKling / FFmpegBack to the cardn8nDelivered to DriveGoogle Drive

Quality control: Passed first time. Approver decision: Approve. Path: Daily collection, then Saved to a board, then Ad ingested, then Vision analysis, then Family scored, then Recreation brief, then Held on watchlist, then Variations generated, then Automated QC, then Passed first time, then Approval card, then Approved, then Animated and cut, then Delivered to Drive.

A creative pipeline where the machine checks the machine, and a human still decides: system flow

Edges: live is a thicker, full-opacity, travelling dashed line; not taken is a thinner, dimmed, solid line. Nodes: live is a thicker, full-opacity outline; not taken is a thinner, dimmed outline. Color is never the only signal.

01

Two ways in, one path after that

A scheduled run collects new competitor advertising every morning from a set of tracked brands and category searches. Separately, anyone on the client's team can save an advert to a watched board and it enters within the hour, carrying priority. That second path is the one the team uses most, because it replaces the thing they were already doing by hand. What matters is that it is the same path: the manual entry point does not get its own shortcut through the system, it gets a higher position in the same queue. Everything is deduplicated on the way in, so an advert already seen does not become a second record.

02

The family is the unit, not the advert

A vision model describes each advert first: the format, the opening hook, the visual hook, the claim, the composition, the lighting, where the product sits. Nothing creative happens at this step, it only writes down what exists. Those descriptions are then grouped into creative families, because a competitor running ten variations of one idea is a far stronger signal than ten unrelated adverts, and the family is what gets scored. The score is built from observable evidence of scaling rather than from taste: how long the adverts have run, how many variants exist, whether hooks repeat across campaigns, whether the concept has been reused across formats and markets. Images and video are ranked within their own format first, so video does not win simply because it generates more material to measure.

03

A brief that is not allowed to borrow

For a family that clears the threshold, the system writes a recreation brief: the reference concept, why it is likely working, which of the client's own products fits, and the composition, lighting, copy and call to action. Two constraints are written into the brief itself rather than left to the generation step. A fixed minimum number of elements must differ from the reference, and competitor logos, models, footage and copy never enter the output. The product is chosen only from the client's asset vault, which is the single source of product truth the system is permitted to draw on. That is what keeps a generative pipeline from inventing a piece of jewellery the brand does not sell.

04

The machine checks the machine

Generation produces a set of variations, and then a second vision call, separate from the generator, inspects each one beside the real product photograph against a fixed list: the right number of pieces, the right stone count, no broken or invented parts, correct scale and finish, natural shadows, the product not obscured by text, no trace of the competitor original. A failure is retried exactly once with the reasons injected into the prompt. A second failure flags the image for a person rather than spending more on generation, which is the part worth copying: the retry budget is bounded, and the fallback is a human rather than a loop. Both outcomes still reach the approval queue, because a flagged image is information the approver should see rather than something to hide. Three things happen around this that are easy to leave out of a generative pipeline and expensive to add later. The day's spend is checked against a cap before any of it starts, and the budget is reserved up front rather than counted afterwards, which is what keeps two runs beginning seconds apart from both reading the same stale total and overshooting together. The inspection runs before the branding composite and the upload, so a failing image never becomes a finished file that somebody has to find and remove later. And the generator is told to render no text at all, not even the brand mark, because wording a model draws itself comes back misspelt at any size and however well drawn; every word on the finished asset is composited afterwards at a measured position in the real typeface, once the image has been judged.

05

The one gate that matters

Every creative becomes a card carrying the reference, the score and its evidence, the brief, the variations and the inspection results. The approver approves, rejects, asks for a correction, or asks for a new hook. The decision is written to a permanent audit log before the system acts on it, every time, so the record survives even if the action that follows does not. A correction sends that one variation back through generation with the written feedback built into the instructions, and the refreshed image returns to the same card and is inspected again. That loop can repeat. A correction request with an empty feedback box does not run: the system stops and asks for the feedback first, because regenerating against nothing produces another guess.

06

Delivered, never published

An approved image becomes the opening frame for the video stage rather than a prompt of its own, because asking a video model to invent both the product and the motion produces a broken product. Captions, music, branding and the format renditions are rendered on top of that approved frame. Finished files land in the client's own storage under a fixed naming pattern, and the filename is the entire attribution mechanism, so a rename cannot be recovered from. The system stops there. Nothing is ever published to an ad platform by us or by the system, and that boundary is deliberate: every account, every asset and every decision stays with the client.

The branch logic, as a table.

Every conditional branch and every always-on step in the A creative pipeline where the machine checks the machine, and a human still decides system: the condition or trigger that fires it, the step it leads to, and, where there is one, a note on why that branch exists
ConditionThenWhy
the morning collection run finds a new adAd ingested
somebody saves an ad to the watched boardAd ingested
the family clears the priority thresholdRecreation brief
the family scores below the threshold and is heldHeld on watchlist
Quality control is Passed first timePassed first timethe inspection finds nothing to correct
Quality control is RetriedRetried with reasonsthe failure reasons are injected into the prompt for one more attempt
the retry passes, or a second failure flags it for a human editorApproval card
Approver decision is ApproveApprovedthe decision is logged before the system acts on it
Approver decision is Request correctionCorrection askedthe written feedback becomes part of the instructions
Approver decision is RejectRejectedthe card closes and nothing is generated from it again
Approver decision is Request correctionBack to the cardthe refreshed image replaces the previous one and is inspected again

The stack.

Every layer of the A creative pipeline where the machine checks the machine, and a human still decides stack and the tools used at each layer
LayerTools
Competitor ad intelligenceAtria
Orchestrationn8n
Vision, briefs and image generationOpenAI
VideoKling, FFmpeg
Database and approval surfaceAirtable
DeliveryGoogle Drive

Safeguards.

  • The approver's decision is written to a permanent audit log before the system acts on it, so the record exists even if the action that follows fails.
  • Nothing reaches the approval queue without an inspection result, and nothing reaches delivery without a human approval on record.
  • Generation may only place products that exist in the client's asset vault, so the model cannot invent a product the brand does not sell.
  • The brief requires a fixed minimum of elements to differ from the reference, and competitor logos, models, footage and copy never enter the output.
  • A failed inspection is retried once with the reasons attached, and a second failure routes the image to a person rather than spending more on generation.
  • A correction request with an empty feedback box stops and asks for the feedback rather than regenerating against nothing.
  • The image model is instructed to render no text of any kind, not even the brand mark, because wording a model draws itself comes back misspelt. Every word on the finished asset is composited afterwards at a measured position, after the image has been inspected.
  • The day's spend is summed and checked against a cap before any generation starts, and the budget is reserved before the work begins rather than counted after it.
  • When the cap is reached, the cards that would have been generated are found and reset rather than left parked half processed.
  • A pause lasts until a person lifts it, and the control workflow cannot pause itself. Nothing resumes on a timer, because a workflow that quietly switched itself back on would be worse than one that stayed off, and a control that could stop itself would leave nothing able to start it again.
  • Every workflow reports failures to one handler that stores what is needed to retry them, so a failure raises an alert rather than passing silently.

Before and after.

Spotting a competitor winner
Before: Someone scrolled competitor pages and formed an impressionAfter: Scaling evidence is scored on the family rather than on a single advert
What counts as a signal
Before: One striking advert could be mistaken for a working oneAfter: A concept is judged on how far it has been reused across variants, formats and markets
Generated product
Before: A model asked to invent a product returns one that cannot be soldAfter: Generation is bounded to photography from the asset vault
Checking the output
Before: A person reviewed every generated image for defectsAfter: A separate vision model inspects each one beside the real product photograph first
A bad generation
Before: Rework was unbounded and quietly expensiveAfter: One retry with the reasons attached, then it goes to a person
The approval record
Before: Approvals lived in a chat thread and were reconstructed laterAfter: Every decision is logged before the system acts on it
A paused workflow
Before: A pause could quietly expire and work could resume unwatchedAfter: A pause lasts until a person lifts it, and the page shows when it started

This is one delivered system, published in full. See how we build AI automation

Want this on your own stack? See our n8n automation agency page.

Start a conversation

Tell us what you’re building.

Share the essentials and we’ll reply within 4 hours with a real next step, not an auto-responder.

What happens next

  1. We reply within 4 hours, from a real person, not an auto-responder.
  2. A short scoping call to understand the goal, constraints, and timeline.
  3. A fixed-scope discovery sprint: a working prototype and a written estimate.
Office
Austin, TX, United States
Hours
Mon–Fri · Async + scheduled calls

Fields marked are required. By sending you agree to our Privacy Policy.