generate_side_page
Generate AI-powered side pages under a parent landing page using a freeform prompt or structured brief. Runs asynchronously—returns an operation ID to poll for completion.
Instructions
AI-generates a side page under a parent landing page. Async — kicks off the side-page generator and returns { success, operationId, operationRowId, pollUrl, sidePageId }. This is the GENERATOR (POST /side-pages/generate) — NOT a row creator. Comparison-type briefs may run synchronously and return sidePageId directly with no operationId. Two body modes: • freeform: pass key + prompt (+ optional keywords, selectedSections, voiceProfileId, sidePageType). Freeform now writes real section-level content (hero/features/showcase/faq/cta), not just metadata. • brief: pass key + brief (structured outline) + optional briefId and roadmapItemId. Poll get_job with the returned operationId until state is completed (or failed/partially_failed/cancelled on error); the generated page's sections will be populated once complete.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Side-page key (URL slug fragment under the parent LP) | |
| slug | Yes | Parent landing page slug | |
| brief | No | Brief-mode structured outline. When set, this is the canonical payload. | |
| prompt | No | Freeform-mode generation prompt (omit when passing `brief`) | |
| briefId | No | Persisted SeoBrief ID — required for comparison-type generation | |
| keywords | No | Freeform-mode: target keywords to weave into the page | |
| sidePageType | No | Defaults to 'landing'. Use 'comparison' only with a persisted comparison briefId. | |
| roadmapItemId | No | Roadmap item ID this side page is fulfilling | |
| voiceProfileId | No | Voice profile to write in | |
| autoAssignAssets | No | Auto-assign brand assets to image slots after generation | |
| selectedSections | No | Freeform-mode: restrict generation to these section ids (e.g. hero, features, showcase, faq, cta, pricing). Omit to generate all default sections. |