Prepare a communication
Use ordinary campaign POST/PATCH to write content and itssourceChanges
together. Declare direct commits or PR bundles from configured project sources.
Create accepts { changes }; replacement PATCH requires
{ expectedRevision, changes } from the current campaign detail projection.
Omitting sourceChanges preserves the declaration and approval.
Content and associations commit atomically. Source edits retain approval, but
automatic launch must cover the current declaration. Source-managed preparations
cannot replace associations through the generic field. Such a request returns
409 before changing copy; use that preparation’s existing source workflow.
Configure tracking and review
For the stock server, follow self-hosted activation setup. An authorized operator registers sources, confirms each deployment scope, and approves a current content/source review through separate operator HTTP controls. Agent management credentials and MCP tools cannot configure scope or approve. Operator authority is an administrative delegation; it does not prove that a human personally made each HTTP request. Select the exact repository, production environment, and sources that each deployment ships. Describe the scope and explicitly confirm it. One repository does not necessarily represent one deployed application. An agent cannot infer this configuration or confirm it with its management credential. GitHub App deployment tracking needs Deployments: read-only, plus read access to repository contents and pull requests for source evidence. Accept requested permission updates for existing installations. Polling works without webhooks. Where signed webhook ingress is configured, Deployment status (deployment_status) events can wake work sooner; they never grant coverage.
Projects initially use automatic launch. Change the project default or set
an individual campaign to automatic or manual. A null campaign override
inherits the project default. Default changes affect every unlaunched campaign
without an explicit override; explicit overrides stay unchanged.
Saving tracking also evaluates existing approved drafts. Eligible automatic
drafts can launch without another approval or deployment. Select manual mode
before setup for communications you want to launch yourself.
Automatic launch
Automatic launch requires approval and current deployment coverage for every associated change across all required repository/environment mappings. A missing or unclear mapping prevents automatic launch. Drafting and grouping remain available when mapping is unclear. If deployment succeeds before approval, later approval makes the communication eligible while its changes remain deployed. Source revisions retain approval. Automatic launch uses the latest content and checks its current associated changes, rather than the changes present when you approved it. Project and source pause controls, withdrawn or unresolved sources, and delivery expiry still apply. Current channel readiness must succeed when launch commits. Missing or failed readiness blocks launch; a previous check does not authorize it. A futuredeliverFrom permits
activation but delays delivery until that window opens. An expired
deliverUntil blocks activation.
The activation API and campaign supervision panel show the effective mode, approval, waiting
reasons, coverage for each mapping, last check, launch evidence, and warnings.
The management API exposes this state through
GET /api/v1/campaigns/{id}/activation and the default through
GET /api/v1/launch-policy. Revision-checked PATCH requests change these modes;
they do not approve campaigns or configure deployment scope.