Skip to main content
PATCH
Update AI receptionist configuration
Required scope: AGENTS_WRITE

Behavior

Updates any part of the receptionist’s configuration except the prompt and the on/off status. Returns the whole configuration after the write, in the same shape as Get configuration. Two merge rules apply:
  • Single values are merged. name, the business details, language, voice_id, greeting_message, closing_message, tone_of_voice, answer_type and knowledge.text keep their current value when you omit them.
  • Collections are replaced. capabilities, business_hours, transfer_rules and scheduling.calendars are complete sets. Send one and it replaces what was configured, omit it and it is left alone.
To add one transfer rule, read the existing rules first and send them back with the new one. To keep a capability on, include it in every capabilities map you send. A field this endpoint does not declare is rejected with 400 UNKNOWN_FIELD, including read-only ones such as custom_prompt, prompt_metadata and status. Nothing is dropped in silence.

Transfer rules

description is the field that decides whether a transfer works. The receptionist matches what the caller says they want against this text, so write it as the caller’s reason (“billing or invoice questions”, “wants to book a repair”), not as an instruction to the receptionist. Each rule needs the target its type implies: Point the target at somewhere other than the line you are configuring. A rule that sends the caller back to the same line hands them to the receptionist that just transferred them, and the call loops. The API accepts such a rule, so this one is on you to avoid. Rules are recreated on every write, so an error names the entry that failed by its index, for example transfer_rules[1].description.

Business hours

schedule is required whenever you send business_hours. Times are seconds since midnight, so 9am to 5pm is 32400 to 61200, and a day left out of the list is closed.

Scheduling calendars

scheduling.calendars is a map keyed by a calendar id from List calendars. A calendar the receptionist does not have yet is linked to it, one mapped to [] stays linked with no event type selected, and one left out of the map loses access. Event types come from Get a calendar. Send id, slug, title and length_in_minutes back as they were read, and add your own description to say when the receptionist should book that one rather than another. Connecting a calendar to the workspace is an OAuth flow, done in the Allo app. This endpoint chooses among the connections that already exist.

Field limits

Errors

  • 400 UNKNOWN_FIELD: a field this endpoint does not accept, named in param.
  • 400 INVALID_REQUEST_BODY: a declared field failed validation. The failing field is in errors[].
  • 400 MISSING_FIELD: a required part of a collection is missing, named in param.
  • 400 INVALID_AGENT_LANGUAGE / 400 INVALID_AGENT_CAPABILITY: an unknown value. The allowed ones are listed in the message.
  • 400 INVALID_TIMEZONE: business_hours.timezone is not an IANA identifier.
  • 400 INVALID_PHONE_NUMBER: business_phone is not a usable number.
  • 400 AGENT_TRANSFER_RULE_TARGET_REQUIRED: a rule is missing the target its type requires.
  • 403 AGENT_TRANSFER_RULE_MEMBER_NO_LINE_ACCESS: the target teammate has no access to this line.
  • 404 AGENT_VOICE_NOT_FOUND: no voice with that voice_id. List them with List voices.
  • 404 AGENT_CALENDAR_NOT_FOUND: a calendar id in the map is not one you can see.
  • 404 PHONE_NUMBER_NOT_FOUND: the number is not one you have access to.

Authorizations

Authorization
string
header
required

Path Parameters

number
string
required

Allo phone number in E.164 format

Example:

"+14155551234"

Body

application/json

Two merge rules apply. Single values are merged: omit one and it keeps its current value. The collections capabilities, business_hours, transfer_rules and scheduling.calendars are complete sets: send one and it replaces what was configured, omit it and it is left alone. An undeclared field is rejected with 400 UNKNOWN_FIELD rather than ignored.

name
string
Maximum string length: 64
Example:

"Maya"

business_name
string
Maximum string length: 64
Example:

"Acme Plumbing"

business_address
string
Maximum string length: 255
business_phone
string

E.164 format.

Maximum string length: 64
Example:

"+14155551234"

business_email
string
Maximum string length: 64
business_website
string
Maximum string length: 64
business_industry
string
Maximum string length: 64
language
enum<string>
Available options:
fr,
fr-CA,
en-US,
en-GB,
es,
de,
hr
Example:

"en-US"

voice_id
string

An id from GET /v2/api/voices, listed under the receptionist's language.

Example:

"maya"

greeting_message
string
Maximum string length: 1000
closing_message
string
Maximum string length: 1000
tone_of_voice
enum<string>
Available options:
FRIENDLY,
PROFESSIONAL,
NEUTRAL,
ENTHUSIASTIC
answer_type
enum<string>
Available options:
CONCISE,
STANDARD,
DETAILED
capabilities
object

The complete set of toggles. A capability left out of the map is turned off, so read the current ones first and send them all back.

Example:
business_hours
object

Replaces the whole week. schedule is required when this key is sent.

transfer_rules
object[]

Replaces the whole rule set. Send [] to remove every rule.

scheduling
object
knowledge
object

Only the free-text knowledge is writable here. Websites and files have their own endpoints.

Response

The configuration after the write

data
object

The whole configuration of one line's AI receptionist.