Use the required intake email channel and its configured AI Assistant to run canonical conversation resolution, then update the resolved contact, organization, and conversation and append the customer message. In Simple mode this can append to the contact’s existing non-closed conversation; in Advanced mode each API request starts a new intake thread. If the request omits a subject and the resolved conversation has none, CXP sets Message from {contact.email}. A supplied assignee is applied only when the resolved conversation is unassigned and always suppresses a customer-facing Assistant turn for this request. A directly assigned agent may separately receive the normal internal Agent Assist lifecycle when configured. Without a supplied assignee, CXP starts an asynchronous turn only when the resolved conversation is AI-handled and unassigned. Requested custom fields use a separate post-intake update. If that update fails, CXP still returns success with a CustomFieldsUpdateFailed warning and starts any eligible Assistant turn. Success confirms durable intake only. It does not wait for notification delivery, an AI Assistant turn, Agent Assist lifecycle work, or outbound email delivery. The JSON request body must not exceed 1 MiB. Every accepted POST executes; repeating a request can create or append another message.
POST
/
api
/
v1
/
cxm
/
tenants
/
{tenantId}
/
conversations
curl --request POST \ --url https://platform.crescendo.ai/api/v1/cxm/tenants/{tenantId}/conversations \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "intakeChannel": "support@example.com", "contact": { "email": "jane@example.com" }, "message": { "text": "Please contact me about your product." }}'
Tenant API key with cxm:conversations.write, cxm:conversations.*, cxm:write, or cxm:* scope. Keep it in a trusted backend; do not expose it in browser code.
Active tenant service-email address with a configured AI Assistant. CXP uses it for canonical email-style conversation resolution and, when eligible, asynchronous Assistant processing. It is intake context, not a Conversation property.
The customer message was appended to an existing non-closed conversation in Simple mode. An existing assignee was preserved. If no assignee existed, a supplied assignee could be applied; otherwise an AI-handled, unassigned conversation was made eligible for an asynchronous Assistant turn. The optional warnings array reports a failed best-effort custom-field update without changing this successful intake result.
Present only when intake succeeded but a best-effort post-intake operation failed. An eligible Assistant turn is still initiated.
Maximum array length: 10
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Crescendo CXP Documentation","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/cxp/qzLutHilHYGEIkc7/logo/light.png?fit=max\u0026auto=format\u0026n=qzLutHilHYGEIkc7\u0026q=85\u0026s=b5082c07055ff79d37dc82b1c6db1a7e","dark":"https://mintcdn.com/cxp/qzLutHilHYGEIkc7/logo/dark.png?fit=max\u0026auto=format\u0026n=qzLutHilHYGEIkc7\u0026q=85\u0026s=b5a325a6618a3c137af6e72c952ed497"},"favicon":"https://mintcdn.com/cxp/QVAK8SdzA-wez6wK/favicon.png?fit=max\u0026auto=format\u0026n=QVAK8SdzA-wez6wK\u0026q=85\u0026s=cc300816020149618ec0fbcf1e11742a","navbar":{"links":[{"href":"mailto:support@crescendo.ai","label":"Support"}]},"footer":{"socials":{"linkedin":"https://linkedin.com/company/crescendocx"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Crescendo","icon":"house","href":"https://www.crescendo.ai"},{"anchor":"Support","icon":"life-ring","href":"mailto:support@crescendo.ai"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cxp","hasAudioNarration":false,"actualSubdomain":"cxp","customDomains":["docs.cxp.crescendo.ai"],"gitSource":{"type":"github","owner":"enegelai","repo":"cxm","deployBranch":"main","contentDirectory":"public/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"9c99f9ea-2d11-445a-a110-ead9904cd66e","liveDeploymentHistoryId":"6ae58d1bb1d87e83eee5f742","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae58d1bb1d87e83eee5f742"},"entitlements":{"AI_CHAT":{"status":"ENABLED"}},"buildId":"6ae58d1bb1d87e83eee5f742","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"CXP","count":32},{"language":"default","tag":"Capabilities","count":21},{"language":"default","tag":"Admin guide","count":10},{"language":"default","tag":"Conversations","count":10},{"language":"default","tag":"Developers","count":10},{"language":"default","tag":"Agent guide","count":7},{"language":"default","tag":"Work with external contacts","count":6},{"language":"default","tag":"Scenarios","count":6},{"language":"default","tag":"API reference","count":6},{"language":"default","tag":"Analyze support","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/conversations/create-or-continue-a-conversation","slug":"/api-reference/conversations/create-or-continue-a-conversation","pageMetadata":{"title":"Create or continue a conversation","description":"Use the required intake email channel and its configured AI Assistant to run canonical conversation resolution, then update the resolved contact, organization, and conversation and append the customer message. In Simple mode this can append to the contact's existing non-closed conversation; in Advanced mode each API request starts a new intake thread. If the request omits a subject and the resolved conversation has none, CXP sets `Message from {contact.email}`. A supplied assignee is applied only when the resolved conversation is unassigned and always suppresses a customer-facing Assistant turn for this request. A directly assigned agent may separately receive the normal internal Agent Assist lifecycle when configured. Without a supplied assignee, CXP starts an asynchronous turn only when the resolved conversation is AI-handled and unassigned. Requested custom fields use a separate post-intake update. If that update fails, CXP still returns success with a `CustomFieldsUpdateFailed` warning and starts any eligible Assistant turn. Success confirms durable intake only. It does not wait for notification delivery, an AI Assistant turn, Agent Assist lifecycle work, or outbound email delivery. The JSON request body must not exceed 1 MiB. Every accepted POST executes; repeating a request can create or append another message.","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /api/v1/cxm/tenants/{tenantId}/conversations","href":"/api-reference/conversations/create-or-continue-a-conversation","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Use the required intake email channel and its configured AI Assistant to run canonical conversation resolution, then update the resolved contact, organization, and conversation and append the customer message. In Simple mode this can append to the contact’s existing non-closed conversation; in Advanced mode each API request starts a new intake thread. If the request omits a subject and the resolved conversation has none, CXP sets \", _jsx(_components.code, {\n children: \"Message from {contact.email}\"\n }), \". A supplied assignee is applied only when the resolved conversation is unassigned and always suppresses a customer-facing Assistant turn for this request. A directly assigned agent may separately receive the normal internal Agent Assist lifecycle when configured. Without a supplied assignee, CXP starts an asynchronous turn only when the resolved conversation is AI-handled and unassigned. Requested custom fields use a separate post-intake update. If that update fails, CXP still returns success with a \", _jsx(_components.code, {\n children: \"CustomFieldsUpdateFailed\"\n }), \" warning and starts any eligible Assistant turn. Success confirms durable intake only. It does not wait for notification delivery, an AI Assistant turn, Agent Assist lifecycle work, or outbound email delivery. The JSON request body must not exceed 1 MiB. Every accepted POST executes; repeating a request can create or append another message.\"]\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":{"title":"Create or continue a conversation","description":"Use the required intake email channel and its configured AI Assistant to run canonical conversation resolution, then update the resolved contact, organization, and conversation and append the customer message. In Simple mode this can append to the contact's existing non-closed conversation; in Advanced mode each API request starts a new intake thread. If the request omits a subject and the resolved conversation has none, CXP sets `Message from {contact.email}`. A supplied assignee is applied only when the resolved conversation is unassigned and always suppresses a customer-facing Assistant turn for this request. A directly assigned agent may separately receive the normal internal Agent Assist lifecycle when configured. Without a supplied assignee, CXP starts an asynchronous turn only when the resolved conversation is AI-handled and unassigned. Requested custom fields use a separate post-intake update. If that update fails, CXP still returns success with a `CustomFieldsUpdateFailed` warning and starts any eligible Assistant turn. Success confirms durable intake only. It does not wait for notification delivery, an AI Assistant turn, Agent Assist lifecycle work, or outbound email delivery. The JSON request body must not exceed 1 MiB. Every accepted POST executes; repeating a request can create or append another message.","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /api/v1/cxm/tenants/{tenantId}/conversations","href":"/api-reference/conversations/create-or-continue-a-conversation","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/cxp/20b71f9a0fdf1b75/cxm-docs-password-gate.js"],"openApiReferenceData":{"operation":{"operationId":"createConversation","summary":"Create or continue a conversation","description":"Use the required intake email channel and its configured AI Assistant to run canonical conversation resolution, then update the resolved contact, organization, and conversation and append the customer message. In Simple mode this can append to the contact's existing non-closed conversation; in Advanced mode each API request starts a new intake thread. If the request omits a subject and the resolved conversation has none, CXP sets `Message from {contact.email}`. A supplied assignee is applied only when the resolved conversation is unassigned and always suppresses a customer-facing Assistant turn for this request. A directly assigned agent may separately receive the normal internal Agent Assist lifecycle when configured. Without a supplied assignee, CXP starts an asynchronous turn only when the resolved conversation is AI-handled and unassigned. Requested custom fields use a separate post-intake update. If that update fails, CXP still returns success with a `CustomFieldsUpdateFailed` warning and starts any eligible Assistant turn. Success confirms durable intake only. It does not wait for notification delivery, an AI Assistant turn, Agent Assist lifecycle work, or outbound email delivery. The JSON request body must not exceed 1 MiB. Every accepted POST executes; repeating a request can create or append another message.","tags":["Conversations"],"security":["d30d4719-7bfd-4730-8551-0fa911c350e9"],"parameters":["3eab077a-73f7-49ae-b83a-6d601f29e51c"],"requestBody":"eb5f82ee-5585-4dd9-a721-f3303f1afacd","responses":{"200":"7e686486-7d27-421e-9606-3027d73decdb","201":"2acc2c6f-56e8-4982-a2a5-5c772adda4fe","400":"64dc9802-8e7c-4d6d-885c-29fe7ce22a25","401":"abdf9afc-0c1f-4d72-ace6-94c3a3bccc3c","403":"fa948001-c189-445f-a9ba-897dc13be7e5","404":"dd4bd07b-e016-4e42-b5f9-bc8ce007a06a","409":"f5d53fd4-5a9e-49e3-bc52-6988f594edbd","413":"d53c17df-cdc3-4641-8e82-2ef888a1fc9a","429":"3ddd55e1-2e3d-4c2d-9c1d-33a5fa637229","502":"bb90ba7d-224c-4295-8c42-65531eea5db3","503":"2c199b2a-cc61-4944-ab26-ad110c82b0a3","504":"3a9d2a50-c3ef-4a3c-8bef-42be260c4ecf"},"method":"post","type":"path","servers":["ba980e9b-bdcb-4a15-bd0f-58d93b5ec19c"],"path":"/api/v1/cxm/tenants/{tenantId}/conversations","baseUrlOptions":["https://platform.crescendo.ai"],"title":"Create or continue a conversation","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"3eab077a-73f7-49ae-b83a-6d601f29e51c":{"name":"tenantId","in":"path","required":true,"description":"Tenant authorized for the API key and every referenced resource.","schema":{"type":"string","minLength":1,"maxLength":255,"isRequired":true,"description":"Tenant authorized for the API key and every referenced resource.","uniqueKey":"","typeLabel":"string"},"example":"tenant_demo"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["intakeChannel","contact","message"],"properties":{"intakeChannel":{"type":"string","format":"email","maxLength":320,"description":"Active tenant service-email address with a configured AI Assistant. CXP uses it for canonical email-style conversation resolution and, when eligible, asynchronous Assistant processing. It is intake context, not a Conversation property.","isRequired":true,"uniqueKey":"intakeChannel","typeLabel":"string\u003cemail>"},"contact":{"type":"object","additionalProperties":false,"required":["email"],"properties":{"email":{"type":"string","format":"email","maxLength":320,"isRequired":true,"uniqueKey":"contact.email","typeLabel":"string\u003cemail>"},"contactId":{"type":"string","minLength":1,"maxLength":255,"not":{"const":"anonymous"},"description":"Optional tenant contact lookup hint. It must be compatible with the supplied identity and cannot be the reserved `anonymous` Contact ID.","uniqueKey":"contact.contactId","typeLabel":"string"},"phone":{"type":"string","minLength":1,"maxLength":64,"description":"Phone number accepted by CXP phone normalization and stored in E.164 form.","uniqueKey":"contact.phone","typeLabel":"string"},"firstName":{"type":"string","minLength":1,"maxLength":255,"description":"Standard Contact first-name property. When both firstName and lastName are supplied without name, CXP derives the display name as `{firstName} {lastName}`.","uniqueKey":"contact.firstName","typeLabel":"string"},"lastName":{"type":"string","minLength":1,"maxLength":255,"description":"Standard Contact last-name property. When both firstName and lastName are supplied without name, CXP derives the display name as `{firstName} {lastName}`.","uniqueKey":"contact.lastName","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Contact display name. An explicit value takes precedence over display-name derivation from firstName and lastName.","uniqueKey":"contact.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"contact","typeLabel":"object"},"message":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":100000,"isRequired":true,"uniqueKey":"message.text","typeLabel":"string"}},"isRequired":true,"uniqueKey":"message","typeLabel":"object"},"organization":{"oneOf":[{"type":"object","required":["organizationId"],"properties":{"organizationId":{"type":"string","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"organization.oneOf.0.organizationId","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Exact normalized name used to resolve or create the organization.","uniqueKey":"organization.oneOf.0.name","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"organization.oneOf.0","typeLabel":"object"},{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Exact normalized name used to resolve or create the organization.","isRequired":true,"uniqueKey":"organization.oneOf.1.name","typeLabel":"string"},"organizationId":{"type":"string","minLength":1,"maxLength":255,"uniqueKey":"organization.oneOf.1.organizationId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"organization.oneOf.1","typeLabel":"object"}],"uniqueKey":"organization","typeLabel":"object"},"conversation":{"type":"object","additionalProperties":false,"properties":{"subject":{"type":"string","minLength":1,"maxLength":255,"description":"Conversation subject. If omitted and the resolved conversation has no subject, CXP sets `Message from {contact.email}`. An existing subject is preserved.","uniqueKey":"conversation.subject","typeLabel":"string"},"assignee":{"oneOf":[{"type":"object","description":"Optional agent or team. CXP applies it only if the resolved conversation has no assignee. Supplying it always prevents a customer-facing Assistant turn for this request, including when an existing assignee is preserved. A directly assigned agent may separately receive the normal internal Agent Assist lifecycle when configured.","required":["type","id"],"properties":{"type":{"type":"string","enum":["agent","team"],"isRequired":true,"uniqueKey":"conversation.assignee.oneOf.0.type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"conversation.assignee.oneOf.0.id","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Exact normalized active agent or team name.","uniqueKey":"conversation.assignee.oneOf.0.name","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"conversation.assignee.oneOf.0","typeLabel":"object"},{"type":"object","description":"Optional agent or team. CXP applies it only if the resolved conversation has no assignee. Supplying it always prevents a customer-facing Assistant turn for this request, including when an existing assignee is preserved. A directly assigned agent may separately receive the normal internal Agent Assist lifecycle when configured.","required":["type","name"],"properties":{"type":{"type":"string","enum":["agent","team"],"isRequired":true,"uniqueKey":"conversation.assignee.oneOf.1.type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Exact normalized active agent or team name.","isRequired":true,"uniqueKey":"conversation.assignee.oneOf.1.name","typeLabel":"string"},"id":{"type":"string","minLength":1,"maxLength":255,"uniqueKey":"conversation.assignee.oneOf.1.id","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"conversation.assignee.oneOf.1","typeLabel":"object"}],"uniqueKey":"conversation.assignee","typeLabel":"object"},"priority":{"type":"string","enum":["low","normal","high","urgent"],"uniqueKey":"conversation.priority","typeLabel":"enum\u003cstring>"},"tags":{"type":"array","maxItems":50,"items":{"type":"string","minLength":1,"maxLength":100,"uniqueKey":"conversation.tags.items.[INDEX]","typeLabel":"string"},"uniqueKey":"conversation.tags","typeLabel":"string[]"},"customFields":{"type":"object","maxProperties":100,"additionalProperties":true,"description":"Configured tenant conversation custom field values.","uniqueKey":"conversation.customFields","typeLabel":"object"}},"uniqueKey":"conversation","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"minimal":{"title":"minimal","value":{"intakeChannel":"support@example.com","contact":{"email":"jane@example.com"},"message":{"text":"Please contact me about your product."}}},"websiteForm":{"title":"websiteForm","value":{"intakeChannel":"support@example.com","contact":{"email":"jane@example.com","phone":"+447700900123","firstName":"Jane","lastName":"Doe"},"organization":{"name":"Example Ltd"},"conversation":{"subject":"Question about BCone","customFields":{"product":"BCone"}},"message":{"text":"Can BCone be worn in the shower?"}}},"assignedTeam":{"title":"assignedTeam","value":{"intakeChannel":"support@example.com","contact":{"email":"jane@example.com"},"conversation":{"subject":"Account access","assignee":{"type":"team","name":"Technical Support"}},"message":{"text":"Please help with account access."}}},"explicitAssignee":{"title":"explicitAssignee","value":{"intakeChannel":"support@example.com","contact":{"email":"jane@example.com"},"conversation":{"assignee":{"type":"agent","id":"user_demo_7f1c"}},"message":{"text":"Please help with this question."}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"7e686486-7d27-421e-9606-3027d73decdb":{"description":"The customer message was appended to an existing non-closed conversation in Simple mode. An existing assignee was preserved. If no assignee existed, a supplied assignee could be applied; otherwise an AI-handled, unassigned conversation was made eligible for an asynchronous Assistant turn. The optional warnings array reports a failed best-effort custom-field update without changing this successful intake result.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["conversation","contact"],"properties":{"conversation":{"type":"object","additionalProperties":false,"required":["conversationId","result","subject","status","priority","channel","serviceEmail","assignee","organizationId"],"properties":{"conversationId":{"type":"string","isRequired":true,"uniqueKey":"conversation.conversationId","typeLabel":"string"},"result":{"type":"string","enum":["created","appended"],"isRequired":true,"uniqueKey":"conversation.result","typeLabel":"enum\u003cstring>"},"subject":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"conversation.subject.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"conversation.subject.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"conversation.subject","typeLabel":"string | null"},"status":{"type":"string","isRequired":true,"uniqueKey":"conversation.status","typeLabel":"string"},"priority":{"type":"string","enum":["low","normal","high","urgent"],"isRequired":true,"uniqueKey":"conversation.priority","typeLabel":"enum\u003cstring>"},"channel":{"type":"string","const":"email","isRequired":true,"uniqueKey":"conversation.channel","typeLabel":"string"},"serviceEmail":{"oneOf":[{"type":"string","format":"email","isRequired":true,"uniqueKey":"conversation.serviceEmail.oneOf.0","typeLabel":"string\u003cemail>"},{"type":"null","format":"email","isRequired":true,"uniqueKey":"conversation.serviceEmail.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"conversation.serviceEmail","typeLabel":"string\u003cemail> | null"},"assignee":{"oneOf":[{"type":"object","required":["type","id"],"properties":{"type":{"type":"string","enum":["agent","team"],"isRequired":true,"uniqueKey":"conversation.assignee.oneOf.0.type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","isRequired":true,"uniqueKey":"conversation.assignee.oneOf.0.id","typeLabel":"string"},"name":{"type":"string","uniqueKey":"conversation.assignee.oneOf.0.name","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"conversation.assignee.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"conversation.assignee.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"conversation.assignee","typeLabel":"object | null"},"organizationId":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"conversation.organizationId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"conversation.organizationId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"conversation.organizationId","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"conversation","typeLabel":"object"},"contact":{"type":"object","additionalProperties":false,"required":["contactId","result","email","name","phone","organizationId"],"properties":{"contactId":{"type":"string","isRequired":true,"uniqueKey":"contact.contactId","typeLabel":"string"},"result":{"type":"string","enum":["created","updated","matched"],"isRequired":true,"uniqueKey":"contact.result","typeLabel":"enum\u003cstring>"},"email":{"type":"string","format":"email","isRequired":true,"uniqueKey":"contact.email","typeLabel":"string\u003cemail>"},"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"contact.name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"contact.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.name","typeLabel":"string | null"},"phone":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"contact.phone.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"contact.phone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.phone","typeLabel":"string | null"},"organizationId":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"contact.organizationId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"contact.organizationId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.organizationId","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"contact","typeLabel":"object"},"warnings":{"type":"array","maxItems":10,"description":"Present only when intake succeeded but a best-effort post-intake operation failed. An eligible Assistant turn is still initiated.","items":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["CustomFieldsUpdateFailed"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"warnings.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"warnings","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"humanOwnedAppend":{"title":"humanOwnedAppend","value":{"conversation":{"conversationId":"CX87","result":"appended","subject":"Account access","status":"open","priority":"high","channel":"email","serviceEmail":null,"assignee":{"type":"team","id":"team_support","name":"Technical Support"},"organizationId":null},"contact":{"contactId":"ct_demo_123","result":"matched","email":"jane@example.com","name":"Jane Doe","phone":null,"organizationId":null}}},"assistantHandledAppend":{"title":"assistantHandledAppend","value":{"conversation":{"conversationId":"CX88","result":"appended","subject":"Product question","status":"open","priority":"normal","channel":"email","serviceEmail":"support@example.com","assignee":null,"organizationId":"org_demo_123"},"contact":{"contactId":"ct_demo_123","result":"updated","email":"jane@example.com","name":"Jane Doe","phone":"+15125550100","organizationId":"org_demo_123"}}}},"exampleType":"examples"}},"exampleType":"examples"},"2acc2c6f-56e8-4982-a2a5-5c772adda4fe":{"description":"A new conversation and its first customer message were committed. The optional warnings array reports a failed best-effort custom-field update without changing this successful intake result.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["conversation","contact"],"properties":{"conversation":{"type":"object","additionalProperties":false,"required":["conversationId","result","subject","status","priority","channel","serviceEmail","assignee","organizationId"],"properties":{"conversationId":{"type":"string","isRequired":true,"uniqueKey":"conversation.conversationId","typeLabel":"string"},"result":{"type":"string","enum":["created","appended"],"isRequired":true,"uniqueKey":"conversation.result","typeLabel":"enum\u003cstring>"},"subject":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"conversation.subject.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"conversation.subject.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"conversation.subject","typeLabel":"string | null"},"status":{"type":"string","isRequired":true,"uniqueKey":"conversation.status","typeLabel":"string"},"priority":{"type":"string","enum":["low","normal","high","urgent"],"isRequired":true,"uniqueKey":"conversation.priority","typeLabel":"enum\u003cstring>"},"channel":{"type":"string","const":"email","isRequired":true,"uniqueKey":"conversation.channel","typeLabel":"string"},"serviceEmail":{"oneOf":[{"type":"string","format":"email","isRequired":true,"uniqueKey":"conversation.serviceEmail.oneOf.0","typeLabel":"string\u003cemail>"},{"type":"null","format":"email","isRequired":true,"uniqueKey":"conversation.serviceEmail.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"conversation.serviceEmail","typeLabel":"string\u003cemail> | null"},"assignee":{"oneOf":[{"type":"object","required":["type","id"],"properties":{"type":{"type":"string","enum":["agent","team"],"isRequired":true,"uniqueKey":"conversation.assignee.oneOf.0.type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","isRequired":true,"uniqueKey":"conversation.assignee.oneOf.0.id","typeLabel":"string"},"name":{"type":"string","uniqueKey":"conversation.assignee.oneOf.0.name","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"conversation.assignee.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"conversation.assignee.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"conversation.assignee","typeLabel":"object | null"},"organizationId":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"conversation.organizationId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"conversation.organizationId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"conversation.organizationId","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"conversation","typeLabel":"object"},"contact":{"type":"object","additionalProperties":false,"required":["contactId","result","email","name","phone","organizationId"],"properties":{"contactId":{"type":"string","isRequired":true,"uniqueKey":"contact.contactId","typeLabel":"string"},"result":{"type":"string","enum":["created","updated","matched"],"isRequired":true,"uniqueKey":"contact.result","typeLabel":"enum\u003cstring>"},"email":{"type":"string","format":"email","isRequired":true,"uniqueKey":"contact.email","typeLabel":"string\u003cemail>"},"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"contact.name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"contact.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.name","typeLabel":"string | null"},"phone":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"contact.phone.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"contact.phone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.phone","typeLabel":"string | null"},"organizationId":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"contact.organizationId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"contact.organizationId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.organizationId","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"contact","typeLabel":"object"},"warnings":{"type":"array","maxItems":10,"description":"Present only when intake succeeded but a best-effort post-intake operation failed. An eligible Assistant turn is still initiated.","items":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["CustomFieldsUpdateFailed"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"warnings.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"warnings","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"created":{"title":"created","value":{"conversation":{"conversationId":"CX123","result":"created","subject":"Question about BCone","status":"open","priority":"normal","channel":"email","serviceEmail":"support@example.com","assignee":null,"organizationId":"org_demo_123"},"contact":{"contactId":"ct_demo_123","result":"created","email":"jane@example.com","name":"Jane Doe","phone":"+447700900123","organizationId":"org_demo_123"}}},"customFieldsWarning":{"title":"customFieldsWarning","value":{"conversation":{"conversationId":"CX124","result":"created","subject":"Question about BCone","status":"open","priority":"normal","channel":"email","serviceEmail":"support@example.com","assignee":null,"organizationId":null},"contact":{"contactId":"ct_demo_124","result":"created","email":"jane@example.com","name":"Jane Doe","phone":null,"organizationId":null},"warnings":[{"code":"CustomFieldsUpdateFailed","message":"Conversation intake succeeded, but its custom fields could not be updated."}]}}},"exampleType":"examples"}},"exampleType":"examples"},"64dc9802-8e7c-4d6d-885c-29fe7ce22a25":{"description":"The body, a field, an unknown property, or a custom field is invalid.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["BadRequest","InvalidCustomField","Unauthenticated","PermissionDenied","EmailChannelNotFound","AssigneeNotFound","NotFound","EmailChannelDisabled","ContactIdentityConflict","OrganizationAmbiguous","AssigneeAmbiguous","Conflict","PayloadTooLarge","RateLimitExceeded","BadGateway","ServiceUnavailable","GatewayTimeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"BadRequest","message":"message.text is required"},"examples":{"Example":{"title":"Example","value":{"code":"BadRequest","message":"message.text is required"}}},"exampleType":"examples"}},"exampleType":"examples"},"abdf9afc-0c1f-4d72-ace6-94c3a3bccc3c":{"description":"The API key is missing, invalid, or expired.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["BadRequest","InvalidCustomField","Unauthenticated","PermissionDenied","EmailChannelNotFound","AssigneeNotFound","NotFound","EmailChannelDisabled","ContactIdentityConflict","OrganizationAmbiguous","AssigneeAmbiguous","Conflict","PayloadTooLarge","RateLimitExceeded","BadGateway","ServiceUnavailable","GatewayTimeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"Unauthenticated","message":"Authentication required"},"examples":{"Example":{"title":"Example","value":{"code":"Unauthenticated","message":"Authentication required"}}},"exampleType":"examples"}},"exampleType":"examples"},"fa948001-c189-445f-a9ba-897dc13be7e5":{"description":"The API key does not authorize the tenant or required scope.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["BadRequest","InvalidCustomField","Unauthenticated","PermissionDenied","EmailChannelNotFound","AssigneeNotFound","NotFound","EmailChannelDisabled","ContactIdentityConflict","OrganizationAmbiguous","AssigneeAmbiguous","Conflict","PayloadTooLarge","RateLimitExceeded","BadGateway","ServiceUnavailable","GatewayTimeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"PermissionDenied","message":"API key does not allow this operation"},"examples":{"Example":{"title":"Example","value":{"code":"PermissionDenied","message":"API key does not allow this operation"}}},"exampleType":"examples"}},"exampleType":"examples"},"dd4bd07b-e016-4e42-b5f9-bc8ce007a06a":{"description":"The intake email channel or requested assignee was not found in the authorized tenant.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["BadRequest","InvalidCustomField","Unauthenticated","PermissionDenied","EmailChannelNotFound","AssigneeNotFound","NotFound","EmailChannelDisabled","ContactIdentityConflict","OrganizationAmbiguous","AssigneeAmbiguous","Conflict","PayloadTooLarge","RateLimitExceeded","BadGateway","ServiceUnavailable","GatewayTimeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"EmailChannelNotFound","message":"Email channel was not found"},"examples":{"Example":{"title":"Example","value":{"code":"EmailChannelNotFound","message":"Email channel was not found"}}},"exampleType":"examples"}},"exampleType":"examples"},"f5d53fd4-5a9e-49e3-bc52-6988f594edbd":{"description":"A referenced resource is inactive or identity/name resolution is ambiguous or conflicting.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["BadRequest","InvalidCustomField","Unauthenticated","PermissionDenied","EmailChannelNotFound","AssigneeNotFound","NotFound","EmailChannelDisabled","ContactIdentityConflict","OrganizationAmbiguous","AssigneeAmbiguous","Conflict","PayloadTooLarge","RateLimitExceeded","BadGateway","ServiceUnavailable","GatewayTimeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"ContactIdentityConflict","message":"Supplied contact identities resolve to different contacts"},"examples":{"Example":{"title":"Example","value":{"code":"ContactIdentityConflict","message":"Supplied contact identities resolve to different contacts"}}},"exampleType":"examples"}},"exampleType":"examples"},"d53c17df-cdc3-4641-8e82-2ef888a1fc9a":{"description":"The request exceeds the 1 MiB body limit or a field-specific limit.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["BadRequest","InvalidCustomField","Unauthenticated","PermissionDenied","EmailChannelNotFound","AssigneeNotFound","NotFound","EmailChannelDisabled","ContactIdentityConflict","OrganizationAmbiguous","AssigneeAmbiguous","Conflict","PayloadTooLarge","RateLimitExceeded","BadGateway","ServiceUnavailable","GatewayTimeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"PayloadTooLarge","message":"CXM API request body must not exceed 1048576 bytes"},"examples":{"Example":{"title":"Example","value":{"code":"PayloadTooLarge","message":"CXM API request body must not exceed 1048576 bytes"}}},"exampleType":"examples"}},"exampleType":"examples"},"3ddd55e1-2e3d-4c2d-9c1d-33a5fa637229":{"description":"The tenant/API-key/route limit was exceeded.","headers":{"Retry-After":{"description":"Seconds to wait before another request.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["BadRequest","InvalidCustomField","Unauthenticated","PermissionDenied","EmailChannelNotFound","AssigneeNotFound","NotFound","EmailChannelDisabled","ContactIdentityConflict","OrganizationAmbiguous","AssigneeAmbiguous","Conflict","PayloadTooLarge","RateLimitExceeded","BadGateway","ServiceUnavailable","GatewayTimeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"RateLimitExceeded","message":"CXM API rate limit exceeded"},"examples":{"Example":{"title":"Example","value":{"code":"RateLimitExceeded","message":"CXM API rate limit exceeded"}}},"exampleType":"examples"}},"exampleType":"examples"},"bb90ba7d-224c-4295-8c42-65531eea5db3":{"description":"The gateway could not complete downstream transport. The durable mutation outcome may be unknown.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["BadRequest","InvalidCustomField","Unauthenticated","PermissionDenied","EmailChannelNotFound","AssigneeNotFound","NotFound","EmailChannelDisabled","ContactIdentityConflict","OrganizationAmbiguous","AssigneeAmbiguous","Conflict","PayloadTooLarge","RateLimitExceeded","BadGateway","ServiceUnavailable","GatewayTimeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"BadGateway","message":"CXM API downstream request failed"},"examples":{"Example":{"title":"Example","value":{"code":"BadGateway","message":"CXM API downstream request failed"}}},"exampleType":"examples"}},"exampleType":"examples"},"2c199b2a-cc61-4944-ab26-ad110c82b0a3":{"description":"A required service or durable/configuration dependency is unavailable.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["BadRequest","InvalidCustomField","Unauthenticated","PermissionDenied","EmailChannelNotFound","AssigneeNotFound","NotFound","EmailChannelDisabled","ContactIdentityConflict","OrganizationAmbiguous","AssigneeAmbiguous","Conflict","PayloadTooLarge","RateLimitExceeded","BadGateway","ServiceUnavailable","GatewayTimeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"ServiceUnavailable","message":"CXM API is temporarily unavailable"},"examples":{"Example":{"title":"Example","value":{"code":"ServiceUnavailable","message":"CXM API is temporarily unavailable"}}},"exampleType":"examples"}},"exampleType":"examples"},"3a9d2a50-c3ef-4a3c-8bef-42be260c4ecf":{"description":"The gateway timed out. The durable mutation outcome may be unknown, and retrying can duplicate effects.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["BadRequest","InvalidCustomField","Unauthenticated","PermissionDenied","EmailChannelNotFound","AssigneeNotFound","NotFound","EmailChannelDisabled","ContactIdentityConflict","OrganizationAmbiguous","AssigneeAmbiguous","Conflict","PayloadTooLarge","RateLimitExceeded","BadGateway","ServiceUnavailable","GatewayTimeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"GatewayTimeout","message":"CXM API downstream request timed out"},"examples":{"Example":{"title":"Example","value":{"code":"GatewayTimeout","message":"CXM API downstream request timed out"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"d30d4719-7bfd-4730-8551-0fa911c350e9":{"BearerApiKey":{"type":"http","scheme":"bearer","description":"Tenant API key with `cxm:conversations.write`, `cxm:conversations.*`, `cxm:write`, or `cxm:*` scope. Keep it in a trusted backend; do not expose it in browser code.","scopes":[]}}},"servers":{"ba980e9b-bdcb-4a15-bd0f-58d93b5ec19c":{"url":"https://platform.crescendo.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Tenant API key with `cxm:conversations.write`, `cxm:conversations.*`, `cxm:write`, or `cxm:*` scope. Keep it in a trusted backend; do not expose it in browser code.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Tenant API key with `cxm:conversations.write`, `cxm:conversations.*`, `cxm:write`, or `cxm:*` scope. Keep it in a trusted backend; do not expose it in browser code.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerApiKey","name":"Authorization"}],"title":"BearerApiKey"}]},"originalFileLocation":"api-reference/openapi-v1.json"},"subdomain":"cxp","siteName":"Crescendo CXP Documentation","title":"Create or continue a conversation - Crescendo CXP Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-07T23:28:15.347Z","originalFileLocation":"api-reference/conversations/create-or-continue-a-conversation.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=\"Use the required intake email channel and its configured AI Assistant to run canonical conversation resolution, then update the resolved contact, organization, and conversation and append the customer message. In Simple mode this can append to the contact\u0026#x27;s existing non-closed conversation; in Advanced mode each API request starts a new intake thread. If the request omits a subject and the resolved conversation has none, CXP sets Message from {contact.email}. A supplied assignee is applied only when the resolved conversation is unassigned and always suppresses a customer-facing Assistant turn for this request. A directly assigned agent may separately receive the normal internal Agent Assist lifecycle when configured. Without a supplied assignee, CXP starts an asynchronous turn only when the resolved conversation is AI-handled and unassigned. Requested custom fields use a separate post-intake update. If that update fails, CXP still returns success with a CustomFieldsUpdateFailed warning and starts any eligible Assistant turn. Success confirms durable intake only. It does not wait for notification delivery, an AI Assistant turn, Agent Assist lifecycle work, or outbound email delivery. The JSON request body must not exceed 1 MiB. Every accepted POST executes; repeating a request can create or append another message.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Crescendo CXP 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/cxp/e3U7VDbNZMZP9uh7/_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/cxp/e3U7VDbNZMZP9uh7/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cxp/e3U7VDbNZMZP9uh7/_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/cxp/e3U7VDbNZMZP9uh7/_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/cxp/e3U7VDbNZMZP9uh7/_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/cxp/e3U7VDbNZMZP9uh7/_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/cxp/e3U7VDbNZMZP9uh7/_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/cxp/e3U7VDbNZMZP9uh7/_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/cxp/e3U7VDbNZMZP9uh7/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create or continue a conversation - Crescendo CXP Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Use the required intake email channel and its configured AI Assistant to run canonical conversation resolution, then update the resolved contact, organization, and conversation and append the customer message. In Simple mode this can append to the contact\u0026#x27;s existing non-closed conversation; in Advanced mode each API request starts a new intake thread. If the request omits a subject and the resolved conversation has none, CXP sets Message from {contact.email}. A supplied assignee is applied only when the resolved conversation is unassigned and always suppresses a customer-facing Assistant turn for this request. A directly assigned agent may separately receive the normal internal Agent Assist lifecycle when configured. Without a supplied assignee, CXP starts an asynchronous turn only when the resolved conversation is AI-handled and unassigned. Requested custom fields use a separate post-intake update. If that update fails, CXP still returns success with a CustomFieldsUpdateFailed warning and starts any eligible Assistant turn. Success confirms durable intake only. It does not wait for notification delivery, an AI Assistant turn, Agent Assist lifecycle work, or outbound email delivery. The JSON request body must not exceed 1 MiB. Every accepted POST executes; repeating a request can create or append another message.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Crescendo CXP Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.cxp.crescendo.ai/api-reference/conversations/create-or-continue-a-conversation\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cxp.mintlify.app/_mintlify/api/og/v2?division=Conversations\u0026amp;title=Create+or+continue+a+conversation\u0026amp;description=Use+the+required+intake+email+channel+and+its+configured+AI+Assistant+to+run+canonical+conversation+resolution%2C+then+update+the+resolved+contact%2C+organization%2C+\u0026amp;theme=db8a1c43495fbccdeaa0a9b9\u0026amp;signature=d633a5192e89217b1ae73b030f0bc6fc85597f6082ccb1e32f364e9fd3361239\">\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 or continue a conversation - Crescendo CXP Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Use the required intake email channel and its configured AI Assistant to run canonical conversation resolution, then update the resolved contact, organization, and conversation and append the customer message. In Simple mode this can append to the contact\u0026#x27;s existing non-closed conversation; in Advanced mode each API request starts a new intake thread. If the request omits a subject and the resolved conversation has none, CXP sets Message from {contact.email}. A supplied assignee is applied only when the resolved conversation is unassigned and always suppresses a customer-facing Assistant turn for this request. A directly assigned agent may separately receive the normal internal Agent Assist lifecycle when configured. Without a supplied assignee, CXP starts an asynchronous turn only when the resolved conversation is AI-handled and unassigned. Requested custom fields use a separate post-intake update. If that update fails, CXP still returns success with a CustomFieldsUpdateFailed warning and starts any eligible Assistant turn. Success confirms durable intake only. It does not wait for notification delivery, an AI Assistant turn, Agent Assist lifecycle work, or outbound email delivery. The JSON request body must not exceed 1 MiB. Every accepted POST executes; repeating a request can create or append another message.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cxp.mintlify.app/_mintlify/api/og/v2?division=Conversations\u0026amp;title=Create+or+continue+a+conversation\u0026amp;description=Use+the+required+intake+email+channel+and+its+configured+AI+Assistant+to+run+canonical+conversation+resolution%2C+then+update+the+resolved+contact%2C+organization%2C+\u0026amp;theme=db8a1c43495fbccdeaa0a9b9\u0026amp;signature=d633a5192e89217b1ae73b030f0bc6fc85597f6082ccb1e32f364e9fd3361239\">\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/cxp/e3U7VDbNZMZP9uh7/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Crescendo CXP Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.cxp.crescendo.ai/api-reference/conversations/create-or-continue-a-conversation\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/conversations/create-or-continue-a-conversation.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.cxp.crescendo.ai/#organization\",\"name\":\"Crescendo CXP Documentation\",\"url\":\"https://docs.cxp.crescendo.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cxp/qzLutHilHYGEIkc7/logo/light.png?fit=max\u0026auto=format\u0026n=qzLutHilHYGEIkc7\u0026q=85\u0026s=b5082c07055ff79d37dc82b1c6db1a7e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.cxp.crescendo.ai#website\",\"name\":\"Crescendo CXP Documentation\",\"url\":\"https://docs.cxp.crescendo.ai\",\"publisher\":{\"@id\":\"https://docs.cxp.crescendo.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.cxp.crescendo.ai/api-reference/conversations/create-or-continue-a-conversation#webpage\",\"url\":\"https://docs.cxp.crescendo.ai/api-reference/conversations/create-or-continue-a-conversation\",\"name\":\"Create or continue a conversation\",\"description\":\"Use the required intake email channel and its configured AI Assistant to run canonical conversation resolution, then update the resolved contact, organization, and conversation and append the customer message. In Simple mode this can append to the contact's existing non-closed conversation; in Advanced mode each API request starts a new intake thread. If the request omits a subject and the resolved conversation has none, CXP sets Message from {contact.email}. A supplied assignee is applied only when the resolved conversation is unassigned and always suppresses a customer-facing Assistant turn for this request. A directly assigned agent may separately receive the normal internal Agent Assist lifecycle when configured. Without a supplied assignee, CXP starts an asynchronous turn only when the resolved conversation is AI-handled and unassigned. Requested custom fields use a separate post-intake update. If that update fails, CXP still returns success with a CustomFieldsUpdateFailed warning and starts any eligible Assistant turn. Success confirms durable intake only. It does not wait for notification delivery, an AI Assistant turn, Agent Assist lifecycle work, or outbound email delivery. The JSON request body must not exceed 1 MiB. Every accepted POST executes; repeating a request can create or append another message.\",\"dateModified\":\"2026-09-07T23:28:15.347Z\",\"isPartOf\":{\"@id\":\"https://docs.cxp.crescendo.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.cxp.crescendo.ai/api-reference/conversations/create-or-continue-a-conversation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.cxp.crescendo.ai/api-reference/conversations/create-or-continue-a-conversation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Crescendo CXP Documentation\",\"item\":\"https://docs.cxp.crescendo.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create or continue a conversation\",\"item\":\"https://docs.cxp.crescendo.ai/api-reference/conversations/create-or-continue-a-conversation\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.cxp.crescendo.ai/api-reference/conversations/create-or-continue-a-conversation#apireference\",\"headline\":\"Create or continue a conversation\",\"name\":\"Create or continue a conversation\",\"description\":\"Use the required intake email channel and its configured AI Assistant to run canonical conversation resolution, then update the resolved contact, organization, and conversation and append the customer message. In Simple mode this can append to the contact's existing non-closed conversation; in Advanced mode each API request starts a new intake thread. If the request omits a subject and the resolved conversation has none, CXP sets Message from {contact.email}. A supplied assignee is applied only when the resolved conversation is unassigned and always suppresses a customer-facing Assistant turn for this request. A directly assigned agent may separately receive the normal internal Agent Assist lifecycle when configured. Without a supplied assignee, CXP starts an asynchronous turn only when the resolved conversation is AI-handled and unassigned. Requested custom fields use a separate post-intake update. If that update fails, CXP still returns success with a CustomFieldsUpdateFailed warning and starts any eligible Assistant turn. Success confirms durable intake only. It does not wait for notification delivery, an AI Assistant turn, Agent Assist lifecycle work, or outbound email delivery. The JSON request body must not exceed 1 MiB. Every accepted POST executes; repeating a request can create or append another message.\",\"url\":\"https://docs.cxp.crescendo.ai/api-reference/conversations/create-or-continue-a-conversation\",\"mainEntityOfPage\":{\"@id\":\"https://docs.cxp.crescendo.ai/api-reference/conversations/create-or-continue-a-conversation#webpage\"},\"dateModified\":\"2026-09-07T23:28:15.347Z\",\"publisher\":{\"@id\":\"https://docs.cxp.crescendo.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.cxp.crescendo.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Crescendo CXP Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Crescendo CXP Documentation","nav":{"global":{"anchors":[{"anchor":"Crescendo","icon":"house","href":"https://www.crescendo.ai"},{"anchor":"Support","icon":"life-ring","href":"mailto:support@crescendo.ai"}]},"tabs":[{"tab":"CXP","pages":[{"title":"CXP","href":""}]},{"tab":"Capabilities","pages":[{"title":"Capabilities","href":"/capabilities"}]},{"tab":"Developers","groups":[{"group":"API guides","pages":[{"title":"CXP API overview","href":"/developers/api-overview"},{"title":"Create a conversation","href":"/developers/create-conversation"},{"title":"Manage conversations with the API","href":"/developers/conversation-operations"},{"title":"Authenticated chat widgets","description":"Require customer sign-in before web chat, restore a login, and manage chat across tabs.","href":"/developers/authenticated-widget"}]},{"group":"API reference","pages":[{"group":"Conversations","pages":[{"title":"Create or continue a conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /api/v1/cxm/tenants/{tenantId}/conversations","href":"/api-reference/conversations/create-or-continue-a-conversation"},{"title":"Get a conversation","description":"Read the newest projected Conversation document, excluding only root messages. This is the same read used by get_conversation. Projection can lag recent writes. Missing projections return 200 with document null; this does not prove the durable Conversation is absent. Requires cxm:conversations.read or an existing broader read/wildcard scope. A write-only scope does not grant read permission. GET accepts no request body. Unknown, repeated, array, and empty query parameters are rejected. Responses are marked no-store.","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /api/v1/cxm/tenants/{tenantId}/conversations/{conversationId}","href":"/api-reference/conversations/get-a-conversation"},{"title":"Update a conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /api/v1/cxm/tenants/{tenantId}/conversations/{conversationId}","href":"/api-reference/conversations/update-a-conversation"},{"title":"Assign a conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json put /api/v1/cxm/tenants/{tenantId}/conversations/{conversationId}/assignment","href":"/api-reference/conversations/assign-a-conversation"},{"title":"Add a conversation internal note","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /api/v1/cxm/tenants/{tenantId}/conversations/{conversationId}/internal-notes","href":"/api-reference/conversations/add-a-conversation-internal-note"},{"title":"Get conversation history","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /api/v1/cxm/tenants/{tenantId}/conversations/{conversationId}/history","href":"/api-reference/conversations/get-conversation-history"}]}]}]},{"tab":"What's new","pages":[{"title":"What's new","href":"/whats-new"}]}]},"basePath":"","title":"Create or continue a conversation - Crescendo CXP Documentation","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}