AI & Technology30 min read

Fixing the content supply chain: how I would architect AI into a retailer’s marketing engine

AI can make content in seconds. Most marketing teams still take weeks to get it live. Here is how to redesign a content supply chain so the whole flow speeds up, not just the making.

By Abubakr Akhtar, Enterprise business development & partnerships

Content supply chain architecture: five layers - plan, create, govern, activate, measure - with orchestration, data and a feedback loop
Content supply chain architecture: five layers - plan, create, govern, activate, measure - with orchestration, data and a feedback loop

Executive summary

  1. 01The constraint is flow, not creation. A typical asset is worked on for hours but waits for weeks. Faster generation on its own only lengthens the queue.
  2. 02Two systems of record, zero manual handoffs. Workfront owns the state of work, AEM Assets owns the state of content, and every handoff between them is a webhook, an API call or an event.
  3. 03Automate the multiplication, not the idea. People make the master; deterministic APIs make the variants; generation is used only where brand rules allow, and a brand-trained model comes after the library is clean.
  4. 04Govern with rules that machines can run. Brand, price and legal checks become code that runs on every rendition, so human review concentrates on what is genuinely new.
  5. 05Fund it phase by phase. Three phases with two decision gates, a baseline taken before go-live, and a business case the CFO can reproduce with their own numbers.

The problem, in numbers

AI is changing how content gets made. It has not changed what makes a content operation work.

Almost every marketing leader I speak to describes the same squeeze. There are more channels than ever, customers expect content that feels made for them, and the team doing the work has not grown. Adobe’s June 2025 survey of more than 1,600 marketers shows how big the gap has become.

71%

expect content demand to grow more than 5x between now and 2027

47%

say one piece of content involves 51 to 200 people to create, review, approve and activate

89%

say content must pass three or more approval stages

58%

say more than 40% of time goes on managing reviews and approvals

Source: Adobe research, 1,600+ marketers, published 16 June 2025.

The last two numbers are the ones that matter. Making an image or writing a headline is rarely what slows a team down. Everything around it does: requests that arrive half-formed, files nobody can find, approvals that queue one behind another, and no clear signal about what actually worked. Put generative AI into that process and you get more content, waiting in the same queues.

So the architect’s job is not to “add AI”. It is to redesign how work flows from request to result, and then put AI where it genuinely removes time and risk.

The brief

Take a UK omnichannel retailer in home and lifestyle, the kind of business this problem hits hardest. It sells online and in stores, changes its promotions every week, and its marketing team is stretched across more channels every year. This is the picture I would expect to find, and the solution that follows is designed for it.

  1. 01Business: UK omnichannel retailer (home and lifestyle), stores plus e-commerce, selling in the UK and Ireland.
  2. 02Range: about 25,000 active products, with weekly promotions and four seasonal campaigns a year.
  3. 03Channels: website and app, email, paid social, paid search shopping ads, retail media, in-store screens and print.
  4. 04Team: a central brand and creative team, an external agency for hero campaigns, and channel teams who resize and adapt assets themselves.
  5. 05The challenge, in one line: double the content that goes live without doubling the team, and prove what it is worth.

Exhibit 1

Today: how one promotional asset reaches a customer

Requestemail, chat,corridorBriefWord doc,rewritten 3 timesCreateagency or in-house,one master assetReview roundsbrand → product →legal → regionalStoreshared drives,final_v7_FINALChannelseach team resizesand re-uploadsrework loop, often 3+ timesNo route back: performance data rarely reaches the next brief123451 No single front door 2 Briefs without structure 3 Serial approvals 4 Assets you can’t find or trust 5 Manual versioning, no data back
Source: Five breaks account for most of the delay. None of them is solved by generating images faster.

Diagnosis: five breaks, not one

Before designing anything I would spend two weeks tracing ten recent assets from request to live, timing every handoff. In a business like this one, the pattern is usually the same.

1. No single front door

Requests arrive by email, chat and in meetings. Nobody can see total demand, so priorities are set by whoever shouts loudest and capacity planning is guesswork.

2. Briefs without structure

A free-text brief misses the facts the creative team needs: product codes, price, legal lines, channels and sizes. Each gap triggers another round of questions.

3. Approvals that run in a line

Brand, product, legal and regional teams review one after another, often on email attachments. Comments conflict, versions fork, and a two-day job takes two weeks.

4. Assets nobody can find or trust

Finals live in shared drives with no consistent naming, no usage rights and no expiry dates. Teams recreate assets that already exist, or use ones they should not.

5. Manual versioning and no feedback

Each channel team resizes the master asset by hand. Once it is live, performance data stays in the ad platforms and never reaches the next brief.

Measure the flow before you redesign it

The two-week trace produces a value-stream map: for each stage, how long someone actually works on the asset (touch time) and how long it sits waiting (elapsed time). The ratio, flow efficiency, is the single most useful number in the programme, because it shows how much of the delay technology alone cannot fix.

Exhibit 2

Value-stream baseline: one promotional asset, touch time vs waiting time

DAY 0DAY 5DAY 10DAY 14Request0.3 h work · 1 day waitBrief1.5 h work · 2 days elapsedCreate4 h work · 3 days elapsedReview rounds2 h work · 6 days elapsedStore & resizeElapsed: 14 working days (112 h) Touch time: ≈ 9 h Flow efficiency ≈ 8%workwaiting
Source: Typical of what a two-week trace finds in a business of this shape. Flow efficiency = touch time ÷ elapsed time. Reviews dominate the delay, which is why the design changes approvals before it adds generation.

The fix is an assembly line with a front door, a single source of truth, parallel checks and a feedback loop. AI then makes each station faster.

Abubakr Akhtar

The target architecture

I design the solution in five layers that follow the life of an asset, with orchestration, data and governance running across all of them. I have mapped it to Adobe’s stack because that is where most large retailers already have licences, but the layers matter more than the logos. Each layer has one job and one owner.

Exhibit 3

Target architecture: five layers from request to result

ORCHESTRATIONWorkfrontFusionautomateshandoffsDATAProduct feed (PIM)Customer profiles(Real-Time CDP)Audience segments1 · PLAN & REQUESTOne front door, structured briefs,capacity in viewWorkfront Planningcampaign calendarRequest formsrequired fieldsAI brief assistantdrafts, checks gaps2 · CREATEHero assets by people, variantsby templates and AIFirefly custom modeltrained on brand assetsFirefly Services APIsresize, recolour, cut outExpress · Frame.iotemplates, video review3 · GOVERN & STOREOne source of truth, checks runin parallel, rights trackedAEM AssetsAI tagging, metadataWorkfront approvalsparallel, risk-basedBrand & claims checkautomated first pass4 · ACTIVATERight version to the rightchannel and audienceGenStudiopaid social, display, CTVAEM Sites+ Dynamic Media: web, appJourney Optimizeremail, push5 · MEASUREWhich content earns its keep,fed back into briefsContent Analyticsasset-level resultsGenStudio insightswhat themes performOps dashboardcycle time, costGOVERNANCE (ACROSS EVERY LAYER)Roles and permissions · usage rights and expiry · Content Credentials on AI output · audit trail · approved models only · human sign-off on claims
Source: Orchestration moves work between layers automatically; product and customer data feed creation and targeting; governance applies everywhere. Product names reflect Adobe’s GenStudio content supply chain reference set.

Layer 1: Plan and request

Every request enters through one form in Workfront with required fields: objective, product codes, offer, legal lines, channels and deadline. A brief assistant drafts the brief from those fields and flags what is missing before it reaches a designer. Marketing leadership gets one calendar showing demand against capacity.

Layer 2: Create

People still make the hero work: the campaign idea, the photography, the master layouts. Variants are where volume lives. Templates in Express and a Firefly model trained on the retailer’s own approved imagery produce on-brand variations, while Firefly Services APIs handle the repetitive work: cutting out products, swapping backgrounds, recolouring and resizing to every channel format in one pass.

Layer 3: Govern and store

AEM Assets becomes the single library for anything approved. AI tags each asset on upload, and the request’s metadata (product codes, campaign, rights, expiry) travels with it. Approvals move from a line to a fan: brand, product and legal review at the same time in Workfront, and each asset is routed by risk. A resized banner with unchanged copy does not need legal; a new price claim always does.

Layer 4: Activate

Approved content flows straight out to channels without download and re-upload. GenStudio for Performance Marketing builds and publishes paid social and display variants, AEM Sites and Dynamic Media serve the web, app and in-store screens, and Journey Optimizer uses the same assets in email. Customer segments from the data layer decide which version each audience sees.

Layer 5: Measure

Content Analytics links results back to the individual asset and its attributes, such as the colour, product and message. That closes the loop: next month’s brief starts with evidence of what worked rather than opinion.

Integration architecture

The layer view says what each part does. The integration view says how they talk to each other. The design principle is simple: Workfront owns the state of work, AEM Assets owns the state of content, and nothing moves between them by hand. Every handoff is either a webhook, an API call or an event.

Exhibit 4

Integration view: systems of record, triggers and protocols

WORK MANAGEMENTORCHESTRATION & PRODUCTION SERVICESCONTENT SYSTEM OF RECORDDELIVERY, ACTIVATION & DATAWORKFRONTPlanning: campaigns, request formsWorkflow: tasks, statuses, proofsApprovals: parallel, risk-routedsystem of record for WORKWORKFRONT FUSIONScenarios per workflowRetries, error routesJob-state trackingFIREFLY SERVICESFirefly API: expand, fillPhotoshop API: cut-out,smart-object swap, actionsContent Tagging APIAPP BUILDERBrand-rule checkClaims / price lintvs. PIM valuesserverless actionsAEM ASSETS (CLOUD SERVICE)Masters, renditions, metadata schema, rights & expirySmart tagging on ingest · approval status as metadataContent Hub for self-serve reuse by channel teamsAsset events published to Adobe I/O Eventssystem of record for CONTENTPIM / product feedSKU, price, imagery, copyDynamic Media (OpenAPI)delivery URLs, on-the-fly crops→ AEM Sites / Edge Delivery, screensGenStudio for Perf. Marketingactivate: Meta, LinkedIn, TikTok,CM360, Amazon, InnovidJourney Optimizeremail, push, in-appReal-Time CDPaudiences for targetingContent Analytics · Customer Journey Analyticsperformance joined to asset ID and asset attributeswebhookREST, asyncjob statusupload renditions+ metadataSKU dataI/O Event: asset processedcheck result → approval taskapproved assetsperformance by asset → next briefAll service calls authenticate with OAuth server-to-server credentials from Adobe Developer Console; one technical account per environment (dev / stage / prod).
Source: Blue labels are machine handoffs; red dashed lines are the two feedback paths: automated checks into approvals, and performance back into planning.

The automated variant pipeline, step by step

The single highest-value integration is the one that turns an approved master layout into every channel version. This is the sequence I would build first.

Exhibit 5

Sequence: from approved master to approved variants

WorkfrontFusionFirefly ServicesAEM AssetsApp Builder1 webhook: task “Master approved”2 GET master PSD + campaign metadata; read SKU list from PIM3 POST jobs × N: cut-out, smart-object swap, expand202 Accepted + job ID; poll status until done4 outputs written to storage (pre-signed URLs)5 register renditions; write metadata (SKU, channel, size, rights, job ID)6 I/O Event: asset processedlogo · safe zones · colour ·price matches PIM · legal line present7 result: pass → one approval task for the set; fail → back to designer with reasons8 on sign-off: status = Approved → visible to GenStudio, Dynamic Media, Journey OptimizerIdempotency key = request ID + SKU + format, so a retried scenario never creates duplicate renditions.
Source: People appear twice: once to approve the master, once to sign off the set. Everything between is machine work with an audit trail.

The metadata contract

Automation fails quietly when metadata is optional. I would define a small contract that every asset must carry before it can be approved, and enforce it in the AEM metadata schema rather than in a guideline document.

FieldSet byUsed for
Request IDWorkfront (on intake)Traceability from brief to result
SKU list, price, promo IDPIM via FusionSmart-object swaps, price check
Channel, format, sizePipelineRouting to the right destination
Usage rights, expiry dateRights owner at uploadAuto-expiry, licence compliance
AI involvementPipeline (model, operation)Content Credentials, audit
Approval status, approverWorkfront → AEMGate for every downstream system
Creative attributesContent Tagging + designerPerformance analysis by attribute

Why variants are the real volume problem

Volume grows by multiplication, not addition. Take one weekend promotion:

12

products featured

× 9

formats across social, display, web, app, email and screens

× 3

copy variants for testing

× 4

audience segments

= 1,296

renditions from one idea

No team resizes 1,296 files by hand, so in practice it publishes a fraction and tests nothing. With the pipeline above, the marginal cost of a rendition falls to an API call plus a sampled human check, and the constraint moves from production to deciding which variants are worth testing.

Brand rules as code

The automated check in step 7 only works if brand guidelines exist in a form a machine can evaluate. Most brand books are PDFs. Part of the work is translating the rules that matter into a versioned configuration owned by the brand team, for example:

yaml
# brand-rules/v3.2.yaml  (owned by Brand, reviewed quarterly)
logo:
  min_width_pct: 8            # of shortest edge
  clear_space: 1x               # height of the logo symbol
  allowed_backgrounds: [white, brand_navy, photo_dark]
colour:
  palette_tolerance_deltaE: 3
layout:
  safe_zone_by_format:
    meta_story_9x16: { top_px: 250, bottom_px: 340 }
claims:
  price_must_match: pim.current_price
  promo_requires: [legal_line.promo_terms, promo.end_date]
  blocked_phrases_ref: legal/blocked-phrases.csv
routing:
  new_claim: legal_review         # always a human
  copy_unchanged_resize: auto_approve_sampled  # 1 in 20 checked

The values above are examples. The point is the shape: thresholds a service can test, references to the systems that hold the truth (the PIM for price, legal for terms), and routing rules that decide who must look. When the brand team changes a rule, it changes once and applies to every rendition from that moment.

Asset lineage

Every rendition keeps a link to its master and to the request that created it. When a price changes or a licence expires, the system finds every derivative in seconds and either regenerates or withdraws it. Without lineage, an expired photograph can stay live in hundreds of placements nobody remembers making.

Technical deep dive: the reference implementation

This section is for the architects and engineers who will build it. It covers the data model, the lifecycle every asset follows, how the pipeline stays reliable at peak, how environments and releases are managed, and how the system is observed and secured. Where a value is an assumption rather than a product limit, it is marked as such.

The domain model

Most content platforms fail on data before they fail on technology. Nine entities carry the whole flow. The key design choice is that a rendition is a first-class record with its own identity, product, channel, audience and provenance, rather than just a file under a folder.

Exhibit 6

Logical data model: from campaign to performance, with system of record per entity

CAMPAIGNWorkfrontPK campaign_idname, seasonmarkets[], budget_refownerREQUESTWorkfrontPK request_idFK campaign_idobjective, deadlinerisk_class, channels[]PRODUCTPIMPK skuprice, promo_idcategory, attributesprice_valid_toMASTERAEM AssetsPK master_idFK request_idsource (PSD/INDD), versionlayer map, template_idRENDITIONAEM AssetsPK rendition_idFK master_id, skuchannel, format, localeaudience_segmentai_ops[], model_versionc2pa_manifest_refstate, idempotency_keyRIGHTSAEM AssetsPK rights_idlicence, territories[]expires_atAPPROVALWorkfrontPK approval_idsubject_ref (set | asset)stage, decisionapprover, decided_atPLACEMENTGenStudio / AJOPK placement_idFK rendition_idplatform, external_ad_idlive_from, live_toPERFORMANCEAnalyticsFK placement_id, dateimpressions, clicksspend, conversionsgrain: day × placement1N1N1N1Ngovernsinherits rights (most restrictive wins)N11N1NApprovals attach to a rendition set (one decision for N renditions) or to a single asset when risk routing requires it. Rendition rights are derived, never typed by hand.
Source: Each entity has exactly one system of record (top-right of each box). Other systems hold references, never copies they edit. That rule alone removes most reconciliation work.

The asset lifecycle as a state machine

“Approved” means different things to different teams until it is defined as a state with entry rules. I model every rendition set as a state machine. Only the transitions shown are legal, each is triggered by a named event, and each guard is enforced by the platform rather than by goodwill.

Exhibit 7

Rendition-set lifecycle: states, events and guards

GeneratedAuto-checkedIn reviewApprovedLiveChanges requestedExpiringWithdrawnArchivedset completerules passapprove[all stages required byrisk_class are complete]activaterules fail (reasons attached)rejectregenerate (new version)T – 14 days torights / price expiryprice change · rights revokedexpiredcampaign endedInvariant: only renditions in Approved or Live are visible to activation systems. Withdrawal propagates through lineage to every placement within one sync cycle.
Source: The guard on “approve” is what makes risk-based routing safe: a set cannot reach Approved until every review stage its risk class demands is complete, whoever clicks the button.

Engineering the pipeline for peak

Black Friday and the Christmas launch are where this design proves itself. The variant pipeline follows a fan-out, fan-in pattern with explicit back-pressure, because generative and imaging APIs are asynchronous, rate-limited and occasionally fail.

Exhibit 8

Resilient fan-out / fan-in: retries, back-pressure and a dead-letter queue

CORRELATION ID = request_id · propagated through every call, log line and asset recordTriggermaster approved(webhook)Validatemetadata contract,SKU prices currentPlan & fan outN jobs = SKU × format× locale; keys assignedWorker poolconcurrency cap = Ktoken-bucket rate limitsubmit → poll → fetchFan inwait for N ordeadline, then closeRegisterupsert by key intoAEM; emit eventretry on 429 / 5xx: exponential backoff + jitter, max 5invalid → reject at sourceDead-letter queuepayload + error + attempt logreplayable by keyexhaustedCircuit breakerif failure rate > threshold in window: pausenew submissions, alert ops, keep queue intact
Source: Re-running any stage is safe because every write is an upsert on the idempotency key (request ID + SKU + format + locale). A partial batch can be replayed without creating duplicates or orphaned renditions.

Sizing the pool. Throughput is set by three numbers you measure in the pilot rather than guess: the concurrency the API entitlement allows (K), the average job time including polling (t seconds), and the share of jobs that need a retry (r). Sustained throughput is roughly K × 3600 ÷ t × (1 − r) renditions per hour. With an assumed K of 20, t of 40 seconds and r of 5%, that is about 1,700 an hour, so the 1,296-rendition promotion clears in under an hour. If the measured numbers are lower, the plan changes the schedule (generate overnight ahead of a launch), not the architecture.

Event payloads and handlers

Every step consumes and emits small, explicit messages. A simplified example of the event the brand-check action receives, and the shape of its handler:

yaml
// Simplified event after renditions are registered
{
  "type": "rendition_set.registered",
  "correlation_id": "REQ-2026-04812",
  "set_id": "SET-7f3a",
  "risk_class": "promo_price",
  "renditions": 1296,
  "rules_version": "brand-rules/v3.2"
}

// Handler (App Builder action), pseudo-code
for each rendition in set:
    results += check_logo(r) + check_safe_zone(r, format)
             + check_price(r.sku, r.text_layers, pim.price(r.sku))
             + check_required_lines(r, risk_class)
if all(results.pass):
    workfront.create_approval(set_id, stages = routing[risk_class], evidence = summary)
else:
    workfront.create_task(owner = designer, reasons = failures, link = set_id)
emit("rendition_set.checked", correlation_id, pass_rate)

Environments and release management

A content pipeline that can publish to paid media is production software and is released like it.

Exhibit 9

Environment topology and promotion path

DEVELOPMENTSTAGEPRODUCTIONAEM as a Cloud Service: dev envWorkfront sandboxFusion: dev team / scenariosApp Builder: dev workspaceDeveloper Console: dev credentialsSynthetic SKUs, test brand rulesAd accounts: noneAEM as a Cloud Service: stage envWorkfront sandbox (prod-like)Fusion: stage team / scenariosApp Builder: stage workspaceDeveloper Console: stage credentialsMasked copy of PIM, real rulesAd accounts: test / sandbox onlyAEM as a Cloud Service: productionWorkfront productionFusion: production team, locked editingApp Builder: production workspaceDeveloper Console: prod credentials (least privilege)Live PIM, live rules, live model versionAd accounts: live, via GenStudioanyone on the platform teamUAT by marketing ops + brandchange-controlled; rollback plan per releaseSOURCE CONTROL & DELIVERYAEM schema, metadata forms and config → Cloud Manager pipelines · App Builder actions → CI pipeline with tests · Fusion scenario blueprints exported and versionedBrand rules and routing tables → versioned repo owned by Brand, deployed as config · Model versions pinned per environment, promoted only after evaluation
Source: Nothing is built in production. Rules, scenarios, schemas and model versions are promoted the same way code is, which is what makes an audit or a rollback possible.

Service levels and observability

Service level objectiveTarget (proposed)Measured from
Standard variant set generated after master approval95% within 60 minutesEvent timestamps, by correlation ID
Automated brand check completed99% within 10 minutes of registrationCheck action logs
Low-risk approval decision90% within 1 working dayWorkfront approval history
Withdrawal after price change or rights expiry100% of placements within 4 hoursLineage + placement status
Pipeline job success without manual intervention≥ 98% per monthDead-letter queue volume

Targets are set with the business in the foundation phase and reviewed monthly. When a target is missed, the error budget decides what happens next: new automation pauses and the team fixes reliability first.

Threat model

ThreatHow it could happenControl
Prompt injectionFree-text brief fields passed into copy generation carry instructionsBriefs feed structured prompt templates; free text is quoted as data; outputs pass the claims check
Training-data poisoningUnapproved or third-party images enter the custom model’s training setTraining sets built only from assets in Approved state with owned rights; set manifest versioned
Credential misuseA scenario holds a broad, long-lived credentialOne technical account per environment, least-privilege scopes, secrets in platform vaults, rotation
Unauthorised publishingA rendition reaches an ad account without approvalState-machine invariant enforced at the activation boundary; GenStudio reads Approved only
Data leakageCustomer data appears in prompts or generated contentCreation layer has no access to profile data; audiences applied only at activation
Provenance strippedEdited files lose their content credentialsCredentials attached at registration; check fails if a manifest is missing

Hardening for global scale

A design that works for one market and one format breaks in predictable places when it meets twenty markets, six languages, video and ten years of legacy files. These are the extensions a global rollout needs.

Market rule packs: one brand, many jurisdictions

Brand rules are global; advertising law, language and culture are local. Rather than fork the rules per country, I layer them. Each layer can only add or tighten constraints, never loosen the one above, and the most specific layer wins where they conflict.

Exhibit 10

Rule precedence: global brand, region, market and channel layers

LAYER 1 · GLOBAL BRANDlogo, palette, typography, tone of voice, provenance always attachedLAYER 2 · REGIONEU: AI-generated content disclosed and machine-readably marked (AI Act, Article 50)LAYER 3 · MARKETUK: price-claim rules · Ireland: € pricing, Irish-language variants · Gulf: Arabic, RTL templatesLAYER 4 · CHANNELsafe zones, text limits, file specs per platform and placementRESOLUTION RULES1. Effective rules = union of all layers2. Lower layers may tighten, never relax3. Conflicts resolve to the stricter value4. Each rendition stores the rule-packversions it was checked against5. Legal owns layers 2–3; Brand owns 1;channel teams propose layer 4Mirrored (right-to-left) templates areseparate masters, not flipped renditions.EU AI Act Article 50 transparency obligations have applied since 2 August 2026. Confirm market rules with counsel; this diagram shows the mechanism, not legal advice.
Source: Because every rendition records the rule-pack versions it passed, a regulator’s question (“which ads ran under the old rule?”) is a query, not an investigation.

Localisation as a pipeline stage, not a project

Language versions are just another dimension of the variant matrix. Copy is translated once per locale through translation memory and machine translation, then human post-edited only where the risk class requires it (promotional terms, regulated claims, anything tone-critical). Locale fallback is explicit, so a missing Irish-language line falls back to the approved English line rather than to a blank layer, and the fallback is flagged in review.

Store or render? The rendition decision

Not every variant needs to exist as a file. Simple crops and resizes for owned channels can be rendered on request at delivery time; anything containing generated pixels, or bound for an ad platform that needs a file, should be stored as the exact approved file.

Render on deliveryStore as approved file
Best forDeterministic crops and sizes on web, app and screensGenerated or edited pixels; paid media; regulated content
StorageOne master, no rendition sprawlGrows with the variant matrix; needs lifecycle rules
ApprovalApprove the master and the crop rulesApprove the exact pixels the customer will see
Change agilityNew format = new rule, instantly everywhereNew format = regenerate and re-approve
AuditReproducible from master + rule versionThe file is the evidence

Reuse before you create

The cheapest asset is the one that already exists. The intake form searches the library as the request is typed and shows near matches (same product, similar scene) before a new request can be submitted. On ingest, near-duplicate detection flags images that are visually the same as something already approved, so the library does not fill with copies under different names. Reuse rate becomes a measure the content owner is held to.

Video is a separate lane

Video follows the same states and rules but runs in its own queue with its own service levels, because jobs are larger and slower. Masters are reviewed frame-accurately in Frame.io; derivatives cover aspect-ratio cutdowns per platform, burnt-in or sidecar captions per locale, loudness normalisation and end-card swaps for offers. Captions are mandatory in the rule pack, which also covers accessibility for sound-off viewing.

Accessibility by default

Alt text is drafted automatically on ingest and reviewed for hero assets; contrast and minimum text size are part of the automated check; email and web templates are tested against WCAG 2.2 AA before they enter the template library. Accessibility built into templates scales; accessibility fixed asset by asset does not.

Migration without a big bang

Legacy libraries are usually several times larger than what the business actually uses. I migrate by value, not by volume.

Exhibit 11

Migration funnel: from everything on disk to what is worth moving

1 Inventory · every file across drives, old DAMs and agency servers, with owner and last use2 Remove ROT · redundant, obsolete, trivial (duplicates, expired campaigns, working files)3 Rights check · no licence evidence = do not migrate4 Enrich · auto-tag, map to metadata contract5 Migrate in waves: live → seasonal → reference
Source: Whatever is not migrated stays read-only and searchable where it is, with a sunset date. That keeps the cutover small and the new library clean enough to train a model on.

Quality engineering for a content pipeline

Content automation needs the same test discipline as any production system, adapted to images and copy.

Test layerWhat it provesWhen it runs
Rule unit testsEach brand, price and claims rule passes and fails on known examplesEvery change to a rule pack
Golden-image regressionA fixed set of masters still produces visually identical renditions (pixel diff within tolerance)Every pipeline, template or model change
Contract testsPayloads between Workfront, Fusion, the APIs and AEM match the agreed schemaEvery deployment
End-to-end in stageA real campaign runs from request to sandbox ad accountEvery release
Load testPeak volume clears inside the service level with retriesBefore each seasonal peak
Recovery drillThe dead-letter queue replays cleanly; withdrawal reaches every placementQuarterly

Where AI goes, and where it does not

The most useful decision an architect makes is not which model to use. It is which tasks AI should do on its own, which it should assist with, and which stay with people. I sort every task in the workflow on two questions: how repetitive is it, and how costly is a mistake?

Exhibit 12

AI placement: sort tasks by volume and by the cost of a mistake

Cost of a mistake (brand, legal, price) →How repetitive the task is →HUMAN-LEDAI may help explore; people decide and sign off• Campaign idea and hero creative• Price, promotion and regulated claims• Anything showing real people or partnersAI ASSISTS, HUMAN APPROVESHigh volume but real risk: sample-based checks• Headline and body copy variants• Translation into Irish and other markets• Product descriptions from the PIM feedAI ACCELERATESLow risk, occasional: speed up thinking• Mood boards and concept sketches• First-draft briefs from request forms• Summarising review commentsAI AUTOMATESRules are clear: no human in the loop by default• Resizing to every channel format• Background removal and swaps• Tagging, naming and rights metadata• Brand-rule checks (logo, colour, safe zones)
Source: The bottom-right box is where the first savings come from: high volume, clear rules, low risk. Start there, prove it, then move up.

Two rules keep this honest. First, every AI-generated or AI-edited asset carries Content Credentials, so anyone can see how it was made. Second, the retailer only uses models that are licensed for commercial use and, for the custom model, trained on images it owns. Both are easier to set as defaults on day one than to retrofit after a complaint.

Governing the brand-trained model

A custom model is a product with a lifecycle, not a one-off setup. I would run it the same way the business runs any system that can publish to customers.

Exhibit 13

Custom model lifecycle: from curated training set to monitored release

1 CURATEApproved, owned imagesonly; rights checked;balanced by category2 TRAINStyle and subjectmodels trainedseparately3 EVALUATEBlind panel scores afixed prompt set againsta release threshold4 RELEASEVersioned; approveduse cases only; prompttemplates published5 MONITORRejection rate at review,rule-check failures,complaints6 RETRAIN / RETIRENew season, new rangeor drift past thresholdtriggers a new versionloop: every retrain goes back through the same evaluation gatefail → back to curation
Source: The evaluation scorecard covers brand fidelity, product accuracy (shape, colour, packaging), visual artefacts and safety. A model version that misses the threshold on any one of them does not ship.

Testing variants without drowning in noise

Producing 1,296 renditions does not mean testing 1,296 ideas. Most variants exist to fit formats and audiences, not to learn something. I separate the two: format and audience versions simply ship, while a small number of deliberate hypotheses (for example lifestyle image versus product-only, or price-led versus benefit-led copy) are tested with enough traffic per cell to reach a decision. Results are recorded against the creative attributes in the metadata contract, so the learning compounds across campaigns instead of staying inside one ad account.

One campaign, end to end

Architecture diagrams can hide how work actually moves. Here is a single weekend promotion travelling through the new design.

Exhibit 14

A weekend promotion through the new workflow

MarketerWorkflowCreative + AIBrand / legalChannels1 Requestform, 6 fields2 Brief draftedgaps flagged3 Master layoutdesigner, template4 Variantssizes, products, copy5 Parallel reviewauto check, then people6 Stored + taggedrights, expiry7 Publishedall channels8 Resultsinto next briefSteps 2, 4, 6 and the first pass of 5 are automated or AI-assisted. Steps 1, 3 and the final sign-off in 5 stay with people.
Source: The designer makes one master layout; the system produces the rest. Review happens once, in parallel, on the full set.

In the old flow, the designer made one asset and four channel teams each made their own versions after approval, so legal effectively reviewed the same promotion several times. In the new flow, the full set of variants is generated before review, checked automatically against brand rules, and approved once. The person signing off sees every version side by side.

The operating model

Technology changes who does what. Programmes stall when the new work has no owner, so the organisation design is part of the architecture, not an afterthought.

RoleOwnsTypical home
Content supply chain ownerEnd-to-end cycle time and cost; the roadmap; trade-offs between teamsMarketing operations, reporting to the CMO
Content operations leadIntake, capacity, workflow templates, the operations dashboardMarketing operations
Brand governance leadBrand rules as code, the custom model’s evaluation panelBrand team
Asset librarianMetadata contract, taxonomy, rights and expiry, lineageCreative services
Automation engineerFusion scenarios, App Builder actions, API usage and costMartech platform team
Legal partnerClaims rules and risk routing, not every assetLegal

Two commercial changes usually follow. Agency scopes move from paying per resize to paying for masters and ideas, because variants become an internal, automated output. And channel teams stop producing their own versions; they consume approved ones from Content Hub and request new ones through the front door.

Governance cadence

ForumFrequencyDecides
Steering group (CMO, CFO delegate, CIO delegate)MonthlyPhase gates, funding, priorities across markets
Design authority (lead architect, platform, security)WeeklyArchitecture decisions, exceptions, new integrations
Rules council (brand, legal, market leads)Quarterly, or on regulatory changeRule-pack changes and routing by risk class
Model review board (brand, legal, data science)Per model releaseRelease or rollback of custom model versions

The business case

A CFO will not fund a diagram. The model below shows how I would build the production-cost case, using the baseline from the trace. The starting values are working assumptions; replace them with your own figures and the result updates. It deliberately leaves out revenue upside from better-performing content, which should be proven in pilots rather than assumed.

Interactive model

Run the numbers with your own assumptions

Hours released per year

14,000

Full-time equivalents

8.5

Annual labour saving

£770,000

Payback period

6.2 months

Hours = renditions x automatable share x minutes / 60. FTE assumes 1,650 productive hours a year. Payback = annual cost / monthly saving. Illustrative only.

In most cases the hours are worth more redeployed than removed. The same team that spent its week resizing can produce more original work, run more tests and support more markets, which was the goal in the first place.

Maturity: from ad hoc to orchestrated

LevelWhat it looks likeSignal you are here
1 Ad hocRequests by email, files in shared drives, every version made by handNobody can say how many assets were made last quarter
2 ManagedOne intake, a DAM, approvals trackedCycle time is measured but long
3 AutomatedVariants by API, parallel and risk-based approvals, metadata contract enforcedMost renditions never touch a designer
4 IntelligentBrand-trained model, attribute-level performance feeding briefsBriefs cite last month’s results
5 OrchestratedAgents run defined workflows inside rules, people set goals and approve exceptionsExceptions, not tasks, fill the team’s day

A retailer in this position usually starts at level 1 or 2. The 12-month plan targets level 3 across the business and level 4 for paid social, where the feedback loop is fastest.

The 12-month plan

I would not switch everything on at once. Each phase has to pay for the next, and each one ends with a decision point for the leadership team.

Exhibit 15

Roadmap: foundation, scale, then optimise

M1M2M3M4M5M6M7M8M9M10M11M12FOUNDATION · 0–90 DAYSSCALE · MONTHS 4–6OPTIMISE · MONTHS 7–12Intake & briefsone front door, brief assistantAsset librarymigrate active assets, rights, taggingAutomated variantsresize and cut-out APIs on one campaign, then allParallel approvalsrisk-based routing, auto brand checkCustom model & copybrand-trained model, copy variants with sign-offMeasure & personaliseasset-level analytics, segment-based versionsGate 1: cycle time down?Gate 2: cost per asset down?
Source: Foundation fixes the plumbing before any heavy AI. The custom model comes after the library is clean, because a model is only as good as the approved assets it learns from.

Foundation (first 90 days)

Stand up the single request form and brief assistant, migrate the assets that are actually in use (not the whole archive) into AEM Assets with rights and expiry, and run automated resizing on one live campaign. The aim is to prove a shorter cycle on real work with real people.

Scale (months 4 to 6)

Move every campaign onto the new intake, switch approvals to parallel and risk-based, and extend automated variants to all channels. This is where most of the time savings appear.

Optimise (months 7 to 12)

Train the custom model on the cleaned library, add AI copy variants with human sign-off, and connect asset-level analytics to briefing and audience targeting.

How we would know it is working

I agree the measures with the CMO and CFO before the first workflow goes live, and record a baseline from the two-week trace. Without a baseline, nobody can prove the investment paid off.

MeasureWhat it tells youHow it is captured
Request-to-live timeWhether the bottlenecks are goneWorkfront timestamps
Approval rounds per assetWhether briefs and reviews are workingWorkfront approval history
Cost per live assetWhether variants are getting cheaperHours and agency spend ÷ assets published
Asset reuse rateWhether the library is trustedAEM Assets downloads and placements
Share of variants automatedHow far automation has reachedFirefly Services and GenStudio logs
Performance by asset attributeWhich content earns its keepContent Analytics, channel data

Proving business impact, not just efficiency

Production metrics prove the machine works. They do not prove it makes money. For that I separate three questions and use a different method for each: did content get cheaper and faster (operational data, before and after); does more relevant content perform better (controlled tests with holdout groups at campaign level); and does it change revenue at business level (geographic or time-based holdouts, read alongside the marketing mix model the finance team already trusts). Claims are reported only at the level of evidence behind them.

Architecture decisions and trade-offs

A design is only as good as the decisions behind it. These are the ones I would record and take to the steering group, with the option I would choose and why.

DecisionOptions consideredChoiceWhy
Where workflow state livesAEM workflows · Workfront · custom trackerWorkfrontMarketers already plan there; one owner for status, capacity and approvals
OrchestrationWorkfront Fusion · App Builder only · third-party iPaaSFusion for flows, App Builder for custom logicFusion is visible and editable by ops; code only where rules need it
Variant generationTemplates only · Firefly Services APIs · agencyAPIs on approved mastersDeterministic edits first (cut-out, swap, resize); generation only where rules allow
Custom model timingDay one · after library clean-upAfter clean-up (month 7+)Training on unapproved or unlicensed assets bakes in the problem
Approval routingEveryone reviews everything · risk-basedRisk-basedLegal time goes to new claims, not to resized copies of approved ones
Migration scopeFull archive · live assets onlyLive and last 18 monthsValue in weeks, not quarters; archive stays searchable where it is

Non-functional requirements

  1. 01Throughput: size the pipeline for peak, not average. Seasonal launches can multiply weekly volume several times; queue jobs and respect API rate limits rather than failing them.
  2. 02Reliability: every scenario has an error route, a retry policy and an idempotency key, and failed jobs land in a visible queue, not in an inbox.
  3. 03Security: one technical account per environment, least-privilege scopes, secrets held in the platform rather than in scenarios.
  4. 04Data boundaries: no customer personal data in generative prompts; audiences are applied at activation, not at creation.
  5. 05Provenance: Content Credentials on all AI-generated or AI-edited output, and the model and operation recorded in asset metadata.
  6. 06Observability: a dashboard of jobs, failures, cost per rendition and cycle time, owned by the content operations lead.
  7. 07Portability: brand rules and the metadata contract are documented independently of any tool, so they survive a platform change.

Where agents fit next

Adobe has introduced Agent Orchestrator in Adobe Experience Platform, with purpose-built agents for tasks such as resizing in content production. In this design, agents belong in the optimise phase, once the metadata contract, approval rules and audit trail exist. An agent working inside clear rules is useful; an agent working in a messy library is a faster way to make the same mistakes.

Risk register

RiskEarly warningMitigation
Adoption stalls; teams bypass intakeRequests still arriving by email after month 3Intake is the only route to the asset library and to agency hours
Metadata quality decaysRising share of assets failing the contractContract enforced at upload; librarian owns a weekly exceptions report
Wrong price or claim goes liveAny mismatch found in samplingPrice checked against PIM on every rendition; new claims always human-reviewed; lineage enables instant withdrawal
Model output drifts off-brandRising rejection rate at reviewVersioned model, evaluation gate, rollback to previous version
API cost exceeds planCost per rendition trending upBudget alerts per scenario; generate only variants that will ship
Agency relationship strainDisputes over scopeRenegotiate early around masters and ideas, with shared performance goals

What most programmes get wrong

  1. 01Starting with the model. A custom model trained on a messy library learns the mess. Clean the library first.
  2. 02Migrating everything. Moving ten years of archive delays value by months. Move what is live and in use.
  3. 03Keeping approvals in a line. Faster creation with serial approvals just lengthens the queue.
  4. 04Treating legal as a blocker. Bring legal in to define the risk rules. They then review less, not more.
  5. 05No owner for the whole flow. Each tool has an owner; the supply chain needs one too, with authority across marketing, creative and IT.

Content at scale is an operations problem first. Get the flow right and AI multiplies it; get it wrong and AI multiplies the mess.

Abubakr Akhtar

What leaders should take from this

The technology in this paper is ready. Most of it is already licensed in large marketing organisations, sitting underused. What holds companies back is the work around it: agreeing who owns the flow, writing the rules down in a form a machine can check, and having the patience to clean the library before training a model on it.

None of that is glamorous, and all of it compounds. A team that fixes its foundations this year will be able to hand real work to AI agents next year with confidence. A team that skips them will spend next year undoing what the agents did.

If I had to leave a chief marketing officer with one question, it would be this: if demand for content grew five times tomorrow, which part of your process would break first? Start there.

Appendix: assumptions and glossary

Assumptions register

AssumptionUsed inHow it is validated
Business profile (range size, channels, team shape)Whole paperConfirmed in discovery
14-day elapsed / ~9-hour touch timeValue-stream baselineTwo-week trace of ten live assets
Variant matrix (12 × 9 × 3 × 4)Volume, sizingActual campaign plans for the next two quarters
K = 20, t = 40 s, r = 5%Pipeline sizingMeasured in the foundation-phase pilot against the actual API entitlement
Calculator defaultsBusiness caseFinance-approved rates and the trace baseline
Service-level targetsObservabilityAgreed with the steering group in phase 1

Glossary

  1. 01Master: the approved source design from which variants are produced.
  2. 02Rendition: one specific version of a master for a product, format, locale and audience.
  3. 03Rendition set: all renditions generated from one master for one request; approved as a unit.
  4. 04Flow efficiency: touch time divided by elapsed time.
  5. 05Idempotency key: an identifier that makes repeating an operation produce the same result, not a duplicate.
  6. 06Dead-letter queue: where jobs go after retries are exhausted, kept intact for diagnosis and replay.
  7. 07Content Credentials: tamper-evident provenance metadata based on the C2PA standard, recording how content was made and edited.
  8. 08ROT: redundant, obsolete or trivial content that should not be migrated.
  9. 09Rule pack: a versioned set of machine-checkable rules for a brand, region, market or channel.
AA

About the author

Abubakr Akhtar

Enterprise business development & partnerships

Abubakr Akhtar is a technology expert who has worked with global companies on martech and solutions.

LinkedIn

Frequently asked questions

A content supply chain is the end-to-end flow that turns a marketing request into live content and then into performance data: planning and briefing, creation, review and approval, storage, activation across channels, and measurement. Treating it as one flow, rather than separate teams and tools, is what makes it possible to scale content without scaling headcount at the same rate.

Ready to put AI to work in your business? Let's talk.

Book a free 30-minute introduction call with our team. No obligation.

We use these details only to arrange your call. See our privacy notice.

Share

The briefing

Get our latest insights by email

Receive our latest research on strategy, capital, technology and international growth.

Perspectives

Explore more from our research library.

All Insights