Create or update draft
upsert_postCreate or update a draft. Pass version when updating to avoid overwrites. Cannot mark ready. language is the language this article is written in (2-letter code: "en", "es", "pt") and it is what decides the folder deliver_draft files it under, so it needs to be set whenever the article is not in the workspace profile language, because the profile is only the fallback for drafts that never declared one. Changing it on an article that is linked to a translation is refused when another article in that cluster already covers the new language: unlink first, or fix the other side. brief is the editorial plan and it is saved before the body: intent and template read off the SERP, the angle the SERP does not cover, at least three pieces of first-hand evidence, the H2 outline with the sentence each section opens with, and the image slots the body references as . The rules block a draft that has no brief, fewer than three evidence items, or evidence that never reaches the article (get_skill describes the rules). It is separate from
serpBrief/customInstructions on get_post, which is the paid Google SERP research.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| body | No | ||
| date | No | ||
| faqs | No | ||
| slug | No | ||
| tags | No | ||
| tldr | No | ||
| brief | No | ||
| title | No | ||
| version | No | ||
| language | No | ||
| description | No | ||
| 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. |