Simulation Persona

Update a persona

Changed on

Updates an existing persona by its ID.

put/v1/persona/{personaId}

Request

  • Base URL
    https://api.roark.ai
  • URL
    https://api.roark.ai/v1/persona/{personaId}
  • Auth
    HTTP bearer

Path parameters

personaIdstring required

The ID of the persona to update

Request body

namestring

The name the agent will identify as during conversations

displayNamestring nullable

Label shown in place of the name across the dashboard (e.g. a short descriptor like "Irate Escalator"). The persona still identifies as name on calls. Omit or set null to display the name itself.

descriptionstring nullable

Human-readable description of the persona

language'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'

Primary language ISO 639-1 code for the persona

secondaryLanguage'EN' nullable

Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)

understoodLanguagesstring[]

Languages the persona can understand. Multilingual combinations are limited by multilingual speech recognition support.

accent'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL'

Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with optional variants

age'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'

How old the caller sounds and behaves. Only ages the persona's accent has a voice for are accepted; defaults to ADULT, which every accent supports.

gender'MALE' | 'FEMALE'

Gender of the persona

backgroundNoise'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'CONSTRUCTION' | 'CRYING_BABY' | 'DRIVING' | 'LIBRARY' | 'OFFICE' | 'THUNDERSTORM' | 'TRAIN'

Background noise setting

speechPace'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'

Speech pace of the persona

speechClarity'CLEAR' | 'VAGUE' | 'RAMBLING'

Speech clarity of the persona

hasDisfluenciesboolean

Whether the persona uses filler words like "um" and "uh"

baseEmotion'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD'

Base emotional state of the persona

intentClarity'CLEAR' | 'INDIRECT' | 'VAGUE'

How clearly the persona expresses their intentions

confirmationStyle'EXPLICIT' | 'VAGUE'

How the persona confirms information

memoryReliability'HIGH' | 'LOW'

How reliable the persona's memory is

responseTiming'RELAXED' | 'NORMAL' | 'QUICK' | 'BARGE_IN'

Deprecated and inert: it no longer affects the call. It set how long the persona waited once the agent stopped talking, and measured across production simulations it moved the reply gap by less than the noise floor, because model and speech latency dominate it. Every persona now uses one voice-activity profile. Use interruption for a caller who talks over the agent. Still accepted and stored so existing clients keep working. BARGE_IN is stored as responseTiming: QUICK with interruption: OCCASIONAL.

interruption'OFF' | 'BACKCHANNEL' | 'OCCASIONAL' | 'HEAVY'

How much the persona talks over the agent while it is still speaking. OFF waits its turn. BACKCHANNEL makes listening noises ("mm-hm") over the agent without taking the floor, which tests whether the agent wrongly stops for them. OCCASIONAL adds cutting in on some long agent turns, HEAVY on most of them. Timing is randomised per turn, so two runs of the same persona do not interrupt at identical moments.

backstoryPromptstring nullable

Background story and behavioral patterns for the persona

idleMessagesstring[] nullable

Messages the persona will say when the agent goes silent during a call. null = "Automatic": language-appropriate defaults are used at call time.

idleTimeoutSecondsinteger

Seconds of silence before the persona sends an idle message

idleMessageMaxSpokenCountinteger

Maximum number of idle messages the persona will send before giving up

idleMessageResetCountOnUserSpeechEnabledboolean

Whether the idle message counter resets when the agent speaks

propertiesobject

Additional custom properties about the persona

Example request

{
  "backstoryPrompt": "A busy professional calling during lunch break",
  "properties": {
    "age": 35,
    "zipCode": "94105",
    "occupation": "Software Engineer"
  }
}

Response

The updated persona

Example response

{
  "data": {
    "backstoryPrompt": "A busy professional calling during lunch break",
    "properties": {
      "age": 35,
      "zipCode": "94105",
      "occupation": "Software Engineer"
    },
    "phoneNumber": "+19312830919"
  }
}

Changes

    • info

      added the optional property / to the response with the status

    • info

      added the new optional request property

    • info

      added the required property / to the response with the status