Skip to content

Marketing Autopilot

Marketing Autopilot is an optional add-on parented on Marketing. It creates Marketing posts on a cadence, optionally renders HTML/CSS creatives to images, and can react to external events that carry a public URL — without importing Blog domain models.

Cadence runs use the plan’s topic as a short social caption theme (not a full LLM article writer). Event runs use the event title/excerpt and absolute link_url from the payload. When research is enabled on the plan, the pipeline searches the web first and adds hooks and facts into copy while keeping the event title and excerpt when promoting a link.

  1. A content plan sets a visual schedule (repeat + run hours in a timezone), target channels, default publish mode, autonomy level, and optional research settings.
  2. The scheduler claims due plans and starts a short pipeline per channel: research → brief → copy → creative → gate.
  3. Research (optional) runs only when the plan has research enabled. It uses the same Tavily/Brave search provider keys as Blog Autopilot settings, then synthesizes hooks and facts into the pipeline context. When research is off, the step is skipped and Blog Autopilot code is not loaded.
  4. Creative can call Media Studio’s HTML/CSS renderer (social_square) when the publish mode needs an image. If rendering fails, the pipeline fails — it does not publish a placeholder image.
  5. Gate creates a Marketing post according to autonomy (see below). Scheduled posts are published by Marketing’s publish_scheduled_posts worker.
  6. Event intake (optional) listens by string event name — for example blog.article.published — when that name is allowlisted in Autopilot settings and on the plan. The payload must include company_id and an absolute http(s) link_url / public_url. Promoting a blog URL is an event payload contract, not a Blog model import.

For LinkedIn, select the channel for the intended personal profile or company page on each plan. Connecting a company page does not replace the personal channel already selected by a plan or an existing post. Update those targets explicitly before scheduling more content. See LinkedIn account types.

Level Gate outcome
Draft only Creates a draft post for staff to edit
Submit for review Creates a post in pending review
Gated publish Runs brand guardrails, then schedules the post a few minutes ahead via Marketing’s schedule path
Mode Behavior
Image + link in comment Image post; URL posted as a first comment afterward (Facebook, LinkedIn, and X implement this; Instagram has no comment path)
Image only Image/caption, no link
Text with link in body Copy includes or sets link_url
Text only Copy with no link

Instagram still requires an image — text-only modes on IG channels fail at publish with a media-required error.

Requires marketing.autopilot plus the channel packs you publish to (marketing.channel.meta, marketing.channel.linkedin, marketing.channel.x).

Plans use the same schedule picker pattern as Blog Autopilot: pick a timezone, choose every day or specific weekdays, and select one or more run hours. The admin stores an RRULE under the hood; the plans table shows a human-readable cadence (for example 3×/day).

Setting Behavior
Research before drafting When on, every pipeline run starts with a web research pass
Research focus Extra search terms; blank falls back to the topic prompt or event title
Search results per pass How many search results to fetch (1–20, default 6)

Configure Tavily or Brave under Blog → Autopilot settings (shared search credentials). Enabling research requires that search stack to be available. Without a key, an enabled research stage fails the run. If no source page can be fetched, the research step fails visibly and no post is created.

On event-driven runs, research keeps the event’s title and excerpt and adds hooks/facts for copy. On cadence runs without an event, research may set title and excerpt from the synthesized brief.

Marketing → Autopilot: plans, pipelines, and Autopilot settings (weekly cap, event-source allowlist). The weekly cap applies to both cadence runs and event-driven promotions.