Approve every MailForge campaign before a single email goes out

By General Input

See every unsent draft and scheduled campaign in one place, run the pre-flight checks, and unlock Send only after a named reviewer signs off.

Integrations

  • MailForge
  • Slack Bot
  • General Input Database

Type

App

Categories

  • Marketing
  • Operations

Build me a launch desk for MailForge where nothing goes out until a human has signed off. This app reviews and launches campaigns that already exist in MailForge. It does not author, compose or create campaigns, because MailForge has no create-campaign operation. Marketers build drafts in MailForge, and this is the screen where those drafts get checked, approved and sent.

The main view is a single list of every campaign that has not been sent yet. Use MailForge List Campaigns filtered by status to pull both drafts and scheduled campaigns, and give each one its own row. For each row, call MailForge Get Campaign to show the subject line and a preview of the campaign content, and show the target contact list along with that list's current subscriber count from MailForge List Contact Lists.

Every row gets a pre-flight panel with three checks. First, suppression overlap: cross-reference the campaign's target list against the suppression list by using MailForge List Contacts with its list filter to page through the target list's members and MailForge List Suppressions to get suppressed addresses, then report how many people on the target list are already suppressed and will not receive the email. Second, quota headroom: call MailForge Get Usage to read the remaining monthly email allowance and compare it against the target audience size. Third, template attached: confirm the campaign actually has a template on it, using MailForge List Templates to resolve the attached template.

Roll those checks into a traffic light on each row with three states: ready, needs review, or blocked. Treat the quota check as a hard block, not a warning. MailForge's send endpoint rejects a campaign outright once the organization's monthly email quota is exhausted, so if the remaining allowance is smaller than the target audience the row must be marked blocked, the Send button must be withheld entirely, and the panel must state the shortfall in sends, for example "blocked: 4,200 recipients but only 1,850 sends left this month, short by 2,350". A missing template should also block. Softer problems like a large suppression overlap should land on needs review rather than blocked.

The Send button only appears once a reviewer has approved that row. Store approvals in the app's own database using General Input Database so there is a permanent record: campaign id, campaign name, approver name, approver identity, timestamp, and the audience size at the time of approval. Approval records must survive independently of MailForge, so the team can show months later exactly who signed off on any given send. Show the approver's name and the approval time directly on the row once it is approved.

Require a second approver for any campaign whose audience exceeds a configurable size threshold. Below the threshold one approval unlocks Send. Above it, the row stays locked showing something like "1 of 2 approvals" until a second, different person approves, and both approvers are recorded. Make the threshold a setting the ops lead can change without editing code.

Sending fires MailForge Send Campaign for that campaign, then posts to Slack with Slack Bot Send a Message, including the campaign name, the audience size and the approver name (both names when two approvals were required). Handle the case where MailForge still rejects the send because the quota ran out between the pre-flight check and the click: surface that clearly on the row rather than reporting a successful send.

Add a "Review this campaign" button on every row that kicks off a background agent for that campaign. The agent reads the campaign content with MailForge Get Campaign, looks at how past campaigns to the same target list performed using MailForge List Campaigns plus MailForge Get Campaign Stats for opens, clicks, bounces and unsubscribes, walks the same pre-flight checklist the panel shows, and writes a pass or fail verdict with specific reasons back onto the row. Store the verdict so the app can display it: the verdict itself, the reasons as concrete bullet points rather than vague prose, and when it ran. The verdict is advice for the reviewer to act on, so it must never approve a campaign or unlock Send by itself. Only a human approval does that.

The people using this are an email marketing manager or ops lead who approves sends, plus the marketers who queue drafts and watch their status. Make the desk scannable at a glance so someone can walk in, see which campaigns are ready, which need attention and which are blocked, and act on them in order. Refresh the pre-flight numbers when the page loads so the quota and suppression figures reflect the current state rather than a stale snapshot.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonChat quality review board for LiveChat support leadsCompetitor LinkedIn ad watchlist with a permanent archiveLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts from