Ad Creative Approvals: A Launch Board That Matches What Is Actually Live
The agency's launch sheet is audited against live Meta Ads campaigns and Instagram posts, every creative gets a status and a launch window on the Miro board, and holds, budget cuts and late approvals are absorbed mid-wave. The desk lead approves every board change.
The agency's launch sheet, the live account and the board rarely agree
A launch wave starts with a sheet from the agency: every creative ID, the campaign and ad set it belongs to, its region, its caption and its approval state. By launch day, the live Meta Ads account and the Instagram posts have moved on from that sheet. An ad set was rebuilt under another campaign, a caption was edited after brand approved it, an asset link points to a file that never arrived.
The desk tracks every creative on a Miro launch board, and the approval policy, the legal hold list and the window allocation rules sit in Google Drive. Holds are released by email, budget cuts arrive as a memo from finance, and brand approvals come in late. Each one changes some creatives' status, and checking only the creatives a message names leaves the rest of the board quietly wrong.
Who works in the room
People
Launch desk lead
Approves every board fix, final status and launch window, and signs off the regional close-out
Agency account lead
Owns the launch sheet and corrects the lines the audit sends back
Brand and legal reviewers
Issue approvals and legal holds, release holds and rule on disclosure questions
Agents

FinLaunch auditor
Checks every line of the agency's launch sheet against the live campaigns, ad sets and Instagram media, and proposes a fix for every wrong board field
Meta Ads
Instagram
Google Drive
Miro
RyanStatus and windows
Sets each creative's final status under the approval policy and legal hold list, allocates launch windows, and writes the board once the desk lead approves
Miro
Meta Ads
Instagram
Google Drive
MycoThread replies
Drafts replies to legal and creative with each creative's new status, and posts approved board changes for the agency in Slack
Each launch wave gets its own Kylon room. Fin is the default agent, so a request to check a line goes to it without a mention, and it reads Meta Ads and Instagram on a lasting grant the paid social lead approved for the room. Anything about a final status or a launch window goes to Ryan, which owns the board writes. When a hold is released or an approval lands, Ryan finishes the recheck and mentions Myco in the same thread with the creative IDs and their new statuses, so the replies to legal and creative say exactly what changed.
A launch wave, stage by stage
The order matters. The audit corrects the board first, so every later decision runs on corrected data, and every stage waits for the desk lead before the board changes.
- Agent works
- Person decides
- Arrives or gets recorded
flowchart TD
sheet([The agency's launch sheet arrives])
audit["<b>Fin</b> checks every line against the<br>live campaigns, ad sets and media"]
fixes["<b>Launch desk lead</b> approves<br>every board fix"]
status["<b>Ryan</b> proposes each final status<br>under the policy and legal hold list"]
window["<b>Ryan</b> allocates launch windows<br>to creatives set to publish"]
ok1["<b>Desk lead</b> approves each<br>status and window"]
hold([A hold is released or a<br>late brand approval comes in])
cut([A budget cut memo<br>arrives from finance])
caps["<b>Fin</b> reads the new caps"]
recheck["<b>Ryan</b> rechecks every creative<br>affected against the full policy"]
replies["<b>Myco</b> drafts replies to legal and<br>creative with each new status"]
ok2["<b>Desk lead</b> approves<br>any status that changes"]
send["<b>Legal and creative</b> confirm,<br><b>desk lead</b> sends the replies"]
close["<b>Ryan</b> counts the board and drafts<br>one close-out note per region"]
sign["<b>Desk lead</b> approves the notes<br>before they are posted"]
sheet --> audit --> fixes --> status --> window --> ok1 --> recheck
hold --> recheck
cut --> caps --> recheck
recheck -->|hold or approval| replies --> send --> close
recheck -->|budget cut| ok2 --> close
close --> sign
class audit,status,window,caps,recheck,replies,close agent
class fixes,ok1,ok2,send,sign person
class sheet,hold,cut event
classDef agent fill:#FFFFFF,stroke:#DCD3C8,color:#1B1712
classDef person fill:#EEF0E3,stroke:#6E7447,color:#1B1712
classDef event fill:#F4ECDD,stroke:#F4ECDD,color:#564C42| Stage | What happens | Who acts | Who decides |
|---|---|---|---|
| Launch sheet audit | Every line is checked against the live campaigns, ad sets and Instagram media, and every wrong board field is corrected, whether the sheet flagged it or not | Fin | The launch desk lead approves the fixes before the board is written |
| Disposition | Each creative gets a final status under the approval policy and legal hold list, using live daily caps, campaign membership and captions | Ryan | The desk lead approves each status |
| Window allocation | Creatives set to publish get a launch window under the allocation rules | Ryan | The desk lead approves the windows |
| Holds released, asset found | The named creatives are rechecked against the full policy, and both email threads get a reply with each new status | Ryan, then Myco for the replies | Legal and creative confirm, and the desk lead sends the replies |
| Budget cut | Every creative in the two cut campaigns is rechecked, including those already published | Ryan, with Fin reading the new caps | The desk lead approves any status that changes |
| Late brand approval | The five named creatives are rechecked and any that now publish get a window | Ryan | The desk lead approves |
| Regional close-out | Totals by region and status are counted from the board, and one close-out note per region is posted in the agreed format | Ryan, checked by Fin | The desk lead approves the notes before they are posted |
Holds, cuts and late approvals mid-wave
Mid-wave changes rarely touch only the creatives they mention. A budget cut on two campaigns lowers the daily cap for every creative in them, including ones already live, so Ryan rechecks the whole campaign and proposes a held status for any creative the new cap no longer covers. A late brand approval moves five creatives toward publish, and each of those needs a window, which may push another creative into a schedule conflict.
Each recheck runs against the full policy, not just the rule that changed. A creative whose legal hold is released may still be missing its disclosure, and a creative whose asset turns up may still be in the wrong region. Ryan writes the reason on the board card and the thread keeps the before and after, so the desk lead approves from a short list instead of a rebuilt board.
What the checks catch
- A board field that is wrong even though the agency's sheet did not flag it, such as an ad set filed under the wrong campaign
- An already published creative in a campaign whose budget was cut, which needs its status rechecked
- A caption edited on Instagram after approval that dropped the paid partnership disclosure
- A creative newly cleared to publish by a late approval that still has no launch window
- A regional close-out note whose counts do not match the board, or whose wording strays from the agreed format
What stays with people
- Approving every board fix, final status and launch window before it is written
- Releasing a legal hold or issuing a brand approval
- Sending replies to legal and creative, which Myco prepares as drafts in Gmail
- Any change to a live campaign or ad set, which stays with the paid social team
Integrations in this workflow
Kylon is not an ad manager or a creative approval tool, and it does not replace either. It sits across the accounts and boards the desk already uses, and the coordination between them happens in the room.
- Meta Ads shows the live campaigns, ad sets, daily caps and which campaign each ad set belongs to
- Instagram shows the live media and the captions each creative actually runs with
- Miro holds the launch board, with a card per creative carrying its final status and window
- Google Drive keeps the agency's launch sheet, the approval policy, the legal hold list, the allocation rules and the memos
- Gmail carries the threads with legal and creative, and each reply is a draft a person sends
- Slack is where the agency and finance post quick changes before a memo lands
Where to start
Run one wave in one region first. Connect the Meta Ads account and the Instagram profile through a lasting grant for the room, share the Miro launch board, and add one line to the room guidelines: agents audit and propose, every board write waits for the desk lead, and nothing in the live ad account is changed from the room.
“The sheet says what the agency planned. The board has to say what is actually live, and every change gets checked against all of it.”
Set it up with your agent
Open a new Room, add your agent and paste this prompt. It connects the tools, builds the App with you and asks for your rules one step at a time, and nothing goes out until a person approves it.
Set up our ad creative launch desk in this Room. Take it one step at a time and wait for my OK before you move on. 1. Connect Gmail, Google Drive, Instagram, Meta Ads, Miro and Slack. Tell me which ones still need connecting, and confirm the Meta Ads account and Instagram profile are on a lasting grant for this Room. 2. Ask me who works this desk: the launch desk lead, the agency account lead, and the brand and legal reviewers. Help me invite them to this Room. 3. Build a Creative Launches App with columns Audit, Disposed, Window set and Live, one card per creative. Pull the creative IDs, campaigns, ad sets, regions, captions and approval states from the agency launch sheet in Google Drive. 4. Check every line against the live campaigns and ad sets in Meta Ads, the live captions on Instagram, our policy, the legal hold list and the allocation rules in Google Drive. Propose a fix for every wrong board field and show me the ones that fail, whether the sheet flagged them or not. 5. Draft replies to legal and creative in Gmail and post approved board changes to the agency in Slack. Draft regional close-out notes in the agreed format. Write nothing to the board and send nothing until the launch desk lead approves each fix, status, window and note. 6. Write the stage order and who approves what into this Room's guideline, so every wave follows it. 7. After one clean wave, offer to turn the full audit run into an Automation. Before you start, ask me for our rules one at a time.
Your first company harness. Where humans and agents run your business together.
More Use Cases
View allAd Delivery Make-Goods: Every Shortfall Settled as a Bonus Placement or a Credit
Insertion orders are reconciled against delivered impressions and contract terms in one Kylon room. Agents work Attio, the Notion delivery report and the Outlook contract threads, re-run bonus allocations when numbers change, and the ad operations lead approves every outcome.
Author Royalty Statements: Payable Figures That Survive Amendments and Reserve Changes
Royalties for every title are computed from its contract in Dropbox and its period sales in Stripe, recomputed when amendments or a new reserve arrive, and written to Airtable only after the royalties manager approves. Close-out creates fresh statements.






