Brand
Entry point, profile, contact and soul.
Privacy and analytics
We use necessary technical cookies and, only with your consent, analytics and marketing pixels to improve the website and measure campaigns.
Entry point, profile, contact and soul.
Call first in every conversation. Returns the brand name and short id, plan, Brand Manager, active work and pending task counts, and the capabilities the caller may use in this brand.
| Field | Value |
|---|---|
| Kind | Read |
| HTTP method | POST /api/v1/brand.overview |
| MCP tool | brand_overview |
| Scope | brand.read |
| Minimum role | Viewer |
| Human confirmation | No |
| Doors | Nödo, Voice, MCP, API |
| Status | Planned |
| Widget | record |
Input
{}Output
{
id: string // uuid
shortId: string // Human id such as WP-121.
name: string
plan: string | null
manager: {
id: string // uuid
name: string
avatarUrl: string | null
}
| null
counts: {
activeWorks: integer // -9007199254740991–9007199254740991
pendingTasks: integer // -9007199254740991–9007199254740991
pendingMemory: integer // -9007199254740991–9007199254740991
}
role: string | null // Brand role of the caller, or null for staff.
capabilities: string[] // Capability ids the caller may use here.
}The brand voice compiled from the accepted Genome: tone, archetypes, vocabulary, guardrails, locales and on/off-brand examples. Use it before writing or creating anything on behalf of the brand; missing sections are listed in gaps so you ask instead of guessing.
| Field | Value |
|---|---|
| Kind | Read |
| HTTP method | POST /api/v1/brand.soul.read |
| MCP tool | brand_soul_read |
| Scope | brand.read |
| Minimum role | Viewer |
| Human confirmation | No |
| Doors | Nödo, Voice, MCP, API |
| Status | Planned |
Input
{}Output
{
revision: integer // -9007199254740991–9007199254740991
genomeRevision: integer // -9007199254740991–9007199254740991 · Accepted Genome revision it was compiled from.
compiledAt: string
voice: {
summary: string // ≤ 600
tone: Array<{
axis: string
position: number // -2–2
}> // ≤ 6 items · e.g. formal(-2)…casual(+2).
traits: string[] // ≤ 8 items
archetypes: string[] // ≤ 3 items
}
vocabulary: {
use: string[] // ≤ 30 items
avoid: string[] // ≤ 30 items
}
guardrails: string[] // ≤ 15 items
audiences: string[] // ≤ 6 items
locales: Array<{
locale: string
notes: string // ≤ 300
}> // ≤ 8 items
examples: Array<{
onBrand: string
offBrand: string
}> // ≤ 10 items
gaps: string[] // Genome sections missing or unaccepted; Nödo asks instead of guessing.
}Changes display name, country, city, organization type or primary language. Written to the Genome with an optimistic revision check; send the revision from brand.overview or genome.read.
| Field | Value |
|---|---|
| Kind | Write |
| HTTP method | POST /api/v1/brand.profile.update |
| MCP tool | brand_profile_update |
| Scope | brand.write |
| Minimum role | Admin |
| Human confirmation | Yes |
| Doors | Nödo, MCP, API |
| Status | Planned |
| Widget | confirm |
Input
{
expectedRevision: integer // -9007199254740991–9007199254740991
displayName?: string // ≤ 120
countryCode?: string // ≤ 2
city?: string // ≤ 120
organizationType?: string // ≤ 40
primaryLanguage?: string // ≤ 12
}Output
{
ok: true
id?: string
revision?: integer // -9007199254740991–9007199254740991
}Public channels of the brand: website, email, phone and social profiles.
| Field | Value |
|---|---|
| Kind | Read |
| HTTP method | POST /api/v1/brand.contacts.list |
| MCP tool | brand_contacts_list |
| Scope | brand.read |
| Minimum role | Admin |
| Human confirmation | No |
| Doors | Nödo, Voice, MCP, API |
| Status | Planned |
| Widget | list |
Input
{}Output
{
items: Array<{
id: string // uuid
type: "website" | "email" | "phone" | "whatsapp" | "instagram" | "facebook" | "linkedin" | "tiktok" | "x" | "youtube" | "pinterest" | "other"
value: string
label: string | null
}>
}Adds, changes or removes one public channel. Values are normalized and checked per type; duplicates are rejected.
| Field | Value |
|---|---|
| Kind | Write |
| HTTP method | POST /api/v1/brand.contacts.save |
| MCP tool | brand_contacts_save |
| Scope | brand.write |
| Minimum role | Admin |
| Human confirmation | Yes |
| Doors | Nödo, MCP, API |
| Status | Planned |
| Widget | confirm |
Input
{
op: "upsert"
id?: string // uuid
type: "website" | "email" | "phone" | "whatsapp" | "instagram" | "facebook" | "linkedin" | "tiktok" | "x" | "youtube" | "pinterest" | "other"
value: string // ≤ 500
label?: string // ≤ 80
}
| {
op: "delete"
id: string // uuid
}Output
{
ok: true
id?: string
revision?: integer // -9007199254740991–9007199254740991
}Updated on January 1, 1970