Build or confirm Brand Kit
Make an authorized change through your connected assistant.
outwrite_update_brand_setupoutwrite_update_brand_setup
Analyze a website, save or confirm the user's brand details, or finish a new brand setup. Requires this brand to be explicitly selected, its current selector epoch and saved revision. Analyze may spend the quoted brand-research rate. Read the saved research, preserve unknowns, and obtain the user's missing answers before confirming. Finish does not create a campaign or tracker. Requires explicit user intent, confirm:true, a UUID idempotencyKey and maximumCredits for this immediate action. Recurring settings require recurringConsent:true after the user approves their ongoing costs. Retry identical arguments with the same key; inspect an uncertain receipt before any new action.
Access and behavior
| Property | Value |
|---|---|
| Permission | pro:write |
| Effect | Can change your workspace |
Read the current workspace state before making a change. Respect the returned proposal, revision and operation state rather than assuming the request has finished.
Parameters
| Parameter | Required | Type | Details |
|---|---|---|---|
workspaceId | Optional | string | Format: uuid. |
action | Required | string | One of: analyze, save, confirm, finish. |
epoch | Required | integer | Minimum 0. Maximum 9007199254740991. |
revision | Required | integer | Minimum 0. Maximum 9007199254740991. |
draft | Optional | object | See the complete schema below. |
idempotencyKey | Required | string | Format: uuid. |
confirm | Required | boolean | Value: true. |
maximumCredits | Required | number | Minimum 0. Maximum 100000. |
recurringConsent | Optional | boolean | Default: false. |
Complete input schema
The schema is generated from the registered tool contract. Account permissions, revision checks and cross-field validation also apply on the server.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"action": {
"type": "string",
"enum": [
"analyze",
"save",
"confirm",
"finish"
]
},
"epoch": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"draft": {
"type": "object",
"properties": {
"website_url": {
"anyOf": [
{
"type": "string",
"const": ""
},
{
"type": "string",
"minLength": 1
}
]
},
"company_name": {
"default": "",
"type": "string",
"maxLength": 200
},
"description": {
"default": "",
"type": "string",
"maxLength": 4000
},
"target_audience": {
"default": "",
"type": "string",
"maxLength": 2000
},
"industry": {
"default": "",
"type": "string",
"maxLength": 200
},
"target_market": {
"default": null,
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"target_language": {
"default": "en",
"type": "string"
},
"brand_voice": {
"default": "Clear, helpful and specific",
"type": "string",
"maxLength": 2000
},
"priorities": {
"default": "",
"type": "string",
"maxLength": 2000
},
"source_rules": {
"default": "",
"type": "string",
"maxLength": 2000
},
"reference_notes": {
"default": "",
"type": "string",
"maxLength": 8000
},
"terms_to_use": {
"default": [],
"maxItems": 30,
"type": "array",
"items": {
"type": "string",
"maxLength": 100
}
},
"terms_to_avoid": {
"default": [],
"maxItems": 30,
"type": "array",
"items": {
"type": "string",
"maxLength": 100
}
},
"competitor_domains": {
"maxItems": 10,
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"pattern": "^[a-z0-9.-]+\\.[a-z]{2,}$"
},
{
"type": "string",
"const": ""
}
]
}
},
"weekly_pace": {
"default": 2,
"type": "integer",
"minimum": 1,
"maximum": 3
},
"timezone": {
"default": "America/New_York",
"type": "string"
},
"first_local": {
"default": "",
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$"
},
{
"type": "string",
"const": ""
}
]
},
"destination": {
"default": "draft",
"type": "string",
"enum": [
"draft",
"test",
"cms"
]
},
"review_policy": {
"default": "review_first",
"type": "string",
"const": "review_first"
}
},
"additionalProperties": false
},
"idempotencyKey": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"confirm": {
"type": "boolean",
"const": true
},
"maximumCredits": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"recurringConsent": {
"default": false,
"type": "boolean"
}
},
"required": [
"action",
"epoch",
"revision",
"idempotencyKey",
"confirm",
"maximumCredits"
],
"additionalProperties": false
}
Working safely
For an identical retry, reuse its idempotency key. If the saved state changed, read it again and prepare a new request. An operation that is queued or running is not complete.