Creates a new Simple Pearl, driven by an opening sentence and a flow script. Provide exactly one channel: inbound settings OR outbound settings. The Pearl is created already published: the configuration you send becomes its live (published) version. To create a Pearl (node graph), use Create Voice Pearl or Create 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.4054","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":"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":"byok-sep-25","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":"billing-updated-9-15","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":"rbac-expansion","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 .3s ease,fill .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*=grow],[class*=max-w-xl][class*=max-w-2xl]{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:#fff!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 li,.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 li,.dark #content-area div.mdx-content.prose td,.dark #content-area div.mdx-content.prose>span[data-as=p]{color:#c8c8c8!important}.dark #content-area div.mdx-content .callout li,.dark #content-area div.mdx-content .callout p,.dark #content-area div.mdx-content .callout span,.dark #content-area div.mdx-content .callout span[data-as=p],.dark #content-area div.mdx-content .callout td{color:inherit!important}details.accordion{background-color:rgba(255,255,255,.025)!important}details.accordion>summary{padding:13px 12px!important;transition:background-color .2s ease}details.accordion>summary:hover{background-color:rgba(255,255,255,.05)!important}details.accordion p[data-component-part=accordion-title]{font-size:.9rem!important}.accordion-group,details.accordion{border-color:rgba(255,255,255,.08)!important}.accordion-group>details{border-color:rgba(255,255,255,.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/add-pearl-flow","slug":"/api-reference/v2/pearlFlow/add-pearl-flow","pageMetadata":{"openapi":"post /v2/Pearl","title":"Create Pearl","description":"Creates a new Simple Pearl, driven by an opening sentence and a flow script. Provide exactly one channel: inbound settings OR outbound settings. The Pearl is created already published: the configuration you send becomes its live (published) version. To create a Pearl (node graph), use Create Voice Pearl or Create Text Pearl instead.","href":"/api-reference/v2/pearlFlow/add-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: \"Creates a new Simple Pearl, driven by an opening sentence and a flow script. Provide exactly one channel: inbound settings OR outbound settings. The Pearl is created already published: the configuration you send becomes its live (published) version. To create a Pearl (node graph), use Create Voice Pearl or Create 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":"post /v2/Pearl","title":"Create Pearl","description":"Creates a new Simple Pearl, driven by an opening sentence and a flow script. Provide exactly one channel: inbound settings OR outbound settings. The Pearl is created already published: the configuration you send becomes its live (published) version. To create a Pearl (node graph), use Create Voice Pearl or Create Text Pearl instead.","href":"/api-reference/v2/pearlFlow/add-pearl-flow"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Pearl"],"summary":"Create Pearl","description":"Creates a new Simple Pearl, driven by an opening sentence and a flow script. Provide exactly one channel: inbound settings OR outbound settings. The Pearl is created already published: the configuration you send becomes its live (published) version. To create a Pearl (node graph), use Create Voice Pearl or Create Text Pearl instead.","requestBody":"81a4cd58-2382-454e-b7c0-e5a19246ccc8","responses":{"200":"9fb0ada6-0a9b-4995-832c-708a436b0c30","400":"5d5af040-0f8d-4479-a5af-fd0d59c08b8c"},"method":"post","type":"path","servers":["97fe3b36-7240-450a-91db-08f0f513c5ca"],"security":["d10e24f8-f72b-42cb-89ba-7d212b24326e","fe39eb34-84be-4ead-9434-f64ad29ef824"],"path":"/v2/Pearl","baseUrlOptions":["https://api.nlpearl.ai"],"title":"Create Pearl","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Create Pearl request (simple mode): a voice Pearl driven by an opening sentence and a flow script.","properties":{"name":{"oneOf":[{"type":"string","description":"The name of the Pearl.","uniqueKey":"name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The name of the Pearl.","uniqueKey":"name.oneOf.1","typeLabel":"null"}],"uniqueKey":"name","typeLabel":"string | null"},"pearl":{"oneOf":[{"type":"object","description":"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"},"inbound":{"oneOf":[{"type":"object","description":"Inbound settings for the Pearl. Required when creating an inbound Pearl. Must not be provided together with Outbound.","properties":{"totalAgents":{"type":"integer","description":"Total number of agents allocated to this inbound activity.","format":"int32","uniqueKey":"inbound.oneOf.0.totalAgents","typeLabel":"integer\u003cint32>"},"transcriptOptions":{"type":"integer","description":"Defines how the conversation transcript is kept: in full, with sensitive information removed, or not at all.\n\n`1 - FullTranscript`\n\n`2 - SensitiveInfoRemoved`\n\n`3 - NoTranscript`\n\n","format":"int32","uniqueKey":"inbound.oneOf.0.transcriptOptions","typeLabel":"integer\u003cint32>"},"callWebhookUrl":{"oneOf":[{"type":"string","description":"Optional webhook URL to receive call events (for example call started and call ended).","uniqueKey":"inbound.oneOf.0.callWebhookUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional webhook URL to receive call events (for example call started and call ended).","uniqueKey":"inbound.oneOf.0.callWebhookUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.callWebhookUrl","typeLabel":"string | null"},"phoneNumberId":{"oneOf":[{"type":"string","description":"The phone number ID to use for this Pearl.\r\nTo retrieve available phone numbers, see: [Get Phone Numbers](/api-reference/v2/pearlSettings/get-phones)\r\n \r\nConstraints:\r\n- A phone number cannot be assigned to more than one active inbound Pearl at the same time.","uniqueKey":"inbound.oneOf.0.phoneNumberId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The phone number ID to use for this Pearl.\r\nTo retrieve available phone numbers, see: [Get Phone Numbers](/api-reference/v2/pearlSettings/get-phones)\r\n \r\nConstraints:\r\n- A phone number cannot be assigned to more than one active inbound Pearl at the same time.","uniqueKey":"inbound.oneOf.0.phoneNumberId.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.phoneNumberId","typeLabel":"string | null"},"recordingOptions":{"type":"boolean","description":"Enables or disables call recording.","uniqueKey":"inbound.oneOf.0.recordingOptions","typeLabel":"boolean"},"isStopRecordingAfterTransferCall":{"oneOf":[{"type":"boolean","description":"Indicates whether recording should continue after a call is transferred.","uniqueKey":"inbound.oneOf.0.isStopRecordingAfterTransferCall.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether recording should continue after a call is transferred.","uniqueKey":"inbound.oneOf.0.isStopRecordingAfterTransferCall.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.isStopRecordingAfterTransferCall","typeLabel":"boolean | null"},"waitingSentence":{"oneOf":[{"type":"string","description":"Message played to the caller when no agent is available and the caller is waiting in the queue.\r\n \r\nMax 300 characters only.","uniqueKey":"inbound.oneOf.0.waitingSentence.oneOf.0","typeLabel":"string"},{"type":"null","description":"Message played to the caller when no agent is available and the caller is waiting in the queue.\r\n \r\nMax 300 characters only.","uniqueKey":"inbound.oneOf.0.waitingSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.waitingSentence","typeLabel":"string | null"},"isSayQueueDetails":{"type":"boolean","description":"When enabled, the caller is informed about queue details (for example how many callers are ahead) while waiting.","uniqueKey":"inbound.oneOf.0.isSayQueueDetails","typeLabel":"boolean"},"callTimeout":{"oneOf":[{"type":"integer","description":"Maximum call duration (in minutes). The call is ended when this limit is reached.\r\n \r\nConstraints:\r\n- Min 1 minute.\r\n- Max 120 minutes.","format":"int32","uniqueKey":"inbound.oneOf.0.callTimeout.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Maximum call duration (in minutes). The call is ended when this limit is reached.\r\n \r\nConstraints:\r\n- Min 1 minute.\r\n- Max 120 minutes.","format":"int32","uniqueKey":"inbound.oneOf.0.callTimeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.callTimeout","typeLabel":"integer\u003cint32> | null"}},"additionalProperties":false,"uniqueKey":"inbound.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"inbound.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound","typeLabel":"object | null"},"outbound":{"oneOf":[{"type":"object","description":"Outbound settings for the Pearl. Required when creating an outbound Pearl. Must not be provided together with Inbound.","properties":{"totalAgents":{"type":"integer","description":"Total number of agents allocated to this outbound activity.","format":"int32","uniqueKey":"outbound.oneOf.0.totalAgents","typeLabel":"integer\u003cint32>"},"transcriptOptions":{"type":"integer","description":"Defines how the conversation transcript is kept: in full, with sensitive information removed, or not at all.\n\n`1 - FullTranscript`\n\n`2 - SensitiveInfoRemoved`\n\n`3 - NoTranscript`\n\n","format":"int32","uniqueKey":"outbound.oneOf.0.transcriptOptions","typeLabel":"integer\u003cint32>"},"budgetTotal":{"oneOf":[{"type":"integer","description":"Total budget allocated for the outbound activity.\r\nIf null, the outbound activity runs without a budget limit.","format":"int32","uniqueKey":"outbound.oneOf.0.budgetTotal.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Total budget allocated for the outbound activity.\r\nIf null, the outbound activity runs without a budget limit.","format":"int32","uniqueKey":"outbound.oneOf.0.budgetTotal.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.budgetTotal","typeLabel":"integer\u003cint32> | null"},"timeZone":{"oneOf":[{"type":"string","description":"Default time zone for the outbound activity.\r\n \r\nLeads are called according to this time zone unless a lead-specific time zone is provided when adding leads.\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":"outbound.oneOf.0.timeZone.oneOf.0","typeLabel":"string"},{"type":"null","description":"Default time zone for the outbound activity.\r\n \r\nLeads are called according to this time zone unless a lead-specific time zone is provided when adding leads.\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":"outbound.oneOf.0.timeZone.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.timeZone","typeLabel":"string | null"},"callingHours":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","description":"`0 - Sunday`\n\n`1 - Monday`\n\n`2 - Tuesday`\n\n`3 - Wednesday`\n\n`4 - Thursday`\n\n`5 - Friday`\n\n`6 - Saturday`\n\n","format":"int32","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0.items.[INDEX].day","typeLabel":"integer\u003cint32>"},"start":{"type":"string","description":"Start time of the allowed calling window (based on the campaign time zone).\r\n \r\nConstraints:\r\n- Must be before End.","format":"date-span","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0.items.[INDEX].start","typeLabel":"string\u003cdate-span>"},"end":{"type":"string","description":"End time of the allowed calling window (based on the campaign time zone).\r\n \r\nConstraints:\r\n- Must be after Start.","format":"date-span","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0.items.[INDEX].end","typeLabel":"string\u003cdate-span>"}},"additionalProperties":false,"uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Allowed calling hours for the outbound activity.","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"day":{"type":"integer","description":"`0 - Sunday`\n\n`1 - Monday`\n\n`2 - Tuesday`\n\n`3 - Wednesday`\n\n`4 - Thursday`\n\n`5 - Friday`\n\n`6 - Saturday`\n\n","format":"int32"},"start":{"type":"string","description":"Start time of the allowed calling window (based on the campaign time zone).\r\n \r\nConstraints:\r\n- Must be before End.","format":"date-span"},"end":{"type":"string","description":"End time of the allowed calling window (based on the campaign time zone).\r\n \r\nConstraints:\r\n- Must be after Start.","format":"date-span"}},"additionalProperties":false},"description":"Allowed calling hours for the outbound activity.","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.callingHours","typeLabel":"object[] | null"},"callWebhookUrl":{"oneOf":[{"type":"string","description":"Optional webhook URL to receive call events (for example call started and call ended).","uniqueKey":"outbound.oneOf.0.callWebhookUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional webhook URL to receive call events (for example call started and call ended).","uniqueKey":"outbound.oneOf.0.callWebhookUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.callWebhookUrl","typeLabel":"string | null"},"leadWebhookUrl":{"oneOf":[{"type":"string","description":"Optional webhook URL to receive lead events (for example lead created/updated).","uniqueKey":"outbound.oneOf.0.leadWebhookUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional webhook URL to receive lead events (for example lead created/updated).","uniqueKey":"outbound.oneOf.0.leadWebhookUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.leadWebhookUrl","typeLabel":"string | null"},"phoneNumberId":{"oneOf":[{"type":"string","description":"The phone number ID to use for this Pearl.\r\nTo retrieve available phone numbers, see: [Get Phone Numbers](/api-reference/v2/pearlSettings/get-phones)","uniqueKey":"outbound.oneOf.0.phoneNumberId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The phone number ID to use for this Pearl.\r\nTo retrieve available phone numbers, see: [Get Phone Numbers](/api-reference/v2/pearlSettings/get-phones)","uniqueKey":"outbound.oneOf.0.phoneNumberId.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.phoneNumberId","typeLabel":"string | null"},"recordingTrack":{"type":"integer","description":"The audio tracks recorded during the call.\n\n`1 - Pearl`\n\n`2 - Inbound`\n\n`3 - Both`\n\n`4 - None`\n\n","format":"int32","uniqueKey":"outbound.oneOf.0.recordingTrack","typeLabel":"integer\u003cint32>"},"isStopRecordingAfterTransferCall":{"oneOf":[{"type":"boolean","description":"Indicates whether recording should continue after a call is transferred.","uniqueKey":"outbound.oneOf.0.isStopRecordingAfterTransferCall.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether recording should continue after a call is transferred.","uniqueKey":"outbound.oneOf.0.isStopRecordingAfterTransferCall.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.isStopRecordingAfterTransferCall","typeLabel":"boolean | null"},"maximumCallAttempts":{"type":"integer","description":"Maximum number of call attempts per lead.\r\n \r\nConstraints:\r\n- Max 5 attempts.","format":"int32","uniqueKey":"outbound.oneOf.0.maximumCallAttempts","typeLabel":"integer\u003cint32>"},"minimumRetryIntervalHours":{"type":"integer","description":"The minimum interval between two call attempts to the same lead.\n\n`1 - Every6Hours`\n\n`2 - OnceADay`\n\n`3 - OnceEvery3Days`\n\n`4 - OnceAWeek`\n\n`5 - OnceAMonth`\n\n`6 - Every3Hours`\n\n`7 - EveryHour`\n\n`8 - Every2Hours`\n\n`9 - Every4Hours`\n\n`10 - Every5Hours`\n\n`11 - AsSoonAsPossible`\n\n","format":"int32","uniqueKey":"outbound.oneOf.0.minimumRetryIntervalHours","typeLabel":"integer\u003cint32>"},"voiceMail":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nVoicemail message left when a voicemail/answering machine is detected.\r\nIf empty, the agent will not leave voicemails.","uniqueKey":"outbound.oneOf.0.voiceMail.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nVoicemail message left when a voicemail/answering machine is detected.\r\nIf empty, the agent will not leave voicemails.","uniqueKey":"outbound.oneOf.0.voiceMail.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.voiceMail","typeLabel":"string | null"},"bypassIVRInstruction":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nInstructions used to bypass IVR (Interactive Voice Response) systems.","uniqueKey":"outbound.oneOf.0.bypassIVRInstruction.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nInstructions used to bypass IVR (Interactive Voice Response) systems.","uniqueKey":"outbound.oneOf.0.bypassIVRInstruction.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.bypassIVRInstruction","typeLabel":"string | null"},"ringDuration":{"oneOf":[{"type":"integer","description":"Ringing duration (in seconds) before considering the call unanswered.\r\n \r\nConstraints:\r\n- Min 10 seconds.\r\n- Max 50 seconds.","format":"int32","uniqueKey":"outbound.oneOf.0.ringDuration.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Ringing duration (in seconds) before considering the call unanswered.\r\n \r\nConstraints:\r\n- Min 10 seconds.\r\n- Max 50 seconds.","format":"int32","uniqueKey":"outbound.oneOf.0.ringDuration.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.ringDuration","typeLabel":"integer\u003cint32> | null"},"callTimeout":{"oneOf":[{"type":"integer","description":"Maximum call duration (in minutes). The call is ended when this limit is reached.\r\n \r\nConstraints:\r\n- Min 1 minute.\r\n- Max 120 minutes.","format":"int32","uniqueKey":"outbound.oneOf.0.callTimeout.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Maximum call duration (in minutes). The call is ended when this limit is reached.\r\n \r\nConstraints:\r\n- Min 1 minute.\r\n- Max 120 minutes.","format":"int32","uniqueKey":"outbound.oneOf.0.callTimeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.callTimeout","typeLabel":"integer\u003cint32> | null"}},"additionalProperties":false,"uniqueKey":"outbound.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"outbound.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound","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}],"inbound":{"totalAgents":123,"transcriptOptions":123,"callWebhookUrl":"\u003cstring>","phoneNumberId":"\u003cstring>","recordingOptions":true,"isStopRecordingAfterTransferCall":true,"waitingSentence":"\u003cstring>","isSayQueueDetails":true,"callTimeout":123},"outbound":{"totalAgents":123,"transcriptOptions":123,"budgetTotal":123,"timeZone":"\u003cstring>","callingHours":[{"day":123,"start":"\u003cstring>","end":"\u003cstring>"}],"callWebhookUrl":"\u003cstring>","leadWebhookUrl":"\u003cstring>","phoneNumberId":"\u003cstring>","recordingTrack":123,"isStopRecordingAfterTransferCall":true,"maximumCallAttempts":123,"minimumRetryIntervalHours":123,"voiceMail":"\u003cstring>","bypassIVRInstruction":"\u003cstring>","ringDuration":123,"callTimeout":123}}}},"exampleType":"generated"},"text/json":{"schema":{"type":"object","description":"Create Pearl request (simple mode): a voice Pearl driven by an opening sentence and a flow script.","properties":{"name":{"oneOf":[{"type":"string","description":"The name of the Pearl.","uniqueKey":"name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The name of the Pearl.","uniqueKey":"name.oneOf.1","typeLabel":"null"}],"uniqueKey":"name","typeLabel":"string | null"},"pearl":{"oneOf":[{"type":"object","description":"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"},"inbound":{"oneOf":[{"type":"object","description":"Inbound settings for the Pearl. Required when creating an inbound Pearl. Must not be provided together with Outbound.","properties":{"totalAgents":{"type":"integer","description":"Total number of agents allocated to this inbound activity.","format":"int32","uniqueKey":"inbound.oneOf.0.totalAgents","typeLabel":"integer\u003cint32>"},"transcriptOptions":{"type":"integer","description":"Defines how the conversation transcript is kept: in full, with sensitive information removed, or not at all.\n\n`1 - FullTranscript`\n\n`2 - SensitiveInfoRemoved`\n\n`3 - NoTranscript`\n\n","format":"int32","uniqueKey":"inbound.oneOf.0.transcriptOptions","typeLabel":"integer\u003cint32>"},"callWebhookUrl":{"oneOf":[{"type":"string","description":"Optional webhook URL to receive call events (for example call started and call ended).","uniqueKey":"inbound.oneOf.0.callWebhookUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional webhook URL to receive call events (for example call started and call ended).","uniqueKey":"inbound.oneOf.0.callWebhookUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.callWebhookUrl","typeLabel":"string | null"},"phoneNumberId":{"oneOf":[{"type":"string","description":"The phone number ID to use for this Pearl.\r\nTo retrieve available phone numbers, see: [Get Phone Numbers](/api-reference/v2/pearlSettings/get-phones)\r\n \r\nConstraints:\r\n- A phone number cannot be assigned to more than one active inbound Pearl at the same time.","uniqueKey":"inbound.oneOf.0.phoneNumberId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The phone number ID to use for this Pearl.\r\nTo retrieve available phone numbers, see: [Get Phone Numbers](/api-reference/v2/pearlSettings/get-phones)\r\n \r\nConstraints:\r\n- A phone number cannot be assigned to more than one active inbound Pearl at the same time.","uniqueKey":"inbound.oneOf.0.phoneNumberId.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.phoneNumberId","typeLabel":"string | null"},"recordingOptions":{"type":"boolean","description":"Enables or disables call recording.","uniqueKey":"inbound.oneOf.0.recordingOptions","typeLabel":"boolean"},"isStopRecordingAfterTransferCall":{"oneOf":[{"type":"boolean","description":"Indicates whether recording should continue after a call is transferred.","uniqueKey":"inbound.oneOf.0.isStopRecordingAfterTransferCall.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether recording should continue after a call is transferred.","uniqueKey":"inbound.oneOf.0.isStopRecordingAfterTransferCall.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.isStopRecordingAfterTransferCall","typeLabel":"boolean | null"},"waitingSentence":{"oneOf":[{"type":"string","description":"Message played to the caller when no agent is available and the caller is waiting in the queue.\r\n \r\nMax 300 characters only.","uniqueKey":"inbound.oneOf.0.waitingSentence.oneOf.0","typeLabel":"string"},{"type":"null","description":"Message played to the caller when no agent is available and the caller is waiting in the queue.\r\n \r\nMax 300 characters only.","uniqueKey":"inbound.oneOf.0.waitingSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.waitingSentence","typeLabel":"string | null"},"isSayQueueDetails":{"type":"boolean","description":"When enabled, the caller is informed about queue details (for example how many callers are ahead) while waiting.","uniqueKey":"inbound.oneOf.0.isSayQueueDetails","typeLabel":"boolean"},"callTimeout":{"oneOf":[{"type":"integer","description":"Maximum call duration (in minutes). The call is ended when this limit is reached.\r\n \r\nConstraints:\r\n- Min 1 minute.\r\n- Max 120 minutes.","format":"int32","uniqueKey":"inbound.oneOf.0.callTimeout.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Maximum call duration (in minutes). The call is ended when this limit is reached.\r\n \r\nConstraints:\r\n- Min 1 minute.\r\n- Max 120 minutes.","format":"int32","uniqueKey":"inbound.oneOf.0.callTimeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.callTimeout","typeLabel":"integer\u003cint32> | null"}},"additionalProperties":false,"uniqueKey":"inbound.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"inbound.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound","typeLabel":"object | null"},"outbound":{"oneOf":[{"type":"object","description":"Outbound settings for the Pearl. Required when creating an outbound Pearl. Must not be provided together with Inbound.","properties":{"totalAgents":{"type":"integer","description":"Total number of agents allocated to this outbound activity.","format":"int32","uniqueKey":"outbound.oneOf.0.totalAgents","typeLabel":"integer\u003cint32>"},"transcriptOptions":{"type":"integer","description":"Defines how the conversation transcript is kept: in full, with sensitive information removed, or not at all.\n\n`1 - FullTranscript`\n\n`2 - SensitiveInfoRemoved`\n\n`3 - NoTranscript`\n\n","format":"int32","uniqueKey":"outbound.oneOf.0.transcriptOptions","typeLabel":"integer\u003cint32>"},"budgetTotal":{"oneOf":[{"type":"integer","description":"Total budget allocated for the outbound activity.\r\nIf null, the outbound activity runs without a budget limit.","format":"int32","uniqueKey":"outbound.oneOf.0.budgetTotal.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Total budget allocated for the outbound activity.\r\nIf null, the outbound activity runs without a budget limit.","format":"int32","uniqueKey":"outbound.oneOf.0.budgetTotal.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.budgetTotal","typeLabel":"integer\u003cint32> | null"},"timeZone":{"oneOf":[{"type":"string","description":"Default time zone for the outbound activity.\r\n \r\nLeads are called according to this time zone unless a lead-specific time zone is provided when adding leads.\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":"outbound.oneOf.0.timeZone.oneOf.0","typeLabel":"string"},{"type":"null","description":"Default time zone for the outbound activity.\r\n \r\nLeads are called according to this time zone unless a lead-specific time zone is provided when adding leads.\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":"outbound.oneOf.0.timeZone.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.timeZone","typeLabel":"string | null"},"callingHours":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","description":"`0 - Sunday`\n\n`1 - Monday`\n\n`2 - Tuesday`\n\n`3 - Wednesday`\n\n`4 - Thursday`\n\n`5 - Friday`\n\n`6 - Saturday`\n\n","format":"int32","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0.items.[INDEX].day","typeLabel":"integer\u003cint32>"},"start":{"type":"string","description":"Start time of the allowed calling window (based on the campaign time zone).\r\n \r\nConstraints:\r\n- Must be before End.","format":"date-span","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0.items.[INDEX].start","typeLabel":"string\u003cdate-span>"},"end":{"type":"string","description":"End time of the allowed calling window (based on the campaign time zone).\r\n \r\nConstraints:\r\n- Must be after Start.","format":"date-span","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0.items.[INDEX].end","typeLabel":"string\u003cdate-span>"}},"additionalProperties":false,"uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Allowed calling hours for the outbound activity.","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"day":{"type":"integer","description":"`0 - Sunday`\n\n`1 - Monday`\n\n`2 - Tuesday`\n\n`3 - Wednesday`\n\n`4 - Thursday`\n\n`5 - Friday`\n\n`6 - Saturday`\n\n","format":"int32"},"start":{"type":"string","description":"Start time of the allowed calling window (based on the campaign time zone).\r\n \r\nConstraints:\r\n- Must be before End.","format":"date-span"},"end":{"type":"string","description":"End time of the allowed calling window (based on the campaign time zone).\r\n \r\nConstraints:\r\n- Must be after Start.","format":"date-span"}},"additionalProperties":false},"description":"Allowed calling hours for the outbound activity.","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.callingHours","typeLabel":"object[] | null"},"callWebhookUrl":{"oneOf":[{"type":"string","description":"Optional webhook URL to receive call events (for example call started and call ended).","uniqueKey":"outbound.oneOf.0.callWebhookUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional webhook URL to receive call events (for example call started and call ended).","uniqueKey":"outbound.oneOf.0.callWebhookUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.callWebhookUrl","typeLabel":"string | null"},"leadWebhookUrl":{"oneOf":[{"type":"string","description":"Optional webhook URL to receive lead events (for example lead created/updated).","uniqueKey":"outbound.oneOf.0.leadWebhookUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional webhook URL to receive lead events (for example lead created/updated).","uniqueKey":"outbound.oneOf.0.leadWebhookUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.leadWebhookUrl","typeLabel":"string | null"},"phoneNumberId":{"oneOf":[{"type":"string","description":"The phone number ID to use for this Pearl.\r\nTo retrieve available phone numbers, see: [Get Phone Numbers](/api-reference/v2/pearlSettings/get-phones)","uniqueKey":"outbound.oneOf.0.phoneNumberId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The phone number ID to use for this Pearl.\r\nTo retrieve available phone numbers, see: [Get Phone Numbers](/api-reference/v2/pearlSettings/get-phones)","uniqueKey":"outbound.oneOf.0.phoneNumberId.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.phoneNumberId","typeLabel":"string | null"},"recordingTrack":{"type":"integer","description":"The audio tracks recorded during the call.\n\n`1 - Pearl`\n\n`2 - Inbound`\n\n`3 - Both`\n\n`4 - None`\n\n","format":"int32","uniqueKey":"outbound.oneOf.0.recordingTrack","typeLabel":"integer\u003cint32>"},"isStopRecordingAfterTransferCall":{"oneOf":[{"type":"boolean","description":"Indicates whether recording should continue after a call is transferred.","uniqueKey":"outbound.oneOf.0.isStopRecordingAfterTransferCall.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether recording should continue after a call is transferred.","uniqueKey":"outbound.oneOf.0.isStopRecordingAfterTransferCall.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.isStopRecordingAfterTransferCall","typeLabel":"boolean | null"},"maximumCallAttempts":{"type":"integer","description":"Maximum number of call attempts per lead.\r\n \r\nConstraints:\r\n- Max 5 attempts.","format":"int32","uniqueKey":"outbound.oneOf.0.maximumCallAttempts","typeLabel":"integer\u003cint32>"},"minimumRetryIntervalHours":{"type":"integer","description":"The minimum interval between two call attempts to the same lead.\n\n`1 - Every6Hours`\n\n`2 - OnceADay`\n\n`3 - OnceEvery3Days`\n\n`4 - OnceAWeek`\n\n`5 - OnceAMonth`\n\n`6 - Every3Hours`\n\n`7 - EveryHour`\n\n`8 - Every2Hours`\n\n`9 - Every4Hours`\n\n`10 - Every5Hours`\n\n`11 - AsSoonAsPossible`\n\n","format":"int32","uniqueKey":"outbound.oneOf.0.minimumRetryIntervalHours","typeLabel":"integer\u003cint32>"},"voiceMail":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nVoicemail message left when a voicemail/answering machine is detected.\r\nIf empty, the agent will not leave voicemails.","uniqueKey":"outbound.oneOf.0.voiceMail.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nVoicemail message left when a voicemail/answering machine is detected.\r\nIf empty, the agent will not leave voicemails.","uniqueKey":"outbound.oneOf.0.voiceMail.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.voiceMail","typeLabel":"string | null"},"bypassIVRInstruction":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nInstructions used to bypass IVR (Interactive Voice Response) systems.","uniqueKey":"outbound.oneOf.0.bypassIVRInstruction.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nInstructions used to bypass IVR (Interactive Voice Response) systems.","uniqueKey":"outbound.oneOf.0.bypassIVRInstruction.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.bypassIVRInstruction","typeLabel":"string | null"},"ringDuration":{"oneOf":[{"type":"integer","description":"Ringing duration (in seconds) before considering the call unanswered.\r\n \r\nConstraints:\r\n- Min 10 seconds.\r\n- Max 50 seconds.","format":"int32","uniqueKey":"outbound.oneOf.0.ringDuration.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Ringing duration (in seconds) before considering the call unanswered.\r\n \r\nConstraints:\r\n- Min 10 seconds.\r\n- Max 50 seconds.","format":"int32","uniqueKey":"outbound.oneOf.0.ringDuration.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.ringDuration","typeLabel":"integer\u003cint32> | null"},"callTimeout":{"oneOf":[{"type":"integer","description":"Maximum call duration (in minutes). The call is ended when this limit is reached.\r\n \r\nConstraints:\r\n- Min 1 minute.\r\n- Max 120 minutes.","format":"int32","uniqueKey":"outbound.oneOf.0.callTimeout.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Maximum call duration (in minutes). The call is ended when this limit is reached.\r\n \r\nConstraints:\r\n- Min 1 minute.\r\n- Max 120 minutes.","format":"int32","uniqueKey":"outbound.oneOf.0.callTimeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.callTimeout","typeLabel":"integer\u003cint32> | null"}},"additionalProperties":false,"uniqueKey":"outbound.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"outbound.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound","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}],"inbound":{"totalAgents":123,"transcriptOptions":123,"callWebhookUrl":"\u003cstring>","phoneNumberId":"\u003cstring>","recordingOptions":true,"isStopRecordingAfterTransferCall":true,"waitingSentence":"\u003cstring>","isSayQueueDetails":true,"callTimeout":123},"outbound":{"totalAgents":123,"transcriptOptions":123,"budgetTotal":123,"timeZone":"\u003cstring>","callingHours":[{"day":123,"start":"\u003cstring>","end":"\u003cstring>"}],"callWebhookUrl":"\u003cstring>","leadWebhookUrl":"\u003cstring>","phoneNumberId":"\u003cstring>","recordingTrack":123,"isStopRecordingAfterTransferCall":true,"maximumCallAttempts":123,"minimumRetryIntervalHours":123,"voiceMail":"\u003cstring>","bypassIVRInstruction":"\u003cstring>","ringDuration":123,"callTimeout":123}}}},"exampleType":"generated"},"application/*+json":{"schema":{"type":"object","description":"Create Pearl request (simple mode): a voice Pearl driven by an opening sentence and a flow script.","properties":{"name":{"oneOf":[{"type":"string","description":"The name of the Pearl.","uniqueKey":"name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The name of the Pearl.","uniqueKey":"name.oneOf.1","typeLabel":"null"}],"uniqueKey":"name","typeLabel":"string | null"},"pearl":{"oneOf":[{"type":"object","description":"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"},"inbound":{"oneOf":[{"type":"object","description":"Inbound settings for the Pearl. Required when creating an inbound Pearl. Must not be provided together with Outbound.","properties":{"totalAgents":{"type":"integer","description":"Total number of agents allocated to this inbound activity.","format":"int32","uniqueKey":"inbound.oneOf.0.totalAgents","typeLabel":"integer\u003cint32>"},"transcriptOptions":{"type":"integer","description":"Defines how the conversation transcript is kept: in full, with sensitive information removed, or not at all.\n\n`1 - FullTranscript`\n\n`2 - SensitiveInfoRemoved`\n\n`3 - NoTranscript`\n\n","format":"int32","uniqueKey":"inbound.oneOf.0.transcriptOptions","typeLabel":"integer\u003cint32>"},"callWebhookUrl":{"oneOf":[{"type":"string","description":"Optional webhook URL to receive call events (for example call started and call ended).","uniqueKey":"inbound.oneOf.0.callWebhookUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional webhook URL to receive call events (for example call started and call ended).","uniqueKey":"inbound.oneOf.0.callWebhookUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.callWebhookUrl","typeLabel":"string | null"},"phoneNumberId":{"oneOf":[{"type":"string","description":"The phone number ID to use for this Pearl.\r\nTo retrieve available phone numbers, see: [Get Phone Numbers](/api-reference/v2/pearlSettings/get-phones)\r\n \r\nConstraints:\r\n- A phone number cannot be assigned to more than one active inbound Pearl at the same time.","uniqueKey":"inbound.oneOf.0.phoneNumberId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The phone number ID to use for this Pearl.\r\nTo retrieve available phone numbers, see: [Get Phone Numbers](/api-reference/v2/pearlSettings/get-phones)\r\n \r\nConstraints:\r\n- A phone number cannot be assigned to more than one active inbound Pearl at the same time.","uniqueKey":"inbound.oneOf.0.phoneNumberId.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.phoneNumberId","typeLabel":"string | null"},"recordingOptions":{"type":"boolean","description":"Enables or disables call recording.","uniqueKey":"inbound.oneOf.0.recordingOptions","typeLabel":"boolean"},"isStopRecordingAfterTransferCall":{"oneOf":[{"type":"boolean","description":"Indicates whether recording should continue after a call is transferred.","uniqueKey":"inbound.oneOf.0.isStopRecordingAfterTransferCall.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether recording should continue after a call is transferred.","uniqueKey":"inbound.oneOf.0.isStopRecordingAfterTransferCall.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.isStopRecordingAfterTransferCall","typeLabel":"boolean | null"},"waitingSentence":{"oneOf":[{"type":"string","description":"Message played to the caller when no agent is available and the caller is waiting in the queue.\r\n \r\nMax 300 characters only.","uniqueKey":"inbound.oneOf.0.waitingSentence.oneOf.0","typeLabel":"string"},{"type":"null","description":"Message played to the caller when no agent is available and the caller is waiting in the queue.\r\n \r\nMax 300 characters only.","uniqueKey":"inbound.oneOf.0.waitingSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.waitingSentence","typeLabel":"string | null"},"isSayQueueDetails":{"type":"boolean","description":"When enabled, the caller is informed about queue details (for example how many callers are ahead) while waiting.","uniqueKey":"inbound.oneOf.0.isSayQueueDetails","typeLabel":"boolean"},"callTimeout":{"oneOf":[{"type":"integer","description":"Maximum call duration (in minutes). The call is ended when this limit is reached.\r\n \r\nConstraints:\r\n- Min 1 minute.\r\n- Max 120 minutes.","format":"int32","uniqueKey":"inbound.oneOf.0.callTimeout.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Maximum call duration (in minutes). The call is ended when this limit is reached.\r\n \r\nConstraints:\r\n- Min 1 minute.\r\n- Max 120 minutes.","format":"int32","uniqueKey":"inbound.oneOf.0.callTimeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound.oneOf.0.callTimeout","typeLabel":"integer\u003cint32> | null"}},"additionalProperties":false,"uniqueKey":"inbound.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"inbound.oneOf.1","typeLabel":"null"}],"uniqueKey":"inbound","typeLabel":"object | null"},"outbound":{"oneOf":[{"type":"object","description":"Outbound settings for the Pearl. Required when creating an outbound Pearl. Must not be provided together with Inbound.","properties":{"totalAgents":{"type":"integer","description":"Total number of agents allocated to this outbound activity.","format":"int32","uniqueKey":"outbound.oneOf.0.totalAgents","typeLabel":"integer\u003cint32>"},"transcriptOptions":{"type":"integer","description":"Defines how the conversation transcript is kept: in full, with sensitive information removed, or not at all.\n\n`1 - FullTranscript`\n\n`2 - SensitiveInfoRemoved`\n\n`3 - NoTranscript`\n\n","format":"int32","uniqueKey":"outbound.oneOf.0.transcriptOptions","typeLabel":"integer\u003cint32>"},"budgetTotal":{"oneOf":[{"type":"integer","description":"Total budget allocated for the outbound activity.\r\nIf null, the outbound activity runs without a budget limit.","format":"int32","uniqueKey":"outbound.oneOf.0.budgetTotal.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Total budget allocated for the outbound activity.\r\nIf null, the outbound activity runs without a budget limit.","format":"int32","uniqueKey":"outbound.oneOf.0.budgetTotal.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.budgetTotal","typeLabel":"integer\u003cint32> | null"},"timeZone":{"oneOf":[{"type":"string","description":"Default time zone for the outbound activity.\r\n \r\nLeads are called according to this time zone unless a lead-specific time zone is provided when adding leads.\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":"outbound.oneOf.0.timeZone.oneOf.0","typeLabel":"string"},{"type":"null","description":"Default time zone for the outbound activity.\r\n \r\nLeads are called according to this time zone unless a lead-specific time zone is provided when adding leads.\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":"outbound.oneOf.0.timeZone.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.timeZone","typeLabel":"string | null"},"callingHours":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","description":"`0 - Sunday`\n\n`1 - Monday`\n\n`2 - Tuesday`\n\n`3 - Wednesday`\n\n`4 - Thursday`\n\n`5 - Friday`\n\n`6 - Saturday`\n\n","format":"int32","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0.items.[INDEX].day","typeLabel":"integer\u003cint32>"},"start":{"type":"string","description":"Start time of the allowed calling window (based on the campaign time zone).\r\n \r\nConstraints:\r\n- Must be before End.","format":"date-span","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0.items.[INDEX].start","typeLabel":"string\u003cdate-span>"},"end":{"type":"string","description":"End time of the allowed calling window (based on the campaign time zone).\r\n \r\nConstraints:\r\n- Must be after Start.","format":"date-span","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0.items.[INDEX].end","typeLabel":"string\u003cdate-span>"}},"additionalProperties":false,"uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Allowed calling hours for the outbound activity.","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"day":{"type":"integer","description":"`0 - Sunday`\n\n`1 - Monday`\n\n`2 - Tuesday`\n\n`3 - Wednesday`\n\n`4 - Thursday`\n\n`5 - Friday`\n\n`6 - Saturday`\n\n","format":"int32"},"start":{"type":"string","description":"Start time of the allowed calling window (based on the campaign time zone).\r\n \r\nConstraints:\r\n- Must be before End.","format":"date-span"},"end":{"type":"string","description":"End time of the allowed calling window (based on the campaign time zone).\r\n \r\nConstraints:\r\n- Must be after Start.","format":"date-span"}},"additionalProperties":false},"description":"Allowed calling hours for the outbound activity.","uniqueKey":"outbound.oneOf.0.callingHours.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.callingHours","typeLabel":"object[] | null"},"callWebhookUrl":{"oneOf":[{"type":"string","description":"Optional webhook URL to receive call events (for example call started and call ended).","uniqueKey":"outbound.oneOf.0.callWebhookUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional webhook URL to receive call events (for example call started and call ended).","uniqueKey":"outbound.oneOf.0.callWebhookUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.callWebhookUrl","typeLabel":"string | null"},"leadWebhookUrl":{"oneOf":[{"type":"string","description":"Optional webhook URL to receive lead events (for example lead created/updated).","uniqueKey":"outbound.oneOf.0.leadWebhookUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional webhook URL to receive lead events (for example lead created/updated).","uniqueKey":"outbound.oneOf.0.leadWebhookUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.leadWebhookUrl","typeLabel":"string | null"},"phoneNumberId":{"oneOf":[{"type":"string","description":"The phone number ID to use for this Pearl.\r\nTo retrieve available phone numbers, see: [Get Phone Numbers](/api-reference/v2/pearlSettings/get-phones)","uniqueKey":"outbound.oneOf.0.phoneNumberId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The phone number ID to use for this Pearl.\r\nTo retrieve available phone numbers, see: [Get Phone Numbers](/api-reference/v2/pearlSettings/get-phones)","uniqueKey":"outbound.oneOf.0.phoneNumberId.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.phoneNumberId","typeLabel":"string | null"},"recordingTrack":{"type":"integer","description":"The audio tracks recorded during the call.\n\n`1 - Pearl`\n\n`2 - Inbound`\n\n`3 - Both`\n\n`4 - None`\n\n","format":"int32","uniqueKey":"outbound.oneOf.0.recordingTrack","typeLabel":"integer\u003cint32>"},"isStopRecordingAfterTransferCall":{"oneOf":[{"type":"boolean","description":"Indicates whether recording should continue after a call is transferred.","uniqueKey":"outbound.oneOf.0.isStopRecordingAfterTransferCall.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Indicates whether recording should continue after a call is transferred.","uniqueKey":"outbound.oneOf.0.isStopRecordingAfterTransferCall.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.isStopRecordingAfterTransferCall","typeLabel":"boolean | null"},"maximumCallAttempts":{"type":"integer","description":"Maximum number of call attempts per lead.\r\n \r\nConstraints:\r\n- Max 5 attempts.","format":"int32","uniqueKey":"outbound.oneOf.0.maximumCallAttempts","typeLabel":"integer\u003cint32>"},"minimumRetryIntervalHours":{"type":"integer","description":"The minimum interval between two call attempts to the same lead.\n\n`1 - Every6Hours`\n\n`2 - OnceADay`\n\n`3 - OnceEvery3Days`\n\n`4 - OnceAWeek`\n\n`5 - OnceAMonth`\n\n`6 - Every3Hours`\n\n`7 - EveryHour`\n\n`8 - Every2Hours`\n\n`9 - Every4Hours`\n\n`10 - Every5Hours`\n\n`11 - AsSoonAsPossible`\n\n","format":"int32","uniqueKey":"outbound.oneOf.0.minimumRetryIntervalHours","typeLabel":"integer\u003cint32>"},"voiceMail":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nVoicemail message left when a voicemail/answering machine is detected.\r\nIf empty, the agent will not leave voicemails.","uniqueKey":"outbound.oneOf.0.voiceMail.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nVoicemail message left when a voicemail/answering machine is detected.\r\nIf empty, the agent will not leave voicemails.","uniqueKey":"outbound.oneOf.0.voiceMail.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.voiceMail","typeLabel":"string | null"},"bypassIVRInstruction":{"oneOf":[{"type":"string","description":"`🧩 May support variables`\r\n \r\nInstructions used to bypass IVR (Interactive Voice Response) systems.","uniqueKey":"outbound.oneOf.0.bypassIVRInstruction.oneOf.0","typeLabel":"string"},{"type":"null","description":"`🧩 May support variables`\r\n \r\nInstructions used to bypass IVR (Interactive Voice Response) systems.","uniqueKey":"outbound.oneOf.0.bypassIVRInstruction.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.bypassIVRInstruction","typeLabel":"string | null"},"ringDuration":{"oneOf":[{"type":"integer","description":"Ringing duration (in seconds) before considering the call unanswered.\r\n \r\nConstraints:\r\n- Min 10 seconds.\r\n- Max 50 seconds.","format":"int32","uniqueKey":"outbound.oneOf.0.ringDuration.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Ringing duration (in seconds) before considering the call unanswered.\r\n \r\nConstraints:\r\n- Min 10 seconds.\r\n- Max 50 seconds.","format":"int32","uniqueKey":"outbound.oneOf.0.ringDuration.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.ringDuration","typeLabel":"integer\u003cint32> | null"},"callTimeout":{"oneOf":[{"type":"integer","description":"Maximum call duration (in minutes). The call is ended when this limit is reached.\r\n \r\nConstraints:\r\n- Min 1 minute.\r\n- Max 120 minutes.","format":"int32","uniqueKey":"outbound.oneOf.0.callTimeout.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Maximum call duration (in minutes). The call is ended when this limit is reached.\r\n \r\nConstraints:\r\n- Min 1 minute.\r\n- Max 120 minutes.","format":"int32","uniqueKey":"outbound.oneOf.0.callTimeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound.oneOf.0.callTimeout","typeLabel":"integer\u003cint32> | null"}},"additionalProperties":false,"uniqueKey":"outbound.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"outbound.oneOf.1","typeLabel":"null"}],"uniqueKey":"outbound","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}],"inbound":{"totalAgents":123,"transcriptOptions":123,"callWebhookUrl":"\u003cstring>","phoneNumberId":"\u003cstring>","recordingOptions":true,"isStopRecordingAfterTransferCall":true,"waitingSentence":"\u003cstring>","isSayQueueDetails":true,"callTimeout":123},"outbound":{"totalAgents":123,"transcriptOptions":123,"budgetTotal":123,"timeZone":"\u003cstring>","callingHours":[{"day":123,"start":"\u003cstring>","end":"\u003cstring>"}],"callWebhookUrl":"\u003cstring>","leadWebhookUrl":"\u003cstring>","phoneNumberId":"\u003cstring>","recordingTrack":123,"isStopRecordingAfterTransferCall":true,"maximumCallAttempts":123,"minimumRetryIntervalHours":123,"voiceMail":"\u003cstring>","bypassIVRInstruction":"\u003cstring>","ringDuration":123,"callTimeout":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"9fb0ada6-0a9b-4995-832c-708a436b0c30":{"description":"The ID of the newly created Pearl.","content":{"text/plain":{"schema":{"type":"string","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"},"application/json":{"schema":{"type":"string","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"},"text/json":{"schema":{"type":"string","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"}},"exampleType":"generated"},"5d5af040-0f8d-4479-a5af-fd0d59c08b8c":{"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":"Create Pearl - NLPearl Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-16T11:26:41.540Z","originalFileLocation":"api-reference/v2/pearlFlow/add-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=\"Creates a new Simple Pearl, driven by an opening sentence and a flow script. Provide exactly one channel: inbound settings OR outbound settings. The Pearl is created already published: the configuration you send becomes its live (published) version. To create a Pearl (node graph), use Create Voice Pearl or Create 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=\"Create Pearl - NLPearl Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a new Simple Pearl, driven by an opening sentence and a flow script. Provide exactly one channel: inbound settings OR outbound settings. The Pearl is created already published: the configuration you send becomes its live (published) version. To create a Pearl (node graph), use Create Voice Pearl or Create 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/add-pearl-flow\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://nlpearl.mintlify.app/_mintlify/api/og/v2?division=Pearl+Configurations\u0026amp;title=Create+Pearl\u0026amp;description=Creates+a+new+Simple+Pearl%2C+driven+by+an+opening+sentence+and+a+flow+script.+Provide+exactly+one+channel%3A+inbound+settings+OR+outbound+settings.+The+Pearl+is+cr\u0026amp;theme=1048d0b5fa94cf7eed8d4a4d\u0026amp;signature=6550c81aa56a35dcd24554dcdeafa84b9995833fe5ff42aee9c931ae44bff58b\">\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=\"Create Pearl - NLPearl Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a new Simple Pearl, driven by an opening sentence and a flow script. Provide exactly one channel: inbound settings OR outbound settings. The Pearl is created already published: the configuration you send becomes its live (published) version. To create a Pearl (node graph), use Create Voice Pearl or Create Text Pearl instead.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://nlpearl.mintlify.app/_mintlify/api/og/v2?division=Pearl+Configurations\u0026amp;title=Create+Pearl\u0026amp;description=Creates+a+new+Simple+Pearl%2C+driven+by+an+opening+sentence+and+a+flow+script.+Provide+exactly+one+channel%3A+inbound+settings+OR+outbound+settings.+The+Pearl+is+cr\u0026amp;theme=1048d0b5fa94cf7eed8d4a4d\u0026amp;signature=6550c81aa56a35dcd24554dcdeafa84b9995833fe5ff42aee9c931ae44bff58b\">\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/add-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/add-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/add-pearl-flow#webpage\",\"url\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/add-pearl-flow\",\"name\":\"Create Pearl\",\"description\":\"Creates a new Simple Pearl, driven by an opening sentence and a flow script. Provide exactly one channel: inbound settings OR outbound settings. The Pearl is created already published: the configuration you send becomes its live (published) version. To create a Pearl (node graph), use Create Voice Pearl or Create Text Pearl instead.\",\"dateModified\":\"2026-07-16T11:26:41.540Z\",\"isPartOf\":{\"@id\":\"https://developers.nlpearl.ai#website\"},\"breadcrumb\":{\"@id\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/add-pearl-flow#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/add-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\":\"Create Pearl\",\"item\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/add-pearl-flow\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/add-pearl-flow#apireference\",\"headline\":\"Create Pearl\",\"name\":\"Create Pearl\",\"description\":\"Creates a new Simple Pearl, driven by an opening sentence and a flow script. Provide exactly one channel: inbound settings OR outbound settings. The Pearl is created already published: the configuration you send becomes its live (published) version. To create a Pearl (node graph), use Create Voice Pearl or Create Text Pearl instead.\",\"url\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/add-pearl-flow\",\"mainEntityOfPage\":{\"@id\":\"https://developers.nlpearl.ai/api-reference/v2/pearlFlow/add-pearl-flow#webpage\"},\"dateModified\":\"2026-07-16T11:26:41.540Z\",\"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","description":"Retrieves the Settings for the specified Pearl. The shape of the response depends on the Pearl: the Pearl section is a Simple Pearl configuration (opening sentence + flow script) or a Pearl configuration (node graph), and the Inbound/Outbound section carries the voice or the text settings according to the AgentType field (1 = Voice, 2 = Text). AgentType also tells you which update endpoint to use: Update Pearl (Simple Pearl), Update Voice Pearl, or Update Text Pearl.","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","description":"Creates a new voice Pearl: the conversation is driven by a graph of nodes connected by transitions. The graph must contain one OpeningSentence node (or a PreCallAPI leading to one or two OpeningSentence nodes), one EndCall node, and every node must be reachable. Provide exactly one channel: inbound settings OR outbound settings. At least one agent voice is required; to retrieve available voices, use the Get Voices endpoint (GET /v2/Account/Voices). 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-voice-pearl"},{"openapi":"post /v2/Pearl/Text","title":"Create Text Pearl","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","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":"Create Pearl - NLPearl Documentation","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["10e4515597","c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["BannerMarkdown-DIeMibn4.js","dist-DJnKvr0g.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-B2v50t8t.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-Buji1S4J.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","AssistantPageLink-BHrrjR1K.js"]}