Create an outline
create_outlineGenerate a markdown outline for a long-form piece so the user can review the structure before drafting. Free — consumes no generation credit. Returns a generation_id with status 'outline' — the same id tracks the piece through its whole lifecycle ('outline' → 'drafted' once generate_content runs → 'edited' once save_edit stores a final version); every tool that reads the id returns the current status. Pass the id to generate_content to draft from the (optionally edited) outline. Best for article, newsletter, email, press_release and other long-form types; short social types don't need one.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| brief | No | What to write about, max 8,000 chars (required unless template_id supplies a topic; with a template it becomes the topic line). | |
| register | No | Override the profile's formality register for this piece. | |
| company_id | No | Write this FOR the user's product/company: a company profile id from list_companies. The draft is grounded in that company's facts, terminology and audience (never invented specifics). Omit company_id to use the voice's default company (set in the app under Voice Brain, when the voice has one); pass null for none. | |
| continuity | No | Voice Brain continuity. Default true once the memory knows 10+ pieces: the draft is told what the author has already established on the subject (build on it) and which prior arguments not to repeat. Pass false to write fresh, ignoring the memory. | |
| profile_id | Yes | A 'complete' voice profile id from list_profiles. | |
| template_id | No | Start from a saved brief template (list_brief_templates): it fills every field this call leaves empty. | |
| content_type | No | What kind of piece this is (required unless template_id supplies it). article = standalone long-form article; blog_intro = ONLY the opening section of a blog post, not a full piece; newsletter = an email newsletter issue; email = a single one-to-one or marketing email; short_story = fiction; linkedin = LinkedIn post; social_post = generic short social caption; twitter_thread = X/Twitter thread; instagram_caption = Instagram caption; press_release = press announcement; product_description = catalogue blurb for ONE product; ad_copy = very short advert copy; website_landing = campaign landing page driving one action; website_home = homepage introducing the whole brand; website_product = site page for one product/feature; website_about = about-us page. | |
| english_variant | No | English spelling/idiom variant. Defaults to the profile's stored variant. | |
| extra_direction | No | One-off styling guidance for this piece (max 2,000 chars). | |
| word_count_target | No | Target length in words (50-15,000, lands within ±15%; each content type has its own range: long-form articles, short stories and the four website page types go to 15,000, newsletters to 5,000, short formats such as linkedin keep short ranges). Credits by length: up to 5,000 words 1 credit, up to 10,000 words 2, up to 15,000 words 3. Above 4,000 words the draft is written in the background: generate_content returns at once with status 'generating'; call get_job or get_generation until the job has succeeded (about a minute per 2,000 words). Omit for the content type's default. |