page.create_from_brief
ActiveTool of Create Web Page
Create a hosted landing page draft from a structured brief. Accepts business name, category, layout, palette, primary action, explicit final-audience publicSections, and optional hero image. Planning fields such as audience, offer, primaryGoal, location, businessType, style, and mustInclude are context only and are not rendered as public body copy. Draft previews are customer-facing: do not pass owner instructions, section-planning labels, or placeholder copy as public content. Keep sparse briefs sparse: use only facts supplied by the user or imported public sources, plus light wording polish; do not invent menus, services, hours, facilities, locations, testimonials, guarantees, staff details, prices, or operational claims. Prefer one short section or no extra section when the prompt is minimal. If a requested CTA lacks its real destination, ask for it before creation or provide fallbackLeadForm with public copy. Returns a preview URL, edit token, and next-step hints. This tool intentionally creates a draft only and does not return a publish action. After calling it, stop and show the preview URL. Do not call page.publish in the same turn unless the user's current message explicitly asks to publish, make the page live, or get a public share link. Anonymous pages expire unless claimed via page.claim.
Parameters schema
{
"type": "object",
"required": [
"businessName"
],
"properties": {
"bio": {
"type": "string",
"maxLength": 280,
"description": "Optional short bio for the header."
},
"offer": {
"type": "string",
"description": "Planning context only. Not rendered directly as public page copy; use bio and publicSections for final-audience copy."
},
"style": {
"type": "string",
"description": "Planning context only. Not rendered directly as public page copy."
},
"layout": {
"enum": [
"link_in_bio"
],
"type": "string",
"description": "Defaults to 'link_in_bio'."
},
"locale": {
"type": "string"
},
"preset": {
"enum": [
"classic_dark",
"sunset_gradient",
"editorial_serif",
"minimalist_light",
"local_business",
"bold_pop",
"zen_neutral",
"midnight_blue",
"auto"
],
"type": "string",
"description": "Style preset id, or 'auto' to infer deterministically. Defaults to 'auto'."
},
"audience": {
"type": "string",
"description": "Planning context only. Not rendered directly as public page copy."
},
"location": {
"type": "string",
"description": "Public business address or service area intended for map/address actions, not direct body copy and not the user's private/current location."
},
"sourceUrl": {
"type": "string",
"description": "Provenance reference only."
},
"mustInclude": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 12,
"description": "Planning checklist only. Do not put section names, CTA labels, owner instructions, or private notes here; not rendered directly."
},
"primaryGoal": {
"type": "string",
"description": "Planning context only. Not rendered directly as public page copy."
},
"publicPhone": {
"type": "string",
"description": "Public business phone number explicitly supplied by the user or a public source. Do not use the user's private/account phone."
},
"businessName": {
"type": "string"
},
"businessType": {
"type": "string",
"description": "Planning context only. Not rendered directly as public page copy."
},
"heroImageUrl": {
"type": "string",
"description": "Explicit user-provided image URL for featured-photo or full-image styles."
},
"sourceHandle": {
"type": "string"
},
"initialPrompt": {
"type": "string",
"maxLength": 12000
},
"preferredSlug": {
"type": "string",
"description": "Desired URL path. Ask the user for it near the end of onboarding. Use normal letters, numbers, and hyphens; the server normalizes and makes it unique."
},
"publicSections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"body": {
"type": "string",
"maxLength": 2000
},
"items": {
"type": "array",
"items": {
"type": "string",
"maxLength": 280
},
"maxItems": 12
},
"heading": {
"type": "string",
"maxLength": 160
},
"alignment": {
"enum": [
"left",
"center"
],
"type": "string"
}
},
"description": "Final-audience page copy. Use the page's target language and correct spelling/accents. Do not put planning notes, owner instructions, or section labels here.",
"additionalProperties": false
},
"maxItems": 3,
"description": "Final-audience text sections to render on the public page. Write in the target language with correct spelling/accents. Only include facts the user supplied or that came from an imported public source; for sparse prompts, keep this short and avoid invented service lists, hours, benefits, testimonials, prices, or operational details."
},
"publicWhatsapp": {
"type": "string",
"description": "Public WhatsApp phone number explicitly supplied by the user or a public source. Do not use the user's account phone or invent placeholder numbers."
},
"primaryActionId": {
"enum": [
"appointment",
"whatsapp",
"phone",
"maps",
"buy",
"lead",
"subscribe",
"follow"
],
"type": "string"
},
"fallbackLeadForm": {
"type": "object",
"required": [
"title",
"submitLabel"
],
"properties": {
"mode": {
"enum": [
"contact",
"booking_interest"
],
"type": "string"
},
"title": {
"type": "string",
"maxLength": 160
},
"fields": {
"type": "array",
"items": {
"enum": [
"name",
"email",
"phone",
"message",
"company"
],
"type": "string"
},
"maxItems": 5,
"minItems": 1
},
"consentText": {
"type": "string",
"maxLength": 400
},
"description": {
"type": "string",
"maxLength": 280
},
"fieldLabels": {
"type": "object",
"description": "Field labels/placeholders, for example name/email/message in the page's target language.",
"additionalProperties": {
"type": "string",
"maxLength": 120
}
},
"submitLabel": {
"type": "string",
"maxLength": 120
},
"successMessage": {
"type": "string",
"maxLength": 280
}
},
"description": "Public fallback contact/interest form to use when the requested primary action lacks a real destination. All copy must be final-audience copy in the page's target language.",
"additionalProperties": false
},
"onboardingLayout": {
"enum": [
"background_color",
"full",
"background_image"
],
"type": "string",
"description": "Layout style: background_color (minimalist), full (featured photo), or background_image (full image background)."
},
"primaryActionUrl": {
"type": "string",
"description": "Real destination URL for the primary action when explicitly supplied by the user or imported public source, such as a booking link. Do not invent booking/order URLs; if missing, ask for it or use fallbackLeadForm."
},
"onboardingPalette": {
"type": "string",
"description": "Palette id returned by page.onboarding.* paletteChoices, for example atom_dark_plum."
},
"primaryActionLabel": {
"type": "string",
"maxLength": 120,
"description": "Public label for the primary action in the page's target language."
},
"publicBusinessEmail": {
"type": "string",
"description": "Public business contact email explicitly supplied by the user or a public source. Do not use the user's ChatGPT/account email."
},
"onboardingSubCategory": {
"type": "string",
"description": "Validated atom.bio subcategory id, for example health."
},
"onboardingMainCategory": {
"type": "string",
"description": "Validated atom.bio category id from page.onboarding.*, for example physical-business or online-business."
}
},
"additionalProperties": false
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
Create Web Page
https://github.com/daniel-lopez-puig/landings
1/7 registries