Approve post
approve_postApprove one article in one call: the human's act, or the agent's when the workspace approvalMode (see pipeline_status) is agent. It refuses unless the last run_gate check passed (degraded reason gate-failed, and nothing changes), then moves the article to ready and, when this workspace has a delivery destination and a token saved, delivers it in the same act. That is the whole approval: there is no separate deliver step to remember, and nothing here publishes: publishing is a human click in the seodraft app. The result carries approvalMode. delivered is the receipt or null when nothing is configured to deliver to. For a git destination (provider github) it carries label, repo, branch, path, previousPath, commitUrl, htmlUrl, updated and pendingImageSlots. For Sanity (provider sanity) the draft drafts.seodraft-<id> is created or patched, never published and never deleted, and re-delivering patches only the fields seodraft maps; the receipt carries label, projectId, dataset, documentId, studioUrl, updated, pendingImageSlots and degradations (what the destination's Portable Text could not carry, which the human fixes in Studio). If the destination refuses the write the article stays ready (the approval was valid) and degraded reason delivery-failed carries the CMS's own reason in deliveryReason; re-approving retries the delivery and overwrites the same draft. deliveryReason published means the article is live from the seodraft app on a git destination and a draft file would take it offline, so nothing was written. With approvalMode human it records an approval the user gave explicitly.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| workspaceId | No | The workspace this call acts on, as listed by list_workspaces. Left out, the call uses the workspace the account is in right now. |