Updates the configuration of a Simple Pearl (name, pearl settings and variables). The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. For Pearls, use Update Voice Pearl or Update Text Pearl instead.
Variables that can be defined, stored, and used by the agent during conversations.
For details on variable groups and how to use variables in supported fields, see: Flow Variables
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"NLPearl Documentation","colors":{"primary":"#111111","light":"#F7F7F7","dark":"#111111"},"logo":{"light":"https://mintcdn.com/nlpearl/DSJnNLmkdffV1qq-/images/light_mode/logo_dark.png?fit=max\u0026auto=format\u0026n=DSJnNLmkdffV1qq-\u0026q=85\u0026s=a0f34eb8d06f12c8f03693ffc4dfffeb","dark":"https://mintcdn.com/nlpearl/OLkkXJCUYovrG0y1/images/dark_mode/logo_white.png?fit=max\u0026auto=format\u0026n=OLkkXJCUYovrG0y1\u0026q=85\u0026s=ca1df5c71744266b64671933f827dfa0"},"favicon":"https://mintcdn.com/nlpearl/yjNN1PpSs3yxoZOQ/logo/NLPearlPhoneBlack.png?fit=max\u0026auto=format\u0026n=yjNN1PpSs3yxoZOQ\u0026q=85\u0026s=e3e03483b2f74c5695aba247785b4980","background":{"color":{"dark":"#1A1A19"}},"fonts":{"family":"Roboto"},"banner":{"content":"🎙️ Pearl TTS is now live! [Turn text into speech](/pages/voice_studio) and clone your own voice in Voice Studio.","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"nlpearl","hasAudioNarration":false,"actualSubdomain":"nlpearl","customDomains":["developers.nlpearl.ai"],"gitSource":{"type":"github","owner":"nlpearldev","repo":"nlpearldocumentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea23efbe4973f62cf42c4e","collectionId":"d2d719ee-921a-4cc2-ad6a-a9f53e90e573","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea23efbe4973f62cf42c4e"},"entitlements":{},"buildId":"6aea23efbe4973f62cf42c4e","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"API Reference","count":81},{"language":"default","tag":"API V2","count":50},{"language":"default","tag":"Docs","count":48},{"language":"default","tag":"API V1","count":26},{"language":"default","tag":"Outbound","count":25},{"language":"default","tag":"Pearl Configurations","count":20},{"language":"default","tag":"Pearl Voice","count":16},{"language":"default","tag":"General","count":13},{"language":"default","tag":"Pearl Text","count":11},{"language":"default","tag":"Account","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":"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":"vite-origin","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":"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},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"css/custom.css","content":"a[href=\"https://platform.nlpearl.ai/\"]{transition:color 0.3s ease, fill 0.3s ease}a[href=\"https://platform.nlpearl.ai/\"]:hover{color:#006FFE}a[href=\"https://platform.nlpearl.ai/\"]:hover svg,a[href=\"https://platform.nlpearl.ai/\"]:hover svg path{fill:#1620aa!important}[class*=\"max-w-xl\"][class*=\"max-w-2xl\"],[class*=\"max-w-xl\"][class*=\"grow\"]{max-width:48rem!important}:root{--content-width: 48rem}a.nav-tabs-item[href*=\"api-reference\"]{color:#2DBE73!important;font-weight:600!important}a.nav-tabs-item[href*=\"api-reference\"]:hover,a.nav-tabs-item[href*=\"api-reference\"][class*=\"text-shadow\"]{color:#2DBE73!important}.dark a.nav-tabs-item[href*=\"api-reference\"][class*=\"text-shadow\"]{color:#FFFFFF!important}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:#A1A1A1;text-align:left}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){display:table}.dark #content-area div.mdx-content.prose>span[data-as=p],.dark #content-area div.mdx-content .prose span[data-as=p],.dark #content-area div.mdx-content.prose td,.dark #content-area div.mdx-content .prose td,.dark #content-area div.mdx-content.prose li,.dark #content-area div.mdx-content .prose li{color:#c8c8c8!important}.dark #content-area div.mdx-content .callout li,.dark #content-area div.mdx-content .callout span[data-as=p],.dark #content-area div.mdx-content .callout span,.dark #content-area div.mdx-content .callout td,.dark #content-area div.mdx-content .callout p{color:inherit!important}details.accordion{background-color:rgba(255, 255, 255, 0.025)!important;border-color:rgba(255, 255, 255, 0.08)!important}details.accordion>summary{padding-top:13px!important;padding-bottom:13px!important;padding-left:12px!important;padding-right:12px!important;transition:background-color 0.2s ease}details.accordion>summary:hover{background-color:rgba(255, 255, 255, 0.05)!important}details.accordion p[data-component-part=\"accordion-title\"]{font-size:0.9rem!important}.accordion-group{border-color:rgba(255, 255, 255, 0.08)!important}.accordion-group>details{border-color:rgba(255, 255, 255, 0.06)!important}#banner{background-color:#1F1F1F!important}:root[class~=\"dark\"]{--background: 60 2% 10% !important;--background-dark: 26 26 25 !important}"}],"page":{"pagePath":"api-reference/v2/pearlFlow/update-pearl-flow","slug":"/api-reference/v2/pearlFlow/update-pearl-flow","pageMetadata":{"openapi":"put /v2/Pearl/{pearlId}","title":"Update Pearl","description":"Updates the configuration of a Simple Pearl (name, pearl settings and variables). The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. For Pearls, use Update Voice Pearl or Update Text Pearl instead.","href":"/api-reference/v2/pearlFlow/update-pearl-flow"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Updates the configuration of a Simple Pearl (name, pearl settings and variables). The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. For Pearls, use Update Voice Pearl or Update Text Pearl instead.\"\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"put /v2/Pearl/{pearlId}","title":"Update Pearl","description":"Updates the configuration of a Simple Pearl (name, pearl settings and variables). The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. For Pearls, use Update Voice Pearl or Update Text Pearl instead.","href":"/api-reference/v2/pearlFlow/update-pearl-flow"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Pearl"],"summary":"Update Pearl","description":"Updates the configuration of a Simple Pearl (name, pearl settings and variables). The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. For Pearls, use Update Voice Pearl or Update Text Pearl instead.","parameters":["a14ea150-8380-40a3-9dc3-a9912a2ad4be"],"requestBody":"96065550-8a81-4c15-8f73-19d0f8a3fab9","responses":{"200":"17966db8-34ad-41e9-b840-b8adf0d90a81","400":"9d17ce03-c53d-467d-a7fb-93b0cc262e86"},"method":"put","type":"path","servers":["97fe3b36-7240-450a-91db-08f0f513c5ca"],"security":["d10e24f8-f72b-42cb-89ba-7d212b24326e","fe39eb34-84be-4ead-9434-f64ad29ef824"],"path":"/v2/Pearl/{pearlId}","baseUrlOptions":["https://api.nlpearl.ai"],"title":"Update Pearl","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"a14ea150-8380-40a3-9dc3-a9912a2ad4be":{"name":"pearlId","in":"path","description":"The unique identifier of the Pearl.","required":true,"schema":{"type":"string","isRequired":true,"description":"The unique identifier of the Pearl.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"description":"The updated Pearl flow configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The updated name of the Pearl.","uniqueKey":"name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The updated name of the Pearl.","uniqueKey":"name.oneOf.1","typeLabel":"null"}],"uniqueKey":"name","typeLabel":"string | null"},"pearl":{"oneOf":[{"type":"object","description":"Updated conversation flow and agent behavior configuration for the Pearl.","properties":{"agents":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The display name of the agent.\n\nConstraints:\n- Max length: 50 characters.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The display name of the agent.\n\nConstraints:\n- Max length: 50 characters.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"voiceId":{"oneOf":[{"type":"string","description":"The ID of the voice to use for this agent.\r\nTo retrieve available voices, see: [Get Voices](/api-reference/v2/pearlSettings/get-voices)\r\n \r\nConstraints:\r\n- Required: an agent without a voiceId is rejected.\r\n- The voice language must be unique across agents in the same Pearl (no two agents can use voices from the same language).","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].voiceId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The ID of the voice to use for this agent.\r\nTo retrieve available voices, see: [Get Voices](/api-reference/v2/pearlSettings/get-voices)\r\n \r\nConstraints:\r\n- Required: an agent without a voiceId is rejected.\r\n- The voice language must be unique across agents in the same Pearl (no two agents can use voices from the same language).","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].voiceId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].voiceId","typeLabel":"string | null"},"clientVoiceId":{"oneOf":[{"type":"string","description":"The ID of the copy of the voice to use, when your account holds several copies of the same voice (each with its own name and pace) in My voices on the platform.\r\nFor a voice of version `2`, the agent speaks at the pace of this copy. For a voice of version `1`, it has no effect on how the agent speaks.\r\nThis parameter is optional: when it is omitted, a voice of version `2` speaks at the pace of the first copy of the voice in your account, or at the default pace if your account has no copy of it.\r\nIt must refer to one of your account's copies of the voice given in `voiceId`, otherwise it is ignored, as if omitted.\r\nGet Pearl Settings returns it when a copy is set: when you update the agents of a Pearl, send it back unchanged to keep the same copy.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].clientVoiceId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The ID of the copy of the voice to use, when your account holds several copies of the same voice (each with its own name and pace) in My voices on the platform.\r\nFor a voice of version `2`, the agent speaks at the pace of this copy. For a voice of version `1`, it has no effect on how the agent speaks.\r\nThis parameter is optional: when it is omitted, a voice of version `2` speaks at the pace of the first copy of the voice in your account, or at the default pace if your account has no copy of it.\r\nIt must refer to one of your account's copies of the voice given in `voiceId`, otherwise it is ignored, as if omitted.\r\nGet Pearl Settings returns it when a copy is set: when you update the agents of a Pearl, send it back unchanged to keep the same copy.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].clientVoiceId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].clientVoiceId","typeLabel":"string | null"}},"additionalProperties":false,"description":"An agent of the Pearl: its display name and the voice it speaks with.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Agents configured for the Pearl.\n\n- Each agent represents a language-specific entry point (based on the selected voice).\n- Configure multiple agents to support multilingual experiences and language-based transfers.\n\nConstraints:\n- At least one agent is required.\n- Each agent must have a voiceId.\n- Voice language must be unique across agents (no duplicates).","uniqueKey":"pearl.oneOf.0.agents.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The display name of the agent.\n\nConstraints:\n- Max length: 50 characters."},{"type":"null","description":"The display name of the agent.\n\nConstraints:\n- Max length: 50 characters."}]},"voiceId":{"oneOf":[{"type":"string","description":"The ID of the voice to use for this agent.\r\nTo retrieve available voices, see: [Get Voices](/api-reference/v2/pearlSettings/get-voices)\r\n \r\nConstraints:\r\n- Required: an agent without a voiceId is rejected.\r\n- The voice language must be unique across agents in the same Pearl (no two agents can use voices from the same language)."},{"type":"null","description":"The ID of the voice to use for this agent.\r\nTo retrieve available voices, see: [Get Voices](/api-reference/v2/pearlSettings/get-voices)\r\n \r\nConstraints:\r\n- Required: an agent without a voiceId is rejected.\r\n- The voice language must be unique across agents in the same Pearl (no two agents can use voices from the same language)."}]},"clientVoiceId":{"oneOf":[{"type":"string","description":"The ID of the copy of the voice to use, when your account holds several copies of the same voice (each with its own name and pace) in My voices on the platform.\r\nFor a voice of version `2`, the agent speaks at the pace of this copy. For a voice of version `1`, it has no effect on how the agent speaks.\r\nThis parameter is optional: when it is omitted, a voice of version `2` speaks at the pace of the first copy of the voice in your account, or at the default pace if your account has no copy of it.\r\nIt must refer to one of your account's copies of the voice given in `voiceId`, otherwise it is ignored, as if omitted.\r\nGet Pearl Settings returns it when a copy is set: when you update the agents of a Pearl, send it back unchanged to keep the same copy."},{"type":"null","description":"The ID of the copy of the voice to use, when your account holds several copies of the same voice (each with its own name and pace) in My voices on the platform.\r\nFor a voice of version `2`, the agent speaks at the pace of this copy. For a voice of version `1`, it has no effect on how the agent speaks.\r\nThis parameter is optional: when it is omitted, a voice of version `2` speaks at the pace of the first copy of the voice in your account, or at the default pace if your account has no copy of it.\r\nIt must refer to one of your account's copies of the voice given in `voiceId`, otherwise it is ignored, as if omitted.\r\nGet Pearl Settings returns it when a copy is set: when you update the agents of a Pearl, send it back unchanged to keep the same copy."}]}},"additionalProperties":false,"description":"An agent of the Pearl: its display name and the voice it speaks with."},"description":"Agents configured for the Pearl.\n\n- Each agent represents a language-specific entry point (based on the selected voice).\n- Configure multiple agents to support multilingual experiences and language-based transfers.\n\nConstraints:\n- At least one agent is required.\n- Each agent must have a voiceId.\n- Voice language must be unique across agents (no duplicates).","uniqueKey":"pearl.oneOf.0.agents.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agents","typeLabel":"object[] | null"},"agentPersonality":{"oneOf":[{"type":"string","description":"Defines the agent's personality and tone (for example, more assertive or more calm).\n\nConstraints:\n- Max length: 35 characters.","uniqueKey":"pearl.oneOf.0.agentPersonality.oneOf.0","typeLabel":"string"},{"type":"null","description":"Defines the agent's personality and tone (for example, more assertive or more calm).\n\nConstraints:\n- Max length: 35 characters.","uniqueKey":"pearl.oneOf.0.agentPersonality.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agentPersonality","typeLabel":"string | null"},"timeZone":{"oneOf":[{"type":"string","description":"Time zone identifier used by the Pearl's agents.\r\n \r\nThe agent will operate according to this time zone, regardless of the lead/customer local time zone.\r\nFor accepted values, refer to the [Windows Time Zones list](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11).\r\n \r\nExample: \"Pacific Standard Time\", \"Romance Standard Time\".","uniqueKey":"pearl.oneOf.0.timeZone.oneOf.0","typeLabel":"string"},{"type":"null","description":"Time zone identifier used by the Pearl's agents.\r\n \r\nThe agent will operate according to this time zone, regardless of the lead/customer local time zone.\r\nFor accepted values, refer to the [Windows Time Zones list](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11).\r\n \r\nExample: \"Pacific Standard Time\", \"Romance Standard Time\".","uniqueKey":"pearl.oneOf.0.timeZone.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.timeZone","typeLabel":"string | null"},"modelType":{"oneOf":[{"type":"integer","description":"Agent model type.\n\nVoice Pearls use one of these models:\n- Trident: Highest-quality model with standard rate. Optimized for natural, human-like interactions.\n- Oyster: Most cost-effective model (2 credits cheaper per minute). Straightforward, prioritizes simplicity and efficiency.\n- Arrow: Default for voice Pearls. High-intelligence model with the same depth as Trident, built for ultra-low latency (fastest). Costs 2 credits more per minute.\n- Hydra: Smartest model, built for demanding tasks that need deeper reasoning. Costs 2 credits more per minute.\n\nText Pearls (chat and messaging conversations) use one of these models:\n- Orchid: Default for text Pearls. The most advanced text model, smarter than Swan, with high reasoning. Costs 1 credit more per message.\n- Swan: Text model with high reasoning and standard rate.\n\nOrchid and Swan are not available for voice Pearls, and the voice models are not available for text Pearls.\n\n`1 - Trident`\n\n`2 - Oyster`\n\n`3 - Arrow`\n\n`4 - Hydra`\n\n`5 - Flame`\n\n`11 - Swan`\n\n`12 - Orchid`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.modelType.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.modelType.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.modelType","typeLabel":"integer\u003cint32> | null"},"companyName":{"oneOf":[{"type":"string","description":"The company name used by the agent during conversations.\r\n \r\nConstraints:\r\n- Max length: 100 characters.","uniqueKey":"pearl.oneOf.0.companyName.oneOf.0","typeLabel":"string"},{"type":"null","description":"The company name used by the agent during conversations.\r\n \r\nConstraints:\r\n- Max length: 100 characters.","uniqueKey":"pearl.oneOf.0.companyName.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.companyName","typeLabel":"string | null"},"companyDescription":{"oneOf":[{"type":"string","description":"The company name used by the agent during conversations.\r\n \r\nConstraints:\r\n- Max length: 500 characters.","uniqueKey":"pearl.oneOf.0.companyDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"The company name used by the agent during conversations.\r\n \r\nConstraints:\r\n- Max length: 500 characters.","uniqueKey":"pearl.oneOf.0.companyDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.companyDescription","typeLabel":"string | null"},"knowledgeBase":{"oneOf":[{"type":"string","description":"Knowledge base content provided to the agent, such as FAQs, internal context, and operational instructions.\r\n \r\nConstraints:\r\n- Max length: 20,000 characters.","uniqueKey":"pearl.oneOf.0.knowledgeBase.oneOf.0","typeLabel":"string"},{"type":"null","description":"Knowledge base content provided to the agent, such as FAQs, internal context, and operational instructions.\r\n \r\nConstraints:\r\n- Max length: 20,000 characters.","uniqueKey":"pearl.oneOf.0.knowledgeBase.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.knowledgeBase","typeLabel":"string | null"},"memory":{"oneOf":[{"type":"boolean","description":"Indicates whether memory is enabled. When enabled, the Pearl can remember previous conversations for a given phone number.","uniqueKey":"pearl.oneOf.0.memory.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether memory is enabled. When enabled, the Pearl can remember previous conversations for a given phone number.","uniqueKey":"pearl.oneOf.0.memory.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.memory","typeLabel":"boolean | null"},"speechRecognitionKeywords":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"word":{"oneOf":[{"type":"string","description":"The keyword to recognize in speech recognition.\r\n \r\n- Max length: 50 characters.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].word.oneOf.0","typeLabel":"string"},{"type":"null","description":"The keyword to recognize in speech recognition.\r\n \r\n- Max length: 50 characters.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].word.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].word","typeLabel":"string | null"},"pronunciations":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].pronunciations.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Alternative pronunciations for the keyword.\r\n \r\nConstraints:\r\n- Max elements: 3.\r\n- Each pronunciation max length: 50 characters.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].pronunciations.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Alternative pronunciations for the keyword.\r\n \r\nConstraints:\r\n- Max elements: 3.\r\n- Each pronunciation max length: 50 characters.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].pronunciations.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].pronunciations","typeLabel":"string[] | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Keywords configured to improve speech recognition accuracy (for example product names, acronyms, or domain-specific terms).\r\n \r\nConstraints:\r\n- Max entries: 10.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"word":{"oneOf":[{"type":"string","description":"The keyword to recognize in speech recognition.\r\n \r\n- Max length: 50 characters."},{"type":"null","description":"The keyword to recognize in speech recognition.\r\n \r\n- Max length: 50 characters."}]},"pronunciations":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"Alternative pronunciations for the keyword.\r\n \r\nConstraints:\r\n- Max elements: 3.\r\n- Each pronunciation max length: 50 characters."},{"type":"null","items":{"type":"string"},"description":"Alternative pronunciations for the keyword.\r\n \r\nConstraints:\r\n- Max elements: 3.\r\n- Each pronunciation max length: 50 characters."}]}},"additionalProperties":false},"description":"Keywords configured to improve speech recognition accuracy (for example product names, acronyms, or domain-specific terms).\r\n \r\nConstraints:\r\n- Max entries: 10.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords","typeLabel":"object[] | null"},"openingSentence":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n\r\nThe opening sentence spoken by the agent when a conversation starts.\r\n \r\nConstraints:\r\n-Max 500 characters only.\r\n-Supports pre-call variables only.","uniqueKey":"pearl.oneOf.0.openingSentence.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n\r\nThe opening sentence spoken by the agent when a conversation starts.\r\n \r\nConstraints:\r\n-Max 500 characters only.\r\n-Supports pre-call variables only.","uniqueKey":"pearl.oneOf.0.openingSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.openingSentence","typeLabel":"string | null"},"flowScript":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n\r\nThe flow script the agent follows to drive the conversation.\r\n \r\nConstraints:\r\n- Max 20,000 characters.\r\n- Supports pre-call variables and in-call variables.","uniqueKey":"pearl.oneOf.0.flowScript.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n\r\nThe flow script the agent follows to drive the conversation.\r\n \r\nConstraints:\r\n- Max 20,000 characters.\r\n- Supports pre-call variables and in-call variables.","uniqueKey":"pearl.oneOf.0.flowScript.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.flowScript","typeLabel":"string | null"},"transferCallSettings":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"transferCallPhoneNumber":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe destination phone number to transfer the call to.\r\nIf a variable is used, it must resolve to a valid phone number, otherwise the transfer will fail.\r\n \r\nMax 25 characters only.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].transferCallPhoneNumber.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe destination phone number to transfer the call to.\r\nIf a variable is used, it must resolve to a valid phone number, otherwise the transfer will fail.\r\n \r\nMax 25 characters only.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].transferCallPhoneNumber.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].transferCallPhoneNumber","typeLabel":"string | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the agent should transfer the call (for example, when the caller asks to speak with a human).\r\n \r\nMax 500 characters only.\r\n \r\nIn a Simple Pearl, this field is required.\r\nIn a Pearl (node graph), it depends on how the TransferCall node is reached: required when the node\r\nhas no inbound transition (the agent fires the transfer based on this description), and not allowed when\r\nthe node is reached by transitions (the flow decides when the transfer happens).","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Instructions describing when the agent should transfer the call (for example, when the caller asks to speak with a human).\r\n \r\nMax 500 characters only.\r\n \r\nIn a Simple Pearl, this field is required.\r\nIn a Pearl (node graph), it depends on how the TransferCall node is reached: required when the node\r\nhas no inbound transition (the agent fires the transfer based on this description), and not allowed when\r\nthe node is reached by transitions (the flow decides when the transfer happens).","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].triggerDescription","typeLabel":"string | null"},"warmTransferMessage":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nOptional warm transfer message spoken by the agent when the transfer starts.\r\nIf empty, warm transfer is disabled.\r\n \r\nMax 2,000 characters only.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].warmTransferMessage.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nOptional warm transfer message spoken by the agent when the transfer starts.\r\nIf empty, warm transfer is disabled.\r\n \r\nMax 2,000 characters only.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].warmTransferMessage.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].warmTransferMessage","typeLabel":"string | null"},"isWhisper":{"type":"boolean","description":"The warm transfer mode. Only applies when a warm transfer message is set.\r\n \r\n- `true` (Whisper): only the recipient hears the warm transfer message, the caller stays on hold.\r\n- `false` (3-way): both the caller and the recipient hear the warm transfer message.\r\n \r\nDefaults to `false` (3-way) when omitted.\r\n \r\nSee [Transfer Call](/pages/transfer_call#transfer-types) for more information.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].isWhisper","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Call transfer rules configured for the Pearl (when and where calls should be transferred).\r\n \r\nConstraints:\r\n- Max rules: 10.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"transferCallPhoneNumber":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe destination phone number to transfer the call to.\r\nIf a variable is used, it must resolve to a valid phone number, otherwise the transfer will fail.\r\n \r\nMax 25 characters only."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe destination phone number to transfer the call to.\r\nIf a variable is used, it must resolve to a valid phone number, otherwise the transfer will fail.\r\n \r\nMax 25 characters only."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the agent should transfer the call (for example, when the caller asks to speak with a human).\r\n \r\nMax 500 characters only.\r\n \r\nIn a Simple Pearl, this field is required.\r\nIn a Pearl (node graph), it depends on how the TransferCall node is reached: required when the node\r\nhas no inbound transition (the agent fires the transfer based on this description), and not allowed when\r\nthe node is reached by transitions (the flow decides when the transfer happens)."},{"type":"null","description":"Instructions describing when the agent should transfer the call (for example, when the caller asks to speak with a human).\r\n \r\nMax 500 characters only.\r\n \r\nIn a Simple Pearl, this field is required.\r\nIn a Pearl (node graph), it depends on how the TransferCall node is reached: required when the node\r\nhas no inbound transition (the agent fires the transfer based on this description), and not allowed when\r\nthe node is reached by transitions (the flow decides when the transfer happens)."}]},"warmTransferMessage":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nOptional warm transfer message spoken by the agent when the transfer starts.\r\nIf empty, warm transfer is disabled.\r\n \r\nMax 2,000 characters only."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nOptional warm transfer message spoken by the agent when the transfer starts.\r\nIf empty, warm transfer is disabled.\r\n \r\nMax 2,000 characters only."}]},"isWhisper":{"type":"boolean","description":"The warm transfer mode. Only applies when a warm transfer message is set.\r\n \r\n- `true` (Whisper): only the recipient hears the warm transfer message, the caller stays on hold.\r\n- `false` (3-way): both the caller and the recipient hear the warm transfer message.\r\n \r\nDefaults to `false` (3-way) when omitted.\r\n \r\nSee [Transfer Call](/pages/transfer_call#transfer-types) for more information."}},"additionalProperties":false},"description":"Call transfer rules configured for the Pearl (when and where calls should be transferred).\r\n \r\nConstraints:\r\n- Max rules: 10.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.transferCallSettings","typeLabel":"object[] | null"},"smsSettings":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe SMS message content.\r\n \r\nConstraints:\r\n- Max 2,000 characters.\r\n- Supports pre-call and in-call variables.\r\n- If sent at end of call, may also support post-call variables.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].body.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe SMS message content.\r\n \r\nConstraints:\r\n- Max 2,000 characters.\r\n- Supports pre-call and in-call variables.\r\n- If sent at end of call, may also support post-call variables.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].body","typeLabel":"string | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the SMS should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Instructions describing when the SMS should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].triggerDescription","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"SMS templates and triggers configured for the Pearl.\r\n \r\nDuring a call, the agent can send SMS messages based on these rules.\r\n \r\nConstraints:\r\n- Max templates: 10.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe SMS message content.\r\n \r\nConstraints:\r\n- Max 2,000 characters.\r\n- Supports pre-call and in-call variables.\r\n- If sent at end of call, may also support post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe SMS message content.\r\n \r\nConstraints:\r\n- Max 2,000 characters.\r\n- Supports pre-call and in-call variables.\r\n- If sent at end of call, may also support post-call variables."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the SMS should be sent (trigger conditions).\r\n \r\nMax 500 characters only."},{"type":"null","description":"Instructions describing when the SMS should be sent (trigger conditions).\r\n \r\nMax 500 characters only."}]}},"additionalProperties":false},"description":"SMS templates and triggers configured for the Pearl.\r\n \r\nDuring a call, the agent can send SMS messages based on these rules.\r\n \r\nConstraints:\r\n- Max templates: 10.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.smsSettings","typeLabel":"object[] | null"},"emailSettings":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"subject":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n\r\nEmail subject.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].subject.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n\r\nEmail subject.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].subject.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].subject","typeLabel":"string | null"},"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nMax 100,000 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].body.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nMax 100,000 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].body","typeLabel":"string | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].triggerDescription","typeLabel":"string | null"},"smtpSettings":{"oneOf":[{"type":"object","description":"Optional SMTP configuration used to send the email.\r\nIf not provided, the email is sent using the default platform email sender.","properties":{"id":{"oneOf":[{"type":"string","description":"Optional SMTP configuration identifier.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional SMTP configuration identifier.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.id","typeLabel":"string | null"},"provider":{"oneOf":[{"type":"integer","description":"The email provider used to send the emails.\n\n`1 - Gmail`\n\n`2 - Office365`\n\n`10 - Custom`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.provider.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.provider","typeLabel":"integer\u003cint32> | null"},"smtpServer":{"oneOf":[{"type":"string","description":"SMTP server hostname.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.smtpServer.oneOf.0","typeLabel":"string"},{"type":"null","description":"SMTP server hostname.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.smtpServer.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.smtpServer","typeLabel":"string | null"},"port":{"oneOf":[{"type":"integer","description":"SMTP server port.","format":"int32","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.port.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"SMTP server port.","format":"int32","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.port.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.port","typeLabel":"integer\u003cint32> | null"},"enableSsl":{"oneOf":[{"type":"boolean","description":"Indicates whether SSL/TLS is enabled for the SMTP connection.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.enableSsl.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether SSL/TLS is enabled for the SMTP connection.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.enableSsl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.enableSsl","typeLabel":"boolean | null"},"senderEmail":{"oneOf":[{"type":"string","description":"Sender email address used for SMTP authentication and as the \"From\" address.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderEmail.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender email address used for SMTP authentication and as the \"From\" address.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderEmail.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderEmail","typeLabel":"string | null"},"senderPassword":{"oneOf":[{"type":"string","description":"Sender password or SMTP credential used for authentication.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderPassword.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender password or SMTP credential used for authentication.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderPassword.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderPassword","typeLabel":"string | null"},"displayName":{"oneOf":[{"type":"string","description":"Display name shown in the recipient inbox (the \"From\" name).","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.displayName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Display name shown in the recipient inbox (the \"From\" name).","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.displayName.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.displayName","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Email templates and triggers configured for the Pearl.\r\n \r\nDuring a call, the agent can send emails based on these rules.\r\n \r\nConstraints:\r\n- Max templates: 10.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"subject":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n\r\nEmail subject.\r\n \r\nMax 150 characters only."},{"type":"null","description":"`🧩 May support variables`\r\n\r\nEmail subject.\r\n \r\nMax 150 characters only."}]},"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nMax 100,000 characters only."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nMax 100,000 characters only."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only."},{"type":"null","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only."}]},"smtpSettings":{"oneOf":[{"type":"object","description":"Optional SMTP configuration used to send the email.\r\nIf not provided, the email is sent using the default platform email sender.","properties":{"id":{"oneOf":[{"type":"string","description":"Optional SMTP configuration identifier."},{"type":"null","description":"Optional SMTP configuration identifier."}]},"provider":{"oneOf":[{"type":"integer","description":"The email provider used to send the emails.\n\n`1 - Gmail`\n\n`2 - Office365`\n\n`10 - Custom`\n\n","format":"int32"},{"type":"null"}]},"smtpServer":{"oneOf":[{"type":"string","description":"SMTP server hostname."},{"type":"null","description":"SMTP server hostname."}]},"port":{"oneOf":[{"type":"integer","description":"SMTP server port.","format":"int32"},{"type":"null","description":"SMTP server port.","format":"int32"}]},"enableSsl":{"oneOf":[{"type":"boolean","description":"Indicates whether SSL/TLS is enabled for the SMTP connection."},{"type":"null","description":"Indicates whether SSL/TLS is enabled for the SMTP connection."}]},"senderEmail":{"oneOf":[{"type":"string","description":"Sender email address used for SMTP authentication and as the \"From\" address."},{"type":"null","description":"Sender email address used for SMTP authentication and as the \"From\" address."}]},"senderPassword":{"oneOf":[{"type":"string","description":"Sender password or SMTP credential used for authentication."},{"type":"null","description":"Sender password or SMTP credential used for authentication."}]},"displayName":{"oneOf":[{"type":"string","description":"Display name shown in the recipient inbox (the \"From\" name)."},{"type":"null","description":"Display name shown in the recipient inbox (the \"From\" name)."}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},"description":"Email templates and triggers configured for the Pearl.\r\n \r\nDuring a call, the agent can send emails based on these rules.\r\n \r\nConstraints:\r\n- Max templates: 10.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings","typeLabel":"object[] | null"},"apiSettings":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"method":{"type":"integer","description":"The HTTP method used for the API request.\n\n`1 - GET`\n\n`2 - POST`\n\n`3 - PUT`\n\n`4 - DELETE`\n\n`5 - PATCH`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].method","typeLabel":"integer\u003cint32>"},"endpointUrl":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].endpointUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].endpointUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].endpointUrl","typeLabel":"string | null"},"body":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].key","typeLabel":"string | null"},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].variableId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].variableId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].variableId","typeLabel":"string | null"},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32> | null"},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"required":{"type":"boolean","description":"Indicates whether this request body field is required.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].required","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body).","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body).","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body","typeLabel":"object[] | null"},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers.oneOf.0.additionalProperties","typeLabel":"string"},"description":"Optional HTTP headers to include in the API request.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"string","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers.oneOf.1.additionalProperties","typeLabel":"string"},"description":"Optional HTTP headers to include in the API request.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers","typeLabel":"object | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].triggerDescription","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"outputBody":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].key","typeLabel":"string | null"},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].variableId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].variableId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].variableId","typeLabel":"string | null"},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32> | null"},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"required":{"type":"boolean","description":"Indicates whether this request body field is required.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].required","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody","typeLabel":"object[] | null"},"credentialId":{"oneOf":[{"type":"string","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId}).","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].credentialId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId}).","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].credentialId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].credentialId","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"API actions configured for the Pearl.\r\n \r\nConstraints:\r\n- Max actions: 20.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only."},{"type":"null","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only."}]},"method":{"type":"integer","description":"The HTTP method used for the API request.\n\n`1 - GET`\n\n`2 - POST`\n\n`3 - PUT`\n\n`4 - DELETE`\n\n`5 - PATCH`\n\n","format":"int32"},"endpointUrl":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables."}]},"body":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body)."},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body)."}]},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string"},"description":"Optional HTTP headers to include in the API request."},{"type":"null","additionalProperties":{"type":"string"},"description":"Optional HTTP headers to include in the API request."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only."},{"type":"null","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only."}]},"description":{"oneOf":[{"type":"string","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only."},{"type":"null","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only."}]},"outputBody":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation."},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation."}]},"credentialId":{"oneOf":[{"type":"string","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId})."},{"type":"null","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId})."}]}},"additionalProperties":false},"description":"API actions configured for the Pearl.\r\n \r\nConstraints:\r\n- Max actions: 20.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings","typeLabel":"object[] | null"},"successDescription":{"oneOf":[{"type":"string","description":"Definition of what is considered a successful call for this Pearl.\r\nThis is used to classify call outcomes as successful or not successful.\r\n \r\nIf left empty, calls will only be marked as completed (no success classification).\r\n \r\nMax 200 characters only.","uniqueKey":"pearl.oneOf.0.successDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Definition of what is considered a successful call for this Pearl.\r\nThis is used to classify call outcomes as successful or not successful.\r\n \r\nIf left empty, calls will only be marked as completed (no success classification).\r\n \r\nMax 200 characters only.","uniqueKey":"pearl.oneOf.0.successDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.successDescription","typeLabel":"string | null"},"indicatorTags":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Identifier of the label.\r\n \r\nIf not provided, it will be generated automatically.\r\n \r\nImportant:\r\n- The ID is the stable identifier of the label.\r\n- Changing the ID creates a new label.\r\n- Keeping the same ID while updating the name/description updates the existing label.\r\n \r\nConstraints:\r\n- Max 30 characters.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Identifier of the label.\r\n \r\nIf not provided, it will be generated automatically.\r\n \r\nImportant:\r\n- The ID is the stable identifier of the label.\r\n- Changing the ID creates a new label.\r\n- Keeping the same ID while updating the name/description updates the existing label.\r\n \r\nConstraints:\r\n- Max 30 characters.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"The label name.\r\n \r\nMax 25 characters only.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The label name.\r\n \r\nMax 25 characters only.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"Describes when this label should be applied.\r\n \r\nMax 250 characters only.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Describes when this label should be applied.\r\n \r\nMax 250 characters only.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"color":{"type":"integer","description":"The color of the indicator tag.\n\n`1 - purple`\n\n`2 - red`\n\n`3 - yellow`\n\n`4 - green`\n\n`5 - blue`\n\n`6 - pink`\n\n`7 - teal`\n\n`8 - lime`\n\n`10 - gradient1`\n\n`9 - gradient2`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].color","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Indicator labels that can be applied to calls for classification and reporting.\r\n \r\nAt the end of the conversation, an AI analyzes the call and determines which of the configured labels should be applied.\r\n \r\nConstraints:\r\n- Max labels: 10.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Identifier of the label.\r\n \r\nIf not provided, it will be generated automatically.\r\n \r\nImportant:\r\n- The ID is the stable identifier of the label.\r\n- Changing the ID creates a new label.\r\n- Keeping the same ID while updating the name/description updates the existing label.\r\n \r\nConstraints:\r\n- Max 30 characters."},{"type":"null","description":"Identifier of the label.\r\n \r\nIf not provided, it will be generated automatically.\r\n \r\nImportant:\r\n- The ID is the stable identifier of the label.\r\n- Changing the ID creates a new label.\r\n- Keeping the same ID while updating the name/description updates the existing label.\r\n \r\nConstraints:\r\n- Max 30 characters."}]},"name":{"oneOf":[{"type":"string","description":"The label name.\r\n \r\nMax 25 characters only."},{"type":"null","description":"The label name.\r\n \r\nMax 25 characters only."}]},"description":{"oneOf":[{"type":"string","description":"Describes when this label should be applied.\r\n \r\nMax 250 characters only."},{"type":"null","description":"Describes when this label should be applied.\r\n \r\nMax 250 characters only."}]},"color":{"type":"integer","description":"The color of the indicator tag.\n\n`1 - purple`\n\n`2 - red`\n\n`3 - yellow`\n\n`4 - green`\n\n`5 - blue`\n\n`6 - pink`\n\n`7 - teal`\n\n`8 - lime`\n\n`10 - gradient1`\n\n`9 - gradient2`\n\n","format":"int32"}},"additionalProperties":false},"description":"Indicator labels that can be applied to calls for classification and reporting.\r\n \r\nAt the end of the conversation, an AI analyzes the call and determines which of the configured labels should be applied.\r\n \r\nConstraints:\r\n- Max labels: 10.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.indicatorTags","typeLabel":"object[] | null"},"notifications":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"apiSettings":{"oneOf":[{"type":"object","description":"API action to trigger when the notification conditions are met.","properties":{"name":{"oneOf":[{"type":"string","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.name","typeLabel":"string | null"},"method":{"type":"integer","description":"The HTTP method used for the API request.\n\n`1 - GET`\n\n`2 - POST`\n\n`3 - PUT`\n\n`4 - DELETE`\n\n`5 - PATCH`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.method","typeLabel":"integer\u003cint32>"},"endpointUrl":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.endpointUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.endpointUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.endpointUrl","typeLabel":"string | null"},"body":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].key","typeLabel":"string | null"},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].variableId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].variableId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].variableId","typeLabel":"string | null"},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32> | null"},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"required":{"type":"boolean","description":"Indicates whether this request body field is required.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].required","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body","typeLabel":"object[] | null"},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers.oneOf.0.additionalProperties","typeLabel":"string"},"description":"Optional HTTP headers to include in the API request.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers.oneOf.1.additionalProperties","typeLabel":"string"},"description":"Optional HTTP headers to include in the API request.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers","typeLabel":"object | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.triggerDescription","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.description","typeLabel":"string | null"},"outputBody":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].key","typeLabel":"string | null"},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].variableId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].variableId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].variableId","typeLabel":"string | null"},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32> | null"},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"required":{"type":"boolean","description":"Indicates whether this request body field is required.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].required","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody","typeLabel":"object[] | null"},"credentialId":{"oneOf":[{"type":"string","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId}).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.credentialId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId}).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.credentialId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.credentialId","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings","typeLabel":"object | null"},"emailTemplate":{"oneOf":[{"type":"object","description":"Email template to send when the notification conditions are met.","properties":{"to":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.to.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"List of primary recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.to.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"List of primary recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.to.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.to","typeLabel":"string[] | null"},"cc":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.cc.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"List of CC recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.cc.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"List of CC recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.cc.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.cc","typeLabel":"string[] | null"},"subject":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail subject.\r\n \r\nConstraints:\r\n- Max 150 characters.\r\n- Supports pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.subject.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail subject.\r\n \r\nConstraints:\r\n- Max 150 characters.\r\n- Supports pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.subject.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.subject","typeLabel":"string | null"},"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nConstraints:\r\n- Max 100,000 characters.\r\n- Supports pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.body.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nConstraints:\r\n- Max 100,000 characters.\r\n- Supports pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.body","typeLabel":"string | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.triggerDescription","typeLabel":"string | null"},"smtpSettings":{"oneOf":[{"type":"object","description":"Optional SMTP configuration used to send the email.\r\nIf not provided, the email is sent using the default platform email sender.","properties":{"id":{"oneOf":[{"type":"string","description":"Optional SMTP configuration identifier.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional SMTP configuration identifier.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.id","typeLabel":"string | null"},"provider":{"oneOf":[{"type":"integer","description":"The email provider used to send the emails.\n\n`1 - Gmail`\n\n`2 - Office365`\n\n`10 - Custom`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.provider.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.provider","typeLabel":"integer\u003cint32> | null"},"smtpServer":{"oneOf":[{"type":"string","description":"SMTP server hostname.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.smtpServer.oneOf.0","typeLabel":"string"},{"type":"null","description":"SMTP server hostname.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.smtpServer.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.smtpServer","typeLabel":"string | null"},"port":{"oneOf":[{"type":"integer","description":"SMTP server port.","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.port.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"SMTP server port.","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.port.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.port","typeLabel":"integer\u003cint32> | null"},"enableSsl":{"oneOf":[{"type":"boolean","description":"Indicates whether SSL/TLS is enabled for the SMTP connection.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.enableSsl.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether SSL/TLS is enabled for the SMTP connection.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.enableSsl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.enableSsl","typeLabel":"boolean | null"},"senderEmail":{"oneOf":[{"type":"string","description":"Sender email address used for SMTP authentication and as the \"From\" address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderEmail.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender email address used for SMTP authentication and as the \"From\" address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderEmail.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderEmail","typeLabel":"string | null"},"senderPassword":{"oneOf":[{"type":"string","description":"Sender password or SMTP credential used for authentication.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderPassword.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender password or SMTP credential used for authentication.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderPassword.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderPassword","typeLabel":"string | null"},"displayName":{"oneOf":[{"type":"string","description":"Display name shown in the recipient inbox (the \"From\" name).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.displayName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Display name shown in the recipient inbox (the \"From\" name).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.displayName.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.displayName","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate","typeLabel":"object | null"},"indicatorTagsIds":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].indicatorTagsIds.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"List of indicator tag IDs that must be detected to trigger this notification.\r\n \r\nImportant:\r\n- These must be tag IDs from IndicatorTags (IndicatorTag.Id), not tag names.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].indicatorTagsIds.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"List of indicator tag IDs that must be detected to trigger this notification.\r\n \r\nImportant:\r\n- These must be tag IDs from IndicatorTags (IndicatorTag.Id), not tag names.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].indicatorTagsIds.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].indicatorTagsIds","typeLabel":"string[] | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Notifications configured to be triggered when a call ends.\r\n \r\nA notification can trigger an API call or send an email when specific indicator tags are detected.\r\n \r\nConstraints:\r\n- Max notifications: 30.\r\n- Each notification must reference indicator tag IDs (not tag names).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"apiSettings":{"oneOf":[{"type":"object","description":"API action to trigger when the notification conditions are met.","properties":{"name":{"oneOf":[{"type":"string","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only."},{"type":"null","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only."}]},"method":{"type":"integer","description":"The HTTP method used for the API request.\n\n`1 - GET`\n\n`2 - POST`\n\n`3 - PUT`\n\n`4 - DELETE`\n\n`5 - PATCH`\n\n","format":"int32"},"endpointUrl":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables."}]},"body":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body)."},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body)."}]},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string"},"description":"Optional HTTP headers to include in the API request."},{"type":"null","additionalProperties":{"type":"string"},"description":"Optional HTTP headers to include in the API request."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only."},{"type":"null","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only."}]},"description":{"oneOf":[{"type":"string","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only."},{"type":"null","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only."}]},"outputBody":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation."},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation."}]},"credentialId":{"oneOf":[{"type":"string","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId})."},{"type":"null","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId})."}]}},"additionalProperties":false},{"type":"null"}]},"emailTemplate":{"oneOf":[{"type":"object","description":"Email template to send when the notification conditions are met.","properties":{"to":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"List of primary recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address."},{"type":"null","items":{"type":"string"},"description":"List of primary recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address."}]},"cc":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"List of CC recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address."},{"type":"null","items":{"type":"string"},"description":"List of CC recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address."}]},"subject":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail subject.\r\n \r\nConstraints:\r\n- Max 150 characters.\r\n- Supports pre-call, in-call, and post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail subject.\r\n \r\nConstraints:\r\n- Max 150 characters.\r\n- Supports pre-call, in-call, and post-call variables."}]},"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nConstraints:\r\n- Max 100,000 characters.\r\n- Supports pre-call, in-call, and post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nConstraints:\r\n- Max 100,000 characters.\r\n- Supports pre-call, in-call, and post-call variables."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only."},{"type":"null","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only."}]},"smtpSettings":{"oneOf":[{"type":"object","description":"Optional SMTP configuration used to send the email.\r\nIf not provided, the email is sent using the default platform email sender.","properties":{"id":{"oneOf":[{"type":"string","description":"Optional SMTP configuration identifier."},{"type":"null","description":"Optional SMTP configuration identifier."}]},"provider":{"oneOf":[{"type":"integer","description":"The email provider used to send the emails.\n\n`1 - Gmail`\n\n`2 - Office365`\n\n`10 - Custom`\n\n","format":"int32"},{"type":"null"}]},"smtpServer":{"oneOf":[{"type":"string","description":"SMTP server hostname."},{"type":"null","description":"SMTP server hostname."}]},"port":{"oneOf":[{"type":"integer","description":"SMTP server port.","format":"int32"},{"type":"null","description":"SMTP server port.","format":"int32"}]},"enableSsl":{"oneOf":[{"type":"boolean","description":"Indicates whether SSL/TLS is enabled for the SMTP connection."},{"type":"null","description":"Indicates whether SSL/TLS is enabled for the SMTP connection."}]},"senderEmail":{"oneOf":[{"type":"string","description":"Sender email address used for SMTP authentication and as the \"From\" address."},{"type":"null","description":"Sender email address used for SMTP authentication and as the \"From\" address."}]},"senderPassword":{"oneOf":[{"type":"string","description":"Sender password or SMTP credential used for authentication."},{"type":"null","description":"Sender password or SMTP credential used for authentication."}]},"displayName":{"oneOf":[{"type":"string","description":"Display name shown in the recipient inbox (the \"From\" name)."},{"type":"null","description":"Display name shown in the recipient inbox (the \"From\" name)."}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"indicatorTagsIds":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"List of indicator tag IDs that must be detected to trigger this notification.\r\n \r\nImportant:\r\n- These must be tag IDs from IndicatorTags (IndicatorTag.Id), not tag names."},{"type":"null","items":{"type":"string"},"description":"List of indicator tag IDs that must be detected to trigger this notification.\r\n \r\nImportant:\r\n- These must be tag IDs from IndicatorTags (IndicatorTag.Id), not tag names."}]}},"additionalProperties":false},"description":"Notifications configured to be triggered when a call ends.\r\n \r\nA notification can trigger an API call or send an email when specific indicator tags are detected.\r\n \r\nConstraints:\r\n- Max notifications: 30.\r\n- Each notification must reference indicator tag IDs (not tag names).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications","typeLabel":"object[] | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl","typeLabel":"object | null"},"variables":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Variable identifier.\r\n \r\nThis is the ID you must reference when using the variable in scripts and templated fields.\r\nIt must not contain spaces.\r\n \r\nConstraints:\r\n- Max 40 characters.\r\n- Allowed characters: letters (A–Z, a–z), digits (0–9), underscore (_), hyphen (-).","uniqueKey":"variables.oneOf.0.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Variable identifier.\r\n \r\nThis is the ID you must reference when using the variable in scripts and templated fields.\r\nIt must not contain spaces.\r\n \r\nConstraints:\r\n- Max 40 characters.\r\n- Allowed characters: letters (A–Z, a–z), digits (0–9), underscore (_), hyphen (-).","uniqueKey":"variables.oneOf.0.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Friendly display name for the variable.\r\n \r\nMax 40 characters only.","uniqueKey":"variables.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Friendly display name for the variable.\r\n \r\nMax 40 characters only.","uniqueKey":"variables.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"group":{"type":"integer","description":"Variable group.\n\n- PreCall: Variables available before the call (used in pre-call contexts such as opening sentence or pre-call API).\n- InCall: Variables collected or updated during the call.\n- PostCall: Variables generated after the call by the platform (cannot be created via the API).\n\n`1 - PreCall`\n\n`2 - InCall`\n\n`3 - PostCall`\n\n`4 - Environment`\n\n","format":"int32","uniqueKey":"variables.oneOf.0.items.[INDEX].group","typeLabel":"integer\u003cint32>"},"type":{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"variables.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32>"},"isList":{"type":"boolean","description":"Indicates whether the variable can contain multiple values (list) or a single value.","uniqueKey":"variables.oneOf.0.items.[INDEX].isList","typeLabel":"boolean"},"description":{"oneOf":[{"type":"string","description":"Guidance for the agent on how to collect or infer this variable during the conversation.\r\n \r\nMax 1000 characters only.","uniqueKey":"variables.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Guidance for the agent on how to collect or infer this variable during the conversation.\r\n \r\nMax 1000 characters only.","uniqueKey":"variables.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"value":{"oneOf":[{"type":"string","description":"Optional preset (static) value of the variable.\r\nWhen set, the variable is already populated with this value and does not need to be collected or supplied.","uniqueKey":"variables.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional preset (static) value of the variable.\r\nWhen set, the variable is already populated with this value and does not need to be collected or supplied.","uniqueKey":"variables.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"options":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"value":{"oneOf":[{"type":"string","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display.","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display.","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"code":{"oneOf":[{"type":"string","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color).","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color).","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].code.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].code","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Optional predefined choices for this variable (allowed/preset values).\r\n \r\nNotes:\r\n- Use Value for the human-readable label.\r\n- Use Code for an optional internal/normalized value to store or send to integrations.","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"value":{"oneOf":[{"type":"string","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."},{"type":"null","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."}]},"code":{"oneOf":[{"type":"string","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."},{"type":"null","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."}]}},"additionalProperties":false},"description":"Optional predefined choices for this variable (allowed/preset values).\r\n \r\nNotes:\r\n- Use Value for the human-readable label.\r\n- Use Code for an optional internal/normalized value to store or send to integrations.","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].options","typeLabel":"object[] | null"},"isSessionScoped":{"type":"boolean","description":"Indicates whether the variable is reset for every interaction (\"Reset Every Interaction\" on the platform).\r\n \r\nNotes:\r\n- If true, the variable starts empty in every new call or chat.\r\n- It is never pre-filled from outside the interaction: a value sent in `CallData` for this variable, or stored on the contact by a previous interaction, is ignored.\r\n- Defaults to false.","uniqueKey":"variables.oneOf.0.items.[INDEX].isSessionScoped","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"variables.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Variables that can be defined, stored, and used by the agent during conversations.\r\nFor details on variable groups and how to use variables in supported fields, see: [Flow Variables](/api-reference/flow_variables)","uniqueKey":"variables.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Variable identifier.\r\n \r\nThis is the ID you must reference when using the variable in scripts and templated fields.\r\nIt must not contain spaces.\r\n \r\nConstraints:\r\n- Max 40 characters.\r\n- Allowed characters: letters (A–Z, a–z), digits (0–9), underscore (_), hyphen (-)."},{"type":"null","description":"Variable identifier.\r\n \r\nThis is the ID you must reference when using the variable in scripts and templated fields.\r\nIt must not contain spaces.\r\n \r\nConstraints:\r\n- Max 40 characters.\r\n- Allowed characters: letters (A–Z, a–z), digits (0–9), underscore (_), hyphen (-)."}]},"name":{"oneOf":[{"type":"string","description":"Friendly display name for the variable.\r\n \r\nMax 40 characters only."},{"type":"null","description":"Friendly display name for the variable.\r\n \r\nMax 40 characters only."}]},"group":{"type":"integer","description":"Variable group.\n\n- PreCall: Variables available before the call (used in pre-call contexts such as opening sentence or pre-call API).\n- InCall: Variables collected or updated during the call.\n- PostCall: Variables generated after the call by the platform (cannot be created via the API).\n\n`1 - PreCall`\n\n`2 - InCall`\n\n`3 - PostCall`\n\n`4 - Environment`\n\n","format":"int32"},"type":{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},"isList":{"type":"boolean","description":"Indicates whether the variable can contain multiple values (list) or a single value."},"description":{"oneOf":[{"type":"string","description":"Guidance for the agent on how to collect or infer this variable during the conversation.\r\n \r\nMax 1000 characters only."},{"type":"null","description":"Guidance for the agent on how to collect or infer this variable during the conversation.\r\n \r\nMax 1000 characters only."}]},"value":{"oneOf":[{"type":"string","description":"Optional preset (static) value of the variable.\r\nWhen set, the variable is already populated with this value and does not need to be collected or supplied."},{"type":"null","description":"Optional preset (static) value of the variable.\r\nWhen set, the variable is already populated with this value and does not need to be collected or supplied."}]},"options":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"value":{"oneOf":[{"type":"string","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."},{"type":"null","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."}]},"code":{"oneOf":[{"type":"string","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."},{"type":"null","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."}]}},"additionalProperties":false},"description":"Optional predefined choices for this variable (allowed/preset values).\r\n \r\nNotes:\r\n- Use Value for the human-readable label.\r\n- Use Code for an optional internal/normalized value to store or send to integrations."},{"type":"null","items":{"type":"object","properties":{"value":{"oneOf":[{"type":"string","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."},{"type":"null","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."}]},"code":{"oneOf":[{"type":"string","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."},{"type":"null","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."}]}},"additionalProperties":false},"description":"Optional predefined choices for this variable (allowed/preset values).\r\n \r\nNotes:\r\n- Use Value for the human-readable label.\r\n- Use Code for an optional internal/normalized value to store or send to integrations."}]},"isSessionScoped":{"type":"boolean","description":"Indicates whether the variable is reset for every interaction (\"Reset Every Interaction\" on the platform).\r\n \r\nNotes:\r\n- If true, the variable starts empty in every new call or chat.\r\n- It is never pre-filled from outside the interaction: a value sent in `CallData` for this variable, or stored on the contact by a previous interaction, is ignored.\r\n- Defaults to false."}},"additionalProperties":false},"description":"Variables that can be defined, stored, and used by the agent during conversations.\r\nFor details on variable groups and how to use variables in supported fields, see: [Flow Variables](/api-reference/flow_variables)","uniqueKey":"variables.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables","typeLabel":"object[] | null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"\u003cstring>","pearl":{"agents":[{"name":"\u003cstring>","voiceId":"\u003cstring>","clientVoiceId":"\u003cstring>"}],"agentPersonality":"\u003cstring>","timeZone":"\u003cstring>","modelType":123,"companyName":"\u003cstring>","companyDescription":"\u003cstring>","knowledgeBase":"\u003cstring>","memory":true,"speechRecognitionKeywords":[{"word":"\u003cstring>","pronunciations":["\u003cstring>"]}],"openingSentence":"\u003cstring>","flowScript":"\u003cstring>","transferCallSettings":[{"transferCallPhoneNumber":"\u003cstring>","triggerDescription":"\u003cstring>","warmTransferMessage":"\u003cstring>","isWhisper":true}],"smsSettings":[{"body":"\u003cstring>","triggerDescription":"\u003cstring>"}],"emailSettings":[{"subject":"\u003cstring>","body":"\u003cstring>","triggerDescription":"\u003cstring>","smtpSettings":{"id":"\u003cstring>","provider":123,"smtpServer":"\u003cstring>","port":123,"enableSsl":true,"senderEmail":"\u003cstring>","senderPassword":"\u003cstring>","displayName":"\u003cstring>"}}],"apiSettings":[{"name":"\u003cstring>","method":123,"endpointUrl":"\u003cstring>","body":[{"key":"\u003cstring>","variableId":"\u003cstring>","type":123,"value":"\u003cstring>","required":true}],"headers":{},"triggerDescription":"\u003cstring>","description":"\u003cstring>","outputBody":[{"key":"\u003cstring>","variableId":"\u003cstring>","type":123,"value":"\u003cstring>","required":true}],"credentialId":"\u003cstring>"}],"successDescription":"\u003cstring>","indicatorTags":[{"id":"\u003cstring>","name":"\u003cstring>","description":"\u003cstring>","color":123}],"notifications":[{"apiSettings":{"name":"\u003cstring>","method":123,"endpointUrl":"\u003cstring>","body":[{"key":"\u003cstring>","variableId":"\u003cstring>","type":123,"value":"\u003cstring>","required":true}],"headers":{},"triggerDescription":"\u003cstring>","description":"\u003cstring>","outputBody":[{"key":"\u003cstring>","variableId":"\u003cstring>","type":123,"value":"\u003cstring>","required":true}],"credentialId":"\u003cstring>"},"emailTemplate":{"to":["\u003cstring>"],"cc":["\u003cstring>"],"subject":"\u003cstring>","body":"\u003cstring>","triggerDescription":"\u003cstring>","smtpSettings":{"id":"\u003cstring>","provider":123,"smtpServer":"\u003cstring>","port":123,"enableSsl":true,"senderEmail":"\u003cstring>","senderPassword":"\u003cstring>","displayName":"\u003cstring>"}},"indicatorTagsIds":["\u003cstring>"]}]},"variables":[{"id":"\u003cstring>","name":"\u003cstring>","group":123,"type":123,"isList":true,"description":"\u003cstring>","value":"\u003cstring>","options":[{"value":"\u003cstring>","code":"\u003cstring>"}],"isSessionScoped":true}]}}},"exampleType":"generated"},"text/json":{"schema":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The updated name of the Pearl.","uniqueKey":"name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The updated name of the Pearl.","uniqueKey":"name.oneOf.1","typeLabel":"null"}],"uniqueKey":"name","typeLabel":"string | null"},"pearl":{"oneOf":[{"type":"object","description":"Updated conversation flow and agent behavior configuration for the Pearl.","properties":{"agents":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The display name of the agent.\n\nConstraints:\n- Max length: 50 characters.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The display name of the agent.\n\nConstraints:\n- Max length: 50 characters.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"voiceId":{"oneOf":[{"type":"string","description":"The ID of the voice to use for this agent.\r\nTo retrieve available voices, see: [Get Voices](/api-reference/v2/pearlSettings/get-voices)\r\n \r\nConstraints:\r\n- Required: an agent without a voiceId is rejected.\r\n- The voice language must be unique across agents in the same Pearl (no two agents can use voices from the same language).","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].voiceId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The ID of the voice to use for this agent.\r\nTo retrieve available voices, see: [Get Voices](/api-reference/v2/pearlSettings/get-voices)\r\n \r\nConstraints:\r\n- Required: an agent without a voiceId is rejected.\r\n- The voice language must be unique across agents in the same Pearl (no two agents can use voices from the same language).","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].voiceId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].voiceId","typeLabel":"string | null"},"clientVoiceId":{"oneOf":[{"type":"string","description":"The ID of the copy of the voice to use, when your account holds several copies of the same voice (each with its own name and pace) in My voices on the platform.\r\nFor a voice of version `2`, the agent speaks at the pace of this copy. For a voice of version `1`, it has no effect on how the agent speaks.\r\nThis parameter is optional: when it is omitted, a voice of version `2` speaks at the pace of the first copy of the voice in your account, or at the default pace if your account has no copy of it.\r\nIt must refer to one of your account's copies of the voice given in `voiceId`, otherwise it is ignored, as if omitted.\r\nGet Pearl Settings returns it when a copy is set: when you update the agents of a Pearl, send it back unchanged to keep the same copy.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].clientVoiceId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The ID of the copy of the voice to use, when your account holds several copies of the same voice (each with its own name and pace) in My voices on the platform.\r\nFor a voice of version `2`, the agent speaks at the pace of this copy. For a voice of version `1`, it has no effect on how the agent speaks.\r\nThis parameter is optional: when it is omitted, a voice of version `2` speaks at the pace of the first copy of the voice in your account, or at the default pace if your account has no copy of it.\r\nIt must refer to one of your account's copies of the voice given in `voiceId`, otherwise it is ignored, as if omitted.\r\nGet Pearl Settings returns it when a copy is set: when you update the agents of a Pearl, send it back unchanged to keep the same copy.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].clientVoiceId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].clientVoiceId","typeLabel":"string | null"}},"additionalProperties":false,"description":"An agent of the Pearl: its display name and the voice it speaks with.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Agents configured for the Pearl.\n\n- Each agent represents a language-specific entry point (based on the selected voice).\n- Configure multiple agents to support multilingual experiences and language-based transfers.\n\nConstraints:\n- At least one agent is required.\n- Each agent must have a voiceId.\n- Voice language must be unique across agents (no duplicates).","uniqueKey":"pearl.oneOf.0.agents.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The display name of the agent.\n\nConstraints:\n- Max length: 50 characters."},{"type":"null","description":"The display name of the agent.\n\nConstraints:\n- Max length: 50 characters."}]},"voiceId":{"oneOf":[{"type":"string","description":"The ID of the voice to use for this agent.\r\nTo retrieve available voices, see: [Get Voices](/api-reference/v2/pearlSettings/get-voices)\r\n \r\nConstraints:\r\n- Required: an agent without a voiceId is rejected.\r\n- The voice language must be unique across agents in the same Pearl (no two agents can use voices from the same language)."},{"type":"null","description":"The ID of the voice to use for this agent.\r\nTo retrieve available voices, see: [Get Voices](/api-reference/v2/pearlSettings/get-voices)\r\n \r\nConstraints:\r\n- Required: an agent without a voiceId is rejected.\r\n- The voice language must be unique across agents in the same Pearl (no two agents can use voices from the same language)."}]},"clientVoiceId":{"oneOf":[{"type":"string","description":"The ID of the copy of the voice to use, when your account holds several copies of the same voice (each with its own name and pace) in My voices on the platform.\r\nFor a voice of version `2`, the agent speaks at the pace of this copy. For a voice of version `1`, it has no effect on how the agent speaks.\r\nThis parameter is optional: when it is omitted, a voice of version `2` speaks at the pace of the first copy of the voice in your account, or at the default pace if your account has no copy of it.\r\nIt must refer to one of your account's copies of the voice given in `voiceId`, otherwise it is ignored, as if omitted.\r\nGet Pearl Settings returns it when a copy is set: when you update the agents of a Pearl, send it back unchanged to keep the same copy."},{"type":"null","description":"The ID of the copy of the voice to use, when your account holds several copies of the same voice (each with its own name and pace) in My voices on the platform.\r\nFor a voice of version `2`, the agent speaks at the pace of this copy. For a voice of version `1`, it has no effect on how the agent speaks.\r\nThis parameter is optional: when it is omitted, a voice of version `2` speaks at the pace of the first copy of the voice in your account, or at the default pace if your account has no copy of it.\r\nIt must refer to one of your account's copies of the voice given in `voiceId`, otherwise it is ignored, as if omitted.\r\nGet Pearl Settings returns it when a copy is set: when you update the agents of a Pearl, send it back unchanged to keep the same copy."}]}},"additionalProperties":false,"description":"An agent of the Pearl: its display name and the voice it speaks with."},"description":"Agents configured for the Pearl.\n\n- Each agent represents a language-specific entry point (based on the selected voice).\n- Configure multiple agents to support multilingual experiences and language-based transfers.\n\nConstraints:\n- At least one agent is required.\n- Each agent must have a voiceId.\n- Voice language must be unique across agents (no duplicates).","uniqueKey":"pearl.oneOf.0.agents.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agents","typeLabel":"object[] | null"},"agentPersonality":{"oneOf":[{"type":"string","description":"Defines the agent's personality and tone (for example, more assertive or more calm).\n\nConstraints:\n- Max length: 35 characters.","uniqueKey":"pearl.oneOf.0.agentPersonality.oneOf.0","typeLabel":"string"},{"type":"null","description":"Defines the agent's personality and tone (for example, more assertive or more calm).\n\nConstraints:\n- Max length: 35 characters.","uniqueKey":"pearl.oneOf.0.agentPersonality.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agentPersonality","typeLabel":"string | null"},"timeZone":{"oneOf":[{"type":"string","description":"Time zone identifier used by the Pearl's agents.\r\n \r\nThe agent will operate according to this time zone, regardless of the lead/customer local time zone.\r\nFor accepted values, refer to the [Windows Time Zones list](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11).\r\n \r\nExample: \"Pacific Standard Time\", \"Romance Standard Time\".","uniqueKey":"pearl.oneOf.0.timeZone.oneOf.0","typeLabel":"string"},{"type":"null","description":"Time zone identifier used by the Pearl's agents.\r\n \r\nThe agent will operate according to this time zone, regardless of the lead/customer local time zone.\r\nFor accepted values, refer to the [Windows Time Zones list](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11).\r\n \r\nExample: \"Pacific Standard Time\", \"Romance Standard Time\".","uniqueKey":"pearl.oneOf.0.timeZone.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.timeZone","typeLabel":"string | null"},"modelType":{"oneOf":[{"type":"integer","description":"Agent model type.\n\nVoice Pearls use one of these models:\n- Trident: Highest-quality model with standard rate. Optimized for natural, human-like interactions.\n- Oyster: Most cost-effective model (2 credits cheaper per minute). Straightforward, prioritizes simplicity and efficiency.\n- Arrow: Default for voice Pearls. High-intelligence model with the same depth as Trident, built for ultra-low latency (fastest). Costs 2 credits more per minute.\n- Hydra: Smartest model, built for demanding tasks that need deeper reasoning. Costs 2 credits more per minute.\n\nText Pearls (chat and messaging conversations) use one of these models:\n- Orchid: Default for text Pearls. The most advanced text model, smarter than Swan, with high reasoning. Costs 1 credit more per message.\n- Swan: Text model with high reasoning and standard rate.\n\nOrchid and Swan are not available for voice Pearls, and the voice models are not available for text Pearls.\n\n`1 - Trident`\n\n`2 - Oyster`\n\n`3 - Arrow`\n\n`4 - Hydra`\n\n`5 - Flame`\n\n`11 - Swan`\n\n`12 - Orchid`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.modelType.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.modelType.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.modelType","typeLabel":"integer\u003cint32> | null"},"companyName":{"oneOf":[{"type":"string","description":"The company name used by the agent during conversations.\r\n \r\nConstraints:\r\n- Max length: 100 characters.","uniqueKey":"pearl.oneOf.0.companyName.oneOf.0","typeLabel":"string"},{"type":"null","description":"The company name used by the agent during conversations.\r\n \r\nConstraints:\r\n- Max length: 100 characters.","uniqueKey":"pearl.oneOf.0.companyName.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.companyName","typeLabel":"string | null"},"companyDescription":{"oneOf":[{"type":"string","description":"The company name used by the agent during conversations.\r\n \r\nConstraints:\r\n- Max length: 500 characters.","uniqueKey":"pearl.oneOf.0.companyDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"The company name used by the agent during conversations.\r\n \r\nConstraints:\r\n- Max length: 500 characters.","uniqueKey":"pearl.oneOf.0.companyDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.companyDescription","typeLabel":"string | null"},"knowledgeBase":{"oneOf":[{"type":"string","description":"Knowledge base content provided to the agent, such as FAQs, internal context, and operational instructions.\r\n \r\nConstraints:\r\n- Max length: 20,000 characters.","uniqueKey":"pearl.oneOf.0.knowledgeBase.oneOf.0","typeLabel":"string"},{"type":"null","description":"Knowledge base content provided to the agent, such as FAQs, internal context, and operational instructions.\r\n \r\nConstraints:\r\n- Max length: 20,000 characters.","uniqueKey":"pearl.oneOf.0.knowledgeBase.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.knowledgeBase","typeLabel":"string | null"},"memory":{"oneOf":[{"type":"boolean","description":"Indicates whether memory is enabled. When enabled, the Pearl can remember previous conversations for a given phone number.","uniqueKey":"pearl.oneOf.0.memory.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether memory is enabled. When enabled, the Pearl can remember previous conversations for a given phone number.","uniqueKey":"pearl.oneOf.0.memory.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.memory","typeLabel":"boolean | null"},"speechRecognitionKeywords":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"word":{"oneOf":[{"type":"string","description":"The keyword to recognize in speech recognition.\r\n \r\n- Max length: 50 characters.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].word.oneOf.0","typeLabel":"string"},{"type":"null","description":"The keyword to recognize in speech recognition.\r\n \r\n- Max length: 50 characters.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].word.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].word","typeLabel":"string | null"},"pronunciations":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].pronunciations.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Alternative pronunciations for the keyword.\r\n \r\nConstraints:\r\n- Max elements: 3.\r\n- Each pronunciation max length: 50 characters.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].pronunciations.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Alternative pronunciations for the keyword.\r\n \r\nConstraints:\r\n- Max elements: 3.\r\n- Each pronunciation max length: 50 characters.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].pronunciations.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].pronunciations","typeLabel":"string[] | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Keywords configured to improve speech recognition accuracy (for example product names, acronyms, or domain-specific terms).\r\n \r\nConstraints:\r\n- Max entries: 10.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"word":{"oneOf":[{"type":"string","description":"The keyword to recognize in speech recognition.\r\n \r\n- Max length: 50 characters."},{"type":"null","description":"The keyword to recognize in speech recognition.\r\n \r\n- Max length: 50 characters."}]},"pronunciations":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"Alternative pronunciations for the keyword.\r\n \r\nConstraints:\r\n- Max elements: 3.\r\n- Each pronunciation max length: 50 characters."},{"type":"null","items":{"type":"string"},"description":"Alternative pronunciations for the keyword.\r\n \r\nConstraints:\r\n- Max elements: 3.\r\n- Each pronunciation max length: 50 characters."}]}},"additionalProperties":false},"description":"Keywords configured to improve speech recognition accuracy (for example product names, acronyms, or domain-specific terms).\r\n \r\nConstraints:\r\n- Max entries: 10.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords","typeLabel":"object[] | null"},"openingSentence":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n\r\nThe opening sentence spoken by the agent when a conversation starts.\r\n \r\nConstraints:\r\n-Max 500 characters only.\r\n-Supports pre-call variables only.","uniqueKey":"pearl.oneOf.0.openingSentence.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n\r\nThe opening sentence spoken by the agent when a conversation starts.\r\n \r\nConstraints:\r\n-Max 500 characters only.\r\n-Supports pre-call variables only.","uniqueKey":"pearl.oneOf.0.openingSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.openingSentence","typeLabel":"string | null"},"flowScript":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n\r\nThe flow script the agent follows to drive the conversation.\r\n \r\nConstraints:\r\n- Max 20,000 characters.\r\n- Supports pre-call variables and in-call variables.","uniqueKey":"pearl.oneOf.0.flowScript.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n\r\nThe flow script the agent follows to drive the conversation.\r\n \r\nConstraints:\r\n- Max 20,000 characters.\r\n- Supports pre-call variables and in-call variables.","uniqueKey":"pearl.oneOf.0.flowScript.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.flowScript","typeLabel":"string | null"},"transferCallSettings":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"transferCallPhoneNumber":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe destination phone number to transfer the call to.\r\nIf a variable is used, it must resolve to a valid phone number, otherwise the transfer will fail.\r\n \r\nMax 25 characters only.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].transferCallPhoneNumber.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe destination phone number to transfer the call to.\r\nIf a variable is used, it must resolve to a valid phone number, otherwise the transfer will fail.\r\n \r\nMax 25 characters only.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].transferCallPhoneNumber.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].transferCallPhoneNumber","typeLabel":"string | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the agent should transfer the call (for example, when the caller asks to speak with a human).\r\n \r\nMax 500 characters only.\r\n \r\nIn a Simple Pearl, this field is required.\r\nIn a Pearl (node graph), it depends on how the TransferCall node is reached: required when the node\r\nhas no inbound transition (the agent fires the transfer based on this description), and not allowed when\r\nthe node is reached by transitions (the flow decides when the transfer happens).","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Instructions describing when the agent should transfer the call (for example, when the caller asks to speak with a human).\r\n \r\nMax 500 characters only.\r\n \r\nIn a Simple Pearl, this field is required.\r\nIn a Pearl (node graph), it depends on how the TransferCall node is reached: required when the node\r\nhas no inbound transition (the agent fires the transfer based on this description), and not allowed when\r\nthe node is reached by transitions (the flow decides when the transfer happens).","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].triggerDescription","typeLabel":"string | null"},"warmTransferMessage":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nOptional warm transfer message spoken by the agent when the transfer starts.\r\nIf empty, warm transfer is disabled.\r\n \r\nMax 2,000 characters only.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].warmTransferMessage.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nOptional warm transfer message spoken by the agent when the transfer starts.\r\nIf empty, warm transfer is disabled.\r\n \r\nMax 2,000 characters only.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].warmTransferMessage.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].warmTransferMessage","typeLabel":"string | null"},"isWhisper":{"type":"boolean","description":"The warm transfer mode. Only applies when a warm transfer message is set.\r\n \r\n- `true` (Whisper): only the recipient hears the warm transfer message, the caller stays on hold.\r\n- `false` (3-way): both the caller and the recipient hear the warm transfer message.\r\n \r\nDefaults to `false` (3-way) when omitted.\r\n \r\nSee [Transfer Call](/pages/transfer_call#transfer-types) for more information.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].isWhisper","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Call transfer rules configured for the Pearl (when and where calls should be transferred).\r\n \r\nConstraints:\r\n- Max rules: 10.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"transferCallPhoneNumber":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe destination phone number to transfer the call to.\r\nIf a variable is used, it must resolve to a valid phone number, otherwise the transfer will fail.\r\n \r\nMax 25 characters only."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe destination phone number to transfer the call to.\r\nIf a variable is used, it must resolve to a valid phone number, otherwise the transfer will fail.\r\n \r\nMax 25 characters only."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the agent should transfer the call (for example, when the caller asks to speak with a human).\r\n \r\nMax 500 characters only.\r\n \r\nIn a Simple Pearl, this field is required.\r\nIn a Pearl (node graph), it depends on how the TransferCall node is reached: required when the node\r\nhas no inbound transition (the agent fires the transfer based on this description), and not allowed when\r\nthe node is reached by transitions (the flow decides when the transfer happens)."},{"type":"null","description":"Instructions describing when the agent should transfer the call (for example, when the caller asks to speak with a human).\r\n \r\nMax 500 characters only.\r\n \r\nIn a Simple Pearl, this field is required.\r\nIn a Pearl (node graph), it depends on how the TransferCall node is reached: required when the node\r\nhas no inbound transition (the agent fires the transfer based on this description), and not allowed when\r\nthe node is reached by transitions (the flow decides when the transfer happens)."}]},"warmTransferMessage":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nOptional warm transfer message spoken by the agent when the transfer starts.\r\nIf empty, warm transfer is disabled.\r\n \r\nMax 2,000 characters only."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nOptional warm transfer message spoken by the agent when the transfer starts.\r\nIf empty, warm transfer is disabled.\r\n \r\nMax 2,000 characters only."}]},"isWhisper":{"type":"boolean","description":"The warm transfer mode. Only applies when a warm transfer message is set.\r\n \r\n- `true` (Whisper): only the recipient hears the warm transfer message, the caller stays on hold.\r\n- `false` (3-way): both the caller and the recipient hear the warm transfer message.\r\n \r\nDefaults to `false` (3-way) when omitted.\r\n \r\nSee [Transfer Call](/pages/transfer_call#transfer-types) for more information."}},"additionalProperties":false},"description":"Call transfer rules configured for the Pearl (when and where calls should be transferred).\r\n \r\nConstraints:\r\n- Max rules: 10.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.transferCallSettings","typeLabel":"object[] | null"},"smsSettings":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe SMS message content.\r\n \r\nConstraints:\r\n- Max 2,000 characters.\r\n- Supports pre-call and in-call variables.\r\n- If sent at end of call, may also support post-call variables.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].body.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe SMS message content.\r\n \r\nConstraints:\r\n- Max 2,000 characters.\r\n- Supports pre-call and in-call variables.\r\n- If sent at end of call, may also support post-call variables.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].body","typeLabel":"string | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the SMS should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Instructions describing when the SMS should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].triggerDescription","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"SMS templates and triggers configured for the Pearl.\r\n \r\nDuring a call, the agent can send SMS messages based on these rules.\r\n \r\nConstraints:\r\n- Max templates: 10.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe SMS message content.\r\n \r\nConstraints:\r\n- Max 2,000 characters.\r\n- Supports pre-call and in-call variables.\r\n- If sent at end of call, may also support post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe SMS message content.\r\n \r\nConstraints:\r\n- Max 2,000 characters.\r\n- Supports pre-call and in-call variables.\r\n- If sent at end of call, may also support post-call variables."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the SMS should be sent (trigger conditions).\r\n \r\nMax 500 characters only."},{"type":"null","description":"Instructions describing when the SMS should be sent (trigger conditions).\r\n \r\nMax 500 characters only."}]}},"additionalProperties":false},"description":"SMS templates and triggers configured for the Pearl.\r\n \r\nDuring a call, the agent can send SMS messages based on these rules.\r\n \r\nConstraints:\r\n- Max templates: 10.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.smsSettings","typeLabel":"object[] | null"},"emailSettings":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"subject":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n\r\nEmail subject.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].subject.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n\r\nEmail subject.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].subject.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].subject","typeLabel":"string | null"},"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nMax 100,000 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].body.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nMax 100,000 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].body","typeLabel":"string | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].triggerDescription","typeLabel":"string | null"},"smtpSettings":{"oneOf":[{"type":"object","description":"Optional SMTP configuration used to send the email.\r\nIf not provided, the email is sent using the default platform email sender.","properties":{"id":{"oneOf":[{"type":"string","description":"Optional SMTP configuration identifier.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional SMTP configuration identifier.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.id","typeLabel":"string | null"},"provider":{"oneOf":[{"type":"integer","description":"The email provider used to send the emails.\n\n`1 - Gmail`\n\n`2 - Office365`\n\n`10 - Custom`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.provider.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.provider","typeLabel":"integer\u003cint32> | null"},"smtpServer":{"oneOf":[{"type":"string","description":"SMTP server hostname.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.smtpServer.oneOf.0","typeLabel":"string"},{"type":"null","description":"SMTP server hostname.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.smtpServer.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.smtpServer","typeLabel":"string | null"},"port":{"oneOf":[{"type":"integer","description":"SMTP server port.","format":"int32","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.port.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"SMTP server port.","format":"int32","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.port.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.port","typeLabel":"integer\u003cint32> | null"},"enableSsl":{"oneOf":[{"type":"boolean","description":"Indicates whether SSL/TLS is enabled for the SMTP connection.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.enableSsl.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether SSL/TLS is enabled for the SMTP connection.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.enableSsl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.enableSsl","typeLabel":"boolean | null"},"senderEmail":{"oneOf":[{"type":"string","description":"Sender email address used for SMTP authentication and as the \"From\" address.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderEmail.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender email address used for SMTP authentication and as the \"From\" address.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderEmail.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderEmail","typeLabel":"string | null"},"senderPassword":{"oneOf":[{"type":"string","description":"Sender password or SMTP credential used for authentication.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderPassword.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender password or SMTP credential used for authentication.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderPassword.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderPassword","typeLabel":"string | null"},"displayName":{"oneOf":[{"type":"string","description":"Display name shown in the recipient inbox (the \"From\" name).","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.displayName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Display name shown in the recipient inbox (the \"From\" name).","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.displayName.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.displayName","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Email templates and triggers configured for the Pearl.\r\n \r\nDuring a call, the agent can send emails based on these rules.\r\n \r\nConstraints:\r\n- Max templates: 10.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"subject":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n\r\nEmail subject.\r\n \r\nMax 150 characters only."},{"type":"null","description":"`🧩 May support variables`\r\n\r\nEmail subject.\r\n \r\nMax 150 characters only."}]},"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nMax 100,000 characters only."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nMax 100,000 characters only."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only."},{"type":"null","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only."}]},"smtpSettings":{"oneOf":[{"type":"object","description":"Optional SMTP configuration used to send the email.\r\nIf not provided, the email is sent using the default platform email sender.","properties":{"id":{"oneOf":[{"type":"string","description":"Optional SMTP configuration identifier."},{"type":"null","description":"Optional SMTP configuration identifier."}]},"provider":{"oneOf":[{"type":"integer","description":"The email provider used to send the emails.\n\n`1 - Gmail`\n\n`2 - Office365`\n\n`10 - Custom`\n\n","format":"int32"},{"type":"null"}]},"smtpServer":{"oneOf":[{"type":"string","description":"SMTP server hostname."},{"type":"null","description":"SMTP server hostname."}]},"port":{"oneOf":[{"type":"integer","description":"SMTP server port.","format":"int32"},{"type":"null","description":"SMTP server port.","format":"int32"}]},"enableSsl":{"oneOf":[{"type":"boolean","description":"Indicates whether SSL/TLS is enabled for the SMTP connection."},{"type":"null","description":"Indicates whether SSL/TLS is enabled for the SMTP connection."}]},"senderEmail":{"oneOf":[{"type":"string","description":"Sender email address used for SMTP authentication and as the \"From\" address."},{"type":"null","description":"Sender email address used for SMTP authentication and as the \"From\" address."}]},"senderPassword":{"oneOf":[{"type":"string","description":"Sender password or SMTP credential used for authentication."},{"type":"null","description":"Sender password or SMTP credential used for authentication."}]},"displayName":{"oneOf":[{"type":"string","description":"Display name shown in the recipient inbox (the \"From\" name)."},{"type":"null","description":"Display name shown in the recipient inbox (the \"From\" name)."}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},"description":"Email templates and triggers configured for the Pearl.\r\n \r\nDuring a call, the agent can send emails based on these rules.\r\n \r\nConstraints:\r\n- Max templates: 10.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings","typeLabel":"object[] | null"},"apiSettings":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"method":{"type":"integer","description":"The HTTP method used for the API request.\n\n`1 - GET`\n\n`2 - POST`\n\n`3 - PUT`\n\n`4 - DELETE`\n\n`5 - PATCH`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].method","typeLabel":"integer\u003cint32>"},"endpointUrl":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].endpointUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].endpointUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].endpointUrl","typeLabel":"string | null"},"body":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].key","typeLabel":"string | null"},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].variableId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].variableId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].variableId","typeLabel":"string | null"},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32> | null"},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"required":{"type":"boolean","description":"Indicates whether this request body field is required.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].required","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body).","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body).","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body","typeLabel":"object[] | null"},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers.oneOf.0.additionalProperties","typeLabel":"string"},"description":"Optional HTTP headers to include in the API request.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"string","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers.oneOf.1.additionalProperties","typeLabel":"string"},"description":"Optional HTTP headers to include in the API request.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers","typeLabel":"object | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].triggerDescription","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"outputBody":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].key","typeLabel":"string | null"},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].variableId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].variableId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].variableId","typeLabel":"string | null"},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32> | null"},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"required":{"type":"boolean","description":"Indicates whether this request body field is required.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].required","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody","typeLabel":"object[] | null"},"credentialId":{"oneOf":[{"type":"string","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId}).","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].credentialId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId}).","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].credentialId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].credentialId","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"API actions configured for the Pearl.\r\n \r\nConstraints:\r\n- Max actions: 20.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only."},{"type":"null","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only."}]},"method":{"type":"integer","description":"The HTTP method used for the API request.\n\n`1 - GET`\n\n`2 - POST`\n\n`3 - PUT`\n\n`4 - DELETE`\n\n`5 - PATCH`\n\n","format":"int32"},"endpointUrl":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables."}]},"body":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body)."},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body)."}]},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string"},"description":"Optional HTTP headers to include in the API request."},{"type":"null","additionalProperties":{"type":"string"},"description":"Optional HTTP headers to include in the API request."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only."},{"type":"null","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only."}]},"description":{"oneOf":[{"type":"string","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only."},{"type":"null","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only."}]},"outputBody":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation."},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation."}]},"credentialId":{"oneOf":[{"type":"string","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId})."},{"type":"null","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId})."}]}},"additionalProperties":false},"description":"API actions configured for the Pearl.\r\n \r\nConstraints:\r\n- Max actions: 20.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings","typeLabel":"object[] | null"},"successDescription":{"oneOf":[{"type":"string","description":"Definition of what is considered a successful call for this Pearl.\r\nThis is used to classify call outcomes as successful or not successful.\r\n \r\nIf left empty, calls will only be marked as completed (no success classification).\r\n \r\nMax 200 characters only.","uniqueKey":"pearl.oneOf.0.successDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Definition of what is considered a successful call for this Pearl.\r\nThis is used to classify call outcomes as successful or not successful.\r\n \r\nIf left empty, calls will only be marked as completed (no success classification).\r\n \r\nMax 200 characters only.","uniqueKey":"pearl.oneOf.0.successDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.successDescription","typeLabel":"string | null"},"indicatorTags":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Identifier of the label.\r\n \r\nIf not provided, it will be generated automatically.\r\n \r\nImportant:\r\n- The ID is the stable identifier of the label.\r\n- Changing the ID creates a new label.\r\n- Keeping the same ID while updating the name/description updates the existing label.\r\n \r\nConstraints:\r\n- Max 30 characters.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Identifier of the label.\r\n \r\nIf not provided, it will be generated automatically.\r\n \r\nImportant:\r\n- The ID is the stable identifier of the label.\r\n- Changing the ID creates a new label.\r\n- Keeping the same ID while updating the name/description updates the existing label.\r\n \r\nConstraints:\r\n- Max 30 characters.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"The label name.\r\n \r\nMax 25 characters only.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The label name.\r\n \r\nMax 25 characters only.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"Describes when this label should be applied.\r\n \r\nMax 250 characters only.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Describes when this label should be applied.\r\n \r\nMax 250 characters only.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"color":{"type":"integer","description":"The color of the indicator tag.\n\n`1 - purple`\n\n`2 - red`\n\n`3 - yellow`\n\n`4 - green`\n\n`5 - blue`\n\n`6 - pink`\n\n`7 - teal`\n\n`8 - lime`\n\n`10 - gradient1`\n\n`9 - gradient2`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].color","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Indicator labels that can be applied to calls for classification and reporting.\r\n \r\nAt the end of the conversation, an AI analyzes the call and determines which of the configured labels should be applied.\r\n \r\nConstraints:\r\n- Max labels: 10.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Identifier of the label.\r\n \r\nIf not provided, it will be generated automatically.\r\n \r\nImportant:\r\n- The ID is the stable identifier of the label.\r\n- Changing the ID creates a new label.\r\n- Keeping the same ID while updating the name/description updates the existing label.\r\n \r\nConstraints:\r\n- Max 30 characters."},{"type":"null","description":"Identifier of the label.\r\n \r\nIf not provided, it will be generated automatically.\r\n \r\nImportant:\r\n- The ID is the stable identifier of the label.\r\n- Changing the ID creates a new label.\r\n- Keeping the same ID while updating the name/description updates the existing label.\r\n \r\nConstraints:\r\n- Max 30 characters."}]},"name":{"oneOf":[{"type":"string","description":"The label name.\r\n \r\nMax 25 characters only."},{"type":"null","description":"The label name.\r\n \r\nMax 25 characters only."}]},"description":{"oneOf":[{"type":"string","description":"Describes when this label should be applied.\r\n \r\nMax 250 characters only."},{"type":"null","description":"Describes when this label should be applied.\r\n \r\nMax 250 characters only."}]},"color":{"type":"integer","description":"The color of the indicator tag.\n\n`1 - purple`\n\n`2 - red`\n\n`3 - yellow`\n\n`4 - green`\n\n`5 - blue`\n\n`6 - pink`\n\n`7 - teal`\n\n`8 - lime`\n\n`10 - gradient1`\n\n`9 - gradient2`\n\n","format":"int32"}},"additionalProperties":false},"description":"Indicator labels that can be applied to calls for classification and reporting.\r\n \r\nAt the end of the conversation, an AI analyzes the call and determines which of the configured labels should be applied.\r\n \r\nConstraints:\r\n- Max labels: 10.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.indicatorTags","typeLabel":"object[] | null"},"notifications":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"apiSettings":{"oneOf":[{"type":"object","description":"API action to trigger when the notification conditions are met.","properties":{"name":{"oneOf":[{"type":"string","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.name","typeLabel":"string | null"},"method":{"type":"integer","description":"The HTTP method used for the API request.\n\n`1 - GET`\n\n`2 - POST`\n\n`3 - PUT`\n\n`4 - DELETE`\n\n`5 - PATCH`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.method","typeLabel":"integer\u003cint32>"},"endpointUrl":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.endpointUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.endpointUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.endpointUrl","typeLabel":"string | null"},"body":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].key","typeLabel":"string | null"},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].variableId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].variableId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].variableId","typeLabel":"string | null"},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32> | null"},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"required":{"type":"boolean","description":"Indicates whether this request body field is required.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].required","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body","typeLabel":"object[] | null"},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers.oneOf.0.additionalProperties","typeLabel":"string"},"description":"Optional HTTP headers to include in the API request.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers.oneOf.1.additionalProperties","typeLabel":"string"},"description":"Optional HTTP headers to include in the API request.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers","typeLabel":"object | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.triggerDescription","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.description","typeLabel":"string | null"},"outputBody":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].key","typeLabel":"string | null"},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].variableId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].variableId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].variableId","typeLabel":"string | null"},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32> | null"},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"required":{"type":"boolean","description":"Indicates whether this request body field is required.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].required","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody","typeLabel":"object[] | null"},"credentialId":{"oneOf":[{"type":"string","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId}).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.credentialId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId}).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.credentialId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.credentialId","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings","typeLabel":"object | null"},"emailTemplate":{"oneOf":[{"type":"object","description":"Email template to send when the notification conditions are met.","properties":{"to":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.to.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"List of primary recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.to.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"List of primary recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.to.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.to","typeLabel":"string[] | null"},"cc":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.cc.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"List of CC recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.cc.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"List of CC recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.cc.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.cc","typeLabel":"string[] | null"},"subject":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail subject.\r\n \r\nConstraints:\r\n- Max 150 characters.\r\n- Supports pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.subject.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail subject.\r\n \r\nConstraints:\r\n- Max 150 characters.\r\n- Supports pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.subject.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.subject","typeLabel":"string | null"},"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nConstraints:\r\n- Max 100,000 characters.\r\n- Supports pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.body.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nConstraints:\r\n- Max 100,000 characters.\r\n- Supports pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.body","typeLabel":"string | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.triggerDescription","typeLabel":"string | null"},"smtpSettings":{"oneOf":[{"type":"object","description":"Optional SMTP configuration used to send the email.\r\nIf not provided, the email is sent using the default platform email sender.","properties":{"id":{"oneOf":[{"type":"string","description":"Optional SMTP configuration identifier.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional SMTP configuration identifier.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.id","typeLabel":"string | null"},"provider":{"oneOf":[{"type":"integer","description":"The email provider used to send the emails.\n\n`1 - Gmail`\n\n`2 - Office365`\n\n`10 - Custom`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.provider.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.provider","typeLabel":"integer\u003cint32> | null"},"smtpServer":{"oneOf":[{"type":"string","description":"SMTP server hostname.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.smtpServer.oneOf.0","typeLabel":"string"},{"type":"null","description":"SMTP server hostname.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.smtpServer.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.smtpServer","typeLabel":"string | null"},"port":{"oneOf":[{"type":"integer","description":"SMTP server port.","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.port.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"SMTP server port.","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.port.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.port","typeLabel":"integer\u003cint32> | null"},"enableSsl":{"oneOf":[{"type":"boolean","description":"Indicates whether SSL/TLS is enabled for the SMTP connection.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.enableSsl.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether SSL/TLS is enabled for the SMTP connection.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.enableSsl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.enableSsl","typeLabel":"boolean | null"},"senderEmail":{"oneOf":[{"type":"string","description":"Sender email address used for SMTP authentication and as the \"From\" address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderEmail.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender email address used for SMTP authentication and as the \"From\" address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderEmail.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderEmail","typeLabel":"string | null"},"senderPassword":{"oneOf":[{"type":"string","description":"Sender password or SMTP credential used for authentication.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderPassword.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender password or SMTP credential used for authentication.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderPassword.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderPassword","typeLabel":"string | null"},"displayName":{"oneOf":[{"type":"string","description":"Display name shown in the recipient inbox (the \"From\" name).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.displayName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Display name shown in the recipient inbox (the \"From\" name).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.displayName.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.displayName","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate","typeLabel":"object | null"},"indicatorTagsIds":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].indicatorTagsIds.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"List of indicator tag IDs that must be detected to trigger this notification.\r\n \r\nImportant:\r\n- These must be tag IDs from IndicatorTags (IndicatorTag.Id), not tag names.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].indicatorTagsIds.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"List of indicator tag IDs that must be detected to trigger this notification.\r\n \r\nImportant:\r\n- These must be tag IDs from IndicatorTags (IndicatorTag.Id), not tag names.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].indicatorTagsIds.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].indicatorTagsIds","typeLabel":"string[] | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Notifications configured to be triggered when a call ends.\r\n \r\nA notification can trigger an API call or send an email when specific indicator tags are detected.\r\n \r\nConstraints:\r\n- Max notifications: 30.\r\n- Each notification must reference indicator tag IDs (not tag names).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"apiSettings":{"oneOf":[{"type":"object","description":"API action to trigger when the notification conditions are met.","properties":{"name":{"oneOf":[{"type":"string","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only."},{"type":"null","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only."}]},"method":{"type":"integer","description":"The HTTP method used for the API request.\n\n`1 - GET`\n\n`2 - POST`\n\n`3 - PUT`\n\n`4 - DELETE`\n\n`5 - PATCH`\n\n","format":"int32"},"endpointUrl":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables."}]},"body":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body)."},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body)."}]},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string"},"description":"Optional HTTP headers to include in the API request."},{"type":"null","additionalProperties":{"type":"string"},"description":"Optional HTTP headers to include in the API request."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only."},{"type":"null","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only."}]},"description":{"oneOf":[{"type":"string","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only."},{"type":"null","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only."}]},"outputBody":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation."},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation."}]},"credentialId":{"oneOf":[{"type":"string","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId})."},{"type":"null","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId})."}]}},"additionalProperties":false},{"type":"null"}]},"emailTemplate":{"oneOf":[{"type":"object","description":"Email template to send when the notification conditions are met.","properties":{"to":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"List of primary recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address."},{"type":"null","items":{"type":"string"},"description":"List of primary recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address."}]},"cc":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"List of CC recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address."},{"type":"null","items":{"type":"string"},"description":"List of CC recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address."}]},"subject":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail subject.\r\n \r\nConstraints:\r\n- Max 150 characters.\r\n- Supports pre-call, in-call, and post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail subject.\r\n \r\nConstraints:\r\n- Max 150 characters.\r\n- Supports pre-call, in-call, and post-call variables."}]},"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nConstraints:\r\n- Max 100,000 characters.\r\n- Supports pre-call, in-call, and post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nConstraints:\r\n- Max 100,000 characters.\r\n- Supports pre-call, in-call, and post-call variables."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only."},{"type":"null","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only."}]},"smtpSettings":{"oneOf":[{"type":"object","description":"Optional SMTP configuration used to send the email.\r\nIf not provided, the email is sent using the default platform email sender.","properties":{"id":{"oneOf":[{"type":"string","description":"Optional SMTP configuration identifier."},{"type":"null","description":"Optional SMTP configuration identifier."}]},"provider":{"oneOf":[{"type":"integer","description":"The email provider used to send the emails.\n\n`1 - Gmail`\n\n`2 - Office365`\n\n`10 - Custom`\n\n","format":"int32"},{"type":"null"}]},"smtpServer":{"oneOf":[{"type":"string","description":"SMTP server hostname."},{"type":"null","description":"SMTP server hostname."}]},"port":{"oneOf":[{"type":"integer","description":"SMTP server port.","format":"int32"},{"type":"null","description":"SMTP server port.","format":"int32"}]},"enableSsl":{"oneOf":[{"type":"boolean","description":"Indicates whether SSL/TLS is enabled for the SMTP connection."},{"type":"null","description":"Indicates whether SSL/TLS is enabled for the SMTP connection."}]},"senderEmail":{"oneOf":[{"type":"string","description":"Sender email address used for SMTP authentication and as the \"From\" address."},{"type":"null","description":"Sender email address used for SMTP authentication and as the \"From\" address."}]},"senderPassword":{"oneOf":[{"type":"string","description":"Sender password or SMTP credential used for authentication."},{"type":"null","description":"Sender password or SMTP credential used for authentication."}]},"displayName":{"oneOf":[{"type":"string","description":"Display name shown in the recipient inbox (the \"From\" name)."},{"type":"null","description":"Display name shown in the recipient inbox (the \"From\" name)."}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"indicatorTagsIds":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"List of indicator tag IDs that must be detected to trigger this notification.\r\n \r\nImportant:\r\n- These must be tag IDs from IndicatorTags (IndicatorTag.Id), not tag names."},{"type":"null","items":{"type":"string"},"description":"List of indicator tag IDs that must be detected to trigger this notification.\r\n \r\nImportant:\r\n- These must be tag IDs from IndicatorTags (IndicatorTag.Id), not tag names."}]}},"additionalProperties":false},"description":"Notifications configured to be triggered when a call ends.\r\n \r\nA notification can trigger an API call or send an email when specific indicator tags are detected.\r\n \r\nConstraints:\r\n- Max notifications: 30.\r\n- Each notification must reference indicator tag IDs (not tag names).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications","typeLabel":"object[] | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl","typeLabel":"object | null"},"variables":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Variable identifier.\r\n \r\nThis is the ID you must reference when using the variable in scripts and templated fields.\r\nIt must not contain spaces.\r\n \r\nConstraints:\r\n- Max 40 characters.\r\n- Allowed characters: letters (A–Z, a–z), digits (0–9), underscore (_), hyphen (-).","uniqueKey":"variables.oneOf.0.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Variable identifier.\r\n \r\nThis is the ID you must reference when using the variable in scripts and templated fields.\r\nIt must not contain spaces.\r\n \r\nConstraints:\r\n- Max 40 characters.\r\n- Allowed characters: letters (A–Z, a–z), digits (0–9), underscore (_), hyphen (-).","uniqueKey":"variables.oneOf.0.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Friendly display name for the variable.\r\n \r\nMax 40 characters only.","uniqueKey":"variables.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Friendly display name for the variable.\r\n \r\nMax 40 characters only.","uniqueKey":"variables.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"group":{"type":"integer","description":"Variable group.\n\n- PreCall: Variables available before the call (used in pre-call contexts such as opening sentence or pre-call API).\n- InCall: Variables collected or updated during the call.\n- PostCall: Variables generated after the call by the platform (cannot be created via the API).\n\n`1 - PreCall`\n\n`2 - InCall`\n\n`3 - PostCall`\n\n`4 - Environment`\n\n","format":"int32","uniqueKey":"variables.oneOf.0.items.[INDEX].group","typeLabel":"integer\u003cint32>"},"type":{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"variables.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32>"},"isList":{"type":"boolean","description":"Indicates whether the variable can contain multiple values (list) or a single value.","uniqueKey":"variables.oneOf.0.items.[INDEX].isList","typeLabel":"boolean"},"description":{"oneOf":[{"type":"string","description":"Guidance for the agent on how to collect or infer this variable during the conversation.\r\n \r\nMax 1000 characters only.","uniqueKey":"variables.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Guidance for the agent on how to collect or infer this variable during the conversation.\r\n \r\nMax 1000 characters only.","uniqueKey":"variables.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"value":{"oneOf":[{"type":"string","description":"Optional preset (static) value of the variable.\r\nWhen set, the variable is already populated with this value and does not need to be collected or supplied.","uniqueKey":"variables.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional preset (static) value of the variable.\r\nWhen set, the variable is already populated with this value and does not need to be collected or supplied.","uniqueKey":"variables.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"options":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"value":{"oneOf":[{"type":"string","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display.","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display.","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"code":{"oneOf":[{"type":"string","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color).","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color).","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].code.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].code","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Optional predefined choices for this variable (allowed/preset values).\r\n \r\nNotes:\r\n- Use Value for the human-readable label.\r\n- Use Code for an optional internal/normalized value to store or send to integrations.","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"value":{"oneOf":[{"type":"string","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."},{"type":"null","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."}]},"code":{"oneOf":[{"type":"string","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."},{"type":"null","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."}]}},"additionalProperties":false},"description":"Optional predefined choices for this variable (allowed/preset values).\r\n \r\nNotes:\r\n- Use Value for the human-readable label.\r\n- Use Code for an optional internal/normalized value to store or send to integrations.","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].options","typeLabel":"object[] | null"},"isSessionScoped":{"type":"boolean","description":"Indicates whether the variable is reset for every interaction (\"Reset Every Interaction\" on the platform).\r\n \r\nNotes:\r\n- If true, the variable starts empty in every new call or chat.\r\n- It is never pre-filled from outside the interaction: a value sent in `CallData` for this variable, or stored on the contact by a previous interaction, is ignored.\r\n- Defaults to false.","uniqueKey":"variables.oneOf.0.items.[INDEX].isSessionScoped","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"variables.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Variables that can be defined, stored, and used by the agent during conversations.\r\nFor details on variable groups and how to use variables in supported fields, see: [Flow Variables](/api-reference/flow_variables)","uniqueKey":"variables.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Variable identifier.\r\n \r\nThis is the ID you must reference when using the variable in scripts and templated fields.\r\nIt must not contain spaces.\r\n \r\nConstraints:\r\n- Max 40 characters.\r\n- Allowed characters: letters (A–Z, a–z), digits (0–9), underscore (_), hyphen (-)."},{"type":"null","description":"Variable identifier.\r\n \r\nThis is the ID you must reference when using the variable in scripts and templated fields.\r\nIt must not contain spaces.\r\n \r\nConstraints:\r\n- Max 40 characters.\r\n- Allowed characters: letters (A–Z, a–z), digits (0–9), underscore (_), hyphen (-)."}]},"name":{"oneOf":[{"type":"string","description":"Friendly display name for the variable.\r\n \r\nMax 40 characters only."},{"type":"null","description":"Friendly display name for the variable.\r\n \r\nMax 40 characters only."}]},"group":{"type":"integer","description":"Variable group.\n\n- PreCall: Variables available before the call (used in pre-call contexts such as opening sentence or pre-call API).\n- InCall: Variables collected or updated during the call.\n- PostCall: Variables generated after the call by the platform (cannot be created via the API).\n\n`1 - PreCall`\n\n`2 - InCall`\n\n`3 - PostCall`\n\n`4 - Environment`\n\n","format":"int32"},"type":{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},"isList":{"type":"boolean","description":"Indicates whether the variable can contain multiple values (list) or a single value."},"description":{"oneOf":[{"type":"string","description":"Guidance for the agent on how to collect or infer this variable during the conversation.\r\n \r\nMax 1000 characters only."},{"type":"null","description":"Guidance for the agent on how to collect or infer this variable during the conversation.\r\n \r\nMax 1000 characters only."}]},"value":{"oneOf":[{"type":"string","description":"Optional preset (static) value of the variable.\r\nWhen set, the variable is already populated with this value and does not need to be collected or supplied."},{"type":"null","description":"Optional preset (static) value of the variable.\r\nWhen set, the variable is already populated with this value and does not need to be collected or supplied."}]},"options":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"value":{"oneOf":[{"type":"string","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."},{"type":"null","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."}]},"code":{"oneOf":[{"type":"string","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."},{"type":"null","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."}]}},"additionalProperties":false},"description":"Optional predefined choices for this variable (allowed/preset values).\r\n \r\nNotes:\r\n- Use Value for the human-readable label.\r\n- Use Code for an optional internal/normalized value to store or send to integrations."},{"type":"null","items":{"type":"object","properties":{"value":{"oneOf":[{"type":"string","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."},{"type":"null","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."}]},"code":{"oneOf":[{"type":"string","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."},{"type":"null","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."}]}},"additionalProperties":false},"description":"Optional predefined choices for this variable (allowed/preset values).\r\n \r\nNotes:\r\n- Use Value for the human-readable label.\r\n- Use Code for an optional internal/normalized value to store or send to integrations."}]},"isSessionScoped":{"type":"boolean","description":"Indicates whether the variable is reset for every interaction (\"Reset Every Interaction\" on the platform).\r\n \r\nNotes:\r\n- If true, the variable starts empty in every new call or chat.\r\n- It is never pre-filled from outside the interaction: a value sent in `CallData` for this variable, or stored on the contact by a previous interaction, is ignored.\r\n- Defaults to false."}},"additionalProperties":false},"description":"Variables that can be defined, stored, and used by the agent during conversations.\r\nFor details on variable groups and how to use variables in supported fields, see: [Flow Variables](/api-reference/flow_variables)","uniqueKey":"variables.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables","typeLabel":"object[] | null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"\u003cstring>","pearl":{"agents":[{"name":"\u003cstring>","voiceId":"\u003cstring>","clientVoiceId":"\u003cstring>"}],"agentPersonality":"\u003cstring>","timeZone":"\u003cstring>","modelType":123,"companyName":"\u003cstring>","companyDescription":"\u003cstring>","knowledgeBase":"\u003cstring>","memory":true,"speechRecognitionKeywords":[{"word":"\u003cstring>","pronunciations":["\u003cstring>"]}],"openingSentence":"\u003cstring>","flowScript":"\u003cstring>","transferCallSettings":[{"transferCallPhoneNumber":"\u003cstring>","triggerDescription":"\u003cstring>","warmTransferMessage":"\u003cstring>","isWhisper":true}],"smsSettings":[{"body":"\u003cstring>","triggerDescription":"\u003cstring>"}],"emailSettings":[{"subject":"\u003cstring>","body":"\u003cstring>","triggerDescription":"\u003cstring>","smtpSettings":{"id":"\u003cstring>","provider":123,"smtpServer":"\u003cstring>","port":123,"enableSsl":true,"senderEmail":"\u003cstring>","senderPassword":"\u003cstring>","displayName":"\u003cstring>"}}],"apiSettings":[{"name":"\u003cstring>","method":123,"endpointUrl":"\u003cstring>","body":[{"key":"\u003cstring>","variableId":"\u003cstring>","type":123,"value":"\u003cstring>","required":true}],"headers":{},"triggerDescription":"\u003cstring>","description":"\u003cstring>","outputBody":[{"key":"\u003cstring>","variableId":"\u003cstring>","type":123,"value":"\u003cstring>","required":true}],"credentialId":"\u003cstring>"}],"successDescription":"\u003cstring>","indicatorTags":[{"id":"\u003cstring>","name":"\u003cstring>","description":"\u003cstring>","color":123}],"notifications":[{"apiSettings":{"name":"\u003cstring>","method":123,"endpointUrl":"\u003cstring>","body":[{"key":"\u003cstring>","variableId":"\u003cstring>","type":123,"value":"\u003cstring>","required":true}],"headers":{},"triggerDescription":"\u003cstring>","description":"\u003cstring>","outputBody":[{"key":"\u003cstring>","variableId":"\u003cstring>","type":123,"value":"\u003cstring>","required":true}],"credentialId":"\u003cstring>"},"emailTemplate":{"to":["\u003cstring>"],"cc":["\u003cstring>"],"subject":"\u003cstring>","body":"\u003cstring>","triggerDescription":"\u003cstring>","smtpSettings":{"id":"\u003cstring>","provider":123,"smtpServer":"\u003cstring>","port":123,"enableSsl":true,"senderEmail":"\u003cstring>","senderPassword":"\u003cstring>","displayName":"\u003cstring>"}},"indicatorTagsIds":["\u003cstring>"]}]},"variables":[{"id":"\u003cstring>","name":"\u003cstring>","group":123,"type":123,"isList":true,"description":"\u003cstring>","value":"\u003cstring>","options":[{"value":"\u003cstring>","code":"\u003cstring>"}],"isSessionScoped":true}]}}},"exampleType":"generated"},"application/*+json":{"schema":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The updated name of the Pearl.","uniqueKey":"name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The updated name of the Pearl.","uniqueKey":"name.oneOf.1","typeLabel":"null"}],"uniqueKey":"name","typeLabel":"string | null"},"pearl":{"oneOf":[{"type":"object","description":"Updated conversation flow and agent behavior configuration for the Pearl.","properties":{"agents":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The display name of the agent.\n\nConstraints:\n- Max length: 50 characters.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The display name of the agent.\n\nConstraints:\n- Max length: 50 characters.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"voiceId":{"oneOf":[{"type":"string","description":"The ID of the voice to use for this agent.\r\nTo retrieve available voices, see: [Get Voices](/api-reference/v2/pearlSettings/get-voices)\r\n \r\nConstraints:\r\n- Required: an agent without a voiceId is rejected.\r\n- The voice language must be unique across agents in the same Pearl (no two agents can use voices from the same language).","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].voiceId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The ID of the voice to use for this agent.\r\nTo retrieve available voices, see: [Get Voices](/api-reference/v2/pearlSettings/get-voices)\r\n \r\nConstraints:\r\n- Required: an agent without a voiceId is rejected.\r\n- The voice language must be unique across agents in the same Pearl (no two agents can use voices from the same language).","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].voiceId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].voiceId","typeLabel":"string | null"},"clientVoiceId":{"oneOf":[{"type":"string","description":"The ID of the copy of the voice to use, when your account holds several copies of the same voice (each with its own name and pace) in My voices on the platform.\r\nFor a voice of version `2`, the agent speaks at the pace of this copy. For a voice of version `1`, it has no effect on how the agent speaks.\r\nThis parameter is optional: when it is omitted, a voice of version `2` speaks at the pace of the first copy of the voice in your account, or at the default pace if your account has no copy of it.\r\nIt must refer to one of your account's copies of the voice given in `voiceId`, otherwise it is ignored, as if omitted.\r\nGet Pearl Settings returns it when a copy is set: when you update the agents of a Pearl, send it back unchanged to keep the same copy.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].clientVoiceId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The ID of the copy of the voice to use, when your account holds several copies of the same voice (each with its own name and pace) in My voices on the platform.\r\nFor a voice of version `2`, the agent speaks at the pace of this copy. For a voice of version `1`, it has no effect on how the agent speaks.\r\nThis parameter is optional: when it is omitted, a voice of version `2` speaks at the pace of the first copy of the voice in your account, or at the default pace if your account has no copy of it.\r\nIt must refer to one of your account's copies of the voice given in `voiceId`, otherwise it is ignored, as if omitted.\r\nGet Pearl Settings returns it when a copy is set: when you update the agents of a Pearl, send it back unchanged to keep the same copy.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].clientVoiceId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX].clientVoiceId","typeLabel":"string | null"}},"additionalProperties":false,"description":"An agent of the Pearl: its display name and the voice it speaks with.","uniqueKey":"pearl.oneOf.0.agents.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Agents configured for the Pearl.\n\n- Each agent represents a language-specific entry point (based on the selected voice).\n- Configure multiple agents to support multilingual experiences and language-based transfers.\n\nConstraints:\n- At least one agent is required.\n- Each agent must have a voiceId.\n- Voice language must be unique across agents (no duplicates).","uniqueKey":"pearl.oneOf.0.agents.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The display name of the agent.\n\nConstraints:\n- Max length: 50 characters."},{"type":"null","description":"The display name of the agent.\n\nConstraints:\n- Max length: 50 characters."}]},"voiceId":{"oneOf":[{"type":"string","description":"The ID of the voice to use for this agent.\r\nTo retrieve available voices, see: [Get Voices](/api-reference/v2/pearlSettings/get-voices)\r\n \r\nConstraints:\r\n- Required: an agent without a voiceId is rejected.\r\n- The voice language must be unique across agents in the same Pearl (no two agents can use voices from the same language)."},{"type":"null","description":"The ID of the voice to use for this agent.\r\nTo retrieve available voices, see: [Get Voices](/api-reference/v2/pearlSettings/get-voices)\r\n \r\nConstraints:\r\n- Required: an agent without a voiceId is rejected.\r\n- The voice language must be unique across agents in the same Pearl (no two agents can use voices from the same language)."}]},"clientVoiceId":{"oneOf":[{"type":"string","description":"The ID of the copy of the voice to use, when your account holds several copies of the same voice (each with its own name and pace) in My voices on the platform.\r\nFor a voice of version `2`, the agent speaks at the pace of this copy. For a voice of version `1`, it has no effect on how the agent speaks.\r\nThis parameter is optional: when it is omitted, a voice of version `2` speaks at the pace of the first copy of the voice in your account, or at the default pace if your account has no copy of it.\r\nIt must refer to one of your account's copies of the voice given in `voiceId`, otherwise it is ignored, as if omitted.\r\nGet Pearl Settings returns it when a copy is set: when you update the agents of a Pearl, send it back unchanged to keep the same copy."},{"type":"null","description":"The ID of the copy of the voice to use, when your account holds several copies of the same voice (each with its own name and pace) in My voices on the platform.\r\nFor a voice of version `2`, the agent speaks at the pace of this copy. For a voice of version `1`, it has no effect on how the agent speaks.\r\nThis parameter is optional: when it is omitted, a voice of version `2` speaks at the pace of the first copy of the voice in your account, or at the default pace if your account has no copy of it.\r\nIt must refer to one of your account's copies of the voice given in `voiceId`, otherwise it is ignored, as if omitted.\r\nGet Pearl Settings returns it when a copy is set: when you update the agents of a Pearl, send it back unchanged to keep the same copy."}]}},"additionalProperties":false,"description":"An agent of the Pearl: its display name and the voice it speaks with."},"description":"Agents configured for the Pearl.\n\n- Each agent represents a language-specific entry point (based on the selected voice).\n- Configure multiple agents to support multilingual experiences and language-based transfers.\n\nConstraints:\n- At least one agent is required.\n- Each agent must have a voiceId.\n- Voice language must be unique across agents (no duplicates).","uniqueKey":"pearl.oneOf.0.agents.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agents","typeLabel":"object[] | null"},"agentPersonality":{"oneOf":[{"type":"string","description":"Defines the agent's personality and tone (for example, more assertive or more calm).\n\nConstraints:\n- Max length: 35 characters.","uniqueKey":"pearl.oneOf.0.agentPersonality.oneOf.0","typeLabel":"string"},{"type":"null","description":"Defines the agent's personality and tone (for example, more assertive or more calm).\n\nConstraints:\n- Max length: 35 characters.","uniqueKey":"pearl.oneOf.0.agentPersonality.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.agentPersonality","typeLabel":"string | null"},"timeZone":{"oneOf":[{"type":"string","description":"Time zone identifier used by the Pearl's agents.\r\n \r\nThe agent will operate according to this time zone, regardless of the lead/customer local time zone.\r\nFor accepted values, refer to the [Windows Time Zones list](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11).\r\n \r\nExample: \"Pacific Standard Time\", \"Romance Standard Time\".","uniqueKey":"pearl.oneOf.0.timeZone.oneOf.0","typeLabel":"string"},{"type":"null","description":"Time zone identifier used by the Pearl's agents.\r\n \r\nThe agent will operate according to this time zone, regardless of the lead/customer local time zone.\r\nFor accepted values, refer to the [Windows Time Zones list](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11).\r\n \r\nExample: \"Pacific Standard Time\", \"Romance Standard Time\".","uniqueKey":"pearl.oneOf.0.timeZone.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.timeZone","typeLabel":"string | null"},"modelType":{"oneOf":[{"type":"integer","description":"Agent model type.\n\nVoice Pearls use one of these models:\n- Trident: Highest-quality model with standard rate. Optimized for natural, human-like interactions.\n- Oyster: Most cost-effective model (2 credits cheaper per minute). Straightforward, prioritizes simplicity and efficiency.\n- Arrow: Default for voice Pearls. High-intelligence model with the same depth as Trident, built for ultra-low latency (fastest). Costs 2 credits more per minute.\n- Hydra: Smartest model, built for demanding tasks that need deeper reasoning. Costs 2 credits more per minute.\n\nText Pearls (chat and messaging conversations) use one of these models:\n- Orchid: Default for text Pearls. The most advanced text model, smarter than Swan, with high reasoning. Costs 1 credit more per message.\n- Swan: Text model with high reasoning and standard rate.\n\nOrchid and Swan are not available for voice Pearls, and the voice models are not available for text Pearls.\n\n`1 - Trident`\n\n`2 - Oyster`\n\n`3 - Arrow`\n\n`4 - Hydra`\n\n`5 - Flame`\n\n`11 - Swan`\n\n`12 - Orchid`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.modelType.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.modelType.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.modelType","typeLabel":"integer\u003cint32> | null"},"companyName":{"oneOf":[{"type":"string","description":"The company name used by the agent during conversations.\r\n \r\nConstraints:\r\n- Max length: 100 characters.","uniqueKey":"pearl.oneOf.0.companyName.oneOf.0","typeLabel":"string"},{"type":"null","description":"The company name used by the agent during conversations.\r\n \r\nConstraints:\r\n- Max length: 100 characters.","uniqueKey":"pearl.oneOf.0.companyName.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.companyName","typeLabel":"string | null"},"companyDescription":{"oneOf":[{"type":"string","description":"The company name used by the agent during conversations.\r\n \r\nConstraints:\r\n- Max length: 500 characters.","uniqueKey":"pearl.oneOf.0.companyDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"The company name used by the agent during conversations.\r\n \r\nConstraints:\r\n- Max length: 500 characters.","uniqueKey":"pearl.oneOf.0.companyDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.companyDescription","typeLabel":"string | null"},"knowledgeBase":{"oneOf":[{"type":"string","description":"Knowledge base content provided to the agent, such as FAQs, internal context, and operational instructions.\r\n \r\nConstraints:\r\n- Max length: 20,000 characters.","uniqueKey":"pearl.oneOf.0.knowledgeBase.oneOf.0","typeLabel":"string"},{"type":"null","description":"Knowledge base content provided to the agent, such as FAQs, internal context, and operational instructions.\r\n \r\nConstraints:\r\n- Max length: 20,000 characters.","uniqueKey":"pearl.oneOf.0.knowledgeBase.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.knowledgeBase","typeLabel":"string | null"},"memory":{"oneOf":[{"type":"boolean","description":"Indicates whether memory is enabled. When enabled, the Pearl can remember previous conversations for a given phone number.","uniqueKey":"pearl.oneOf.0.memory.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether memory is enabled. When enabled, the Pearl can remember previous conversations for a given phone number.","uniqueKey":"pearl.oneOf.0.memory.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.memory","typeLabel":"boolean | null"},"speechRecognitionKeywords":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"word":{"oneOf":[{"type":"string","description":"The keyword to recognize in speech recognition.\r\n \r\n- Max length: 50 characters.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].word.oneOf.0","typeLabel":"string"},{"type":"null","description":"The keyword to recognize in speech recognition.\r\n \r\n- Max length: 50 characters.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].word.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].word","typeLabel":"string | null"},"pronunciations":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].pronunciations.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Alternative pronunciations for the keyword.\r\n \r\nConstraints:\r\n- Max elements: 3.\r\n- Each pronunciation max length: 50 characters.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].pronunciations.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Alternative pronunciations for the keyword.\r\n \r\nConstraints:\r\n- Max elements: 3.\r\n- Each pronunciation max length: 50 characters.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].pronunciations.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX].pronunciations","typeLabel":"string[] | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Keywords configured to improve speech recognition accuracy (for example product names, acronyms, or domain-specific terms).\r\n \r\nConstraints:\r\n- Max entries: 10.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"word":{"oneOf":[{"type":"string","description":"The keyword to recognize in speech recognition.\r\n \r\n- Max length: 50 characters."},{"type":"null","description":"The keyword to recognize in speech recognition.\r\n \r\n- Max length: 50 characters."}]},"pronunciations":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"Alternative pronunciations for the keyword.\r\n \r\nConstraints:\r\n- Max elements: 3.\r\n- Each pronunciation max length: 50 characters."},{"type":"null","items":{"type":"string"},"description":"Alternative pronunciations for the keyword.\r\n \r\nConstraints:\r\n- Max elements: 3.\r\n- Each pronunciation max length: 50 characters."}]}},"additionalProperties":false},"description":"Keywords configured to improve speech recognition accuracy (for example product names, acronyms, or domain-specific terms).\r\n \r\nConstraints:\r\n- Max entries: 10.","uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.speechRecognitionKeywords","typeLabel":"object[] | null"},"openingSentence":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n\r\nThe opening sentence spoken by the agent when a conversation starts.\r\n \r\nConstraints:\r\n-Max 500 characters only.\r\n-Supports pre-call variables only.","uniqueKey":"pearl.oneOf.0.openingSentence.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n\r\nThe opening sentence spoken by the agent when a conversation starts.\r\n \r\nConstraints:\r\n-Max 500 characters only.\r\n-Supports pre-call variables only.","uniqueKey":"pearl.oneOf.0.openingSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.openingSentence","typeLabel":"string | null"},"flowScript":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n\r\nThe flow script the agent follows to drive the conversation.\r\n \r\nConstraints:\r\n- Max 20,000 characters.\r\n- Supports pre-call variables and in-call variables.","uniqueKey":"pearl.oneOf.0.flowScript.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n\r\nThe flow script the agent follows to drive the conversation.\r\n \r\nConstraints:\r\n- Max 20,000 characters.\r\n- Supports pre-call variables and in-call variables.","uniqueKey":"pearl.oneOf.0.flowScript.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.flowScript","typeLabel":"string | null"},"transferCallSettings":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"transferCallPhoneNumber":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe destination phone number to transfer the call to.\r\nIf a variable is used, it must resolve to a valid phone number, otherwise the transfer will fail.\r\n \r\nMax 25 characters only.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].transferCallPhoneNumber.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe destination phone number to transfer the call to.\r\nIf a variable is used, it must resolve to a valid phone number, otherwise the transfer will fail.\r\n \r\nMax 25 characters only.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].transferCallPhoneNumber.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].transferCallPhoneNumber","typeLabel":"string | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the agent should transfer the call (for example, when the caller asks to speak with a human).\r\n \r\nMax 500 characters only.\r\n \r\nIn a Simple Pearl, this field is required.\r\nIn a Pearl (node graph), it depends on how the TransferCall node is reached: required when the node\r\nhas no inbound transition (the agent fires the transfer based on this description), and not allowed when\r\nthe node is reached by transitions (the flow decides when the transfer happens).","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Instructions describing when the agent should transfer the call (for example, when the caller asks to speak with a human).\r\n \r\nMax 500 characters only.\r\n \r\nIn a Simple Pearl, this field is required.\r\nIn a Pearl (node graph), it depends on how the TransferCall node is reached: required when the node\r\nhas no inbound transition (the agent fires the transfer based on this description), and not allowed when\r\nthe node is reached by transitions (the flow decides when the transfer happens).","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].triggerDescription","typeLabel":"string | null"},"warmTransferMessage":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nOptional warm transfer message spoken by the agent when the transfer starts.\r\nIf empty, warm transfer is disabled.\r\n \r\nMax 2,000 characters only.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].warmTransferMessage.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nOptional warm transfer message spoken by the agent when the transfer starts.\r\nIf empty, warm transfer is disabled.\r\n \r\nMax 2,000 characters only.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].warmTransferMessage.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].warmTransferMessage","typeLabel":"string | null"},"isWhisper":{"type":"boolean","description":"The warm transfer mode. Only applies when a warm transfer message is set.\r\n \r\n- `true` (Whisper): only the recipient hears the warm transfer message, the caller stays on hold.\r\n- `false` (3-way): both the caller and the recipient hear the warm transfer message.\r\n \r\nDefaults to `false` (3-way) when omitted.\r\n \r\nSee [Transfer Call](/pages/transfer_call#transfer-types) for more information.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX].isWhisper","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Call transfer rules configured for the Pearl (when and where calls should be transferred).\r\n \r\nConstraints:\r\n- Max rules: 10.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"transferCallPhoneNumber":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe destination phone number to transfer the call to.\r\nIf a variable is used, it must resolve to a valid phone number, otherwise the transfer will fail.\r\n \r\nMax 25 characters only."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe destination phone number to transfer the call to.\r\nIf a variable is used, it must resolve to a valid phone number, otherwise the transfer will fail.\r\n \r\nMax 25 characters only."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the agent should transfer the call (for example, when the caller asks to speak with a human).\r\n \r\nMax 500 characters only.\r\n \r\nIn a Simple Pearl, this field is required.\r\nIn a Pearl (node graph), it depends on how the TransferCall node is reached: required when the node\r\nhas no inbound transition (the agent fires the transfer based on this description), and not allowed when\r\nthe node is reached by transitions (the flow decides when the transfer happens)."},{"type":"null","description":"Instructions describing when the agent should transfer the call (for example, when the caller asks to speak with a human).\r\n \r\nMax 500 characters only.\r\n \r\nIn a Simple Pearl, this field is required.\r\nIn a Pearl (node graph), it depends on how the TransferCall node is reached: required when the node\r\nhas no inbound transition (the agent fires the transfer based on this description), and not allowed when\r\nthe node is reached by transitions (the flow decides when the transfer happens)."}]},"warmTransferMessage":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nOptional warm transfer message spoken by the agent when the transfer starts.\r\nIf empty, warm transfer is disabled.\r\n \r\nMax 2,000 characters only."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nOptional warm transfer message spoken by the agent when the transfer starts.\r\nIf empty, warm transfer is disabled.\r\n \r\nMax 2,000 characters only."}]},"isWhisper":{"type":"boolean","description":"The warm transfer mode. Only applies when a warm transfer message is set.\r\n \r\n- `true` (Whisper): only the recipient hears the warm transfer message, the caller stays on hold.\r\n- `false` (3-way): both the caller and the recipient hear the warm transfer message.\r\n \r\nDefaults to `false` (3-way) when omitted.\r\n \r\nSee [Transfer Call](/pages/transfer_call#transfer-types) for more information."}},"additionalProperties":false},"description":"Call transfer rules configured for the Pearl (when and where calls should be transferred).\r\n \r\nConstraints:\r\n- Max rules: 10.","uniqueKey":"pearl.oneOf.0.transferCallSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.transferCallSettings","typeLabel":"object[] | null"},"smsSettings":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe SMS message content.\r\n \r\nConstraints:\r\n- Max 2,000 characters.\r\n- Supports pre-call and in-call variables.\r\n- If sent at end of call, may also support post-call variables.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].body.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe SMS message content.\r\n \r\nConstraints:\r\n- Max 2,000 characters.\r\n- Supports pre-call and in-call variables.\r\n- If sent at end of call, may also support post-call variables.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].body","typeLabel":"string | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the SMS should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Instructions describing when the SMS should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX].triggerDescription","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"SMS templates and triggers configured for the Pearl.\r\n \r\nDuring a call, the agent can send SMS messages based on these rules.\r\n \r\nConstraints:\r\n- Max templates: 10.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe SMS message content.\r\n \r\nConstraints:\r\n- Max 2,000 characters.\r\n- Supports pre-call and in-call variables.\r\n- If sent at end of call, may also support post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe SMS message content.\r\n \r\nConstraints:\r\n- Max 2,000 characters.\r\n- Supports pre-call and in-call variables.\r\n- If sent at end of call, may also support post-call variables."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the SMS should be sent (trigger conditions).\r\n \r\nMax 500 characters only."},{"type":"null","description":"Instructions describing when the SMS should be sent (trigger conditions).\r\n \r\nMax 500 characters only."}]}},"additionalProperties":false},"description":"SMS templates and triggers configured for the Pearl.\r\n \r\nDuring a call, the agent can send SMS messages based on these rules.\r\n \r\nConstraints:\r\n- Max templates: 10.","uniqueKey":"pearl.oneOf.0.smsSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.smsSettings","typeLabel":"object[] | null"},"emailSettings":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"subject":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n\r\nEmail subject.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].subject.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n\r\nEmail subject.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].subject.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].subject","typeLabel":"string | null"},"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nMax 100,000 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].body.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nMax 100,000 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].body","typeLabel":"string | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].triggerDescription","typeLabel":"string | null"},"smtpSettings":{"oneOf":[{"type":"object","description":"Optional SMTP configuration used to send the email.\r\nIf not provided, the email is sent using the default platform email sender.","properties":{"id":{"oneOf":[{"type":"string","description":"Optional SMTP configuration identifier.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional SMTP configuration identifier.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.id","typeLabel":"string | null"},"provider":{"oneOf":[{"type":"integer","description":"The email provider used to send the emails.\n\n`1 - Gmail`\n\n`2 - Office365`\n\n`10 - Custom`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.provider.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.provider","typeLabel":"integer\u003cint32> | null"},"smtpServer":{"oneOf":[{"type":"string","description":"SMTP server hostname.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.smtpServer.oneOf.0","typeLabel":"string"},{"type":"null","description":"SMTP server hostname.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.smtpServer.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.smtpServer","typeLabel":"string | null"},"port":{"oneOf":[{"type":"integer","description":"SMTP server port.","format":"int32","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.port.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"SMTP server port.","format":"int32","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.port.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.port","typeLabel":"integer\u003cint32> | null"},"enableSsl":{"oneOf":[{"type":"boolean","description":"Indicates whether SSL/TLS is enabled for the SMTP connection.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.enableSsl.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether SSL/TLS is enabled for the SMTP connection.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.enableSsl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.enableSsl","typeLabel":"boolean | null"},"senderEmail":{"oneOf":[{"type":"string","description":"Sender email address used for SMTP authentication and as the \"From\" address.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderEmail.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender email address used for SMTP authentication and as the \"From\" address.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderEmail.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderEmail","typeLabel":"string | null"},"senderPassword":{"oneOf":[{"type":"string","description":"Sender password or SMTP credential used for authentication.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderPassword.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender password or SMTP credential used for authentication.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderPassword.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.senderPassword","typeLabel":"string | null"},"displayName":{"oneOf":[{"type":"string","description":"Display name shown in the recipient inbox (the \"From\" name).","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.displayName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Display name shown in the recipient inbox (the \"From\" name).","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.displayName.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0.displayName","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX].smtpSettings","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Email templates and triggers configured for the Pearl.\r\n \r\nDuring a call, the agent can send emails based on these rules.\r\n \r\nConstraints:\r\n- Max templates: 10.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"subject":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n\r\nEmail subject.\r\n \r\nMax 150 characters only."},{"type":"null","description":"`🧩 May support variables`\r\n\r\nEmail subject.\r\n \r\nMax 150 characters only."}]},"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nMax 100,000 characters only."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nMax 100,000 characters only."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only."},{"type":"null","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only."}]},"smtpSettings":{"oneOf":[{"type":"object","description":"Optional SMTP configuration used to send the email.\r\nIf not provided, the email is sent using the default platform email sender.","properties":{"id":{"oneOf":[{"type":"string","description":"Optional SMTP configuration identifier."},{"type":"null","description":"Optional SMTP configuration identifier."}]},"provider":{"oneOf":[{"type":"integer","description":"The email provider used to send the emails.\n\n`1 - Gmail`\n\n`2 - Office365`\n\n`10 - Custom`\n\n","format":"int32"},{"type":"null"}]},"smtpServer":{"oneOf":[{"type":"string","description":"SMTP server hostname."},{"type":"null","description":"SMTP server hostname."}]},"port":{"oneOf":[{"type":"integer","description":"SMTP server port.","format":"int32"},{"type":"null","description":"SMTP server port.","format":"int32"}]},"enableSsl":{"oneOf":[{"type":"boolean","description":"Indicates whether SSL/TLS is enabled for the SMTP connection."},{"type":"null","description":"Indicates whether SSL/TLS is enabled for the SMTP connection."}]},"senderEmail":{"oneOf":[{"type":"string","description":"Sender email address used for SMTP authentication and as the \"From\" address."},{"type":"null","description":"Sender email address used for SMTP authentication and as the \"From\" address."}]},"senderPassword":{"oneOf":[{"type":"string","description":"Sender password or SMTP credential used for authentication."},{"type":"null","description":"Sender password or SMTP credential used for authentication."}]},"displayName":{"oneOf":[{"type":"string","description":"Display name shown in the recipient inbox (the \"From\" name)."},{"type":"null","description":"Display name shown in the recipient inbox (the \"From\" name)."}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},"description":"Email templates and triggers configured for the Pearl.\r\n \r\nDuring a call, the agent can send emails based on these rules.\r\n \r\nConstraints:\r\n- Max templates: 10.","uniqueKey":"pearl.oneOf.0.emailSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.emailSettings","typeLabel":"object[] | null"},"apiSettings":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"method":{"type":"integer","description":"The HTTP method used for the API request.\n\n`1 - GET`\n\n`2 - POST`\n\n`3 - PUT`\n\n`4 - DELETE`\n\n`5 - PATCH`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].method","typeLabel":"integer\u003cint32>"},"endpointUrl":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].endpointUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].endpointUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].endpointUrl","typeLabel":"string | null"},"body":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].key","typeLabel":"string | null"},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].variableId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].variableId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].variableId","typeLabel":"string | null"},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32> | null"},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"required":{"type":"boolean","description":"Indicates whether this request body field is required.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX].required","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body).","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body).","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].body","typeLabel":"object[] | null"},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers.oneOf.0.additionalProperties","typeLabel":"string"},"description":"Optional HTTP headers to include in the API request.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"string","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers.oneOf.1.additionalProperties","typeLabel":"string"},"description":"Optional HTTP headers to include in the API request.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].headers","typeLabel":"object | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].triggerDescription","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"outputBody":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].key","typeLabel":"string | null"},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].variableId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].variableId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].variableId","typeLabel":"string | null"},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32> | null"},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"required":{"type":"boolean","description":"Indicates whether this request body field is required.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX].required","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].outputBody","typeLabel":"object[] | null"},"credentialId":{"oneOf":[{"type":"string","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId}).","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].credentialId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId}).","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].credentialId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX].credentialId","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"API actions configured for the Pearl.\r\n \r\nConstraints:\r\n- Max actions: 20.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only."},{"type":"null","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only."}]},"method":{"type":"integer","description":"The HTTP method used for the API request.\n\n`1 - GET`\n\n`2 - POST`\n\n`3 - PUT`\n\n`4 - DELETE`\n\n`5 - PATCH`\n\n","format":"int32"},"endpointUrl":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables."}]},"body":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body)."},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body)."}]},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string"},"description":"Optional HTTP headers to include in the API request."},{"type":"null","additionalProperties":{"type":"string"},"description":"Optional HTTP headers to include in the API request."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only."},{"type":"null","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only."}]},"description":{"oneOf":[{"type":"string","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only."},{"type":"null","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only."}]},"outputBody":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation."},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation."}]},"credentialId":{"oneOf":[{"type":"string","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId})."},{"type":"null","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId})."}]}},"additionalProperties":false},"description":"API actions configured for the Pearl.\r\n \r\nConstraints:\r\n- Max actions: 20.","uniqueKey":"pearl.oneOf.0.apiSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.apiSettings","typeLabel":"object[] | null"},"successDescription":{"oneOf":[{"type":"string","description":"Definition of what is considered a successful call for this Pearl.\r\nThis is used to classify call outcomes as successful or not successful.\r\n \r\nIf left empty, calls will only be marked as completed (no success classification).\r\n \r\nMax 200 characters only.","uniqueKey":"pearl.oneOf.0.successDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Definition of what is considered a successful call for this Pearl.\r\nThis is used to classify call outcomes as successful or not successful.\r\n \r\nIf left empty, calls will only be marked as completed (no success classification).\r\n \r\nMax 200 characters only.","uniqueKey":"pearl.oneOf.0.successDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.successDescription","typeLabel":"string | null"},"indicatorTags":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Identifier of the label.\r\n \r\nIf not provided, it will be generated automatically.\r\n \r\nImportant:\r\n- The ID is the stable identifier of the label.\r\n- Changing the ID creates a new label.\r\n- Keeping the same ID while updating the name/description updates the existing label.\r\n \r\nConstraints:\r\n- Max 30 characters.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Identifier of the label.\r\n \r\nIf not provided, it will be generated automatically.\r\n \r\nImportant:\r\n- The ID is the stable identifier of the label.\r\n- Changing the ID creates a new label.\r\n- Keeping the same ID while updating the name/description updates the existing label.\r\n \r\nConstraints:\r\n- Max 30 characters.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"The label name.\r\n \r\nMax 25 characters only.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The label name.\r\n \r\nMax 25 characters only.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"Describes when this label should be applied.\r\n \r\nMax 250 characters only.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Describes when this label should be applied.\r\n \r\nMax 250 characters only.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"color":{"type":"integer","description":"The color of the indicator tag.\n\n`1 - purple`\n\n`2 - red`\n\n`3 - yellow`\n\n`4 - green`\n\n`5 - blue`\n\n`6 - pink`\n\n`7 - teal`\n\n`8 - lime`\n\n`10 - gradient1`\n\n`9 - gradient2`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX].color","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Indicator labels that can be applied to calls for classification and reporting.\r\n \r\nAt the end of the conversation, an AI analyzes the call and determines which of the configured labels should be applied.\r\n \r\nConstraints:\r\n- Max labels: 10.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Identifier of the label.\r\n \r\nIf not provided, it will be generated automatically.\r\n \r\nImportant:\r\n- The ID is the stable identifier of the label.\r\n- Changing the ID creates a new label.\r\n- Keeping the same ID while updating the name/description updates the existing label.\r\n \r\nConstraints:\r\n- Max 30 characters."},{"type":"null","description":"Identifier of the label.\r\n \r\nIf not provided, it will be generated automatically.\r\n \r\nImportant:\r\n- The ID is the stable identifier of the label.\r\n- Changing the ID creates a new label.\r\n- Keeping the same ID while updating the name/description updates the existing label.\r\n \r\nConstraints:\r\n- Max 30 characters."}]},"name":{"oneOf":[{"type":"string","description":"The label name.\r\n \r\nMax 25 characters only."},{"type":"null","description":"The label name.\r\n \r\nMax 25 characters only."}]},"description":{"oneOf":[{"type":"string","description":"Describes when this label should be applied.\r\n \r\nMax 250 characters only."},{"type":"null","description":"Describes when this label should be applied.\r\n \r\nMax 250 characters only."}]},"color":{"type":"integer","description":"The color of the indicator tag.\n\n`1 - purple`\n\n`2 - red`\n\n`3 - yellow`\n\n`4 - green`\n\n`5 - blue`\n\n`6 - pink`\n\n`7 - teal`\n\n`8 - lime`\n\n`10 - gradient1`\n\n`9 - gradient2`\n\n","format":"int32"}},"additionalProperties":false},"description":"Indicator labels that can be applied to calls for classification and reporting.\r\n \r\nAt the end of the conversation, an AI analyzes the call and determines which of the configured labels should be applied.\r\n \r\nConstraints:\r\n- Max labels: 10.","uniqueKey":"pearl.oneOf.0.indicatorTags.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.indicatorTags","typeLabel":"object[] | null"},"notifications":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"apiSettings":{"oneOf":[{"type":"object","description":"API action to trigger when the notification conditions are met.","properties":{"name":{"oneOf":[{"type":"string","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.name","typeLabel":"string | null"},"method":{"type":"integer","description":"The HTTP method used for the API request.\n\n`1 - GET`\n\n`2 - POST`\n\n`3 - PUT`\n\n`4 - DELETE`\n\n`5 - PATCH`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.method","typeLabel":"integer\u003cint32>"},"endpointUrl":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.endpointUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.endpointUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.endpointUrl","typeLabel":"string | null"},"body":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].key","typeLabel":"string | null"},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].variableId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].variableId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].variableId","typeLabel":"string | null"},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32> | null"},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"required":{"type":"boolean","description":"Indicates whether this request body field is required.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX].required","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.body","typeLabel":"object[] | null"},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers.oneOf.0.additionalProperties","typeLabel":"string"},"description":"Optional HTTP headers to include in the API request.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers.oneOf.1.additionalProperties","typeLabel":"string"},"description":"Optional HTTP headers to include in the API request.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.headers","typeLabel":"object | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.triggerDescription","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.description","typeLabel":"string | null"},"outputBody":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].key","typeLabel":"string | null"},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].variableId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].variableId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].variableId","typeLabel":"string | null"},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32> | null"},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"required":{"type":"boolean","description":"Indicates whether this request body field is required.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX].required","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.outputBody","typeLabel":"object[] | null"},"credentialId":{"oneOf":[{"type":"string","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId}).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.credentialId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId}).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.credentialId.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0.credentialId","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].apiSettings","typeLabel":"object | null"},"emailTemplate":{"oneOf":[{"type":"object","description":"Email template to send when the notification conditions are met.","properties":{"to":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.to.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"List of primary recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.to.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"List of primary recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.to.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.to","typeLabel":"string[] | null"},"cc":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.cc.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"List of CC recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.cc.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"List of CC recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.cc.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.cc","typeLabel":"string[] | null"},"subject":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail subject.\r\n \r\nConstraints:\r\n- Max 150 characters.\r\n- Supports pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.subject.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail subject.\r\n \r\nConstraints:\r\n- Max 150 characters.\r\n- Supports pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.subject.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.subject","typeLabel":"string | null"},"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nConstraints:\r\n- Max 100,000 characters.\r\n- Supports pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.body.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nConstraints:\r\n- Max 100,000 characters.\r\n- Supports pre-call, in-call, and post-call variables.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.body","typeLabel":"string | null"},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.triggerDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.triggerDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.triggerDescription","typeLabel":"string | null"},"smtpSettings":{"oneOf":[{"type":"object","description":"Optional SMTP configuration used to send the email.\r\nIf not provided, the email is sent using the default platform email sender.","properties":{"id":{"oneOf":[{"type":"string","description":"Optional SMTP configuration identifier.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional SMTP configuration identifier.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.id","typeLabel":"string | null"},"provider":{"oneOf":[{"type":"integer","description":"The email provider used to send the emails.\n\n`1 - Gmail`\n\n`2 - Office365`\n\n`10 - Custom`\n\n","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.provider.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.provider","typeLabel":"integer\u003cint32> | null"},"smtpServer":{"oneOf":[{"type":"string","description":"SMTP server hostname.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.smtpServer.oneOf.0","typeLabel":"string"},{"type":"null","description":"SMTP server hostname.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.smtpServer.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.smtpServer","typeLabel":"string | null"},"port":{"oneOf":[{"type":"integer","description":"SMTP server port.","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.port.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"SMTP server port.","format":"int32","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.port.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.port","typeLabel":"integer\u003cint32> | null"},"enableSsl":{"oneOf":[{"type":"boolean","description":"Indicates whether SSL/TLS is enabled for the SMTP connection.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.enableSsl.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether SSL/TLS is enabled for the SMTP connection.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.enableSsl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.enableSsl","typeLabel":"boolean | null"},"senderEmail":{"oneOf":[{"type":"string","description":"Sender email address used for SMTP authentication and as the \"From\" address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderEmail.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender email address used for SMTP authentication and as the \"From\" address.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderEmail.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderEmail","typeLabel":"string | null"},"senderPassword":{"oneOf":[{"type":"string","description":"Sender password or SMTP credential used for authentication.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderPassword.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender password or SMTP credential used for authentication.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderPassword.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.senderPassword","typeLabel":"string | null"},"displayName":{"oneOf":[{"type":"string","description":"Display name shown in the recipient inbox (the \"From\" name).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.displayName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Display name shown in the recipient inbox (the \"From\" name).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.displayName.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0.displayName","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0.smtpSettings","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].emailTemplate","typeLabel":"object | null"},"indicatorTagsIds":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].indicatorTagsIds.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"List of indicator tag IDs that must be detected to trigger this notification.\r\n \r\nImportant:\r\n- These must be tag IDs from IndicatorTags (IndicatorTag.Id), not tag names.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].indicatorTagsIds.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"List of indicator tag IDs that must be detected to trigger this notification.\r\n \r\nImportant:\r\n- These must be tag IDs from IndicatorTags (IndicatorTag.Id), not tag names.","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].indicatorTagsIds.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX].indicatorTagsIds","typeLabel":"string[] | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0.notifications.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Notifications configured to be triggered when a call ends.\r\n \r\nA notification can trigger an API call or send an email when specific indicator tags are detected.\r\n \r\nConstraints:\r\n- Max notifications: 30.\r\n- Each notification must reference indicator tag IDs (not tag names).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"apiSettings":{"oneOf":[{"type":"object","description":"API action to trigger when the notification conditions are met.","properties":{"name":{"oneOf":[{"type":"string","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only."},{"type":"null","description":"A friendly name for this API action.\r\n \r\nMax 50 characters only."}]},"method":{"type":"integer","description":"The HTTP method used for the API request.\n\n`1 - GET`\n\n`2 - POST`\n\n`3 - PUT`\n\n`4 - DELETE`\n\n`5 - PATCH`\n\n","format":"int32"},"endpointUrl":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe endpoint URL to call.\r\n \r\nMax 4,000 characters only.\r\n \r\nVariables support depends on when this API action is executed:\r\n- Pre-call: pre-call variables only.\r\n- In-call: pre-call and in-call variables.\r\n- End-call: pre-call, in-call, and post-call variables."}]},"body":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body)."},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Request body definition (key/value pairs) for this API call.\r\n \r\nConstraints:\r\n- Only applicable for POST, PUT, or PATCH.\r\n- Must be empty for GET, DELETE (and any method that does not send a body)."}]},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string"},"description":"Optional HTTP headers to include in the API request."},{"type":"null","additionalProperties":{"type":"string"},"description":"Optional HTTP headers to include in the API request."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only."},{"type":"null","description":"Describes when this API action should be triggered.\r\n \r\nMax 1,000 characters only."}]},"description":{"oneOf":[{"type":"string","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only."},{"type":"null","description":"A short description of what this API action does.\r\n \r\nMax 150 characters only."}]},"outputBody":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation."},{"type":"null","items":{"type":"object","properties":{"key":{"oneOf":[{"type":"string","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."},{"type":"null","description":"The request body field name (JSON key).\r\n \r\nMax 255 characters only."}]},"variableId":{"oneOf":[{"type":"string","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."},{"type":"null","description":"The variable ID to send as the value for this field (without curly braces).\r\n \r\nConstraints:\r\n- If VariableId is provided, Type and Value must be null/empty."}]},"type":{"oneOf":[{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},{"type":"null"}]},"value":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nThe static value to send for this field.\r\n \r\nConstraints:\r\n- Max 255 characters.\r\n- Must be provided together with Type when VariableId is not provided.\r\n- Must not be provided when VariableId is provided.\r\n- When Type is String, the value may include variables using curly braces."}]},"required":{"type":"boolean","description":"Indicates whether this request body field is required."}},"additionalProperties":false},"description":"Maps fields of the API response onto flow variables, so the values returned by the API can be used\r\nlater in the conversation."}]},"credentialId":{"oneOf":[{"type":"string","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId})."},{"type":"null","description":"Optional ID of a credential used to authenticate the API call.\r\nTo retrieve the credentials available to a Pearl, use the Get Pearl Credentials endpoint (GET /v2/Pearl/Credential/{pearlId})."}]}},"additionalProperties":false},{"type":"null"}]},"emailTemplate":{"oneOf":[{"type":"object","description":"Email template to send when the notification conditions are met.","properties":{"to":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"List of primary recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address."},{"type":"null","items":{"type":"string"},"description":"List of primary recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address."}]},"cc":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"List of CC recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address."},{"type":"null","items":{"type":"string"},"description":"List of CC recipients.\r\n \r\nConstraints:\r\n- Max 10 recipients.\r\n- Max 255 characters per email address."}]},"subject":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail subject.\r\n \r\nConstraints:\r\n- Max 150 characters.\r\n- Supports pre-call, in-call, and post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail subject.\r\n \r\nConstraints:\r\n- Max 150 characters.\r\n- Supports pre-call, in-call, and post-call variables."}]},"body":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nConstraints:\r\n- Max 100,000 characters.\r\n- Supports pre-call, in-call, and post-call variables."},{"type":"null","description":"`🧩 May support variables`\r\n \r\nEmail body content.\r\n \r\nConstraints:\r\n- Max 100,000 characters.\r\n- Supports pre-call, in-call, and post-call variables."}]},"triggerDescription":{"oneOf":[{"type":"string","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only."},{"type":"null","description":"Instructions describing when the email should be sent (trigger conditions).\r\n \r\nMax 500 characters only."}]},"smtpSettings":{"oneOf":[{"type":"object","description":"Optional SMTP configuration used to send the email.\r\nIf not provided, the email is sent using the default platform email sender.","properties":{"id":{"oneOf":[{"type":"string","description":"Optional SMTP configuration identifier."},{"type":"null","description":"Optional SMTP configuration identifier."}]},"provider":{"oneOf":[{"type":"integer","description":"The email provider used to send the emails.\n\n`1 - Gmail`\n\n`2 - Office365`\n\n`10 - Custom`\n\n","format":"int32"},{"type":"null"}]},"smtpServer":{"oneOf":[{"type":"string","description":"SMTP server hostname."},{"type":"null","description":"SMTP server hostname."}]},"port":{"oneOf":[{"type":"integer","description":"SMTP server port.","format":"int32"},{"type":"null","description":"SMTP server port.","format":"int32"}]},"enableSsl":{"oneOf":[{"type":"boolean","description":"Indicates whether SSL/TLS is enabled for the SMTP connection."},{"type":"null","description":"Indicates whether SSL/TLS is enabled for the SMTP connection."}]},"senderEmail":{"oneOf":[{"type":"string","description":"Sender email address used for SMTP authentication and as the \"From\" address."},{"type":"null","description":"Sender email address used for SMTP authentication and as the \"From\" address."}]},"senderPassword":{"oneOf":[{"type":"string","description":"Sender password or SMTP credential used for authentication."},{"type":"null","description":"Sender password or SMTP credential used for authentication."}]},"displayName":{"oneOf":[{"type":"string","description":"Display name shown in the recipient inbox (the \"From\" name)."},{"type":"null","description":"Display name shown in the recipient inbox (the \"From\" name)."}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"indicatorTagsIds":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"List of indicator tag IDs that must be detected to trigger this notification.\r\n \r\nImportant:\r\n- These must be tag IDs from IndicatorTags (IndicatorTag.Id), not tag names."},{"type":"null","items":{"type":"string"},"description":"List of indicator tag IDs that must be detected to trigger this notification.\r\n \r\nImportant:\r\n- These must be tag IDs from IndicatorTags (IndicatorTag.Id), not tag names."}]}},"additionalProperties":false},"description":"Notifications configured to be triggered when a call ends.\r\n \r\nA notification can trigger an API call or send an email when specific indicator tags are detected.\r\n \r\nConstraints:\r\n- Max notifications: 30.\r\n- Each notification must reference indicator tag IDs (not tag names).","uniqueKey":"pearl.oneOf.0.notifications.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl.oneOf.0.notifications","typeLabel":"object[] | null"}},"additionalProperties":false,"uniqueKey":"pearl.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"pearl.oneOf.1","typeLabel":"null"}],"uniqueKey":"pearl","typeLabel":"object | null"},"variables":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Variable identifier.\r\n \r\nThis is the ID you must reference when using the variable in scripts and templated fields.\r\nIt must not contain spaces.\r\n \r\nConstraints:\r\n- Max 40 characters.\r\n- Allowed characters: letters (A–Z, a–z), digits (0–9), underscore (_), hyphen (-).","uniqueKey":"variables.oneOf.0.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Variable identifier.\r\n \r\nThis is the ID you must reference when using the variable in scripts and templated fields.\r\nIt must not contain spaces.\r\n \r\nConstraints:\r\n- Max 40 characters.\r\n- Allowed characters: letters (A–Z, a–z), digits (0–9), underscore (_), hyphen (-).","uniqueKey":"variables.oneOf.0.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Friendly display name for the variable.\r\n \r\nMax 40 characters only.","uniqueKey":"variables.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Friendly display name for the variable.\r\n \r\nMax 40 characters only.","uniqueKey":"variables.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"group":{"type":"integer","description":"Variable group.\n\n- PreCall: Variables available before the call (used in pre-call contexts such as opening sentence or pre-call API).\n- InCall: Variables collected or updated during the call.\n- PostCall: Variables generated after the call by the platform (cannot be created via the API).\n\n`1 - PreCall`\n\n`2 - InCall`\n\n`3 - PostCall`\n\n`4 - Environment`\n\n","format":"int32","uniqueKey":"variables.oneOf.0.items.[INDEX].group","typeLabel":"integer\u003cint32>"},"type":{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32","uniqueKey":"variables.oneOf.0.items.[INDEX].type","typeLabel":"integer\u003cint32>"},"isList":{"type":"boolean","description":"Indicates whether the variable can contain multiple values (list) or a single value.","uniqueKey":"variables.oneOf.0.items.[INDEX].isList","typeLabel":"boolean"},"description":{"oneOf":[{"type":"string","description":"Guidance for the agent on how to collect or infer this variable during the conversation.\r\n \r\nMax 1000 characters only.","uniqueKey":"variables.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Guidance for the agent on how to collect or infer this variable during the conversation.\r\n \r\nMax 1000 characters only.","uniqueKey":"variables.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"value":{"oneOf":[{"type":"string","description":"Optional preset (static) value of the variable.\r\nWhen set, the variable is already populated with this value and does not need to be collected or supplied.","uniqueKey":"variables.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional preset (static) value of the variable.\r\nWhen set, the variable is already populated with this value and does not need to be collected or supplied.","uniqueKey":"variables.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"options":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"value":{"oneOf":[{"type":"string","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display.","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display.","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].value","typeLabel":"string | null"},"code":{"oneOf":[{"type":"string","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color).","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color).","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].code.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX].code","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Optional predefined choices for this variable (allowed/preset values).\r\n \r\nNotes:\r\n- Use Value for the human-readable label.\r\n- Use Code for an optional internal/normalized value to store or send to integrations.","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"value":{"oneOf":[{"type":"string","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."},{"type":"null","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."}]},"code":{"oneOf":[{"type":"string","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."},{"type":"null","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."}]}},"additionalProperties":false},"description":"Optional predefined choices for this variable (allowed/preset values).\r\n \r\nNotes:\r\n- Use Value for the human-readable label.\r\n- Use Code for an optional internal/normalized value to store or send to integrations.","uniqueKey":"variables.oneOf.0.items.[INDEX].options.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables.oneOf.0.items.[INDEX].options","typeLabel":"object[] | null"},"isSessionScoped":{"type":"boolean","description":"Indicates whether the variable is reset for every interaction (\"Reset Every Interaction\" on the platform).\r\n \r\nNotes:\r\n- If true, the variable starts empty in every new call or chat.\r\n- It is never pre-filled from outside the interaction: a value sent in `CallData` for this variable, or stored on the contact by a previous interaction, is ignored.\r\n- Defaults to false.","uniqueKey":"variables.oneOf.0.items.[INDEX].isSessionScoped","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"variables.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Variables that can be defined, stored, and used by the agent during conversations.\r\nFor details on variable groups and how to use variables in supported fields, see: [Flow Variables](/api-reference/flow_variables)","uniqueKey":"variables.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Variable identifier.\r\n \r\nThis is the ID you must reference when using the variable in scripts and templated fields.\r\nIt must not contain spaces.\r\n \r\nConstraints:\r\n- Max 40 characters.\r\n- Allowed characters: letters (A–Z, a–z), digits (0–9), underscore (_), hyphen (-)."},{"type":"null","description":"Variable identifier.\r\n \r\nThis is the ID you must reference when using the variable in scripts and templated fields.\r\nIt must not contain spaces.\r\n \r\nConstraints:\r\n- Max 40 characters.\r\n- Allowed characters: letters (A–Z, a–z), digits (0–9), underscore (_), hyphen (-)."}]},"name":{"oneOf":[{"type":"string","description":"Friendly display name for the variable.\r\n \r\nMax 40 characters only."},{"type":"null","description":"Friendly display name for the variable.\r\n \r\nMax 40 characters only."}]},"group":{"type":"integer","description":"Variable group.\n\n- PreCall: Variables available before the call (used in pre-call contexts such as opening sentence or pre-call API).\n- InCall: Variables collected or updated during the call.\n- PostCall: Variables generated after the call by the platform (cannot be created via the API).\n\n`1 - PreCall`\n\n`2 - InCall`\n\n`3 - PostCall`\n\n`4 - Environment`\n\n","format":"int32"},"type":{"type":"integer","description":"The data type of the value.\n\n`1 - String`\n\n`2 - Long`\n\n`3 - Double`\n\n`4 - Boolean`\n\n`5 - DateOnly`\n\n`6 - TimeOnly`\n\n`7 - DateTime`\n\n","format":"int32"},"isList":{"type":"boolean","description":"Indicates whether the variable can contain multiple values (list) or a single value."},"description":{"oneOf":[{"type":"string","description":"Guidance for the agent on how to collect or infer this variable during the conversation.\r\n \r\nMax 1000 characters only."},{"type":"null","description":"Guidance for the agent on how to collect or infer this variable during the conversation.\r\n \r\nMax 1000 characters only."}]},"value":{"oneOf":[{"type":"string","description":"Optional preset (static) value of the variable.\r\nWhen set, the variable is already populated with this value and does not need to be collected or supplied."},{"type":"null","description":"Optional preset (static) value of the variable.\r\nWhen set, the variable is already populated with this value and does not need to be collected or supplied."}]},"options":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"value":{"oneOf":[{"type":"string","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."},{"type":"null","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."}]},"code":{"oneOf":[{"type":"string","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."},{"type":"null","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."}]}},"additionalProperties":false},"description":"Optional predefined choices for this variable (allowed/preset values).\r\n \r\nNotes:\r\n- Use Value for the human-readable label.\r\n- Use Code for an optional internal/normalized value to store or send to integrations."},{"type":"null","items":{"type":"object","properties":{"value":{"oneOf":[{"type":"string","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."},{"type":"null","description":"The option value (human-readable label).\r\nIf Code is empty, this value is also used for display."}]},"code":{"oneOf":[{"type":"string","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."},{"type":"null","description":"Optional display/encoded value for the option.\r\nUse this to store a mapped value (for example a normalized code, an internal identifier, or a hex color)."}]}},"additionalProperties":false},"description":"Optional predefined choices for this variable (allowed/preset values).\r\n \r\nNotes:\r\n- Use Value for the human-readable label.\r\n- Use Code for an optional internal/normalized value to store or send to integrations."}]},"isSessionScoped":{"type":"boolean","description":"Indicates whether the variable is reset for every interaction (\"Reset Every Interaction\" on the platform).\r\n \r\nNotes:\r\n- If true, the variable starts empty in every new call or chat.\r\n- It is never pre-filled from outside the interaction: a value sent in `CallData` for this variable, or stored on the contact by a previous interaction, is ignored.\r\n- Defaults to false."}},"additionalProperties":false},"description":"Variables that can be defined, stored, and used by the agent during conversations.\r\nFor details on variable groups and how to use variables in supported fields, see: [Flow Variables](/api-reference/flow_variables)","uniqueKey":"variables.oneOf.1","typeLabel":"null"}],"uniqueKey":"variables","typeLabel":"object[] | null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"\u003cstring>","pearl":{"agents":[{"name":"\u003cstring>","voiceId":"\u003cstring>","clientVoiceId":"\u003cstring>"}],"agentPersonality":"\u003cstring>","timeZone":"\u003cstring>","modelType":123,"companyName":"\u003cstring>","companyDescription":"\u003cstring>","knowledgeBase":"\u003cstring>","memory":true,"speechRecognitionKeywords":[{"word":"\u003cstring>","pronunciations":["\u003cstring>"]}],"openingSentence":"\u003cstring>","flowScript":"\u003cstring>","transferCallSettings":[{"transferCallPhoneNumber":"\u003cstring>","triggerDescription":"\u003cstring>","warmTransferMessage":"\u003cstring>","isWhisper":true}],"smsSettings":[{"body":"\u003cstring>","triggerDescription":"\u003cstring>"}],"emailSettings":[{"subject":"\u003cstring>","body":"\u003cstring>","triggerDescription":"\u003cstring>","smtpSettings":{"id":"\u003cstring>","provider":123,"smtpServer":"\u003cstring>","port":123,"enableSsl":true,"senderEmail":"\u003cstring>","senderPassword":"\u003cstring>","displayName":"\u003cstring>"}}],"apiSettings":[{"name":"\u003cstring>","method":123,"endpointUrl":"\u003cstring>","body":[{"key":"\u003cstring>","variableId":"\u003cstring>","type":123,"value":"\u003cstring>","required":true}],"headers":{},"triggerDescription":"\u003cstring>","description":"\u003cstring>","outputBody":[{"key":"\u003cstring>","variableId":"\u003cstring>","type":123,"value":"\u003cstring>","required":true}],"credentialId":"\u003cstring>"}],"successDescription":"\u003cstring>","indicatorTags":[{"id":"\u003cstring>","name":"\u003cstring>","description":"\u003cstring>","color":123}],"notifications":[{"apiSettings":{"name":"\u003cstring>","method":123,"endpointUrl":"\u003cstring>","body":[{"key":"\u003cstring>","variableId":"\u003cstring>","type":123,"value":"\u003cstring>","required":true}],"headers":{},"triggerDescription":"\u003cstring>","description":"\u003cstring>","outputBody":[{"key":"\u003cstring>","variableId":"\u003cstring>","type":123,"value":"\u003cstring>","required":true}],"credentialId":"\u003cstring>"},"emailTemplate":{"to":["\u003cstring>"],"cc":["\u003cstring>"],"subject":"\u003cstring>","body":"\u003cstring>","triggerDescription":"\u003cstring>","smtpSettings":{"id":"\u003cstring>","provider":123,"smtpServer":"\u003cstring>","port":123,"enableSsl":true,"senderEmail":"\u003cstring>","senderPassword":"\u003cstring>","displayName":"\u003cstring>"}},"indicatorTagsIds":["\u003cstring>"]}]},"variables":[{"id":"\u003cstring>","name":"\u003cstring>","group":123,"type":123,"isList":true,"description":"\u003cstring>","value":"\u003cstring>","options":[{"value":"\u003cstring>","code":"\u003cstring>"}],"isSessionScoped":true}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"17966db8-34ad-41e9-b840-b8adf0d90a81":{"description":"The Pearl flow was updated successfully.","content":{"text/plain":{"schema":{"type":"boolean","uniqueKey":"","typeLabel":"boolean"},"examples":{"Example":{"title":"Example","value":true}},"exampleType":"generated"},"application/json":{"schema":{"type":"boolean","uniqueKey":"","typeLabel":"boolean"},"examples":{"Example":{"title":"Example","value":true}},"exampleType":"generated"},"text/json":{"schema":{"type":"boolean","uniqueKey":"","typeLabel":"boolean"},"examples":{"Example":{"title":"Example","value":true}},"exampleType":"generated"}},"exampleType":"generated"},"9d17ce03-c53d-467d-a7fb-93b0cc262e86":{"description":"Error","content":{"text/plain":{"schema":{"type":"object","properties":{"type":{"oneOf":[{"type":"string","uniqueKey":"type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"type.oneOf.1","typeLabel":"null"}],"uniqueKey":"type","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","uniqueKey":"title.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"title.oneOf.1","typeLabel":"null"}],"uniqueKey":"title","typeLabel":"string | null"},"status":{"oneOf":[{"type":"integer","format":"int32","uniqueKey":"status.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","uniqueKey":"status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status","typeLabel":"integer\u003cint32> | null"},"detail":{"oneOf":[{"type":"string","uniqueKey":"detail.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"detail","typeLabel":"string | null"},"instance":{"oneOf":[{"type":"string","uniqueKey":"instance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"instance.oneOf.1","typeLabel":"null"}],"uniqueKey":"instance","typeLabel":"string | null"},"errors":{"oneOf":[{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"errors.oneOf.0.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.oneOf.0.additionalProperties","typeLabel":"string[]"},"uniqueKey":"errors.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"errors.oneOf.1.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.oneOf.1.additionalProperties","typeLabel":"string[]"},"uniqueKey":"errors.oneOf.1","typeLabel":"null"}],"uniqueKey":"errors","typeLabel":"object | null"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","instance":"\u003cstring>","errors":{}}}},"exampleType":"generated"},"application/json":{"schema":{"type":"object","properties":{"type":{"oneOf":[{"type":"string","uniqueKey":"type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"type.oneOf.1","typeLabel":"null"}],"uniqueKey":"type","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","uniqueKey":"title.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"title.oneOf.1","typeLabel":"null"}],"uniqueKey":"title","typeLabel":"string | null"},"status":{"oneOf":[{"type":"integer","format":"int32","uniqueKey":"status.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","uniqueKey":"status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status","typeLabel":"integer\u003cint32> | null"},"detail":{"oneOf":[{"type":"string","uniqueKey":"detail.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"detail","typeLabel":"string | null"},"instance":{"oneOf":[{"type":"string","uniqueKey":"instance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"instance.oneOf.1","typeLabel":"null"}],"uniqueKey":"instance","typeLabel":"string | null"},"errors":{"oneOf":[{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"errors.oneOf.0.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.oneOf.0.additionalProperties","typeLabel":"string[]"},"uniqueKey":"errors.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"errors.oneOf.1.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.oneOf.1.additionalProperties","typeLabel":"string[]"},"uniqueKey":"errors.oneOf.1","typeLabel":"null"}],"uniqueKey":"errors","typeLabel":"object | null"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","instance":"\u003cstring>","errors":{}}}},"exampleType":"generated"},"text/json":{"schema":{"type":"object","properties":{"type":{"oneOf":[{"type":"string","uniqueKey":"type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"type.oneOf.1","typeLabel":"null"}],"uniqueKey":"type","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","uniqueKey":"title.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"title.oneOf.1","typeLabel":"null"}],"uniqueKey":"title","typeLabel":"string | null"},"status":{"oneOf":[{"type":"integer","format":"int32","uniqueKey":"status.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","uniqueKey":"status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status","typeLabel":"integer\u003cint32> | null"},"detail":{"oneOf":[{"type":"string","uniqueKey":"detail.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"detail","typeLabel":"string | null"},"instance":{"oneOf":[{"type":"string","uniqueKey":"instance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"instance.oneOf.1","typeLabel":"null"}],"uniqueKey":"instance","typeLabel":"string | null"},"errors":{"oneOf":[{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"errors.oneOf.0.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.oneOf.0.additionalProperties","typeLabel":"string[]"},"uniqueKey":"errors.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"errors.oneOf.1.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.oneOf.1.additionalProperties","typeLabel":"string[]"},"uniqueKey":"errors.oneOf.1","typeLabel":"null"}],"uniqueKey":"errors","typeLabel":"object | null"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","instance":"\u003cstring>","errors":{}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"d10e24f8-f72b-42cb-89ba-7d212b24326e":{"bearer_auth":{"type":"http","description":"Specify the authorization token.\n\nFor more information, check out the [Authorization Guide](/api-reference/authorization).","scheme":"bearer","scopes":[],"schemeName":"bearer_auth"}},"fe39eb34-84be-4ead-9434-f64ad29ef824":{"oauth2_client_credentials":{"type":"oauth2","description":"OAuth2 client_credentials grant. Use the Id of an OAuth API key as `client_id` and its one-time secret as `client_secret`.","flows":{"clientCredentials":{"tokenUrl":"/oauth/token","scopes":{"pearls:read":"List and view Pearls","pearls:write":"Create and update Pearls (settings, conversation flows, voices); implies pearls:read","pearls:moderate":"Run/pause Pearls and reset customer memory; implies pearls:read","pearls:analytics":"Read Pearl analytics; implies pearls:read","pearls:leads":"Manage and read outbound leads; implies pearls:read","pearls:calls":"Read calls and recordings, make and delete calls; implies pearls:read","pearls:stream":"Create stream tokens and run calls over a WebSocket; implies pearls:read","account:phone_numbers":"Read account phone numbers and text channels, manage custom VoIP numbers, import Twilio numbers and delete phone numbers","account:users":"Read account users","account:advanced":"Manage advanced account settings (blacklist)","account:billing":"Read account information and credit balance","account:audit_log":"Read the audit log","tts":"Synthesise speech and clone voices"}}},"scopes":[],"schemeName":"oauth2_client_credentials"}}},"servers":{"97fe3b36-7240-450a-91db-08f0f513c5ca":{"url":"https://api.nlpearl.ai","description":"Production Environement"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","description":"Specify the authorization token.\n\nFor more information, check out the [Authorization Guide](/api-reference/authorization).","scheme":"bearer","scopes":[],"schemeName":"bearer_auth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Specify the authorization token.\n\nFor more information, check out the [Authorization Guide](/api-reference/authorization).","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearer_auth","name":"Authorization"}],"title":"bearer_auth"},{"schemes":[{"scheme":{"type":"oauth2","description":"OAuth2 client_credentials grant. Use the Id of an OAuth API key as `client_id` and its one-time secret as `client_secret`.","flows":{"clientCredentials":{"tokenUrl":"/oauth/token","scopes":{"pearls:read":"List and view Pearls","pearls:write":"Create and update Pearls (settings, conversation flows, voices); implies pearls:read","pearls:moderate":"Run/pause Pearls and reset customer memory; implies pearls:read","pearls:analytics":"Read Pearl analytics; implies pearls:read","pearls:leads":"Manage and read outbound leads; implies pearls:read","pearls:calls":"Read calls and recordings, make and delete calls; implies pearls:read","pearls:stream":"Create stream tokens and run calls over a WebSocket; implies pearls:read","account:phone_numbers":"Read account phone numbers and text channels, manage custom VoIP numbers, import Twilio numbers and delete phone numbers","account:users":"Read account users","account:advanced":"Manage advanced account settings (blacklist)","account:billing":"Read account information and credit balance","account:audit_log":"Read the audit log","tts":"Synthesise speech and clone voices"}}},"scopes":[],"schemeName":"oauth2_client_credentials"},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"description":"OAuth2 client_credentials grant. Use the Id of an OAuth API key as `client_id` and its one-time secret as `client_secret`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"oauth2_client_credentials","name":"Authorization"}],"title":"oauth2_client_credentials"}]},"originalFileLocation":"api-reference/v2/openapiV2.json"},"subdomain":"nlpearl","siteName":"NLPearl Documentation","title":"Update Pearl - NLPearl Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-16T11:26:41.533Z","originalFileLocation":"api-reference/v2/pearlFlow/update-pearl-flow.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;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=\"system\"}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 the configuration of a Simple Pearl (name, pearl settings and variables). The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. For Pearls, use Update Voice Pearl or Update Text Pearl instead.\">\u003cmeta data-mint-head name=\"application-name\" content=\"NLPearl Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/nlpearl/2yr4wWhG2kiDMCwL/_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/nlpearl/2yr4wWhG2kiDMCwL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/nlpearl/2yr4wWhG2kiDMCwL/_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/nlpearl/2yr4wWhG2kiDMCwL/_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/nlpearl/2yr4wWhG2kiDMCwL/_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/nlpearl/2yr4wWhG2kiDMCwL/_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/nlpearl/2yr4wWhG2kiDMCwL/_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/nlpearl/2yr4wWhG2kiDMCwL/_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/nlpearl/2yr4wWhG2kiDMCwL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update Pearl - NLPearl Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Updates the configuration of a Simple Pearl (name, pearl settings and variables). The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. For Pearls, use Update Voice Pearl or Update Text Pearl instead.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"NLPearl Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-pearl-flow\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://nlpearl.mintlify.site/_mintlify/api/og/v2?division=Pearl+Configurations\u0026amp;title=Update+Pearl\u0026amp;description=Updates+the+configuration+of+a+Simple+Pearl+%28name%2C+pearl+settings+and+variables%29.+The+update+applies+to+the+published+version+of+the+Pearl%3A+if+several+versions+\u0026amp;theme=1048d0b5fa94cf7eed8d4a4d\u0026amp;signature=121ca42961c5104c54d6b36c9dc90a70a2442c8e939bb4452353a961cde46a5a\">\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 Pearl - NLPearl Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Updates the configuration of a Simple Pearl (name, pearl settings and variables). The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. For Pearls, use Update Voice Pearl or Update Text Pearl instead.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://nlpearl.mintlify.site/_mintlify/api/og/v2?division=Pearl+Configurations\u0026amp;title=Update+Pearl\u0026amp;description=Updates+the+configuration+of+a+Simple+Pearl+%28name%2C+pearl+settings+and+variables%29.+The+update+applies+to+the+published+version+of+the+Pearl%3A+if+several+versions+\u0026amp;theme=1048d0b5fa94cf7eed8d4a4d\u0026amp;signature=121ca42961c5104c54d6b36c9dc90a70a2442c8e939bb4452353a961cde46a5a\">\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/nlpearl/2yr4wWhG2kiDMCwL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"NLPearl Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#111111\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-pearl-flow\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/v2/pearlFlow/update-pearl-flow.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.nlpearl.ai/#organization\",\"name\":\"NLPearl Documentation\",\"url\":\"https://developers.nlpearl.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/nlpearl/DSJnNLmkdffV1qq-/images/light_mode/logo_dark.png?fit=max\u0026auto=format\u0026n=DSJnNLmkdffV1qq-\u0026q=85\u0026s=a0f34eb8d06f12c8f03693ffc4dfffeb\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.nlpearl.ai#website\",\"name\":\"NLPearl Documentation\",\"url\":\"https://developers.nlpearl.ai\",\"publisher\":{\"@id\":\"https://developers.nlpearl.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-pearl-flow#webpage\",\"url\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-pearl-flow\",\"name\":\"Update Pearl\",\"description\":\"Updates the configuration of a Simple Pearl (name, pearl settings and variables). The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. For Pearls, use Update Voice Pearl or Update Text Pearl instead.\",\"dateModified\":\"2026-07-16T11:26:41.533Z\",\"isPartOf\":{\"@id\":\"https://developers.nlpearl.ai#website\"},\"breadcrumb\":{\"@id\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-pearl-flow#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-pearl-flow#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API V2\",\"item\":\"https://developers.nlpearl.ai/api-reference/v2/account/get-account\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pearl Configurations\",\"item\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/get-pearl-flow\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update Pearl\",\"item\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-pearl-flow\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-pearl-flow#apireference\",\"headline\":\"Update Pearl\",\"name\":\"Update Pearl\",\"description\":\"Updates the configuration of a Simple Pearl (name, pearl settings and variables). The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. For Pearls, use Update Voice Pearl or Update Text Pearl instead.\",\"url\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-pearl-flow\",\"mainEntityOfPage\":{\"@id\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/update-pearl-flow#webpage\"},\"dateModified\":\"2026-07-16T11:26:41.533Z\",\"publisher\":{\"@id\":\"https://developers.nlpearl.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.nlpearl.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"NLPearl Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"NLPearl Documentation","nav":{"global":null,"tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":"/pages/introduction"}]},{"tab":"API Reference","groups":[{"group":"Getting Started","expanded":true,"pages":[{"title":"Quick Start","icon":"rocket","iconType":"light","href":"/api-reference/api_quickstart"},{"group":"API Authorization","icon":"lock","root":{"title":"API Authorization","sidebarTitle":"Overview","icon":"key","iconType":"light","href":"/api-reference/authorization"},"expanded":true,"pages":[{"title":"API Secret Key","icon":"key","iconType":"light","href":"/api-reference/api_secret_key"},{"title":"OAuth 2.0","icon":"shield-check","iconType":"light","href":"/api-reference/oauth"}]},{"title":"Pearl Flow Variables Guidance","icon":"square-root-variable","iconType":"light","href":"/api-reference/flow_variables"},{"title":"Building a Pearl Flow","icon":"diagram-project","iconType":"light","href":"/api-reference/building_a_flow"}]},{"group":"API V2","tag":"latest","expanded":true,"pages":[{"group":"Account","expanded":true,"pages":[{"openapi":"get /v2/Account","title":"Get Account","href":"/api-reference/v2/account/get-account"},{"openapi":"get /v2/Account/Users","title":"Get Users","href":"/api-reference/v2/account/get-account-users"},{"openapi":"post /v2/Account/AuditLog","title":"Get Audit Log","href":"/api-reference/v2/account/get-audit-log"},{"openapi":"get /v2/Account/Voices","title":"Get Voices","href":"/api-reference/v2/pearlSettings/get-voices"},{"openapi":"get /v2/Account/PhoneNumbers","title":"Get Phone Numbers","href":"/api-reference/v2/pearlSettings/get-phones"},{"openapi":"get /v2/Account/TextChannels","title":"Get Text Channels","href":"/api-reference/v2/pearlSettings/get-text-channels"},{"openapi":"post /v2/Account/Blacklist/Search","title":"Search Blacklist","href":"/api-reference/v2/account/search-blacklist"},{"openapi":"post /v2/Account/Blacklist","title":"Add Phone Numbers To Blacklist","href":"/api-reference/v2/account/add-to-blacklist"},{"openapi":"post /v2/Account/Blacklist/Remove","title":"Remove Phone Numbers From Blacklist","href":"/api-reference/v2/account/remove-from-blacklist"}]},{"group":"Phone Number","expanded":true,"pages":[{"openapi":"post /v2/PhoneNumber/CustomVoip","title":"Create Custom VoIP Number","href":"/api-reference/v2/phoneNumber/create-custom-voip"},{"openapi":"put /v2/PhoneNumber/CustomVoip/{phoneNumberId}","title":"Update Custom VoIP Number","href":"/api-reference/v2/phoneNumber/update-custom-voip"},{"openapi":"post /v2/PhoneNumber/Twilio/List","title":"List Twilio Phone Numbers","href":"/api-reference/v2/phoneNumber/list-twilio-phone-numbers"},{"openapi":"post /v2/PhoneNumber/Twilio/Import","title":"Import Twilio Phone Number","href":"/api-reference/v2/phoneNumber/import-twilio-phone-number"},{"openapi":"delete /v2/PhoneNumber/{phoneNumberId}","title":"Delete Phone Number","href":"/api-reference/v2/phoneNumber/delete-phone-number"}]},{"group":"Call","expanded":true,"pages":[{"openapi":"get /v2/Call/{callId}","title":"Get Call","href":"/api-reference/v2/call/get-call"},{"openapi":"get /v2/Recording/{clientId}/{pearlId}/{callId}","title":"Get Call Recording","href":"/api-reference/v2/call/get-recording"},{"openapi":"delete /v2/Call","title":"Delete Calls","href":"/api-reference/v2/call/delete-call"},{"openapi":"post /v2/Call/{callId}/Hangup","title":"Hang Up Call","href":"/api-reference/v2/call/hangup-call"}]},{"group":"Pearl","expanded":true,"pages":[{"openapi":"get /v2/Pearl","title":"Get Pearls","href":"/api-reference/v2/pearl/get-pearls"},{"openapi":"get /v2/Pearl/{pearlId}","title":"Get Pearl","href":"/api-reference/v2/pearl/get-pearl"},{"openapi":"put /v2/Pearl/{pearlId}/Active","title":"Set Activity State","href":"/api-reference/v2/pearl/set-activity-state"},{"openapi":"post /v2/Pearl/{pearlId}/Calls","title":"Get Calls","href":"/api-reference/v2/pearl/get-calls"},{"openapi":"post /v2/Pearl/{pearlId}/Calls/Bulk","title":"Get Calls Bulk","href":"/api-reference/v2/pearl/get-calls-bulk"},{"openapi":"get /v2/Pearl/{pearlId}/OngoingCalls","title":"Get Ongoing Calls","href":"/api-reference/v2/pearl/get-ongoing-calls"},{"openapi":"post /v2/Pearl/{pearlId}/Analytics","title":"Get Analytics","href":"/api-reference/v2/pearl/get-analytics"},{"openapi":"put /v2/Pearl/{pearlId}/ResetMemory","title":"Reset Customer Memory","href":"/api-reference/v2/pearl/reset-memory"}]},{"group":"Pearl Configurations","expanded":true,"pages":[{"openapi":"get /v2/Pearl/{pearlId}/Settings","title":"Get Pearl Settings","href":"/api-reference/v2/pearlFlow/get-pearl-flow"},{"openapi":"post /v2/Pearl","title":"Create Pearl","href":"/api-reference/v2/pearlFlow/add-pearl-flow"},{"openapi":"post /v2/Pearl/Voice","title":"Create Voice Pearl","href":"/api-reference/v2/pearlFlow/add-voice-pearl"},{"openapi":"post /v2/Pearl/Text","title":"Create Text Pearl","description":"Creates a new text Pearl: the conversation is driven by a graph of nodes connected by transitions, and messages are exchanged over a text channel. Provide exactly one channel: inbound settings OR outbound settings, with the TextChannelId of the channel to use. To retrieve available text channels, use the Get Text Channels endpoint (GET /v2/Account/TextChannels). The Pearl is created already published: the configuration you send becomes its live (published) version. For more details, click [here](/api-reference/building_a_flow).","href":"/api-reference/v2/pearlFlow/add-text-pearl"},{"openapi":"put /v2/Pearl/{pearlId}","title":"Update Pearl","href":"/api-reference/v2/pearlFlow/update-pearl-flow"},{"openapi":"put /v2/Pearl/Voice/{pearlId}","title":"Update Voice Pearl","description":"Updates a voice Pearl. Only the provided parts are updated: pearl replaces the whole conversation flow (send the complete node graph), inbound/outbound partially update the channel settings (only the fields present in the JSON are applied). Omitted parts are kept unchanged. The Pearl must be a voice Pearl (AgentType = Voice). The update applies to the published version of the Pearl: if several versions exist on the platform, only the currently published one is modified. For more details, click [here](/api-reference/building_a_flow).","href":"/api-reference/v2/pearlFlow/update-voice-pearl"},{"openapi":"put /v2/Pearl/Text/{pearlId}","title":"Update Text Pearl","href":"/api-reference/v2/pearlFlow/update-text-pearl"},{"openapi":"put /v2/Pearl/{pearlId}/Settings/Inbound","title":"Update Inbound Settings","href":"/api-reference/v2/pearlFlow/update-pearl-inbound"},{"openapi":"put /v2/Pearl/{pearlId}/Settings/Outbound","title":"Update Outbound Settings","href":"/api-reference/v2/pearlFlow/update-pearl-outbound"},{"openapi":"get /v2/Pearl/Credential/{pearlId}","title":"Get Pearl Credentials","href":"/api-reference/v2/pearlFlow/get-pearl-credentials"}]},{"group":"Outbound","expanded":true,"pages":[{"openapi":"post /v2/Outbound/{pearlId}/Lead","title":"Add Lead","href":"/api-reference/v2/outbound/add-lead"},{"openapi":"post /v2/Outbound/{pearlId}/Leads/Add","title":"Add Leads","href":"/api-reference/v2/outbound/add-leads"},{"openapi":"put /v2/Outbound/{pearlId}/Lead/{leadId}","title":"Update Lead","href":"/api-reference/v2/outbound/update-lead"},{"openapi":"get /v2/Outbound/{pearlId}/Lead/{leadId}","title":"Get Lead","href":"/api-reference/v2/outbound/get-lead"},{"openapi":"get /v2/Outbound/{pearlId}/Lead/External/{externalId}","title":"Get Lead Via External ID","href":"/api-reference/v2/outbound/get-lead-via-external-id"},{"openapi":"get /v2/Outbound/{pearlId}/Lead/PhoneNumber/{phoneNumber}","title":"Find Lead Via Phone Number","href":"/api-reference/v2/outbound/get-lead-via-phone-number"},{"openapi":"post /v2/Outbound/{pearlId}/Leads","title":"Search Leads","href":"/api-reference/v2/outbound/search-leads"},{"openapi":"delete /v2/Outbound/{pearlId}/Leads","title":"Delete Leads","href":"/api-reference/v2/outbound/delete-leads"},{"openapi":"delete /v2/Outbound/{pearlId}/Leads/External","title":"Delete leads Via External","href":"/api-reference/v2/outbound/delete-leads-external-id"}]},{"group":"Speech","expanded":true,"pages":[{"openapi":"post /v2/Speech","title":"Text to Speech","href":"/api-reference/v2/speech/text-to-speech"},{"openapi":"post /v2/Speech/Stream","title":"Text to Speech (Streaming)","href":"/api-reference/v2/speech/text-to-speech-stream"},{"openapi":"post /v2/Speech/Clone","title":"Clone a Voice","href":"/api-reference/v2/speech/clone-voice"}]},{"group":"Stream Calls","expanded":true,"pages":[{"openapi":"post /v2/Pearl/{pearlId}/Stream/Token","title":"Create Stream Token","href":"/api-reference/v2/stream/create-token"},{"openapi":"get /Stream/WebSocket","playground":"none","title":"Stream WebSocket","href":"/api-reference/v2/stream/websocket"}]}]},{"group":"API V1","tag":"legacy","pages":[{"group":"Account","pages":[{"openapi":"get /v1/Account","title":"Get Account","href":"/api-reference/v1/account/get-account"}]},{"group":"Call","pages":[{"openapi":"get /v1/Call/{callId}","title":"Get Call","href":"/api-reference/v1/call/get-call"},{"openapi":"delete /v1/Call","title":"Delete Calls","href":"/api-reference/v1/call/delete-call"}]},{"group":"Pearl","pages":[{"openapi":"put /v1/Pearl/{pearlId}/Memory/{phoneNumber}/Reset","title":"Reset Customer Memory","href":"/api-reference/v1/pearl/reset-memory"}]},{"group":"Inbound","pages":[{"openapi":"get /v1/Inbound","title":"Get Inbounds","href":"/api-reference/v1/inbound/get-inbounds"},{"openapi":"get /v1/Inbound/{inboundId}","title":"Get Inbound","href":"/api-reference/v1/inbound/get-inbound"},{"openapi":"get /v1/Inbound/{inboundId}/OngoingCalls","title":"Get Inbound Ongoing Calls","href":"/api-reference/v1/inbound/get-inbound-ongoing-calls"},{"openapi":"post /v1/Inbound/{inboundId}/Active","title":"Set Activity State","href":"/api-reference/v1/inbound/set-activity-state"},{"openapi":"post /v1/Inbound/{inboundId}/Calls","title":"Search Calls","href":"/api-reference/v1/inbound/search-calls"},{"openapi":"post /v1/Inbound/{inboundId}/Analytics","title":"Get Analytics","href":"/api-reference/v1/inbound/get-analytics"}]},{"group":"Outbound","pages":[{"openapi":"get /v1/Outbound","title":"Get Outbounds","href":"/api-reference/v1/outbound/get-outbounds"},{"openapi":"get /v1/Outbound/{outboundId}","title":"Get Outbound","href":"/api-reference/v1/outbound/get-outbound"},{"openapi":"get /v1/Outbound/{outboundId}/Lead/{leadId}","title":"Get Lead","href":"/api-reference/v1/outbound/get-lead"},{"openapi":"get /v1/Outbound/{outboundId}/Lead/External/{externalId}","title":"Get Lead via External ID","href":"/api-reference/v1/outbound/get-lead-via-external-id"},{"openapi":"get /v1/Outbound/{outboundId}/Lead/PhoneNumber/{phoneNumber}","title":"Get Lead via Phone Number","href":"/api-reference/v1/outbound/get-lead-via-phone-number"},{"openapi":"get /v1/Outbound/CallRequest/{requestId}","title":"Get Call Request","href":"/api-reference/v1/outbound/get-call-request"},{"openapi":"post /v1/Outbound/{outboundId}/Analytics","title":"Get Analytics","href":"/api-reference/v1/outbound/get-analytics"},{"openapi":"post /v1/Outbound/{outboundId}/Active","title":"Set Activity State","href":"/api-reference/v1/outbound/set-activity-state"},{"openapi":"post /v1/Outbound/{outboundId}/Calls","title":"Search Calls","href":"/api-reference/v1/outbound/search-calls"},{"openapi":"post /v1/Outbound/{outboundId}/Leads","title":"Search Leads","href":"/api-reference/v1/outbound/search-leads"},{"openapi":"post /v1/Outbound/{outboundId}/Call","title":"Make Call","href":"/api-reference/v1/outbound/make-call"},{"openapi":"post /v1/Outbound/{outboundId}/CallRequest","title":"Search Call Requests","href":"/api-reference/v1/outbound/search-call-requests"},{"openapi":"put /v1/Outbound/{outboundId}/Lead","title":"Add Lead","href":"/api-reference/v1/outbound/add-lead"},{"openapi":"put /v1/Outbound/{outboundId}/Lead/{leadId}","title":"Update Lead","href":"/api-reference/v1/outbound/update-lead"},{"openapi":"delete /v1/Outbound/{outboundId}/Leads","title":"Delete Leads","href":"/api-reference/v1/outbound/delete-leads"},{"openapi":"delete /v1/Outbound/{outboundId}/Leads/External","title":"Delete leads Via External","href":"/api-reference/v1/outbound/delete-leads-external-id"}]}]}]}]},"basePath":"","title":"Update Pearl - NLPearl Documentation","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["10e4515597","c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["BannerMarkdown-DcUtcwZ_.js","dist-CJ9Oly2E.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-C5EfhVm0.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-Myd8dsju.js","utils-C2HkQgW0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-8rSppmTv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B6MjiCFm.js","snippetPresets-DwrSAONL.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-CxAy5y67.js","ApiExamples-1-a5UQKQ.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C541m7wZ.js","shallow-CWELCZ77.js","getApiPlaygroundDisplay-CTo5Zn03.js","CodeSnippet-D--dzvnl.js","CodeSnippets-DM3cXEDh.js","getPastedJson-C-VECgcL.js","icon-BPq2-Mg3.js","MethodPill-D9J5cUHd.js","DuplicateIcon-BqHaxUnD.js","createIcon-CIbcZHp9.js","DynamicMarkdown-BKiHAm_d.js","SectionHeading-DstQXt3H.js","axios-vUo_bRtp.js","Markdown-CpxgzsKA.js","AssistantPageLink-Mk6P3qvh.js"]}