Campaign creative review board for Cloudinary artwork
Approve or reject campaign artwork on one board instead of chasing sign off in email threads, with every decision recorded on the file.
I want an app my marketing team uses to sign off on campaign artwork before it goes live, so approvals stop living in email threads. Reviewer identity comes from the logged in user, so every decision is attributed to a real person and the audit trail is genuine.
On first run, let me configure the app and save those settings: which Airtable base and table holds my campaigns, which field in that table holds the campaign's tag name, which field holds the campaign status, and which field holds the approved count. Do not hard code a schema. Read the table with Airtable List Records and let me map each field by picking from what the table actually contains. Let me also set the tag that means waiting on review (default needs-review) and the tag that means approved (default approved), plus an optional Slack channel to fall back to when a designer cannot be matched.
The main screen is a two pane board. Down the left, list every campaign from the configured Airtable table using List Records. Each campaign row shows its name, its current status, and a progress bar of approved assets against total assets for that campaign. Selecting a campaign loads its assets into the right pane.
For the selected campaign, read the campaign's tag from the mapped Airtable field and load every Cloudinary asset carrying that tag using List Resources by Tag, using Search Assets for filtering and sorting and List Resources by Asset IDs to refresh specific cards after a decision. Lay the assets out as review cards showing a preview image, the pixel dimensions, the file format and size, who uploaded it, and how long it has been waiting. Default the view to assets still carrying the review tag, oldest upload first. Let me switch the filter to approved, changes requested, or everything.
On each card give me an Approve button and a Request changes button. Approving uses Cloudinary Manage Tags to remove the review tag and add the approved tag, then uses Update Resource by Asset ID to write the reviewer's name, the decision and an ISO timestamp into the asset's context metadata, so the record of who approved what lives on the file itself.
Requesting changes opens a note box and will not submit until I type something. It records the note the same way, writing reviewer name, decision, timestamp and note text into context metadata with Update Resource by Asset ID, and tags the asset so it reads as changes requested rather than approved.
Let a reviewer flip a decision back if they change their mind. Reopening an approved asset swaps the approved tag back to the review tag with Manage Tags and appends the reversal to the asset's context metadata rather than erasing the earlier decision, so the full history stays intact.
After every decision, roll the result up to the campaign record in Airtable with Update Record so the status and the approved count stay current, and refresh the progress bar immediately. When every asset on a campaign is approved, set the campaign status to fully approved.
Also notify the designer who uploaded the asset. Take the uploader from the asset metadata, find their Slack account with Look Up User by Email, open a direct message with Open a Conversation, and send the verdict with Send a Message including the campaign name, the asset name, the decision, my note and a direct link to the file. If no matching Slack user is found, post to the fallback channel instead.
Handle Cloudinary pagination so campaigns with many assets load fully, keep the board responsive while decisions are saving, and show a clear empty state when a campaign has no tagged assets yet.
What does this prompt do?
- Lists your campaigns down one side and loads every piece of artwork tagged to the campaign you pick, shown as review cards with a preview, dimensions, format and who uploaded it.
- Lets you approve or request changes on any card. Approving records your name and the date onto the file itself, and requesting changes makes you leave a note explaining what needs fixing.
- Rolls every decision up to the campaign record so the status and approved count stay current, with a progress bar showing how much of each campaign is signed off.
- Sends the designer who uploaded the file a Slack message with the verdict, your note and a link to the artwork, and lets a reviewer flip a decision back if they change their mind.
What do I need to use this?
- A Cloudinary account holding your campaign artwork
- An Airtable base with a table of campaigns, including a field that stores each campaign's tag name
- A shared tag on your assets that links artwork to a campaign, plus a tag that marks work as waiting on review
- A Slack workspace so designers hear about decisions
How can I customize it?
- Map your own Airtable fields for the campaign tag, status and approved count, and set which tag names mean waiting on review and approved
- Change the default view from waiting on review with the oldest first to show approved work, changes requested, or everything
- Send verdicts to a shared design channel instead of a direct message to the uploader
FAQs
Do designers need access to the review board?
Where does the approval actually get recorded?
Can I undo an approval if I change my mind?
Will this work with our existing Airtable setup?
How does the board know which artwork belongs to which campaign?
Related templates
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.
Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.
Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.
Search creators for free, shortlist the best with your team, and spend an audit credit only when you decide someone is worth a closer look.
Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.
Stop chasing artwork approvals in email threads.
Give your marketing team one board where campaign creative gets reviewed, signed off and recorded, so nobody has to ask who approved what.