persona_get
Fetch one of a brand's personas — who it is talking to, in their own words — so an agent can write for someone in particular.
Fetches a single Persona by the pair that addresses it: its Brand’s slug and its own.
A Persona is an audience archetype — who a brand is talking to. It is the counterpart to the Brand’s own sections, which say who it is talking as. Discover a brand’s personas with brand_get; there is no separate list tool, because the brand bundle already carries them.
Input
| Field | Type | Required | Description |
|---|---|---|---|
brand_name |
string |
yes | The slug of the brand that owns the persona. |
persona_name |
string |
yes | The persona slug. Unique within its brand, so it must be paired with brand_name. |
Output
{ persona }, carrying slug, name, description, revision, the age range, and four context sections:
| Section | What belongs in it |
|---|---|
profile |
Who they are: life stage, situation, role, context |
motivations |
What they want: jobs to be done, triggers, outcomes |
frictions |
What stops them: objections, doubts, perceived risk |
language |
The words they use for the problem — their verbatims |
Each section is free-form markdown and independently optional — one you haven’t written is null, which is normal rather than an error.
ageMin and ageMax are independently nullable: ageMin alone means “and older”, ageMax alone means “and younger”, and both null means the persona is not defined by age at all.
`language` is not a locale
Despite the name, language holds voice-of-customer wording — how this
audience describes the problem in their own register (“my knees are shot by
mile 18”), not a language setting like en-GB. It is the raw material for
copy that sounds like the reader rather than like the brand.
Example
“Write three ad headlines for Acme Running, aimed at Marathon Maya.”
persona_get({ brand_name: 'acme-running', persona_name: 'marathon-maya' });
// → { persona: { slug: 'marathon-maya', ageMin: 30, ageMax: 44,
// frictions: 'Thinks carbon plates are a gimmick…', … } }
The agent reads frictions and language alongside the brand’s voice, so the headline answers a real objection in words the reader would use.
Keep the revision
If you intend to edit the Persona, hold onto revision — pass it as
base_revision to persona_update or
persona_delete so a concurrent change can’t be
silently overwritten.
Requires the brand:read scope — a persona is part of its brand’s context, not a separate permission.