Creative operations governance
How do you audit automated changes to ecommerce creative?
When Shopify workflows, ad platforms, or other automated systems change routing, product data, or creative, preserve a linked chain of evidence: approved source → automation version → execution event → resulting output → human decision → rollback path. A spreadsheet is enough to start, provided every record uses durable IDs, UTC timestamps, named owners, and evidence links.
Direct answer
What records should your team keep?
Keep four linked records: the approved source, the automation definition, the individual execution, and the resulting output or decision. For each change, record stable product and asset IDs, the workflow or rule version, selected transformation settings, the UTC execution time, the actor, before-and-after states, approval or exception details, and exact rollback instructions. Do not treat platform history as your only archive. For example, Shopify Flow provides workflow version history, but completed workflow runs are retained for 14 days, so important run evidence should be exported into your team’s own log (Shopify workflow runs).
01
Why is platform history not a complete audit trail?
Platform history explains activity inside one system; an audit trail connects the complete change across systems and decisions.
Shopify Flow’s version history can show workflow edits, activations, deactivations, exports, timestamps, and whether a user or Shopify automation made the change. That is useful evidence, but it does not automatically connect a workflow revision to your approved creative file, downstream ad object, reviewer decision, or recovery procedure (Shopify Flow version history).
Execution evidence may also expire sooner than your team expects. Shopify says completed Flow runs are retained for 14 days. Runs can be searched using details such as run ID, workflow, trigger, time, errors, and resource data. Export or copy the evidence your team needs before it disappears (Shopify workflow runs).
Your internal record should therefore act as an index rather than duplicate every platform log. It should tell a reviewer which source was approved, which automation acted on it, what output appeared, who accepted or rejected that output, and where the supporting platform evidence is stored.
02
Which changes deserve their own event record?
Record any automated event that changes what customers see, where an item is routed, which product an asset represents, or whether approved material is altered.
Create an event when an automation changes a product tag, status, destination, collection, offer, landing page, audience-facing claim, image, video, audio, crop, CTA, or publishing state. Also record failed and retried executions when they could create duplicate work or an uncertain final state.
Do not log every harmless background operation. Use a materiality rule: would a creative operator, approver, customer-support lead, compliance reviewer, or media buyer need this fact to explain the resulting output? If yes, preserve it.
A useful event model follows six questions: what happened, when did it happen, where did it happen, what initiated it, what was the outcome, and which person or system was responsible. Those elements align with the general audit-record attributes described in NIST guidance (NIST audit-record guidance).
03
How should you identify products, assets, and workflows?
Assign durable internal IDs and retain the platform IDs needed to reconcile the same object across systems.
Names are labels, not reliable join keys. A product title, campaign name, SKU, or filename can be edited or reused. Record the Shopify product and variant IDs, internal creative ID, workflow ID and version, platform campaign or ad ID, and resulting asset ID where each is available. Shopify GraphQL global IDs uniquely identify API objects, making them stronger reconciliation keys than names alone (Shopify global IDs).
Use a consistent internal format such as CREATIVE-1042-v3 for the approved asset and EVT-2026-00417 for a change. A parent_event_id should connect a downstream action to the event that initiated the handoff.
For files, retain the source filename, storage location, version, and checksum. A checksum is a file-derived value that helps distinguish two files even when they have similar names. Keep the source itself in controlled storage rather than relying on a platform preview.
04
What should the approved source record contain?
The source record should capture exactly what the team approved before any automation or platform transformation occurred.
Record the internal creative ID and version, product and variant IDs, source file, checksum, storage URL, approved copy, offer, CTA, claims, destination URL, approver, and approval time. If an approval has conditions—such as a required disclaimer or prohibited crop—write those conditions as structured notes rather than leaving them in chat.
For a product-routing change, capture the relevant pre-change tags, status, collection, destination, or other state. For creative, save a viewable preview alongside the original file. The purpose is to make the question “What entered the automation?” answerable without reconstructing it from memory.
Freeze the source version once it is approved. A later copy correction or resized source should receive a new version, even if the team considers it a minor update. Otherwise, the audit trail can point to a file that no longer matches what originally ran.
05
How do you record an automation definition and execution?
Keep the reusable automation configuration separate from each time that automation runs.
The definition record describes the system and account, workflow or rule ID, version, trigger, conditions, actions, selected transformation settings, owner, activation time, and a screenshot or exported configuration. The execution record describes one occurrence: event ID, run or change-log ID, UTC timestamp, triggering object, actor, before state, action, after state, outcome, errors, and retries.
Shopify Flow’s Get workflow run data action can expose identifiers, retry information, UTC start time, and the triggering event. Its Log output action can write selected values into the run log. Use that capability to preserve your internal creative ID, launch code, or another business-specific key when the default log does not contain the context needed for reconciliation (Get workflow run data; Log output).
Distinguish the actor precisely: named user, installed app, scheduled workflow, platform automation, or API process. “System” is too vague when several automations can act on the same object.
06
How should platform-modified creative be documented?
Save both the submitted source and the platform-produced result, together with the settings that explain the difference.
TikTok’s Automate Creative can apply changes such as resizing, resolution enhancement, music replacement, and audio effects. The advertiser selects enabled features during setup. Record those selections and save the setup preview before publication (TikTok Automate Creative).
TikTok states that Automate Creative settings cannot be changed after publication; using different settings requires a new campaign. That makes the pre-publication configuration and preview part of the approval evidence, not optional setup notes (TikTok Automate Creative).
After publication, record the resulting campaign, ad-group, ad, and asset IDs where applicable; publication time; observed differences; reviewer; and disposition. TikTok Ads Manager change logs can provide supporting details including time, object name, object type, object ID, activity details, and operator (TikTok change logs).
07
What is the minimum viable change log?
A single spreadsheet or database table can provide a useful audit trail if every event receives a unique ID and links to its source evidence.
Do not wait for a custom data warehouse. Begin with one row per event and define who fills in each field. Use controlled values for outcomes such as completed, failed, retried, rejected, and rolled_back. Store long screenshots, files, and exports elsewhere, then link to them from the log.
The log should be append-oriented: correct mistakes with an amended record or documented update rather than silently replacing historical values. Restrict editing where practical, and identify a primary owner plus a backup owner for exports and reviews.
change_event_id: your unique internal event key.parent_event_id: the initiating or preceding event.occurred_at_utc: one comparable timestamp across systems.system_account: the platform and relevant account.object_typeandobject_id: the product, variant, workflow, campaign, ad, or asset.source_idandsource_version: the approved input.automation_idandautomation_version: the responsible rule or workflow.trigger_or_actor: the person, app, schedule, event, or platform automation.before_state: the relevant previous value or asset.settings_or_action: the routing instruction or transformation configuration.after_stateandoutput_id: the resulting value, object, or asset.outcome: completed, failed, retried, rejected, or rolled back.approval_or_exception: the decision, owner, reason, and timestamp.rollback_instructions: the exact recovery procedure and responsible owner.evidence_link: the source file, export, screenshot, preview, or platform log.
08
What does a Shopify Flow–to–modified-asset handoff look like?
Treat the Shopify event, the cross-system handoff, and the platform transformation as separate events linked by parent IDs.
This example does not imply that Shopify Flow directly publishes to TikTok. It shows how a team can preserve continuity when a Shopify event prompts a separate operator or process to prepare and publish creative in an ad platform.
The final record should let a reviewer begin with the approved source and follow the chain to the published output without relying on campaign names, Slack history, or one person’s memory.
- Approve
CREATIVE-1042-v3. Record its checksum, storage URL, Shopify product and variant IDs, approved copy, landing page, approver, and approval time. - Record the Shopify Flow definition. For example: workflow version 18 detects a launch condition and applies a routing tag or sends a downstream notification. Save its workflow ID, trigger, conditions, actions, activation time, owner, and configuration evidence.
- Capture the Flow execution. Record the run ID, UTC start time, triggering product IDs, action result, retries, and errors. Log
CREATIVE-1042-v3or a launch code if that key is needed to connect the run to creative operations. - Create a separate handoff event. Record the operator or process that used
CREATIVE-1042-v3, the time of the handoff, and the resulting TikTok campaign, ad-group, and ad IDs. Link this event to the Flow event usingparent_event_id. - Before publication, record that Automate Creative was enabled, list every selected option, and save the configuration screenshot and preview. Do not describe the result merely as “TikTok optimized.”
- After publication, save the resulting ad ID and preview, observed visual or audio changes, reviewer, decision, operator, and publication time. Link supporting TikTok change-log evidence.
- Define rollback explicitly. It might mean pausing the ad and returning to the approved source. If different Automate Creative settings are required, TikTok says a new campaign must be created. Record who makes that decision and who performs it.
09
Who owns reviews, exceptions, and rollback?
Assign one operational owner for record completeness and one decision owner for approving exceptions or initiating rollback.
The operational owner checks missing IDs, evidence links, exports, and timestamps. The decision owner determines whether a transformed output remains acceptable. For higher-risk claims, offers, or product changes, identify any additional approver before automation is enabled.
Review short-lived records frequently enough to export them before platform retention windows close. A weekly export is a practical internal cadence for Shopify Flow runs because completed runs are retained for 14 days; conduct a broader monthly review for broken links, orphaned events, inactive workflows, unresolved exceptions, and outdated rollback instructions.
ATIYO can serve as the central creative-context record by organizing roadmaps, briefs, brand context, assets, iterations, and reusable learnings. It does not connect to ad accounts, buy media, calculate ROAS, or automatically know performance. Media performance remains in the ad platform. ATIYO preserves the creative context and learnings that help the team understand what was made, changed, approved, and learned. See Creative Operations Software, How ATIYO Fits Into Your Workflow, and Best Practices for a Healthy Creative Pipeline.
Frequently asked questions
Questions about this workflow
Do we need dedicated audit software?
No. A controlled spreadsheet or database table is sufficient to begin. The essential requirements are unique event IDs, stable object IDs, UTC timestamps, owners, before-and-after states, and links to supporting evidence.
Should screenshots replace structured fields?
No. Screenshots help prove how a configuration or preview appeared, but they are difficult to search and reconcile. Record important IDs, settings, timestamps, and outcomes as structured fields, then link the screenshot as evidence.
What should we do when the platform does not expose an output file?
Save the platform preview, output ID, publication time, observed differences, and change-log evidence available to your account. Preserve the original approved file separately and document any limitation in the evidence record.
Does ATIYO import ad-platform performance automatically?
No. Media performance remains in the ad platform. Teams can record relevant outcomes and learnings in ATIYO alongside the creative context, but ATIYO does not connect to ad accounts or automatically import performance.
Primary and official sources
Sources used in this guide
External product facts were checked against the organizations’ own documentation. Features can change; confirm current details before making a purchase or campaign decision.
- Shopify Flow version history Workflow history, change types, timestamps, and actors.
- Shopify Flow workflow runs Run search fields and 14-day retention for completed runs.
- Shopify Flow: Get workflow run data Run IDs, retry data, start time, and triggering-event details.
- Shopify Flow: Log output Recording selected business-specific values in run logs.
- Shopify API global IDs Globally unique identifiers for Shopify API objects.
- TikTok Automate Creative Available transformations and configuration limitations.
- TikTok Ads Manager change logs Change times, object details, IDs, activities, and operators.
- NIST audit-record guidance General audit-record attributes used to frame the event model.
Move the plan out of scattered sheets
Run the roadmap, briefs, assets, and learnings in ATIYO.
ATIYO keeps the brand context and production decisions connected. It does not buy media, connect to ad accounts, or invent performance results.