update_template
Create or update a sub-account's custom template for a channel and message type, replacing the default for that sub-account only. Name the brand with {{business_name}}: a template spelling out a sub-account's own name is refused (template_hardcoded_name). A template for a channel and message type no message is sent for, or using a variable that message never fills, is still saved, with an entry in warnings (template_not_sent / template_variable_not_filled) saying why it will not be sent as written (an API that predates warnings omits the field).
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool.
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": {
"channel": "<channel>",
"message_type": "<message_type>",
"body": "<body>"
},
"name": "update_template"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Template body text with variable placeholders | |
| channel | Yes | Message channel | |
| subject | No | Email subject line (email channel only) | |
| profile_id | No | The sub-account to act on; omitted → your key's sub-account, or the primary sub-account for an account-wide key | |
| button_text | No | Button text (email channel only) | |
| message_type | Yes | Message type (e.g. verification_request, login_request) | |
| button_url_template | No | Button URL template with placeholders |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| success | No | ||
| template | No | Message template | |
| warnings | No | Why this template would never be sent as written; empty when it would be. Always sent; absent from an API that predates it. |