Detected country: US
logo
Sign InGet Early Access
GuideRecipesDeveloper
‌
‌
‌
logo

Powered by

  • Home
  • Playbook Recipes
  • Marketing Ops recipes
  • Recipe: Content and marketing operations

Recipe: Content and marketing operations

2min read

Share

TL;DR: From a content brief, this playbook drafts a piece with an agent, saves it to Notion or your CMS as a draft, then parks with metaphor.waitForInput for reviewer Approve / Request changes. On approve it publishes to Webflow or your CMS. Trigger is manual or a new brief; outputs are a draft, a durable review gate, and an optional publish.

Who this is for

Marketing and content teams that want a consistent draft-review-publish pipeline.

What you'll need

  • Connectors: Notion (or CMS), Webflow (or publishing API), Slack (optional notifier).
  • Secrets: Notion token, CMS/Webflow API key, Slack token (stored in Secrets — never hardcoded).
  • Trigger: Manual run, or a webhook when a brief is created.

How to build it with Ask Ballet

  1. Open the Console on Home.
  2. Paste the prompt below; set your brand voice and review channel.
  3. Review the plan and confirm.
  4. Connect Notion/CMS, Webflow, and Slack.
Build a playbook that takes a content brief (topic, audience, keywords, outline) as
input. Draft a 600-800 word article in our brand voice with a title and meta
description. Save it as a draft page in Notion. Then call metaphor.waitForInput with
prompt "Approve draft for publish?", details (title, draft link, summary), and choices
Approve / Request changes — do not busy-wait or poll Slack. On Approve, publish to
Webflow as a draft post. On Request changes, stop and notify #content-review.
Optionally have a Slack notifier wake the run via POST /api/runs/:id/reply.

What the playbook does

  1. Manual/webhook trigger — accepts the brief input.
  2. Code step (draft) — generates the article and metadata from the brief.
  3. HTTP step (save draft) — creates the Notion/CMS draft.
  4. Code step (review gate) — await metaphor.waitForInput({ prompt, details, schema }) parks the same runId until a reviewer Continues in Studio or a notifier replies.
  5. HTTP step (publish) — on approve, pushes to Webflow/CMS; on reject, skips publish and notifies.

Variations and tips

  • Feed this from Generate a content brief: that recipe produces the brief; this one drafts, reviews, and publishes from it.
  • Keep a human approval gate with durable waitForInput — not Console Allow/Ask mode and not a busy-loop. See pause and resume.
  • Pass the draft link and summary as details so reviewers see the payload while Paused.
  • Store all CMS and Slack tokens in Secrets.

Related articles

  • How do I pause and resume a playbook run?
  • How do I wake a suspended run with reply or resume?
  • Generate a content brief
  • Campaign performance report
  • How do I build a playbook with the Console?

Share