Tone Guide
The tone guide enables teams to define and govern a project's Brand Voice/Tone Guide as a first-class configuration object that reliably shapes AI responses and content operations. We'll look at how to query, create and update the tone guide.
The tone guide model
The tone guide model contains all the information about your groups, including what contacts are in the group and the group's name, description, and avatar.
Properties
- Name
id- Type
- uuid
- Description
Unique identifier for the tone guide.
- Name
project_id- Type
- uuid
- Description
The project identifier for the tone guide.
- Name
title- Type
- string
- Description
The title for the tone guide, defaults to "Brand Voice".
- Name
status- Type
- string
- Description
The lifecycle state of the tone guide, one of
draft,in_review,approved,deprecated.
- Name
tone_profile- Type
- jsonb
- Description
Structured JSON describing the tone guide.
- Name
system_prompt- Type
- string
- Description
Compiled prompt for use by the AI, can be provided or generated from
tone_profile.
- Name
version- Type
- number
- Description
The version of the tone guide.
- Name
created_at- Type
- timestamp
- Description
Timestamp of when the tone guide was created.
- Name
created_by- Type
- uuid
- Description
Identifier of the user that created the tone guide.
- Name
updated_at- Type
- timestamp
- Description
Timestamp of when the tone guide was updated.
- Name
updated_by- Type
- uuid
- Description
Identifier of the user that updated the tone guide.
- Name
approved_at- Type
- timestamp
- Description
Timestamp of when the tone guide was approved.
- Name
approved_by- Type
- uuid
- Description
Identifier of the user that approved the tone guide.
List all tone guides
This endpoint allows you to retrieve a paginated list of all your tone guides. By default, a maximum of ten are returned.
Request
curl -G https://caruuto.com/api/ai/tone-guides \
-H "Authorization: Api-Key-v1 {apiKey}" \
-d limit=10
Response
{
"results": [
{
"id": "7fd4998d-e540-4db2-b9f0-a522963ee4a6",
"project_id": "7febed50-94f5-4eea-a404-6e72753bf61d",
"title": "Brand Voice",
"status": "approved",
"version": 1,
"system_prompt": "",
"tone_profile": {
"brand_personality": ["confident", "precise", "warm"],
"voice_principles": [
{"do": "Use short, declarative sentences", "because": "premium clarity"},
{"dont": "Over-explain or sound apologetic"}
],
"reading_level": "intelligent_nontechnical",
"style_rules": {
"formality": "high",
"humour": "dry",
"verbosity": "concise",
"use_oxford_comma": true
},
"lexicon": {
"preferred_terms": ["member", "atelier", "bespoke"],
"avoid_terms": ["cheap", "budget", "deal"]
},
"response_patterns": {
"always_include": ["next step suggestion"],
"never_include": ["internal policy", "competitor comparisons"]
},
"examples": [
{"bad": "Hey guys! Super excited...", "good": "Welcome. Here’s what matters..."}
],
"created_at": "2026-02-03 02:09:40.619645+00",
"created_by" "e19303bc-8e10-4236-9a1b-48d79652a001"
}
},
{
"id": "e19303bc-8e10-4236-9a1b-48d79652a002",
// ...
}
]
}
Create a group
This endpoint allows you to create a new group conversation between you and a group of your Protocol contacts.
Required attributes
- Name
name- Type
- string
- Description
The name for the group.
Optional attributes
- Name
description- Type
- string
- Description
The description for the group.
- Name
avatar_url- Type
- string
- Description
The avatar image URL for the group.
- Name
contacts- Type
- array
- Description
An array of contact objects that are members of the group.
Request
curl https://api.protocol.chat/v1/groups \
-H "Authorization: Bearer {token}" \
-d name="Plaza Hotel"
Response
{
"id": "l7cGNIBKZiNJ6wqF",
"name": "Plaza Hotel",
"description": null,
"avatar_url": null,
"conversation_id": "ZYjVAbCE9g5XRlra",
"contacts": [],
"created_at": 692233200,
"archived_at": null
}
Retrieve a group
This endpoint allows you to retrieve a group by providing the group id. Refer to the list at the top of this page to see which properties are included with group objects.
Request
curl https://api.protocol.chat/v1/groups/L7cGNIBKZiNJ6wqF \
-H "Authorization: Bearer {token}"
Response
{
"id": "l7cGNIBKZiNJ6wqF",
"name": "Plaza Hotel",
"description": "World-renowned.",
"avatar_url": "https://assets.protocol.chat/avatars/plazahotel.jpg",
"conversation_id": "ZYjVAbCE9g5XRlra",
"contacts": [
{
"username": "Hector"
// ...
},
{
"username": "Cedric"
// ...
},
{
"username": "Hester"
// ...
},
{
"username": "Cliff"
// ...
}
],
"created_at": 692233200,
"archived_at": null
}
Update a group
This endpoint allows you to perform an update on a group. Examples of updates are changing the name, description, and avatar or adding and removing contacts from the group.
Optional attributes
- Name
name- Type
- string
- Description
The new name for the group.
- Name
description- Type
- string
- Description
The new description for the group.
- Name
avatar_url- Type
- string
- Description
The new avatar image URL for the group.
- Name
contacts- Type
- array
- Description
An array of contact objects that are members of the group.
- Name
archived_at- Type
- timestamp
- Description
Timestamp of when the group was archived.
Request
curl -X PUT https://api.protocol.chat/v1/groups/L7cGNIBKZiNJ6wqF \
-H "Authorization: Bearer {token}" \
-d description="The finest in New York."
Response
{
"id": "l7cGNIBKZiNJ6wqF",
"name": "Plaza Hotel",
"description": "The finest in New York.",
"avatar_url": "https://assets.protocol.chat/avatars/plazahotel.jpg",
"conversation_id": "ZYjVAbCE9g5XRlra",
"contacts": [
{
"username": "Hector"
// ...
},
{
"username": "Cedric"
// ...
},
{
"username": "Hester"
// ...
},
{
"username": "Cliff"
// ...
}
],
"created_at": 692233200,
"archived_at": null
},
Delete a group
This endpoint allows you to delete groups. Note: This will permanently delete the group, including the messages — archive it instead if you want to be able to restore it later.
Request
curl -X DELETE https://api.protocol.chat/v1/groups/L7cGNIBKZiNJ6wqF \
-H "Authorization: Bearer {token}"
