> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getcitable.com/llms.txt
> Use this file to discover all available pages before exploring further.

# create_content_draft

> Creates a content draft against an action ticket or an ingested conversation.

Creates a content draft against an action ticket OR an ingested conversation. The draft lands at `status='queued'` — never published. Returns the editor URL so the user can review, edit, and approve in the web app before scheduling.

## Anchor invariant

Provide EXACTLY ONE of `source_task_id` or `from_conversation_id`, never both. Cross-brand IDs are rejected.

## Quality signal

Returned in `structuredContent`: `geoScore` (0–100), `aeoScore` (0–100), `artifactsFlagged: string[]`.

If `geoScore < 60` OR `artifactsFlagged` is non-empty, revise the body and re-call. The flags name the AI-slop pattern detected (for example, "hollow heading opener", "fictional persona intro"). Aim for clean drafts — the queued state is for review, not damage control.

## When to use

* The user has agreed on what to post next.
* You want to materialize the result of a brand conversation as a draft (pair with `from_conversation_id` from a prior `ingest_conversation` call).

## When not to use

* The user is just brainstorming — wait for an explicit "draft this" instruction.
* The user wants Citable to publish — Citable does not call platform APIs. We record `posted_url` after the user posts manually (see [`mark_content_posted`](/mcp/writes/mark-content-posted)).

## Body limits

1–8000 chars. For long-form (blog) posts, write the full body here; the editor URL lets the user iterate from there.

## See also

* [Overview](/mcp/overview)
