Updates any part of the configuration except the prompt and the on/off status. Single values are merged, collections are replaced. This does not put the receptionist on the line: that is PUT /v2/api/numbers/{number}/agent/status.
PATCH
/
v2
/
api
/
numbers
/
{number}
/
agent
Update AI receptionist configuration
curl --request PATCH \ --url https://api.withallo.com/v2/api/numbers/{number}/agent \ --header 'Authorization: <api-key>' \ --header 'Content-Type: application/json' \ --data '{ "name": "Maya", "business_name": "Acme Plumbing", "business_address": "<string>", "business_phone": "+14155551234", "business_email": "<string>", "business_website": "<string>", "business_industry": "<string>", "language": "en-US", "voice_id": "maya", "greeting_message": "<string>", "closing_message": "<string>", "capabilities": { "SCHEDULING": true, "CALL_TRANSFER": true, "WARM_TRANSFER": false }, "transfer_rules": [ { "description": "Billing or invoice questions", "transfer_message": "Let me put you through to billing.", "target_number": "+14155551234", "target_member_id": "<string>", "target_line_number": "<string>" } ], "scheduling": { "calendars": {} }, "knowledge": { "text": "We serve the Austin metro area and open at 7am." }}'
import requests
url = "https://api.withallo.com/v2/api/numbers/{number}/agent"
payload = {
"name": "Maya",
"business_name": "Acme Plumbing",
"business_address": "<string>",
"business_phone": "+14155551234",
"business_email": "<string>",
"business_website": "<string>",
"business_industry": "<string>",
"language": "en-US",
"voice_id": "maya",
"greeting_message": "<string>",
"closing_message": "<string>",
"capabilities": {
"SCHEDULING": True,
"CALL_TRANSFER": True,
"WARM_TRANSFER": False
},
"transfer_rules": [
{
"description": "Billing or invoice questions",
"transfer_message": "Let me put you through to billing.",
"target_number": "+14155551234",
"target_member_id": "<string>",
"target_line_number": "<string>"
}
],
"scheduling": { "calendars": {} },
"knowledge": { "text": "We serve the Austin metro area and open at 7am." }
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)
const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Maya',
business_name: 'Acme Plumbing',
business_address: '<string>',
business_phone: '+14155551234',
business_email: '<string>',
business_website: '<string>',
business_industry: '<string>',
language: 'en-US',
voice_id: 'maya',
greeting_message: '<string>',
closing_message: '<string>',
capabilities: {SCHEDULING: true, CALL_TRANSFER: true, WARM_TRANSFER: false},
transfer_rules: [
{
description: 'Billing or invoice questions',
transfer_message: 'Let me put you through to billing.',
target_number: '+14155551234',
target_member_id: '<string>',
target_line_number: '<string>'
}
],
scheduling: {calendars: {}},
knowledge: {text: 'We serve the Austin metro area and open at 7am.'}
})
};
fetch('https://api.withallo.com/v2/api/numbers/{number}/agent', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
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.
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:
Type
Required field
Goes to
EXTERNAL_NUMBER
target_number
Any phone number, in E.164 format
MEMBER
target_member_id
A teammate, by their id from GET /v2/api/users
INBOX
target_line_number
Another of your Allo numbers
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.
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 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.
knowledge.text is deprecated. Add websites with Add website knowledge instead.It still works. Allo stores it as a text source named “Business knowledge” in your team’s knowledge library, used by this line. Sending a different text edits that same source, and an empty string turns it off for this line.
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.
The whole configuration of one line's AI receptionist.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Allo — Help Center","description":"Documentation and support for Allo, the business phone system that does the work your calls create","colors":{"primary":"#002C2A","light":"#F7F5F0","dark":"#005C48"},"logo":{"light":"https://mintcdn.com/themobilefirstcompany/lUQseAX2HkM5_D4I/Allo-logo-dark.svg?fit=max\u0026auto=format\u0026n=lUQseAX2HkM5_D4I\u0026q=85\u0026s=fc710c4b2d7fad80babb5aff40fd445f","dark":"https://mintcdn.com/themobilefirstcompany/lUQseAX2HkM5_D4I/Allo-logo-white.svg?fit=max\u0026auto=format\u0026n=lUQseAX2HkM5_D4I\u0026q=85\u0026s=6aafc66adc4822b700749ea65edfd057","href":"https://help.withallo.com"},"favicon":"https://mintcdn.com/themobilefirstcompany/rQqa1VZUBtU6450W/icon.ico?fit=max\u0026auto=format\u0026n=rQqa1VZUBtU6450W\u0026q=85\u0026s=93c598907844385de27769ff740b1660","appearance":{"default":"light","strict":true},"background":{"color":{"dark":"#002C2A"}},"navbar":{"links":[{"href":"https://withallo.com/changelog","label":"Changelog"},{"href":"https://withallo.com/download","label":"Download"}],"primary":{"type":"button","label":"Get Started","href":"https://start.withallo.com"}},"footer":{"socials":{"x":"https://x.com/mobilefirstco","linkedin":"https://www.linkedin.com/company/the-mobile-first-company","website":"https://withallo.com"},"links":[{"header":"Product","items":[{"label":"Pricing","href":"https://withallo.com/pricing"},{"label":"Download","href":"https://withallo.com/download"},{"label":"Features","href":"https://withallo.com/features"}]},{"header":"Resources","items":[{"label":"Help Center","href":"https://help.withallo.com"},{"label":"Contact Support","href":"https://help.withallo.com/en/support/contact"},{"label":"System status","href":"https://status.withallo.com"},{"label":"Trust center","href":"https://trust.themobilefirstcompany.com/"}]},{"header":"Company","items":[{"label":"About","href":"https://withallo.com/about"},{"label":"Blog","href":"https://withallo.com/blog"}]},{"header":"Legal","items":[{"label":"Privacy Policy","href":"https://withallo.com/privacy-policy"},{"label":"Terms of Service","href":"https://withallo.com/terms-conditions"},{"label":"Trust Center","href":"https://trust.themobilefirstcompany.com"}]}]},"search":{"prompt":"Search documentation..."},"seo":{"metatags":{"canonical":"https://help.withallo.com","og:locale":"en_US","twitter:site":"@mobilefirstco"}},"icons":{"library":"lucide"},"integrations":{"ga4":{"measurementId":"G-BJ9CLYY37R"},"intercom":{"appId":"q4vb84fg"},"telemetry":{"enabled":true}},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"thumbnails":{"fonts":{"family":"Inter"}},"interaction":{"drilldown":false},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","navbar":{"links":[{"href":"/en/support/contact","label":"Contact support"},{"href":"https://withallo.com/changelog","label":"Changelog"},{"href":"https://withallo.com/download","label":"Download"}],"primary":{"type":"button","label":"Get Started","href":"https://start.withallo.com"}},"href":"en/get-started"},{"language":"fr","navbar":{"links":[{"href":"/fr/support/contact","label":"Contacter le support"},{"href":"https://withallo.com/changelog","label":"Changelog"},{"href":"https://withallo.com/download","label":"Download"}],"primary":{"type":"button","label":"Get Started","href":"https://start.withallo.com"}},"href":"fr/get-started"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"themobilefirstcompany","hasAudioNarration":false,"actualSubdomain":"themobilefirstcompany","customDomains":["help.withallo.com"],"gitSource":{"type":"github","owner":"themobilefirstco","repo":"doc-allo","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af36fc57cffc54e04797e8e","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"en","tag":"API Reference","count":146},{"language":"fr","tag":"Référence API","count":146},{"language":"en","tag":"Help","count":110},{"language":"fr","tag":"Aide","count":110},{"language":"en","tag":"Integrations","count":45},{"language":"fr","tag":"Intégrations","count":45},{"language":"en","tag":"CRM","count":23},{"language":"fr","tag":"CRM","count":23},{"language":"fr","tag":"Numéros de téléphone","count":15},{"language":"en","tag":"Partner","count":14},{"language":"fr","tag":"Partner","count":14},{"language":"en","tag":"Webhooks","count":13},{"language":"fr","tag":"Webhooks","count":13},{"language":"en","tag":"AI Receptionist","count":12},{"language":"fr","tag":"Réceptionniste IA","count":12},{"language":"en","tag":"Incoming calls","count":11},{"language":"fr","tag":"Appels entrants","count":11},{"language":"en","tag":"SMS","count":10},{"language":"en","tag":"Conversations","count":10},{"language":"fr","tag":"SMS","count":10}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"en/v2/api-reference/agent/update-agent","slug":"/en/v2/api-reference/agent/update-agent","pageMetadata":{"title":"Update configuration","openapi":"PATCH /v2/api/numbers/{number}/agent","description":"Updates any part of the configuration except the prompt and the on/off status. Single values are merged, collections are replaced. This does not put the receptionist on the line: that is `PUT /v2/api/numbers/{number}/agent/status`.","href":"/en/v2/api-reference/agent/update-agent"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Updates any part of the configuration except the prompt and the on/off status. Single values are merged, collections are replaced. This does not put the receptionist on the line: that is \", _jsx(_components.code, {\n children: \"PUT /v2/api/numbers/{number}/agent/status\"\n }), \".\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required scope:`}),` `,_jsx(_components.code,{children:`AGENTS_WRITE`})]})}),`\n`,_jsx(Heading,{level:`2`,id:`behavior`,children:`Behavior`}),`\n`,_jsxs(_components.p,{children:[`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 `,_jsx(_components.a,{href:`/en/v2/api-reference/agent/get-agent`,children:`Get configuration`}),`.`]}),`\n`,_jsx(_components.p,{children:`Two merge rules apply:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Single values are merged.`}),` `,_jsx(_components.code,{children:`name`}),`, the business details, `,_jsx(_components.code,{children:`language`}),`, `,_jsx(_components.code,{children:`voice_id`}),`, `,_jsx(_components.code,{children:`greeting_message`}),`, `,_jsx(_components.code,{children:`closing_message`}),`, `,_jsx(_components.code,{children:`tone_of_voice`}),`, `,_jsx(_components.code,{children:`answer_type`}),` and `,_jsx(_components.code,{children:`knowledge.text`}),` keep their current value when you omit them.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Collections are replaced.`}),` `,_jsx(_components.code,{children:`capabilities`}),`, `,_jsx(_components.code,{children:`business_hours`}),`, `,_jsx(_components.code,{children:`transfer_rules`}),` and `,_jsx(_components.code,{children:`scheduling.calendars`}),` are complete sets. Send one and it replaces what was configured, omit it and it is left alone.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`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 `,_jsx(_components.code,{children:`capabilities`}),` map you send.`]}),`\n`,_jsxs(_components.p,{children:[`A field this endpoint does not declare is rejected with `,_jsx(_components.code,{children:`400 UNKNOWN_FIELD`}),`, including read-only ones such as `,_jsx(_components.code,{children:`custom_prompt`}),`, `,_jsx(_components.code,{children:`prompt_metadata`}),` and `,_jsx(_components.code,{children:`status`}),`. Nothing is dropped in silence.`]}),`\n`,_jsx(Heading,{level:`2`,id:`transfer-rules`,children:`Transfer rules`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`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.`]}),`\n`,_jsxs(_components.p,{children:[`Each rule needs the target its `,_jsx(_components.code,{children:`type`}),` implies:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required field`}),_jsx(_components.th,{children:`Goes to`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`EXTERNAL_NUMBER`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`target_number`})}),_jsx(_components.td,{children:`Any phone number, in E.164 format`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`MEMBER`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`target_member_id`})}),_jsxs(_components.td,{children:[`A teammate, by their id from `,_jsx(_components.code,{children:`GET /v2/api/users`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`INBOX`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`target_line_number`})}),_jsx(_components.td,{children:`Another of your Allo numbers`})]})]})]}),`\n`,_jsx(_components.p,{children:`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.`}),`\n`,_jsxs(_components.p,{children:[`Rules are recreated on every write, so an error names the entry that failed by its index, for example `,_jsx(_components.code,{children:`transfer_rules[1].description`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`business-hours`,children:`Business hours`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`schedule`}),` is required whenever you send `,_jsx(_components.code,{children:`business_hours`}),`. Times are seconds since midnight, so 9am to 5pm is `,_jsx(_components.code,{children:`32400`}),` to `,_jsx(_components.code,{children:`61200`}),`, and a day left out of the list is closed.`]}),`\n`,_jsx(Heading,{level:`2`,id:`scheduling-calendars`,children:`Scheduling calendars`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`scheduling.calendars`}),` is a map keyed by a calendar `,_jsx(_components.code,{children:`id`}),` from `,_jsx(_components.a,{href:`/en/v2/api-reference/agent/list-calendars`,children:`List calendars`}),`. A calendar the receptionist does not have yet is linked to it, one mapped to `,_jsx(_components.code,{children:`[]`}),` stays linked with no event type selected, and one left out of the map loses access.`]}),`\n`,_jsxs(_components.p,{children:[`Event types come from `,_jsx(_components.a,{href:`/en/v2/api-reference/agent/get-calendar`,children:`Get a calendar`}),`. Send `,_jsx(_components.code,{children:`id`}),`, `,_jsx(_components.code,{children:`slug`}),`, `,_jsx(_components.code,{children:`title`}),` and `,_jsx(_components.code,{children:`length_in_minutes`}),` back as they were read, and add your own `,_jsx(_components.code,{children:`description`}),` to say when the receptionist should book that one rather than another.`]}),`\n`,_jsx(_components.p,{children:`Connecting a calendar to the workspace is an OAuth flow, done in the Allo app. This endpoint chooses among the connections that already exist.`}),`\n`,_jsx(Heading,{level:`2`,id:`knowledge-text`,children:`Knowledge text`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`knowledge.text`}),` is deprecated. Add websites with `,_jsx(_components.a,{href:`/en/v2/api-reference/agent/add-website-knowledge`,children:`Add website knowledge`}),` instead.`]}),`\n`,_jsx(_components.p,{children:`It still works. Allo stores it as a text source named “Business knowledge” in your team’s knowledge library, used by this line. Sending a different text edits that same source, and an empty string turns it off for this line.`}),`\n`,_jsx(Heading,{level:`2`,id:`field-limits`,children:`Field limits`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Limit`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`business_name`}),`, `,_jsx(_components.code,{children:`business_email`}),`, `,_jsx(_components.code,{children:`business_website`}),`, `,_jsx(_components.code,{children:`business_industry`})]}),_jsx(_components.td,{children:`64 characters`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`business_address`})}),_jsx(_components.td,{children:`255 characters`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`greeting_message`}),`, `,_jsx(_components.code,{children:`closing_message`})]}),_jsx(_components.td,{children:`1000 characters`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`transfer_rules[].description`})}),_jsx(_components.td,{children:`255 characters`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`transfer_rules[].transfer_message`})}),_jsx(_components.td,{children:`1000 characters`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`knowledge.text`}),` (deprecated)`]}),_jsx(_components.td,{children:`25000 characters`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`400 UNKNOWN_FIELD`}),`: a field this endpoint does not accept, named in `,_jsx(_components.code,{children:`param`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`400 INVALID_REQUEST_BODY`}),`: a declared field failed validation. The failing field is in `,_jsx(_components.code,{children:`errors[]`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`400 MISSING_FIELD`}),`: a required part of a collection is missing, named in `,_jsx(_components.code,{children:`param`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`400 INVALID_AGENT_LANGUAGE`}),` / `,_jsx(_components.code,{children:`400 INVALID_AGENT_CAPABILITY`}),`: an unknown value. The allowed ones are listed in the message.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`400 INVALID_TIMEZONE`}),`: `,_jsx(_components.code,{children:`business_hours.timezone`}),` is not an IANA identifier.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`400 INVALID_PHONE_NUMBER`}),`: `,_jsx(_components.code,{children:`business_phone`}),` is not a usable number.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`400 AGENT_TRANSFER_RULE_TARGET_REQUIRED`}),`: a rule is missing the target its type requires.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`403 AGENT_TRANSFER_RULE_MEMBER_NO_LINE_ACCESS`}),`: the target teammate has no access to this line.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`404 AGENT_VOICE_NOT_FOUND`}),`: no voice with that `,_jsx(_components.code,{children:`voice_id`}),`. List them with `,_jsx(_components.a,{href:`/en/v2/api-reference/agent/list-voices`,children:`List voices`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`404 AGENT_CALENDAR_NOT_FOUND`}),`: a calendar id in the map is not one you can see.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`404 PHONE_NUMBER_NOT_FOUND`}),`: the number is not one you have access to.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update configuration","openapi":"PATCH /v2/api/numbers/{number}/agent","description":"Updates any part of the configuration except the prompt and the on/off status. Single values are merged, collections are replaced. This does not put the receptionist on the line: that is `PUT /v2/api/numbers/{number}/agent/status`.","href":"/en/v2/api-reference/agent/update-agent"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Behavior","slug":"behavior","depth":2,"children":[]},{"title":"Transfer rules","slug":"transfer-rules","depth":2,"children":[]},{"title":"Business hours","slug":"business-hours","depth":2,"children":[]},{"title":"Scheduling calendars","slug":"scheduling-calendars","depth":2,"children":[]},{"title":"Knowledge text","slug":"knowledge-text","depth":2,"children":[]},{"title":"Field limits","slug":"field-limits","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/themobilefirstcompany/8a9814acae5adfe6/webmcp.js"],"openApiReferenceData":{"operation":{"summary":"Update AI receptionist configuration","description":"Updates any part of the configuration except the prompt and the on/off status. Single values are merged, collections are replaced. This does not put the receptionist on the line: that is `PUT /v2/api/numbers/{number}/agent/status`.","operationId":"updateAgent","tags":["AI Receptionist"],"security":["be79f233-e175-4bd7-90a2-4774b753abf2"],"parameters":["3acec838-5439-44aa-a9a8-19037bffb191"],"requestBody":"466f8e73-cb8c-4acb-a8f0-0bb0c2b64824","responses":{"200":"6693561d-9991-4682-8a39-74935dc29536","400":"31e3be86-469d-4da0-b644-e4d8736235fd","401":"c5de35f5-f33d-4931-8463-1eeb9bd78df9","403":"04dc820a-c81e-468a-b073-fb9ded7f51e2","404":"bda79765-b440-4a7d-93e6-a4cddc582ff0","429":"07a18170-f5e4-496d-8d6b-1de54258d0de"},"method":"patch","type":"path","servers":["9b88f4a7-26a1-4ff4-b367-a4988459ba25"],"path":"/v2/api/numbers/{number}/agent","baseUrlOptions":["https://api.withallo.com"],"title":"Update AI receptionist configuration","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"3acec838-5439-44aa-a9a8-19037bffb191":{"name":"number","in":"path","required":true,"description":"Allo phone number in E.164 format","schema":{"type":"string","example":"+14155551234","isRequired":true,"description":"Allo phone number in E.164 format","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"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.","properties":{"name":{"type":"string","maxLength":64,"example":"Maya","uniqueKey":"name","typeLabel":"string"},"business_name":{"type":"string","maxLength":64,"example":"Acme Plumbing","uniqueKey":"business_name","typeLabel":"string"},"business_address":{"type":"string","maxLength":255,"uniqueKey":"business_address","typeLabel":"string"},"business_phone":{"type":"string","maxLength":64,"description":"E.164 format.","example":"+14155551234","uniqueKey":"business_phone","typeLabel":"string"},"business_email":{"type":"string","maxLength":64,"uniqueKey":"business_email","typeLabel":"string"},"business_website":{"type":"string","maxLength":64,"uniqueKey":"business_website","typeLabel":"string"},"business_industry":{"type":"string","maxLength":64,"uniqueKey":"business_industry","typeLabel":"string"},"language":{"type":"string","enum":["fr","fr-CA","en-US","en-GB","es","de","hr"],"example":"en-US","uniqueKey":"language","typeLabel":"enum\u003cstring>"},"voice_id":{"type":"string","description":"An `id` from `GET /v2/api/voices`, listed under the receptionist's language.","example":"maya","uniqueKey":"voice_id","typeLabel":"string"},"greeting_message":{"type":"string","maxLength":1000,"uniqueKey":"greeting_message","typeLabel":"string"},"closing_message":{"type":"string","maxLength":1000,"uniqueKey":"closing_message","typeLabel":"string"},"tone_of_voice":{"type":"string","enum":["FRIENDLY","PROFESSIONAL","NEUTRAL","ENTHUSIASTIC"],"uniqueKey":"tone_of_voice","typeLabel":"enum\u003cstring>"},"answer_type":{"type":"string","enum":["CONCISE","STANDARD","DETAILED"],"uniqueKey":"answer_type","typeLabel":"enum\u003cstring>"},"capabilities":{"type":"object","description":"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.","additionalProperties":{"type":"boolean","uniqueKey":"capabilities.additionalProperties","typeLabel":"boolean"},"example":{"SCHEDULING":true,"CALL_TRANSFER":true,"WARM_TRANSFER":false},"uniqueKey":"capabilities","typeLabel":"object"},"business_hours":{"type":"object","description":"Replaces the whole week. `schedule` is required when this key is sent.","required":["schedule"],"properties":{"schedule":{"type":"array","items":{"type":"object","required":["day","schedule"],"properties":{"day":{"type":"string","enum":["MO","TU","WE","TH","FR","SA","SU"],"isRequired":true,"uniqueKey":"business_hours.schedule.items.[INDEX].day","typeLabel":"enum\u003cstring>"},"schedule":{"type":"array","description":"The open periods of that day. An empty array closes the day.","items":{"type":"object","description":"One open period of a day, in seconds since midnight (0 to 86399). 9am to 5pm is 32400 to 61200.","required":["start_time","end_time"],"properties":{"start_time":{"type":"integer","minimum":0,"maximum":86399,"example":32400,"isRequired":true,"uniqueKey":"business_hours.schedule.items.[INDEX].schedule.items.[INDEX].start_time","typeLabel":"integer"},"end_time":{"type":"integer","minimum":0,"maximum":86399,"example":61200,"isRequired":true,"uniqueKey":"business_hours.schedule.items.[INDEX].schedule.items.[INDEX].end_time","typeLabel":"integer"}},"uniqueKey":"business_hours.schedule.items.[INDEX].schedule.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"business_hours.schedule.items.[INDEX].schedule","typeLabel":"object[]"}},"uniqueKey":"business_hours.schedule.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"business_hours.schedule","typeLabel":"object[]"},"timezone":{"type":"string","description":"IANA timezone identifier.","example":"America/New_York","uniqueKey":"business_hours.timezone","typeLabel":"string"}},"uniqueKey":"business_hours","typeLabel":"object"},"transfer_rules":{"type":"array","description":"Replaces the whole rule set. Send `[]` to remove every rule.","items":{"type":"object","description":"One reason the receptionist hands the call over, and where it hands it to.","properties":{"description":{"type":"string","description":"The caller's reason, in the caller's words. This is what the receptionist matches what it hears against, so phrase it as a reason ('billing or invoice questions'), not as an instruction.","example":"Billing or invoice questions","uniqueKey":"transfer_rules.items.[INDEX].description","typeLabel":"string"},"type":{"type":"string","enum":["EXTERNAL_NUMBER","MEMBER","INBOX"],"description":"`EXTERNAL_NUMBER` transfers to any phone number, `MEMBER` to a teammate, `INBOX` to another Allo line.","uniqueKey":"transfer_rules.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"transfer_message":{"oneOf":[{"type":"string","description":"What the receptionist says before transferring.","example":"Let me put you through to billing.","uniqueKey":"transfer_rules.items.[INDEX].transfer_message.oneOf.0","typeLabel":"string"},{"type":"null","description":"What the receptionist says before transferring.","example":"Let me put you through to billing.","uniqueKey":"transfer_rules.items.[INDEX].transfer_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"transfer_rules.items.[INDEX].transfer_message","typeLabel":"string | null"},"target_number":{"oneOf":[{"type":"string","description":"Required for `EXTERNAL_NUMBER`. E.164 format.","example":"+14155551234","uniqueKey":"transfer_rules.items.[INDEX].target_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"Required for `EXTERNAL_NUMBER`. E.164 format.","example":"+14155551234","uniqueKey":"transfer_rules.items.[INDEX].target_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"transfer_rules.items.[INDEX].target_number","typeLabel":"string | null"},"target_member_id":{"oneOf":[{"type":"string","description":"Required for `MEMBER`. A user id from `GET /v2/api/users`.","uniqueKey":"transfer_rules.items.[INDEX].target_member_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Required for `MEMBER`. A user id from `GET /v2/api/users`.","uniqueKey":"transfer_rules.items.[INDEX].target_member_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"transfer_rules.items.[INDEX].target_member_id","typeLabel":"string | null"},"target_line_number":{"oneOf":[{"type":"string","description":"Required for `INBOX`. Another of your Allo numbers, in E.164 format.","uniqueKey":"transfer_rules.items.[INDEX].target_line_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"Required for `INBOX`. Another of your Allo numbers, in E.164 format.","uniqueKey":"transfer_rules.items.[INDEX].target_line_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"transfer_rules.items.[INDEX].target_line_number","typeLabel":"string | null"}},"uniqueKey":"transfer_rules.items.[INDEX]","typeLabel":"object"},"uniqueKey":"transfer_rules","typeLabel":"object[]"},"scheduling":{"type":"object","properties":{"calendars":{"type":"object","description":"The complete set of calendars the receptionist may book on, keyed by an `id` from `GET /v2/api/calendars`. A calendar it does not have yet is linked to it, one mapped to `[]` stays linked with no event type selected, and one left out loses access.","additionalProperties":{"type":"array","items":{"type":"object","description":"An event type the receptionist may book. Send `id`, `slug`, `title` and `length_in_minutes` back as `GET /v2/api/calendars/{id}` reported them.","required":["id","slug","title"],"properties":{"id":{"type":"string","description":"The provider's own event-type identifier.","example":"42","isRequired":true,"uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].id","typeLabel":"string"},"slug":{"type":"string","example":"intro-call","isRequired":true,"uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].slug","typeLabel":"string"},"title":{"type":"string","example":"Intro call","isRequired":true,"uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].title","typeLabel":"string"},"length_in_minutes":{"oneOf":[{"type":"integer","example":30,"uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].length_in_minutes.oneOf.0","typeLabel":"integer"},{"type":"null","example":30,"uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].length_in_minutes.oneOf.1","typeLabel":"null"}],"uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].length_in_minutes","typeLabel":"integer | null"},"description":{"oneOf":[{"type":"string","description":"Your own note on when the receptionist should book this one rather than another. This is what it routes on when several event types are bookable, so write it as the caller's reason.","example":"Book this one when the caller wants a quote.","uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Your own note on when the receptionist should book this one rather than another. This is what it routes on when several event types are bookable, so write it as the caller's reason.","example":"Book this one when the caller wants a quote.","uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].description","typeLabel":"string | null"},"required_questions":{"oneOf":[{"type":"array","items":{"type":"object","description":"A question the calendar provider rejects a booking without, so the receptionist asks it during the call. Read-only: it is snapshotted when the event type is selected.","properties":{"id":{"type":"string","example":"notes","uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].required_questions.oneOf.0.items.[INDEX].id","typeLabel":"string"},"label":{"type":"string","example":"Anything we should know before the visit?","uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].required_questions.oneOf.0.items.[INDEX].label","typeLabel":"string"}},"uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].required_questions.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].required_questions.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","description":"A question the calendar provider rejects a booking without, so the receptionist asks it during the call. Read-only: it is snapshotted when the event type is selected.","properties":{"id":{"type":"string","example":"notes"},"label":{"type":"string","example":"Anything we should know before the visit?"}}},"uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].required_questions.oneOf.1","typeLabel":"null"}],"uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX].required_questions","typeLabel":"object[] | null"}},"uniqueKey":"scheduling.calendars.additionalProperties.items.[INDEX]","typeLabel":"object"},"uniqueKey":"scheduling.calendars.additionalProperties","typeLabel":"object[]"},"uniqueKey":"scheduling.calendars","typeLabel":"object"}},"uniqueKey":"scheduling","typeLabel":"object"},"knowledge":{"type":"object","description":"Only the free-text knowledge is writable here. Websites and files have their own endpoints.","properties":{"text":{"type":"string","deprecated":true,"description":"Deprecated: add websites instead. Stored as the line's \"Business knowledge\" text source in the team's knowledge library; a different text edits that source in place, an empty string turns it off for this line.","maxLength":25000,"example":"We serve the Austin metro area and open at 7am.","uniqueKey":"knowledge.text","typeLabel":"string"}},"uniqueKey":"knowledge","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"Maya","business_name":"Acme Plumbing","business_address":"\u003cstring>","business_phone":"+14155551234","business_email":"\u003cstring>","business_website":"\u003cstring>","business_industry":"\u003cstring>","language":"en-US","voice_id":"maya","greeting_message":"\u003cstring>","closing_message":"\u003cstring>","capabilities":{"SCHEDULING":true,"CALL_TRANSFER":true,"WARM_TRANSFER":false},"transfer_rules":[{"description":"Billing or invoice questions","transfer_message":"Let me put you through to billing.","target_number":"+14155551234","target_member_id":"\u003cstring>","target_line_number":"\u003cstring>"}],"scheduling":{"calendars":{}},"knowledge":{"text":"We serve the Austin metro area and open at 7am."}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"6693561d-9991-4682-8a39-74935dc29536":{"description":"The configuration after the write","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"The whole configuration of one line's AI receptionist.","properties":{"agent":{"type":"object","description":"The AI receptionist's own settings. Everything here except `id`, `status`, `is_default`, `created_at` and `updated_at` is writable with `PATCH /v2/api/numbers/{number}/agent`.","properties":{"id":{"oneOf":[{"type":"string","example":"agt-abc123","uniqueKey":"data.agent.id.oneOf.0","typeLabel":"string"},{"type":"null","example":"agt-abc123","uniqueKey":"data.agent.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.id","typeLabel":"string | null"},"status":{"type":"string","enum":["ACTIVE","FORWARDING"],"description":"`ACTIVE`: the receptionist answers incoming calls. `FORWARDING`: it does not, and calls go to your business phone. Read-only here, change it with `PUT /v2/api/numbers/{number}/agent/status`.","uniqueKey":"data.agent.status","typeLabel":"enum\u003cstring>"},"name":{"oneOf":[{"type":"string","description":"The name the receptionist gives itself on a call.","example":"Maya","uniqueKey":"data.agent.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The name the receptionist gives itself on a call.","example":"Maya","uniqueKey":"data.agent.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.name","typeLabel":"string | null"},"is_default":{"type":"boolean","description":"True while the line still runs Allo's default receptionist, with no prompt, greeting, closing or knowledge of its own.","uniqueKey":"data.agent.is_default","typeLabel":"boolean"},"business_name":{"oneOf":[{"type":"string","example":"Acme Plumbing","uniqueKey":"data.agent.business_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Acme Plumbing","uniqueKey":"data.agent.business_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.business_name","typeLabel":"string | null"},"business_address":{"oneOf":[{"type":"string","example":"12 Main Street, Austin TX","uniqueKey":"data.agent.business_address.oneOf.0","typeLabel":"string"},{"type":"null","example":"12 Main Street, Austin TX","uniqueKey":"data.agent.business_address.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.business_address","typeLabel":"string | null"},"business_phone":{"oneOf":[{"type":"string","description":"The business's own phone number, in E.164 format.","example":"+14155551234","uniqueKey":"data.agent.business_phone.oneOf.0","typeLabel":"string"},{"type":"null","description":"The business's own phone number, in E.164 format.","example":"+14155551234","uniqueKey":"data.agent.business_phone.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.business_phone","typeLabel":"string | null"},"business_email":{"oneOf":[{"type":"string","example":"[email protected]","uniqueKey":"data.agent.business_email.oneOf.0","typeLabel":"string"},{"type":"null","example":"[email protected]","uniqueKey":"data.agent.business_email.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.business_email","typeLabel":"string | null"},"business_website":{"oneOf":[{"type":"string","example":"https://acme.test","uniqueKey":"data.agent.business_website.oneOf.0","typeLabel":"string"},{"type":"null","example":"https://acme.test","uniqueKey":"data.agent.business_website.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.business_website","typeLabel":"string | null"},"business_industry":{"oneOf":[{"type":"string","example":"Plumbing","uniqueKey":"data.agent.business_industry.oneOf.0","typeLabel":"string"},{"type":"null","example":"Plumbing","uniqueKey":"data.agent.business_industry.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.business_industry","typeLabel":"string | null"},"language":{"oneOf":[{"type":"string","enum":["fr","fr-CA","en-US","en-GB","es","de","hr"],"description":"The language the receptionist speaks. Pick a `voice_id` listed under the same language.","example":"en-US","uniqueKey":"data.agent.language.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["fr","fr-CA","en-US","en-GB","es","de","hr"],"description":"The language the receptionist speaks. Pick a `voice_id` listed under the same language.","example":"en-US","uniqueKey":"data.agent.language.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.language","typeLabel":"enum\u003cstring> | null"},"voice_id":{"oneOf":[{"type":"string","description":"Identifier of a voice from `GET /v2/api/voices`.","example":"maya","uniqueKey":"data.agent.voice_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Identifier of a voice from `GET /v2/api/voices`.","example":"maya","uniqueKey":"data.agent.voice_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.voice_id","typeLabel":"string | null"},"greeting_message":{"oneOf":[{"type":"string","description":"What the receptionist says when it picks up.","example":"Thanks for calling Acme Plumbing, how can I help?","uniqueKey":"data.agent.greeting_message.oneOf.0","typeLabel":"string"},{"type":"null","description":"What the receptionist says when it picks up.","example":"Thanks for calling Acme Plumbing, how can I help?","uniqueKey":"data.agent.greeting_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.greeting_message","typeLabel":"string | null"},"closing_message":{"oneOf":[{"type":"string","description":"What the receptionist says before hanging up.","example":"Thanks for calling, have a good day.","uniqueKey":"data.agent.closing_message.oneOf.0","typeLabel":"string"},{"type":"null","description":"What the receptionist says before hanging up.","example":"Thanks for calling, have a good day.","uniqueKey":"data.agent.closing_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.closing_message","typeLabel":"string | null"},"tone_of_voice":{"type":"string","enum":["FRIENDLY","PROFESSIONAL","NEUTRAL","ENTHUSIASTIC"],"uniqueKey":"data.agent.tone_of_voice","typeLabel":"enum\u003cstring>"},"answer_type":{"type":"string","enum":["CONCISE","STANDARD","DETAILED"],"description":"How long the receptionist's answers run.","uniqueKey":"data.agent.answer_type","typeLabel":"enum\u003cstring>"},"created_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.agent.created_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.agent.created_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.created_at","typeLabel":"string\u003cdate-time> | null"},"updated_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.agent.updated_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.agent.updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.agent.updated_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"data.agent","typeLabel":"object"},"prompt":{"type":"object","description":"The receptionist's prompt. Exactly one of the two keys is present: `sections` for a prompt written in the section format, `custom_prompt` for an older line whose prompt was written as freeform text. `custom_prompt` is the render of the sections, so it is never reported alongside them.","properties":{"sections":{"oneOf":[{"type":"array","items":{"type":"object","description":"One section of the prompt. `required_fields` carries `fields` and no `content`; every other section carries `content` and no `fields`.","properties":{"section":{"type":"string","enum":["objective","personality","behaviors","prohibited","required_fields","objective_completion"],"uniqueKey":"data.prompt.sections.oneOf.0.items.[INDEX].section","typeLabel":"enum\u003cstring>"},"title":{"type":"string","description":"Human-readable title, derived server-side from `section`.","example":"Objective","uniqueKey":"data.prompt.sections.oneOf.0.items.[INDEX].title","typeLabel":"string"},"content":{"oneOf":[{"type":"string","example":"Book a visit with the caller.","uniqueKey":"data.prompt.sections.oneOf.0.items.[INDEX].content.oneOf.0","typeLabel":"string"},{"type":"null","example":"Book a visit with the caller.","uniqueKey":"data.prompt.sections.oneOf.0.items.[INDEX].content.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.prompt.sections.oneOf.0.items.[INDEX].content","typeLabel":"string | null"},"fields":{"oneOf":[{"type":"array","items":{"type":"object","description":"One piece of information the receptionist has to collect during the call.","required":["label","question","complete_when"],"properties":{"label":{"type":"string","example":"Email","isRequired":true,"uniqueKey":"data.prompt.sections.oneOf.0.items.[INDEX].fields.oneOf.0.items.[INDEX].label","typeLabel":"string"},"question":{"type":"string","example":"What is the best email to send the quote to?","isRequired":true,"uniqueKey":"data.prompt.sections.oneOf.0.items.[INDEX].fields.oneOf.0.items.[INDEX].question","typeLabel":"string"},"complete_when":{"type":"string","description":"How the receptionist knows it has the answer.","example":"a valid email address is given","isRequired":true,"uniqueKey":"data.prompt.sections.oneOf.0.items.[INDEX].fields.oneOf.0.items.[INDEX].complete_when","typeLabel":"string"}},"uniqueKey":"data.prompt.sections.oneOf.0.items.[INDEX].fields.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.prompt.sections.oneOf.0.items.[INDEX].fields.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","description":"One piece of information the receptionist has to collect during the call.","required":["label","question","complete_when"],"properties":{"label":{"type":"string","example":"Email"},"question":{"type":"string","example":"What is the best email to send the quote to?"},"complete_when":{"type":"string","description":"How the receptionist knows it has the answer.","example":"a valid email address is given"}}},"uniqueKey":"data.prompt.sections.oneOf.0.items.[INDEX].fields.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.prompt.sections.oneOf.0.items.[INDEX].fields","typeLabel":"object[] | null"}},"uniqueKey":"data.prompt.sections.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.prompt.sections.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","description":"One section of the prompt. `required_fields` carries `fields` and no `content`; every other section carries `content` and no `fields`.","properties":{"section":{"type":"string","enum":["objective","personality","behaviors","prohibited","required_fields","objective_completion"]},"title":{"type":"string","description":"Human-readable title, derived server-side from `section`.","example":"Objective"},"content":{"oneOf":[{"type":"string","example":"Book a visit with the caller."},{"type":"null","example":"Book a visit with the caller."}]},"fields":{"oneOf":[{"type":"array","items":{"type":"object","description":"One piece of information the receptionist has to collect during the call.","required":["label","question","complete_when"],"properties":{"label":{"type":"string","example":"Email"},"question":{"type":"string","example":"What is the best email to send the quote to?"},"complete_when":{"type":"string","description":"How the receptionist knows it has the answer.","example":"a valid email address is given"}}}},{"type":"null","items":{"type":"object","description":"One piece of information the receptionist has to collect during the call.","required":["label","question","complete_when"],"properties":{"label":{"type":"string","example":"Email"},"question":{"type":"string","example":"What is the best email to send the quote to?"},"complete_when":{"type":"string","description":"How the receptionist knows it has the answer.","example":"a valid email address is given"}}}}]}}},"uniqueKey":"data.prompt.sections.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.prompt.sections","typeLabel":"object[] | null"},"custom_prompt":{"oneOf":[{"type":"string","uniqueKey":"data.prompt.custom_prompt.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.prompt.custom_prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.prompt.custom_prompt","typeLabel":"string | null"}},"uniqueKey":"data.prompt","typeLabel":"object"},"capabilities":{"type":"object","description":"What the receptionist is allowed to do on a call. All three are always reported.","properties":{"SCHEDULING":{"type":"boolean","description":"Book appointments on the calendars in `scheduling.calendars`.","uniqueKey":"data.capabilities.SCHEDULING","typeLabel":"boolean"},"CALL_TRANSFER":{"type":"boolean","description":"Transfer the call using the rules in `transfer_rules`.","uniqueKey":"data.capabilities.CALL_TRANSFER","typeLabel":"boolean"},"WARM_TRANSFER":{"type":"boolean","description":"Announce the caller to the person taking the transfer before connecting them.","uniqueKey":"data.capabilities.WARM_TRANSFER","typeLabel":"boolean"}},"uniqueKey":"data.capabilities","typeLabel":"object"},"business_hours":{"type":"object","description":"When the business is open. A day left out of `schedule` is closed.","properties":{"timezone":{"oneOf":[{"type":"string","description":"IANA timezone identifier.","example":"America/New_York","uniqueKey":"data.business_hours.timezone.oneOf.0","typeLabel":"string"},{"type":"null","description":"IANA timezone identifier.","example":"America/New_York","uniqueKey":"data.business_hours.timezone.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.business_hours.timezone","typeLabel":"string | null"},"schedule":{"type":"array","items":{"type":"object","required":["day","schedule"],"properties":{"day":{"type":"string","enum":["MO","TU","WE","TH","FR","SA","SU"],"isRequired":true,"uniqueKey":"data.business_hours.schedule.items.[INDEX].day","typeLabel":"enum\u003cstring>"},"schedule":{"type":"array","description":"The open periods of that day. An empty array closes the day.","items":{"type":"object","description":"One open period of a day, in seconds since midnight (0 to 86399). 9am to 5pm is 32400 to 61200.","required":["start_time","end_time"],"properties":{"start_time":{"type":"integer","minimum":0,"maximum":86399,"example":32400,"isRequired":true,"uniqueKey":"data.business_hours.schedule.items.[INDEX].schedule.items.[INDEX].start_time","typeLabel":"integer"},"end_time":{"type":"integer","minimum":0,"maximum":86399,"example":61200,"isRequired":true,"uniqueKey":"data.business_hours.schedule.items.[INDEX].schedule.items.[INDEX].end_time","typeLabel":"integer"}},"uniqueKey":"data.business_hours.schedule.items.[INDEX].schedule.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.business_hours.schedule.items.[INDEX].schedule","typeLabel":"object[]"}},"uniqueKey":"data.business_hours.schedule.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.business_hours.schedule","typeLabel":"object[]"}},"uniqueKey":"data.business_hours","typeLabel":"object"},"transfer_rules":{"type":"array","items":{"type":"object","description":"One reason the receptionist hands the call over, and where it hands it to.","properties":{"description":{"type":"string","description":"The caller's reason, in the caller's words. This is what the receptionist matches what it hears against, so phrase it as a reason ('billing or invoice questions'), not as an instruction.","example":"Billing or invoice questions","uniqueKey":"data.transfer_rules.items.[INDEX].description","typeLabel":"string"},"type":{"type":"string","enum":["EXTERNAL_NUMBER","MEMBER","INBOX"],"description":"`EXTERNAL_NUMBER` transfers to any phone number, `MEMBER` to a teammate, `INBOX` to another Allo line.","uniqueKey":"data.transfer_rules.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"transfer_message":{"oneOf":[{"type":"string","description":"What the receptionist says before transferring.","example":"Let me put you through to billing.","uniqueKey":"data.transfer_rules.items.[INDEX].transfer_message.oneOf.0","typeLabel":"string"},{"type":"null","description":"What the receptionist says before transferring.","example":"Let me put you through to billing.","uniqueKey":"data.transfer_rules.items.[INDEX].transfer_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.transfer_rules.items.[INDEX].transfer_message","typeLabel":"string | null"},"target_number":{"oneOf":[{"type":"string","description":"Required for `EXTERNAL_NUMBER`. E.164 format.","example":"+14155551234","uniqueKey":"data.transfer_rules.items.[INDEX].target_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"Required for `EXTERNAL_NUMBER`. E.164 format.","example":"+14155551234","uniqueKey":"data.transfer_rules.items.[INDEX].target_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.transfer_rules.items.[INDEX].target_number","typeLabel":"string | null"},"target_member_id":{"oneOf":[{"type":"string","description":"Required for `MEMBER`. A user id from `GET /v2/api/users`.","uniqueKey":"data.transfer_rules.items.[INDEX].target_member_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Required for `MEMBER`. A user id from `GET /v2/api/users`.","uniqueKey":"data.transfer_rules.items.[INDEX].target_member_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.transfer_rules.items.[INDEX].target_member_id","typeLabel":"string | null"},"target_line_number":{"oneOf":[{"type":"string","description":"Required for `INBOX`. Another of your Allo numbers, in E.164 format.","uniqueKey":"data.transfer_rules.items.[INDEX].target_line_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"Required for `INBOX`. Another of your Allo numbers, in E.164 format.","uniqueKey":"data.transfer_rules.items.[INDEX].target_line_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.transfer_rules.items.[INDEX].target_line_number","typeLabel":"string | null"}},"uniqueKey":"data.transfer_rules.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.transfer_rules","typeLabel":"object[]"},"scheduling":{"type":"object","properties":{"calendars":{"type":"array","description":"The calendars this receptionist may book on. Empty when it has none, which is not the same as the workspace having none: list those with `GET /v2/api/calendars`.","items":{"type":"object","description":"A calendar this receptionist can book on, with the event types selected for it.","properties":{"calendar_connection_id":{"type":"string","example":"exc-abc123","uniqueKey":"data.scheduling.calendars.items.[INDEX].calendar_connection_id","typeLabel":"string"},"name":{"oneOf":[{"type":"string","example":"Acme bookings","uniqueKey":"data.scheduling.calendars.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Acme bookings","uniqueKey":"data.scheduling.calendars.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.scheduling.calendars.items.[INDEX].name","typeLabel":"string | null"},"provider":{"type":"string","enum":["GOOGLE_CALENDAR","CAL_COM","CALENDLY","OUTLOOK"],"uniqueKey":"data.scheduling.calendars.items.[INDEX].provider","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["ACTIVE","DISCONNECTED"],"uniqueKey":"data.scheduling.calendars.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"is_team_default":{"type":"boolean","uniqueKey":"data.scheduling.calendars.items.[INDEX].is_team_default","typeLabel":"boolean"},"owner":{"oneOf":[{"type":"object","description":"The teammate who connected the calendar.","properties":{"user_id":{"type":"string","uniqueKey":"data.scheduling.calendars.items.[INDEX].owner.oneOf.0.user_id","typeLabel":"string"},"user_name":{"oneOf":[{"type":"string","uniqueKey":"data.scheduling.calendars.items.[INDEX].owner.oneOf.0.user_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.scheduling.calendars.items.[INDEX].owner.oneOf.0.user_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.scheduling.calendars.items.[INDEX].owner.oneOf.0.user_name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","uniqueKey":"data.scheduling.calendars.items.[INDEX].owner.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.scheduling.calendars.items.[INDEX].owner.oneOf.0.email.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.scheduling.calendars.items.[INDEX].owner.oneOf.0.email","typeLabel":"string | null"},"is_current_user":{"type":"boolean","uniqueKey":"data.scheduling.calendars.items.[INDEX].owner.oneOf.0.is_current_user","typeLabel":"boolean"}},"uniqueKey":"data.scheduling.calendars.items.[INDEX].owner.oneOf.0","typeLabel":"object"},{"type":"null","description":"The teammate who connected the calendar.","properties":{"user_id":{"type":"string"},"user_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"email":{"oneOf":[{"type":"string"},{"type":"null"}]},"is_current_user":{"type":"boolean"}},"uniqueKey":"data.scheduling.calendars.items.[INDEX].owner.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.scheduling.calendars.items.[INDEX].owner","typeLabel":"object | null"},"event_types":{"type":"array","items":{"type":"object","description":"An event type the receptionist may book. Send `id`, `slug`, `title` and `length_in_minutes` back as `GET /v2/api/calendars/{id}` reported them.","required":["id","slug","title"],"properties":{"id":{"type":"string","description":"The provider's own event-type identifier.","example":"42","isRequired":true,"uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].id","typeLabel":"string"},"slug":{"type":"string","example":"intro-call","isRequired":true,"uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].slug","typeLabel":"string"},"title":{"type":"string","example":"Intro call","isRequired":true,"uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].title","typeLabel":"string"},"length_in_minutes":{"oneOf":[{"type":"integer","example":30,"uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].length_in_minutes.oneOf.0","typeLabel":"integer"},{"type":"null","example":30,"uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].length_in_minutes.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].length_in_minutes","typeLabel":"integer | null"},"description":{"oneOf":[{"type":"string","description":"Your own note on when the receptionist should book this one rather than another. This is what it routes on when several event types are bookable, so write it as the caller's reason.","example":"Book this one when the caller wants a quote.","uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Your own note on when the receptionist should book this one rather than another. This is what it routes on when several event types are bookable, so write it as the caller's reason.","example":"Book this one when the caller wants a quote.","uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].description","typeLabel":"string | null"},"required_questions":{"oneOf":[{"type":"array","items":{"type":"object","description":"A question the calendar provider rejects a booking without, so the receptionist asks it during the call. Read-only: it is snapshotted when the event type is selected.","properties":{"id":{"type":"string","example":"notes","uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].required_questions.oneOf.0.items.[INDEX].id","typeLabel":"string"},"label":{"type":"string","example":"Anything we should know before the visit?","uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].required_questions.oneOf.0.items.[INDEX].label","typeLabel":"string"}},"uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].required_questions.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].required_questions.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","description":"A question the calendar provider rejects a booking without, so the receptionist asks it during the call. Read-only: it is snapshotted when the event type is selected.","properties":{"id":{"type":"string","example":"notes"},"label":{"type":"string","example":"Anything we should know before the visit?"}}},"uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].required_questions.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX].required_questions","typeLabel":"object[] | null"}},"uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.scheduling.calendars.items.[INDEX].event_types","typeLabel":"object[]"}},"uniqueKey":"data.scheduling.calendars.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.scheduling.calendars","typeLabel":"object[]"}},"uniqueKey":"data.scheduling","typeLabel":"object"},"knowledge":{"type":"object","description":"What the receptionist knows about the business: facts, prices, policies, hours.","properties":{"text":{"oneOf":[{"type":"string","deprecated":true,"description":"Deprecated. Free-text knowledge, up to 25000 characters, stored as the line's \"Business knowledge\" text source.","uniqueKey":"data.knowledge.text.oneOf.0","typeLabel":"string"},{"type":"null","deprecated":true,"description":"Deprecated. Free-text knowledge, up to 25000 characters, stored as the line's \"Business knowledge\" text source.","uniqueKey":"data.knowledge.text.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.knowledge.text","typeLabel":"string | null"},"websites":{"type":"array","items":{"type":"object","description":"A website of the team's knowledge library, crawled for the receptionist to answer from. The crawled text itself is not reported: it is what the receptionist reads, not something you configure.","properties":{"id":{"type":"string","example":"ksrc-abc123","uniqueKey":"data.knowledge.websites.items.[INDEX].id","typeLabel":"string"},"url":{"type":"string","example":"https://acme.test/pricing","uniqueKey":"data.knowledge.websites.items.[INDEX].url","typeLabel":"string"},"status":{"type":"string","enum":["ACTIVE","DISABLED"],"description":"`ACTIVE` when this line's receptionist answers from the website, `DISABLED` when this line does not use it.","uniqueKey":"data.knowledge.websites.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"created_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.knowledge.websites.items.[INDEX].created_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.knowledge.websites.items.[INDEX].created_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.knowledge.websites.items.[INDEX].created_at","typeLabel":"string\u003cdate-time> | null"},"updated_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.knowledge.websites.items.[INDEX].updated_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.knowledge.websites.items.[INDEX].updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.knowledge.websites.items.[INDEX].updated_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"data.knowledge.websites.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.knowledge.websites","typeLabel":"object[]"},"files":{"type":"array","items":{"type":"object","description":"A document of the team's knowledge library, uploaded in the Allo app for the receptionist to answer from. Uploading is done in the app; this API lists and deletes.","properties":{"id":{"type":"string","example":"ksrc-def456","uniqueKey":"data.knowledge.files.items.[INDEX].id","typeLabel":"string"},"file_name":{"type":"string","example":"pricing.pdf","uniqueKey":"data.knowledge.files.items.[INDEX].file_name","typeLabel":"string"},"status":{"type":"string","enum":["ACTIVE","DISABLED"],"uniqueKey":"data.knowledge.files.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"created_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.knowledge.files.items.[INDEX].created_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.knowledge.files.items.[INDEX].created_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.knowledge.files.items.[INDEX].created_at","typeLabel":"string\u003cdate-time> | null"},"updated_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.knowledge.files.items.[INDEX].updated_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.knowledge.files.items.[INDEX].updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.knowledge.files.items.[INDEX].updated_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"data.knowledge.files.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.knowledge.files","typeLabel":"object[]"}},"uniqueKey":"data.knowledge","typeLabel":"object"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"agent":{"id":"agt-abc123","status":"ACTIVE","name":"Maya","is_default":true,"business_name":"Acme Plumbing","business_address":"12 Main Street, Austin TX","business_phone":"+14155551234","business_email":"[email protected]","business_website":"https://acme.test","business_industry":"Plumbing","language":"en-US","voice_id":"maya","greeting_message":"Thanks for calling Acme Plumbing, how can I help?","closing_message":"Thanks for calling, have a good day.","tone_of_voice":"FRIENDLY","answer_type":"CONCISE","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"},"prompt":{"sections":[{"section":"objective","title":"Objective","content":"Book a visit with the caller.","fields":[{"label":"Email","question":"What is the best email to send the quote to?","complete_when":"a valid email address is given"}]}],"custom_prompt":"\u003cstring>"},"capabilities":{"SCHEDULING":true,"CALL_TRANSFER":true,"WARM_TRANSFER":true},"business_hours":{"timezone":"America/New_York","schedule":[{"day":"MO","schedule":[{"start_time":32400,"end_time":61200}]}]},"transfer_rules":[{"description":"Billing or invoice questions","type":"EXTERNAL_NUMBER","transfer_message":"Let me put you through to billing.","target_number":"+14155551234","target_member_id":"\u003cstring>","target_line_number":"\u003cstring>"}],"scheduling":{"calendars":[{"calendar_connection_id":"exc-abc123","name":"Acme bookings","provider":"GOOGLE_CALENDAR","status":"ACTIVE","is_team_default":true,"owner":{"user_id":"\u003cstring>","user_name":"\u003cstring>","email":"\u003cstring>","is_current_user":true},"event_types":[{"id":"42","slug":"intro-call","title":"Intro call","length_in_minutes":30,"description":"Book this one when the caller wants a quote.","required_questions":[{"id":"notes","label":"Anything we should know before the visit?"}]}]}]},"knowledge":{"text":"\u003cstring>","websites":[{"id":"ksrc-abc123","url":"https://acme.test/pricing","status":"ACTIVE","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"}],"files":[{"id":"ksrc-def456","file_name":"pricing.pdf","status":"ACTIVE","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"31e3be86-469d-4da0-b644-e4d8736235fd":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"retryable":{"type":"boolean","uniqueKey":"error.retryable","typeLabel":"boolean"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"retry_after_seconds":{"oneOf":[{"type":"integer","uniqueKey":"error.retry_after_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"error.retry_after_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.retry_after_seconds","typeLabel":"integer | null"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","retry_after_seconds":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"c5de35f5-f33d-4931-8463-1eeb9bd78df9":{"description":"Invalid or missing API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"retryable":{"type":"boolean","uniqueKey":"error.retryable","typeLabel":"boolean"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"retry_after_seconds":{"oneOf":[{"type":"integer","uniqueKey":"error.retry_after_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"error.retry_after_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.retry_after_seconds","typeLabel":"integer | null"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","retry_after_seconds":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"04dc820a-c81e-468a-b073-fb9ded7f51e2":{"description":"API key lacks the required scope or access to the resource","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"retryable":{"type":"boolean","uniqueKey":"error.retryable","typeLabel":"boolean"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"retry_after_seconds":{"oneOf":[{"type":"integer","uniqueKey":"error.retry_after_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"error.retry_after_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.retry_after_seconds","typeLabel":"integer | null"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","retry_after_seconds":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"bda79765-b440-4a7d-93e6-a4cddc582ff0":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"retryable":{"type":"boolean","uniqueKey":"error.retryable","typeLabel":"boolean"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"retry_after_seconds":{"oneOf":[{"type":"integer","uniqueKey":"error.retry_after_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"error.retry_after_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.retry_after_seconds","typeLabel":"integer | null"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","retry_after_seconds":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"07a18170-f5e4-496d-8d6b-1de54258d0de":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"retryable":{"type":"boolean","uniqueKey":"error.retryable","typeLabel":"boolean"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"retry_after_seconds":{"oneOf":[{"type":"integer","uniqueKey":"error.retry_after_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"error.retry_after_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.retry_after_seconds","typeLabel":"integer | null"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","retry_after_seconds":123}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"be79f233-e175-4bd7-90a2-4774b753abf2":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"9b88f4a7-26a1-4ff4-b367-a4988459ba25":{"url":"https://api.withallo.com","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"Authorization","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"themobilefirstcompany","siteName":"Allo — Help Center","title":"Update configuration - Allo — Help Center","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/en/v2/api-reference/agent/update-agent","matchLevel":0},"fr":{"href":"/fr/v2/api-reference/agent/update-agent","matchLevel":1}}},"lastModified":"2026-10-07T23:47:08.581Z","originalFileLocation":"en/v2/api-reference/agent/update-agent.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Updates any part of the configuration except the prompt and the on/off status. Single values are merged, collections are replaced. This does not put the receptionist on the line: that is PUT /v2/api/numbers/{number}/agent/status.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Allo — Help Center\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/themobilefirstcompany/XpmSCPLu2mWezDP7/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/themobilefirstcompany/XpmSCPLu2mWezDP7/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/themobilefirstcompany/XpmSCPLu2mWezDP7/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/themobilefirstcompany/XpmSCPLu2mWezDP7/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/themobilefirstcompany/XpmSCPLu2mWezDP7/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/themobilefirstcompany/XpmSCPLu2mWezDP7/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/themobilefirstcompany/XpmSCPLu2mWezDP7/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/themobilefirstcompany/XpmSCPLu2mWezDP7/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/themobilefirstcompany/XpmSCPLu2mWezDP7/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update configuration - Allo — Help Center\">\u003cmeta data-mint-head property=\"og:description\" content=\"Updates any part of the configuration except the prompt and the on/off status. Single values are merged, collections are replaced. This does not put the receptionist on the line: that is PUT /v2/api/numbers/{number}/agent/status.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Allo — Help Center\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://help.withallo.com/en/v2/api-reference/agent/update-agent\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://themobilefirstcompany.mintlify.site/_mintlify/api/og/v2?division=AI+Receptionist\u0026amp;title=Update+configuration\u0026amp;description=Updates+any+part+of+the+configuration+except+the+prompt+and+the+on%2Foff+status.+Single+values+are+merged%2C+collections+are+replaced.+This+does+not+put+the+recepti\u0026amp;theme=d52a52b70fc68cc035df5145\u0026amp;signature=3164f9cd17f698a3bfaa42dfdf82a906c0259c7f2537690b0f42cfb0d844a829\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update configuration - Allo — Help Center\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Updates any part of the configuration except the prompt and the on/off status. Single values are merged, collections are replaced. This does not put the receptionist on the line: that is PUT /v2/api/numbers/{number}/agent/status.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://themobilefirstcompany.mintlify.site/_mintlify/api/og/v2?division=AI+Receptionist\u0026amp;title=Update+configuration\u0026amp;description=Updates+any+part+of+the+configuration+except+the+prompt+and+the+on%2Foff+status.+Single+values+are+merged%2C+collections+are+replaced.+This+does+not+put+the+recepti\u0026amp;theme=d52a52b70fc68cc035df5145\u0026amp;signature=3164f9cd17f698a3bfaa42dfdf82a906c0259c7f2537690b0f42cfb0d844a829\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/themobilefirstcompany/XpmSCPLu2mWezDP7/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Allo — Help Center\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#002C2A\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003clink data-mint-head rel=\"canonical\" href=\"https://help.withallo.com/en/v2/api-reference/agent/update-agent\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/v2/api-reference/agent/update-agent.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://help.withallo.com/en/v2/api-reference/agent/update-agent\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://help.withallo.com/fr/v2/api-reference/agent/update-agent\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://help.withallo.com/en/v2/api-reference/agent/update-agent\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://help.withallo.com/#organization\",\"name\":\"Allo — Help Center\",\"url\":\"https://help.withallo.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/themobilefirstcompany/lUQseAX2HkM5_D4I/Allo-logo-dark.svg?fit=max\u0026auto=format\u0026n=lUQseAX2HkM5_D4I\u0026q=85\u0026s=fc710c4b2d7fad80babb5aff40fd445f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://help.withallo.com#website\",\"name\":\"Allo — Help Center\",\"url\":\"https://help.withallo.com\",\"publisher\":{\"@id\":\"https://help.withallo.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://help.withallo.com/en/v2/api-reference/agent/update-agent#webpage\",\"url\":\"https://help.withallo.com/en/v2/api-reference/agent/update-agent\",\"name\":\"Update configuration\",\"description\":\"Updates any part of the configuration except the prompt and the on/off status. Single values are merged, collections are replaced. This does not put the receptionist on the line: that is PUT /v2/api/numbers/{number}/agent/status.\",\"dateModified\":\"2026-10-07T23:47:08.581Z\",\"isPartOf\":{\"@id\":\"https://help.withallo.com#website\"},\"breadcrumb\":{\"@id\":\"https://help.withallo.com/en/v2/api-reference/agent/update-agent#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://help.withallo.com/en/v2/api-reference/agent/update-agent#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"AI Receptionist\",\"item\":\"https://help.withallo.com/en/v2/api-reference/agent/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update configuration\",\"item\":\"https://help.withallo.com/en/v2/api-reference/agent/update-agent\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://help.withallo.com/en/v2/api-reference/agent/update-agent#apireference\",\"headline\":\"Update configuration\",\"name\":\"Update configuration\",\"description\":\"Updates any part of the configuration except the prompt and the on/off status. Single values are merged, collections are replaced. This does not put the receptionist on the line: that is PUT /v2/api/numbers/{number}/agent/status.\",\"url\":\"https://help.withallo.com/en/v2/api-reference/agent/update-agent\",\"mainEntityOfPage\":{\"@id\":\"https://help.withallo.com/en/v2/api-reference/agent/update-agent#webpage\"},\"dateModified\":\"2026-10-07T23:47:08.581Z\",\"publisher\":{\"@id\":\"https://help.withallo.com/#organization\"},\"isPartOf\":{\"@id\":\"https://help.withallo.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Allo — Help Center\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Allo — Help Center\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/en/v2/api-reference/agent/update-agent.md","siteName":"Allo — Help Center","nav":{"global":null,"languages":[{"language":"en","navbar":{"links":[{"href":"/en/support/contact","label":"Contact support"},{"href":"https://withallo.com/changelog","label":"Changelog"},{"href":"https://withallo.com/download","label":"Download"}],"primary":{"type":"button","label":"Get Started","href":"https://start.withallo.com"}},"tabs":[{"tab":"Help","pages":[{"title":"Help","href":"/en/get-started"}]},{"tab":"API Reference","groups":[{"group":"API","pages":[{"title":"Overview","href":"/en/v2/api-reference/introduction"},{"title":"Authentication","href":"/en/v2/api-reference/guides/authentication"},{"title":"Rate limits","href":"/en/v2/api-reference/guides/rate-limits"},{"title":"Pagination","href":"/en/v2/api-reference/guides/pagination"},{"title":"Error handling","href":"/en/v2/api-reference/guides/error-handling"},{"title":"Error codes","href":"/en/v2/api-reference/guides/error-codes"},{"title":"Common use cases","href":"/en/v2/api-reference/guides/common-use-cases"}]},{"group":"Webhooks","pages":[{"title":"Overview","href":"/en/v2/api-reference/webhooks/overview"},{"title":"List webhooks","openapi":"GET /v2/api/webhooks","href":"/en/v2/api-reference/webhooks/get-webhooks"},{"title":"Get webhook","openapi":"GET /v2/api/webhooks/{webhook_id}","href":"/en/v2/api-reference/webhooks/get-webhook"},{"title":"Create webhook","openapi":"POST /v2/api/webhooks","href":"/en/v2/api-reference/webhooks/create-webhook"},{"title":"Update webhook","openapi":"PUT /v2/api/webhooks/{webhook_id}","href":"/en/v2/api-reference/webhooks/update-webhook"},{"title":"Delete webhook","openapi":"DELETE /v2/api/webhooks/{webhook_id}","href":"/en/v2/api-reference/webhooks/delete-webhook"},{"title":"List event types","openapi":"GET /v2/api/webhooks/event_types","href":"/en/v2/api-reference/webhooks/list-event-types"},{"title":"Event catalog","href":"/en/v2/api-reference/webhooks/event-catalog"},{"title":"Verifying webhook signatures","href":"/en/v2/api-reference/webhooks/verifying-signatures"},{"title":"Delivery and retries","href":"/en/v2/api-reference/webhooks/delivery-and-retries"},{"title":"Testing webhooks","href":"/en/v2/api-reference/webhooks/testing"},{"title":"Best practices","href":"/en/v2/api-reference/webhooks/best-practices"},{"title":"Troubleshoot","href":"/en/v2/api-reference/webhooks/troubleshooting"}]},{"group":"Conversations","pages":[{"title":"Overview","href":"/en/v2/api-reference/conversations/overview"},{"title":"List conversations","openapi":"GET /v2/api/conversations","href":"/en/v2/api-reference/conversations/list-conversations"},{"title":"Get conversation item","openapi":"GET /v2/api/conversations/items/{id}","href":"/en/v2/api-reference/conversations/get-item"},{"title":"Get recording download link","openapi":"GET /v2/api/conversations/items/{id}/recording","href":"/en/v2/api-reference/conversations/get-item-recording"},{"title":"Search conversation items","openapi":"POST /v2/api/conversations/items/search","href":"/en/v2/api-reference/conversations/search-conversation-items"},{"title":"Get many conversation items","openapi":"POST /v2/api/conversations/items/batch","href":"/en/v2/api-reference/conversations/batch-get"},{"title":"Execute conversation action","openapi":"PUT /v2/api/conversations/{contact_number}/action","href":"/en/v2/api-reference/conversations/execute-action"},{"title":"Update call summary","openapi":"PATCH /v2/api/conversations/items/{id}/summary","href":"/en/v2/api-reference/conversations/update-summary"},{"title":"Pin conversation","openapi":"PUT /v2/api/conversations/{contact_number}/pin","href":"/en/v2/api-reference/conversations/pin-conversation"},{"title":"Unpin conversation","openapi":"DELETE /v2/api/conversations/{contact_number}/pin","href":"/en/v2/api-reference/conversations/unpin-conversation"}]},{"group":"CRM","pages":[{"title":"Overview","href":"/en/v2/api-reference/crm/overview"}]},{"group":"People","pages":[{"title":"Overview","href":"/en/v2/api-reference/crm/people-overview"},{"title":"Get person","openapi":"GET /v2/api/crm/people/{id}","href":"/en/v2/api-reference/crm/get-person"},{"title":"Create person","openapi":"POST /v2/api/crm/people","href":"/en/v2/api-reference/crm/create-person"},{"title":"Update person","openapi":"PUT /v2/api/crm/people/{id}","href":"/en/v2/api-reference/crm/update-person"},{"title":"Search people","openapi":"POST /v2/api/crm/people/search","href":"/en/v2/api-reference/crm/search-people"}]},{"group":"Custom fields","pages":[{"title":"Overview","href":"/en/v2/api-reference/crm/attributes-overview"},{"title":"List custom fields","openapi":"GET /v2/api/crm/attributes","href":"/en/v2/api-reference/crm/list-attributes"},{"title":"Create custom field","openapi":"POST /v2/api/crm/attributes","href":"/en/v2/api-reference/crm/create-attribute"},{"title":"Update custom field","openapi":"PATCH /v2/api/crm/attributes/{key}","href":"/en/v2/api-reference/crm/update-attribute"},{"title":"Delete custom field","openapi":"DELETE /v2/api/crm/attributes/{key}","href":"/en/v2/api-reference/crm/delete-attribute"}]},{"group":"Views","pages":[{"title":"Overview","href":"/en/v2/api-reference/crm/views-overview"},{"title":"List views","openapi":"GET /v2/api/crm/views","href":"/en/v2/api-reference/crm/list-views"},{"title":"Get view","openapi":"GET /v2/api/crm/views/{id}","href":"/en/v2/api-reference/crm/get-view"},{"title":"Create view","openapi":"POST /v2/api/crm/views","href":"/en/v2/api-reference/crm/create-view"},{"title":"Update view","openapi":"PATCH /v2/api/crm/views/{id}","href":"/en/v2/api-reference/crm/update-view"},{"title":"Delete view","openapi":"DELETE /v2/api/crm/views/{id}","href":"/en/v2/api-reference/crm/delete-view"}]},{"group":"Companies","pages":[{"title":"Overview","href":"/en/v2/api-reference/crm/companies-overview"},{"title":"Get company","openapi":"GET /v2/api/crm/companies/{id}","href":"/en/v2/api-reference/crm/get-company"},{"title":"Create company","openapi":"POST /v2/api/crm/companies","href":"/en/v2/api-reference/crm/create-company"},{"title":"Update company","openapi":"PUT /v2/api/crm/companies/{id}","href":"/en/v2/api-reference/crm/update-company"},{"title":"Search companies","openapi":"POST /v2/api/crm/companies/search","href":"/en/v2/api-reference/crm/search-companies"},{"title":"List company attributes","openapi":"GET /v2/api/crm/companies/attributes","href":"/en/v2/api-reference/crm/list-company-attributes"},{"title":"Create company attribute","openapi":"POST /v2/api/crm/companies/attributes","href":"/en/v2/api-reference/crm/create-company-attribute"},{"title":"Update company attribute","openapi":"PATCH /v2/api/crm/companies/attributes/{key}","href":"/en/v2/api-reference/crm/update-company-attribute"},{"title":"Delete company attribute","openapi":"DELETE /v2/api/crm/companies/attributes/{key}","href":"/en/v2/api-reference/crm/delete-company-attribute"}]},{"group":"Deals","pages":[{"title":"Overview","href":"/en/v2/api-reference/crm/deals-overview"},{"title":"Search deals","openapi":"POST /v2/api/crm/deals/search","href":"/en/v2/api-reference/crm/search-deals"},{"title":"Get deal","openapi":"GET /v2/api/crm/deals/{id}","href":"/en/v2/api-reference/crm/get-deal"}]},{"group":"Notes","pages":[{"title":"Overview","href":"/en/v2/api-reference/notes/overview"},{"title":"List conversation notes","openapi":"GET /v2/api/conversations/{contact_number}/notes","href":"/en/v2/api-reference/notes/list-conversation-notes"},{"title":"Create conversation note","openapi":"POST /v2/api/conversations/{contact_number}/notes","href":"/en/v2/api-reference/notes/create-conversation-note"},{"title":"Get conversation note","openapi":"GET /v2/api/conversations/notes/{id}","href":"/en/v2/api-reference/notes/get-conversation-note"},{"title":"Update conversation note","openapi":"PATCH /v2/api/conversations/notes/{id}","href":"/en/v2/api-reference/notes/update-conversation-note"},{"title":"Delete conversation note","openapi":"DELETE /v2/api/conversations/notes/{id}","href":"/en/v2/api-reference/notes/delete-conversation-note"},{"title":"List person notes","openapi":"GET /v2/api/crm/people/{person_id}/notes","href":"/en/v2/api-reference/notes/list-person-notes"},{"title":"Create person note","openapi":"POST /v2/api/crm/people/{person_id}/notes","href":"/en/v2/api-reference/notes/create-person-note"},{"title":"Update person note","openapi":"PATCH /v2/api/crm/people/{person_id}/notes/{note_id}","href":"/en/v2/api-reference/notes/update-person-note"},{"title":"Delete person note","openapi":"DELETE /v2/api/crm/people/{person_id}/notes/{note_id}","href":"/en/v2/api-reference/notes/delete-person-note"}]},{"group":"Threads","pages":[{"title":"Overview","href":"/en/v2/api-reference/threads/overview"},{"title":"Get thread","openapi":"GET /v2/api/threads/{id}","href":"/en/v2/api-reference/threads/get-thread"},{"title":"Find thread","openapi":"GET /v2/api/threads","href":"/en/v2/api-reference/threads/find-thread"},{"title":"Create thread","openapi":"POST /v2/api/threads","href":"/en/v2/api-reference/threads/create-thread"},{"title":"Create thread comment","openapi":"POST /v2/api/threads/{id}/comments","href":"/en/v2/api-reference/threads/create-comment"},{"title":"Update thread comment","openapi":"PATCH /v2/api/threads/comments/{comment_id}","href":"/en/v2/api-reference/threads/update-comment"},{"title":"Resolve thread","openapi":"POST /v2/api/threads/{id}/resolve","href":"/en/v2/api-reference/threads/resolve-thread"},{"title":"Unresolve thread","openapi":"POST /v2/api/threads/{id}/unresolve","href":"/en/v2/api-reference/threads/unresolve-thread"}]},{"group":"Inboxes","pages":[{"title":"Overview","href":"/en/v2/api-reference/inboxes/overview"},{"title":"List inboxes","openapi":"GET /v2/api/inboxes","href":"/en/v2/api-reference/inboxes/list-inboxes"},{"title":"Get inbox suggestions","openapi":"GET /v2/api/inboxes/suggestions","href":"/en/v2/api-reference/inboxes/get-inbox-suggestions"},{"title":"List menu options","openapi":"GET /v2/api/numbers/{number}/menu_options","href":"/en/v2/api-reference/inboxes/list-menu-options"},{"title":"Create inbox","openapi":"POST /v2/api/inboxes","href":"/en/v2/api-reference/inboxes/create-inbox"},{"title":"Update inbox","openapi":"PATCH /v2/api/inboxes/{inbox_id}","href":"/en/v2/api-reference/inboxes/update-inbox"},{"title":"Delete inbox","openapi":"DELETE /v2/api/inboxes/{inbox_id}","href":"/en/v2/api-reference/inboxes/delete-inbox"}]},{"group":"Phone Numbers","pages":[{"title":"Overview","href":"/en/v2/api-reference/phone-numbers/overview"},{"title":"List phone numbers","openapi":"GET /v2/api/numbers","href":"/en/v2/api-reference/phone-numbers/list-numbers"},{"title":"Get call flow","openapi":"GET /v2/api/numbers/{number}/call_flow","href":"/en/v2/api-reference/phone-numbers/get-call-flow"},{"title":"Get call flow draft","openapi":"GET /v2/api/numbers/{number}/call_flow/draft","href":"/en/v2/api-reference/phone-numbers/get-call-flow-draft"},{"title":"Save call flow draft","openapi":"PUT /v2/api/numbers/{number}/call_flow/draft","href":"/en/v2/api-reference/phone-numbers/save-call-flow-draft"},{"title":"Publish call flow","openapi":"POST /v2/api/numbers/{number}/call_flow/publish","href":"/en/v2/api-reference/phone-numbers/publish-call-flow"}]},{"group":"AI Receptionist","pages":[{"title":"Overview","href":"/en/v2/api-reference/agent/overview"},{"title":"Get configuration","openapi":"GET /v2/api/numbers/{number}/agent","description":"Returns the whole configuration of a line's AI receptionist in one call: business details, voice and language, prompt, capabilities, business hours, transfer rules, connected calendars and knowledge sources. Call this before a write, because `PATCH` replaces whole collections.","href":"/en/v2/api-reference/agent/get-agent"},{"title":"Update configuration","openapi":"PATCH /v2/api/numbers/{number}/agent","href":"/en/v2/api-reference/agent/update-agent"},{"title":"Set prompt","openapi":"PUT /v2/api/numbers/{number}/agent/prompt","description":"Replaces the receptionist's prompt: what it is trying to achieve, who it is, how it handles the call. A prompt is only valid whole, so read the current sections with `GET /v2/api/numbers/{number}/agent` and send them all back, including the ones you are not changing. Facts about the business belong in `knowledge`, not here.","href":"/en/v2/api-reference/agent/set-agent-prompt"},{"title":"Turn on or off","openapi":"PUT /v2/api/numbers/{number}/agent/status","href":"/en/v2/api-reference/agent/set-agent-status"},{"title":"Add website knowledge","openapi":"POST /v2/api/numbers/{number}/agent/knowledge/websites","href":"/en/v2/api-reference/agent/add-website-knowledge"},{"title":"Enable or disable a website","openapi":"PATCH /v2/api/numbers/{number}/agent/knowledge/websites/{id}","href":"/en/v2/api-reference/agent/update-website-knowledge"},{"title":"Delete website knowledge","openapi":"DELETE /v2/api/numbers/{number}/agent/knowledge/websites/{id}","href":"/en/v2/api-reference/agent/delete-website-knowledge"},{"title":"Delete file knowledge","openapi":"DELETE /v2/api/numbers/{number}/agent/knowledge/files/{id}","href":"/en/v2/api-reference/agent/delete-file-knowledge"},{"title":"List calendars","openapi":"GET /v2/api/calendars","href":"/en/v2/api-reference/agent/list-calendars"},{"title":"Get a calendar","openapi":"GET /v2/api/calendars/{id}","href":"/en/v2/api-reference/agent/get-calendar"},{"title":"List voices","openapi":"GET /v2/api/voices","href":"/en/v2/api-reference/agent/list-voices"}]},{"group":"Tags","pages":[{"title":"Overview","href":"/en/v2/api-reference/tags/overview"},{"title":"List tags","openapi":"GET /v2/api/tags","href":"/en/v2/api-reference/tags/list-tags"},{"title":"Create tag","openapi":"POST /v2/api/tags","href":"/en/v2/api-reference/tags/create-tag"},{"title":"Delete tag","openapi":"DELETE /v2/api/tags/{id}","href":"/en/v2/api-reference/tags/delete-tag"},{"title":"Add tags","openapi":"POST /v2/api/conversations/items/{id}/tags","href":"/en/v2/api-reference/tags/add-tags"},{"title":"Remove tag","openapi":"DELETE /v2/api/conversations/items/{id}/tags/{tag}","href":"/en/v2/api-reference/tags/remove-tag"}]},{"group":"Summary Templates","pages":[{"title":"Overview","href":"/en/v2/api-reference/summary-templates/overview"},{"title":"List summary templates","openapi":"GET /v2/api/summary_templates","href":"/en/v2/api-reference/summary-templates/list-summary-templates"},{"title":"Get summary template","openapi":"GET /v2/api/summary_templates/{id}","href":"/en/v2/api-reference/summary-templates/get-summary-template"},{"title":"Create summary template","openapi":"POST /v2/api/summary_templates","href":"/en/v2/api-reference/summary-templates/create-summary-template"},{"title":"Update summary template","openapi":"PUT /v2/api/summary_templates/{id}","href":"/en/v2/api-reference/summary-templates/update-summary-template"},{"title":"Delete summary template","openapi":"DELETE /v2/api/summary_templates/{id}","href":"/en/v2/api-reference/summary-templates/delete-summary-template"},{"title":"Set a number's default template","openapi":"PUT /v2/api/numbers/{number}/default_summary_template","href":"/en/v2/api-reference/summary-templates/set-number-default-summary-template"}]},{"group":"Users","pages":[{"title":"Overview","href":"/en/v2/api-reference/users/overview"},{"title":"Me","openapi":"GET /v2/api/me","href":"/en/v2/api-reference/users/me"},{"title":"List users","openapi":"GET /v2/api/users","href":"/en/v2/api-reference/users/list-users"},{"title":"Get user","openapi":"GET /v2/api/users/{id}","href":"/en/v2/api-reference/users/get-user"}]},{"group":"SMS","pages":[{"title":"Overview","href":"/en/v2/api-reference/sms/overview"},{"title":"Send SMS","openapi":"POST /v1/api/sms","href":"/en/v2/api-reference/sms/send-sms"},{"title":"Send SMS (France)","openapi":"POST /v1/api/sms#france","href":"/en/v2/api-reference/sms/send-sms-france"}]},{"group":"Analytics","pages":[{"title":"Overview","href":"/en/v2/api-reference/analytics/overview"},{"title":"Team metrics","openapi":"POST /v2/api/analytics/overview","href":"/en/v2/api-reference/analytics/team-summary"},{"title":"Outbound metrics","openapi":"POST /v2/api/analytics/outbound","href":"/en/v2/api-reference/analytics/outbound"}]},{"group":"Power Dialer","pages":[{"title":"Overview","href":"/en/v2/api-reference/dialing-queues/overview"},{"title":"List current queue numbers","openapi":"GET /v2/api/dialing-queues/current","href":"/en/v2/api-reference/dialing-queues/get-current"},{"title":"Upsert current queue","openapi":"PATCH /v2/api/dialing-queues/current","href":"/en/v2/api-reference/dialing-queues/update-current"},{"title":"Append numbers","openapi":"POST /v2/api/dialing-queues/current/numbers","href":"/en/v2/api-reference/dialing-queues/append-numbers"},{"title":"Clear queue numbers","openapi":"DELETE /v2/api/dialing-queues/current/numbers","href":"/en/v2/api-reference/dialing-queues/clear-numbers"},{"title":"Reset current queue","openapi":"POST /v2/api/dialing-queues/current","href":"/en/v2/api-reference/dialing-queues/reset-current"},{"title":"Reassign queue","openapi":"PATCH /v2/api/dialing-queues/{queue_id}/assignee","href":"/en/v2/api-reference/dialing-queues/assign-queue"}]},{"group":"Partner","pages":[{"title":"Overview","href":"/en/v2/api-reference/partner/overview"},{"title":"Get account price","openapi":"GET /v2/api/partner/accounts/price","href":"/en/v2/api-reference/partner/get-price"},{"title":"Create account","openapi":"POST /v2/api/partner/accounts","href":"/en/v2/api-reference/partner/create-account"},{"title":"Get account","openapi":"GET /v2/api/partner/accounts/{id}","href":"/en/v2/api-reference/partner/get-account"},{"title":"Deactivate account","openapi":"DELETE /v2/api/partner/accounts/{id}","href":"/en/v2/api-reference/partner/delete-account"},{"title":"Get number price","openapi":"GET /v2/api/partner/accounts/{id}/numbers/price","href":"/en/v2/api-reference/partner/get-number-price"},{"title":"Add number","openapi":"POST /v2/api/partner/accounts/{id}/numbers","href":"/en/v2/api-reference/partner/add-number"},{"title":"Add member","openapi":"POST /v2/api/partner/accounts/{id}/members","href":"/en/v2/api-reference/partner/add-member"},{"title":"List members","openapi":"GET /v2/api/partner/accounts/{id}/members","href":"/en/v2/api-reference/partner/list-members"},{"title":"Get prepaid credit","openapi":"GET /v2/api/partner/credit","href":"/en/v2/api-reference/partner/get-credit"},{"title":"Get eSIM offer","openapi":"GET /v2/api/partner/accounts/{account_id}/esims/offer","href":"/en/v2/api-reference/partner/get-esim-offer"},{"title":"Order eSIM","openapi":"POST /v2/api/partner/accounts/{account_id}/esims","href":"/en/v2/api-reference/partner/order-esim"},{"title":"Get eSIM","openapi":"GET /v2/api/partner/esims/{id}","href":"/en/v2/api-reference/partner/get-esim"},{"title":"Get eSIM activation code","openapi":"GET /v2/api/partner/esims/{id}/activation_code","href":"/en/v2/api-reference/partner/get-esim-activation-code"}]}]}]},{"language":"fr","navbar":{"links":[{"href":"/fr/support/contact","label":"Contacter le support"},{"href":"https://withallo.com/changelog","label":"Changelog"},{"href":"https://withallo.com/download","label":"Download"}],"primary":{"type":"button","label":"Get Started","href":"https://start.withallo.com"}},"pages":[{"title":"fr","href":"/fr/v2/api-reference/agent/update-agent"}]}]},"basePath":"","title":"Update configuration - Allo — Help Center","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","Page-D6S0Yh6q.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}