Website: Create landing
website_create_landingCreate and PUBLISH a one-page landing site with a lead form for a business, from a few answers: what the business is, its services/products, optionally the city, contacts and a site whose look to take inspiration from. The page goes live on its own subdomain within about a minute (AI copy is refined in the background); leads from its form land in the CRM. Calling it again for the same business returns the existing page instead of a second one. NEVER call it to change a site the workspace already has (photos, text, contacts, look) — that is refused; use the website_* edit tools. style='premium' builds the premium design (paid workspaces; the result's 'premium' lists directions + palettes to offer). When the workspace's plan allows no more sites it creates nothing and returns 'upsell': the existing site and the plans that allow more. The result's 'classification' says which type the server picked ({archetype, name, confidence, uncertain, alternatives}); when 'uncertain' is true, ask the person «Схоже на: / <alternatives…> / Інше?» with buttons, and on another pick switch the site's template to it (content stays). Runs propose→confirm. CONFIRMATION: this tool is PROPOSED, never performed directly. You get status='confirmation_required' with an action_id and a plan_token, and the write happens only after confirm_action.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"business": "<business>",
"services": "<services>"
},
"name": "website_create_landing"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| team | No | Real team members the person named (never invent any). | |
| facts | No | Numbers the person stated about the business, e.g. {value: '12', label: 'років досвіду'}. The page shows a numbers block only from these. | |
| offer | No | The person's own offer in their words (a free trial, a first-visit price, warranty terms). Pass ONLY if they stated it; it is shown verbatim. | |
| style | No | 'premium' = the archetype's premium design (editorial type, premium palette, motion effects) — included with any paid plan or paid module; a free workspace gets status 'blocked' with 'premium_upsell' (the plans on sale). Omit for the standard design. Offer the choice using 'premium.choices' from a previous result. | |
| palette | No | A palette slug of the archetype (returned in 'palettes'); omit for the archetype's default. | |
| reviews | No | Real client reviews the person gave (never invent any). Without them the page's reviews block stays hidden until the owner adds real ones. | |
| business | Yes | The business the page is for, e.g. 'Кав'ярня «Зерно»'. | |
| contacts | No | Optional {phone, email, address, instagram, telegram, …}. Missing phone/email fall back to the workspace's and then the caller's. | |
| language | No | ||
| services | Yes | What it sells or does, one short label per item. Append a price ONLY when the person named one, e.g. 'Стрижка — від 500 грн'; never guess one. | |
| archetype | No | The page's structure, e.g. training, service, expert, event, product, marketing, beauty, hospitality, sport, tutor, home_repair, device_repair, cleaning, auto (the server lists all and refuses an unknown one). Omit to let the server pick from the answers; the chosen one is returned. | |
| direction | No | With style=premium: one of the archetype's premium directions ('premium.choices[].direction'); omit for the first. 'palette' then names one of that direction's palettes. | |
| old_price | No | A product's previous price, ONLY if the person stated it. | |
| style_url | No | A public https page whose look (colours, fonts, corner radius) the landing should take after. Only style is read, never text or images; it is applied in the background a minute or two after the page is live. |