Campaign Agents

Review and Publish

The gate between an agent writing something and the world seeing it: states, reviewers, versions, and publishing.

Nothing an agent writes goes live on its own. Every draft moves through a review pipeline with explicit states, named reviewers and full version history.

States

StateWhat it meansWhat moves it on
DraftBeing written or edited. Agents and humans both write here.Submitting it for review
In reviewSubmitted, waiting on a decision.A reviewer approving or requesting changes
Changes requestedSent back with written feedback attached.Back to draft
ApprovedCleared to publish. Not yet public.toggle_blog_publish
PublishedLive.toggle_blog_publish again, to unpublish
ArchivedSoft-deleted. archive_blog also unarchives.n/a

The first five are the statuses on the Artifacts screen. request_blog_changes only accepts something already in review, and archive is reversible.

list_blogs takes a state filter and a search term, so "what is sitting in review" is one call.

Reviewers

Reviewers are named per environment, so review goes to a known list rather than to whoever noticed first. list_reviewers over MCP returns the current set.

Versions

Every draft keeps its version history and its rendered Markdown:

  • Comparing an agent revision to yours. get_blog_versions lists them; get_blog_version_content returns the body of any one.
  • Getting an earlier draft back after a bad approve. The older version's Markdown is still readable.

Reviewing Well

Resist the urge to rewrite: an edit fixes one draft, and a Vault rule fixes every future one.

Check the claim, not the prose

Is what it says true, and is it the claim the campaign was for? Prose problems are cheap to fix; a wrong claim is a retraction.

Check every number has a source

Named customer or a figure you can point at. If neither, cut it.

Request changes with the reason

"Opened generically, and the 37% is Nextiva's not Galley's." request_blog_changes takes that feedback and stores it on the draft, so the next person to open it sees why it came back.

Publishing

Approved is not published, so a batch can clear review on Thursday and go live on Monday. Content you host with us publishes into the Surface CMS. If you publish the page yourself, get_blog_version_content hands you the approved Markdown.

For CMS entries, cms_schedule_entry sets a publish time and cms_unschedule_entry cancels it, so a piece approved today can go live at 09:00 on Tuesday. See the CMS tools.

From Slack: "what's sitting in draft right now?" is a read. "@SAM approve the Nextiva post" is a write, so it parks behind an Approve card before anything moves. Either way it counts against the workspace's 200 questions per rolling 24 hours. See Limits and guardrails.

Artifacts and the asset library →

On this page