Marketing

Availableapp.erp.io/marketing/runs

Runs

A run records what was asked, what came back, what it cost and who approved it. Nothing leaves the module without the last one.

Records
Input, output, cost
States
Running, review, approved, rejected
Rejection
Kept, with the reason
Cost
Attributed per run

The run record

A run holds the brief it was given, the output it produced, the sources it drew on, what it cost, and its state. Rejected runs are kept along with the reason, which turns rejection into information rather than a deletion — the pattern in what gets rejected is usually a defect in the brief rather than in the agent.

app.erp.io/marketing/runs
Runs

Last 7 days · 34 runs · $18.40

AllAwaiting review9ApprovedRejected4
AgentJobWhenCostState
ContentTrade ordering landing page14:20$1.20Review
SocialRepurpose March article13:05$0.30Approved
SEOAudit /pricing11:44$0.85Approved
Paid mediaAd variants — trade10:02$0.60Rejected
AnalyticsWeekly read08:00$1.05Approved
The runs list. Cost is attributed per run, which makes the expensive habits visible.

Reviewing

  1. Check the facts first. Prices, dates, capabilities and claims. This is where the real risk is, and it is not what a casual read catches.
  2. Check the sources. A run citing a page you have since changed is drawing on stale material.
  3. Then read it as writing. Tone and structure are the easy part to fix and the tempting part to start with.
  4. Reject with a reason. The reason is what improves the next brief.
Approving is publishing, in the sense that matters

Approval is the point at which your company stands behind the content. Nothing downstream re-checks it. A run approved without reading is a claim made without checking, and the audit record will show your name against it.

Cost

Every run carries its cost, and the total rolls into Admin → AI usage. The useful thing about per-run attribution is that it makes expensive habits visible — a long-form agent run twenty times on variations of the same brief costs real money, and the fix is a better brief rather than a budget conversation.

What this does not do

No scheduled runs

Agents are run by people. There is no cron.

No approval routing

Anyone with the module can approve. There is no reviewer assignment.

No versioning of output

Re-running produces a new run, not a version of the old one.

No cost caps

Spend is visible, not limited.

Questions

Can we edit output before approving?

Yes.

Are rejected runs deleted?

No — they are kept with their reason.

Can we export a run?

Yes.