Brand
Brand in Allpage: its screens, what you can do there and its operations.
Availability. Works when the business has it turned on and its plan includes it. Otherwise its tools answer needs (kind module) with how to turn it on: business.useTool, or a plan that includes it.
Screens
- Brand (/brand)
What you can do
- Change your brand: the assistant asks you first
- Go back to an earlier brand: the assistant asks you first
- Make a logo: the assistant asks you first
- Suggest brand colors: the assistant asks you first
- Suggest fonts: the assistant asks you first
- Suggest a look: the assistant asks you first
- Find your voice from your writing: the assistant asks you first
For apps
Tools
- brand_update (Change your brand): customers see it: waits for the owner’s approval unless they chose Just do it for your app
- brand_restore (Go back to an earlier brand): customers see it: waits for the owner’s approval unless they chose Just do it for your app
- brand_generateLogo (Make a logo): customers see it: waits for the owner’s approval unless they chose Just do it for your app
- brand_generatePalette (Suggest brand colors): customers see it: waits for the owner’s approval unless they chose Just do it for your app
- brand_generateType (Suggest fonts): customers see it: waits for the owner’s approval unless they chose Just do it for your app
- brand_suggestLook (Suggest a look): customers see it: waits for the owner’s approval unless they chose Just do it for your app
- brand_voiceFromSample (Find your voice from your writing): customers see it: waits for the owner’s approval unless they chose Just do it for your app
Reads
- brand_kit (Your brand kit)
- brand_history (Your brand’s history)
- brand_summary (What’s going on)
The owner’s screens
- Brand (/brand)
Operations
Each one's input and output, as JSON Schema. Ids are typed (typed ids).
brand.generateLogo
Make a logo
- Kind
- Change
- Tool
brand_generateLogo- Scope
brand:write- Reached by
- API, MCP, ChatGPT
customers see it: waits for the owner’s approval unless they chose Just do it for your app
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"idea": {
"default": "",
"description": "Anything the mark should suggest, in the owner’s words.",
"type": "string",
"maxLength": 200
},
"image": {
"description": "A logo image you already have: an uploaded image (/m/…) or an HTTPS link. Allpage uses it instead of drawing one.",
"type": "string",
"maxLength": 500
}
},
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}brand.generatePalette
Suggest brand colors
- Kind
- Change
- Tool
brand_generatePalette- Scope
brand:write- Reached by
- API, MCP, ChatGPT
customers see it: waits for the owner’s approval unless they chose Just do it for your app
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"idea": {
"default": "",
"description": "What the owner wants it to feel like, in their words.",
"type": "string",
"maxLength": 300
},
"palette": {
"description": "Colors you chose: a named palette (forest, clay, ocean, plum, ink) with \"\" for its own accent, or custom with an accent like #2f7d5b. Allpage uses them instead of suggesting its own.",
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"forest",
"clay",
"ocean",
"plum",
"ink",
"custom"
]
},
"accent": {
"type": "string"
},
"headings": {
"type": "string",
"enum": [
"ink",
"accent"
]
}
},
"required": [
"theme",
"accent"
],
"additionalProperties": false
}
},
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}brand.generateType
Suggest fonts
- Kind
- Change
- Tool
brand_generateType- Scope
brand:write- Reached by
- API, MCP, ChatGPT
customers see it: waits for the owner’s approval unless they chose Just do it for your app
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"idea": {
"default": "",
"description": "What the owner wants it to feel like, in their words.",
"type": "string",
"maxLength": 300
},
"type": {
"description": "The fonts you chose, by id: {\"heading\", \"body\"}. Curated pairs: cormorant + inter (Refined and quiet. Lets photos lead.); lora + inter (Calm and personal, a little literary.); playfair-display + dm-sans (Classic and confident.); fraunces + work-sans (Warm and friendly, with a little character.); eb-garamond + manrope (Bookish and elegant.); libre-baskerville + karla (Trustworthy and steady.); newsreader + nunito-sans (Soft and easy to read.); dm-serif-display + figtree (Bold serif headlines, relaxed text.); inter + inter (Crisp and direct, easy to scan on a phone.); space-grotesk + inter (Modern and precise.); outfit + outfit (Round and approachable.); syne + manrope (Artful and unexpected.); bricolage-grotesque + figtree (Playful and bold.); abril-fatface + outfit (Big, graphic headlines.). Display fonts (dm-serif-display, abril-fatface, syne, bricolage-grotesque) are for headings only. Allpage uses them instead of suggesting its own.",
"type": "object",
"properties": {
"heading": {
"type": "string",
"enum": [
"cormorant",
"playfair-display",
"fraunces",
"lora",
"eb-garamond",
"newsreader",
"libre-baskerville",
"dm-serif-display",
"abril-fatface",
"syne",
"bricolage-grotesque",
"inter",
"dm-sans",
"work-sans",
"manrope",
"outfit",
"nunito-sans",
"figtree",
"karla",
"space-grotesk"
]
},
"body": {
"type": "string",
"enum": [
"cormorant",
"playfair-display",
"fraunces",
"lora",
"eb-garamond",
"newsreader",
"libre-baskerville",
"inter",
"dm-sans",
"work-sans",
"manrope",
"outfit",
"nunito-sans",
"figtree",
"karla",
"space-grotesk"
]
}
},
"required": [
"heading",
"body"
],
"additionalProperties": false
}
},
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}brand.history
Your brand’s history
- Kind
- Read
- Tool
brand_history- Scope
brand:read- Reached by
- API, MCP, ChatGPT
Read-only.
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}Output
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {
"type": "object",
"properties": {
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^brv_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A brand version id: brv_ and 26 letters and digits."
},
"version": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"label": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"version",
"label",
"createdAt"
],
"additionalProperties": false
}
}
},
"required": [
"versions"
],
"additionalProperties": false
}
},
"required": [
"status",
"title",
"change",
"result"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "refused"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
},
"required": [
"status",
"title",
"change",
"message"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "needs"
},
"kind": {
"type": "string",
"enum": [
"module",
"portal",
"business",
"limit",
"paused",
"reauth"
]
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"status",
"kind",
"title",
"change",
"message"
],
"additionalProperties": {}
}
]
}brand.kit
Your brand kit
- Kind
- Read
- Tool
brand_kit- Scope
brand:read- Reached by
- API, MCP, ChatGPT
Read-only.
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}Output
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"kit": {
"type": "object",
"properties": {
"palette": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"forest",
"clay",
"ocean",
"plum",
"ink",
"custom"
]
},
"accent": {
"type": "string"
},
"headings": {
"default": "ink",
"type": "string",
"enum": [
"ink",
"accent"
]
}
},
"required": [
"theme",
"accent",
"headings"
],
"additionalProperties": false
},
"type": {
"type": "object",
"properties": {
"heading": {
"type": "string",
"enum": [
"cormorant",
"playfair-display",
"fraunces",
"lora",
"eb-garamond",
"newsreader",
"libre-baskerville",
"dm-serif-display",
"abril-fatface",
"syne",
"bricolage-grotesque",
"inter",
"dm-sans",
"work-sans",
"manrope",
"outfit",
"nunito-sans",
"figtree",
"karla",
"space-grotesk"
]
},
"body": {
"type": "string",
"enum": [
"cormorant",
"playfair-display",
"fraunces",
"lora",
"eb-garamond",
"newsreader",
"libre-baskerville",
"inter",
"dm-sans",
"work-sans",
"manrope",
"outfit",
"nunito-sans",
"figtree",
"karla",
"space-grotesk"
]
}
},
"required": [
"heading",
"body"
],
"additionalProperties": false
},
"logo": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"symbol",
"initials",
"image",
"none"
]
},
"symbol": {
"type": "string",
"enum": [
"flower",
"sun",
"leaf",
"waves",
"spark"
]
},
"text": {
"type": "string",
"maxLength": 3
},
"image": {
"type": "string",
"maxLength": 500
},
"alt": {
"type": "string",
"maxLength": 120
},
"variants": {
"type": "object",
"properties": {
"primary": {
"type": "string",
"maxLength": 500
},
"reversed": {
"type": "string",
"maxLength": 500
}
},
"additionalProperties": false
}
},
"required": [
"mode",
"symbol",
"text",
"image",
"alt",
"variants"
],
"additionalProperties": false
},
"imagery": {
"type": "string",
"maxLength": 400
},
"voice": {
"type": "object",
"properties": {
"tone": {
"type": "string",
"enum": [
"warm",
"direct",
"neutral"
]
},
"summary": {
"type": "string",
"maxLength": 600
},
"dos": {},
"donts": {}
},
"required": [
"tone",
"summary",
"dos",
"donts"
],
"additionalProperties": false
},
"copy": {
"type": "string",
"maxLength": 1500
},
"taglines": {},
"boilerplate": {
"type": "object",
"properties": {
"short": {
"type": "string",
"maxLength": 280
},
"long": {
"type": "string",
"maxLength": 1500
}
},
"required": [
"short",
"long"
],
"additionalProperties": false
}
},
"required": [
"palette",
"type",
"logo",
"imagery",
"voice",
"copy",
"taglines",
"boilerplate"
],
"additionalProperties": false
},
"colors": {
"type": "object",
"properties": {
"accent": {
"type": "string"
},
"paper": {
"type": "string"
},
"soft": {
"type": "string"
},
"ink": {
"type": "string"
}
},
"required": [
"accent",
"paper",
"soft",
"ink"
],
"additionalProperties": false
},
"version": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"on": {
"type": "boolean"
}
},
"required": [
"name",
"kit",
"colors",
"version",
"on"
],
"additionalProperties": false
}
},
"required": [
"status",
"title",
"change",
"result"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "refused"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
},
"required": [
"status",
"title",
"change",
"message"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "needs"
},
"kind": {
"type": "string",
"enum": [
"module",
"portal",
"business",
"limit",
"paused",
"reauth"
]
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"status",
"kind",
"title",
"change",
"message"
],
"additionalProperties": {}
}
]
}brand.restore
Go back to an earlier brand
- Kind
- Change
- Tool
brand_restore- Scope
brand:write- Reached by
- API, MCP, ChatGPT
customers see it: waits for the owner’s approval unless they chose Just do it for your app
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"versionId": {
"type": "string",
"pattern": "^brv_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A version from brand.history. A brand version id: brv_ and 26 letters and digits."
}
},
"required": [
"versionId"
],
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}brand.suggestLook
Suggest a look
- Kind
- Change
- Tool
brand_suggestLook- Scope
brand:write- Reached by
- API, MCP
customers see it: waits for the owner’s approval unless they chose Just do it for your app
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"idea": {
"default": "",
"description": "What the owner wants it to feel like, in their words.",
"type": "string",
"maxLength": 300
},
"palette": {
"description": "Colors you chose, as `brand.generatePalette` takes them.",
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"forest",
"clay",
"ocean",
"plum",
"ink",
"custom"
]
},
"accent": {
"type": "string"
},
"headings": {
"type": "string",
"enum": [
"ink",
"accent"
]
}
},
"required": [
"theme",
"accent"
],
"additionalProperties": false
},
"type": {
"description": "Fonts you chose, as `brand.generateType` takes them.",
"type": "object",
"properties": {
"heading": {
"type": "string",
"enum": [
"cormorant",
"playfair-display",
"fraunces",
"lora",
"eb-garamond",
"newsreader",
"libre-baskerville",
"dm-serif-display",
"abril-fatface",
"syne",
"bricolage-grotesque",
"inter",
"dm-sans",
"work-sans",
"manrope",
"outfit",
"nunito-sans",
"figtree",
"karla",
"space-grotesk"
]
},
"body": {
"type": "string",
"enum": [
"cormorant",
"playfair-display",
"fraunces",
"lora",
"eb-garamond",
"newsreader",
"libre-baskerville",
"inter",
"dm-sans",
"work-sans",
"manrope",
"outfit",
"nunito-sans",
"figtree",
"karla",
"space-grotesk"
]
}
},
"required": [
"heading",
"body"
],
"additionalProperties": false
}
},
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}brand.summary
What’s going on
- Kind
- Read
- Tool
brand_summary- Scope
brand:read- Reached by
- API, MCP
Read-only.
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}Output
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"facts": {
"type": "array",
"items": {
"type": "string"
},
"description": "One-line facts, e.g. \"3 bookings today\"."
},
"attention": {
"description": "Things that need the owner, each with a plain reason.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string"
},
"href": {
"type": "string"
}
},
"required": [
"id",
"text"
],
"additionalProperties": false
}
},
"happening": {
"description": "What’s on today, each at its time.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"at": {
"type": "number",
"description": "Epoch milliseconds."
},
"text": {
"type": "string"
},
"href": {
"type": "string"
}
},
"required": [
"id",
"at",
"text"
],
"additionalProperties": false
}
},
"metrics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"value": {
"type": "number"
},
"prior": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"count",
"money"
]
},
"href": {
"type": "string"
}
},
"required": [
"id",
"label",
"value"
],
"additionalProperties": false
}
}
},
"required": [
"title",
"facts"
],
"additionalProperties": false
}
},
"required": [
"status",
"title",
"change",
"result"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "refused"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
},
"required": [
"status",
"title",
"change",
"message"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "needs"
},
"kind": {
"type": "string",
"enum": [
"module",
"portal",
"business",
"limit",
"paused",
"reauth"
]
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"status",
"kind",
"title",
"change",
"message"
],
"additionalProperties": {}
}
]
}brand.update
Change your brand
- Kind
- Change
- Tool
brand_update- Scope
brand:write- Reached by
- API, MCP, ChatGPT
customers see it: waits for the owner’s approval unless they chose Just do it for your app
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"patch": {
"type": "object",
"properties": {
"palette": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"forest",
"clay",
"ocean",
"plum",
"ink",
"custom"
]
},
"accent": {
"type": "string"
},
"headings": {
"type": "string",
"enum": [
"ink",
"accent"
]
}
},
"additionalProperties": false
},
"type": {
"type": "object",
"properties": {
"heading": {
"type": "string",
"enum": [
"cormorant",
"playfair-display",
"fraunces",
"lora",
"eb-garamond",
"newsreader",
"libre-baskerville",
"dm-serif-display",
"abril-fatface",
"syne",
"bricolage-grotesque",
"inter",
"dm-sans",
"work-sans",
"manrope",
"outfit",
"nunito-sans",
"figtree",
"karla",
"space-grotesk"
]
},
"body": {
"type": "string",
"enum": [
"cormorant",
"playfair-display",
"fraunces",
"lora",
"eb-garamond",
"newsreader",
"libre-baskerville",
"inter",
"dm-sans",
"work-sans",
"manrope",
"outfit",
"nunito-sans",
"figtree",
"karla",
"space-grotesk"
]
}
},
"additionalProperties": false
},
"logo": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"symbol",
"initials",
"image",
"none"
]
},
"symbol": {
"type": "string",
"enum": [
"flower",
"sun",
"leaf",
"waves",
"spark"
]
},
"text": {
"type": "string",
"maxLength": 3
},
"image": {
"type": "string",
"maxLength": 500
},
"alt": {
"type": "string",
"maxLength": 120
},
"variants": {
"type": "object",
"properties": {
"primary": {
"type": "string",
"maxLength": 500
},
"reversed": {
"type": "string",
"maxLength": 500
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"imagery": {
"type": "string",
"maxLength": 400
},
"voice": {
"type": "object",
"properties": {
"tone": {
"type": "string",
"enum": [
"warm",
"direct",
"neutral"
]
},
"summary": {
"type": "string",
"maxLength": 600
},
"dos": {
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"maxLength": 140
}
},
"donts": {
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"maxLength": 140
}
}
},
"additionalProperties": false
},
"copy": {
"type": "string",
"maxLength": 1500
},
"taglines": {
"maxItems": 6,
"type": "array",
"items": {
"type": "string",
"maxLength": 120
}
},
"boilerplate": {
"type": "object",
"properties": {
"short": {
"type": "string",
"maxLength": 280
},
"long": {
"type": "string",
"maxLength": 1500
}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"description": "Only the sections and fields that change; lists are replaced whole."
},
"label": {
"type": "string",
"maxLength": 80
}
},
"required": [
"patch"
],
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}brand.voiceFromSample
Find your voice from your writing
- Kind
- Change
- Tool
brand_voiceFromSample- Scope
brand:write- Reached by
- API, MCP, ChatGPT
customers see it: waits for the owner’s approval unless they chose Just do it for your app
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"sample": {
"description": "Something the owner wrote: a post, an email, their about text.",
"type": "string",
"minLength": 40,
"maxLength": 4000
},
"voice": {
"description": "The voice you read from their writing: its tone (warm, direct or neutral), a sentence or two on how it sounds, and short lists of what to do and avoid. Allpage uses it instead of reading the sample itself.",
"type": "object",
"properties": {
"tone": {
"type": "string",
"enum": [
"warm",
"direct",
"neutral"
]
},
"summary": {
"type": "string",
"maxLength": 600
},
"dos": {
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"maxLength": 140
}
},
"donts": {
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"maxLength": 140
}
}
},
"required": [
"tone",
"summary",
"dos",
"donts"
],
"additionalProperties": false
}
},
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}