Atualiza os campos enviados de um contato existente. Campos ausentes não são alterados.
additional_attributes:{ "slug": valor }, com valor primitivo (string, number, boolean ou null). Faz merge com os valores atuais. Slug inexistente, ou de custom field com contexto diferente de CONTACT, é ignorado em silêncio, sem erro.
custom_fields:{ "slug": valor } para campos select (option_id), multi_select (lista de option_id) e text. A validação é atômica: se algum valor for inválido, nenhum custom field é gravado. Slug inexistente retorna 404 e opção inválida retorna 422. Para number e date, use additional_attributes.
custom_fields e additional_attributes juntos: envie em requisições separadas. No mesmo payload, a gravação de additional_attributes sobrescreve a de custom_fields.
Telefone:phone_number e country_code podem ser trocados. O número novo é normalizado e, se for inválido, retorna 400.
Identificador de outro contato: gravar email, linkedin_identifier ou telefone que já pertence a OUTRO contato da empresa retorna 409 CONTACT_IDENTIFIER_TAKEN (ex.: "O e-mail já pertence a outro contato."), com o contato dono do dado em conflicts. Valor igual ao que o próprio contato já tem não é conflito.
Último identificador: remover o último entre telefone, e-mail e LinkedIn retorna 400 "O contato precisa de pelo menos um identificador.".
Número de telefone sem formatação, apenas dígitos (DDD + número, sem o DDI). Exemplo: 11999998888. O número é normalizado; se for inválido, retorna 400. Telefone que já pertence a outro contato da empresa retorna 409.
Campos personalizados do contato. Formato: { "slug_do_campo": valor }. Os slugs devem corresponder a custom fields cadastrados com contexto CONTACT. Slugs inválidos ou inexistentes são ignorados silenciosamente. Os valores são mesclados com os atributos existentes (merge), não substitui todo o objeto. Os valores devem ser primitivos (string, number, boolean ou null). Exemplo: { "cpf": "12345678900", "valor_total": 2500.00 }
Atualiza valores de campos customizados do contato, por slug. Cobre select ({ "slug": "<option_id>" }), multi_select ({ "slug": ["", ""] }) e text ({ "slug": "valor" }). Para number/date, use additional_attributes, que preserva o tipo nativo. Validação atômica: se algum valor é inválido, nenhum custom field é gravado. Slug sem custom field correspondente retorna 404; opção inválida retorna 422; valor não textual em campo text retorna 400. Não envie junto com additional_attributes no mesmo payload: a gravação de additional_attributes sobrescreve a de custom_fields. Os option_id saem de GET /v1/custom-fields/{id}/options.
Valores dos campos personalizados do contato, por slug. Gravado via additional_attributes, o valor vem no envelope { id, value, type, updatedAt }. Gravado via custom_fields (PUT), vem cru: o option_id (select), a lista de option_id (multi_select) ou o texto (text).
Estado "Não abordar": objeto enquanto bloqueado, null depois do desbloqueio, ausente em quem nunca foi marcado. Bloqueia todo envio automático, em todos os canais.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Nuvia API","colors":{"primary":"#586DBF","light":"#4387FE","dark":"#354896"},"logo":{"light":"https://mintcdn.com/nuvia-f82521d6/z6aKZLErJ5b0Dl9Q/logo/logo-preta.svg?fit=max\u0026auto=format\u0026n=z6aKZLErJ5b0Dl9Q\u0026q=85\u0026s=eefb6da6faca9e8bd666072f4ee5169f","dark":"https://mintcdn.com/nuvia-f82521d6/z6aKZLErJ5b0Dl9Q/logo/logo-clara.svg?fit=max\u0026auto=format\u0026n=z6aKZLErJ5b0Dl9Q\u0026q=85\u0026s=7c087f78e5767159c915b9a46c8accb5"},"favicon":"https://mintcdn.com/nuvia-f82521d6/aBBnoERVXx4eoWfY/logo/icon-dark.svg?fit=max\u0026auto=format\u0026n=aBBnoERVXx4eoWfY\u0026q=85\u0026s=484b403e664b5bb9e54b155ffe59a516","api":{"openapi":"https://api.nuvia.ai/api/docs/user-json"},"navbar":{"links":[{"href":"mailto:support@nuvia.ai","label":"Suporte"}],"primary":{"type":"button","label":"Acessar Plataforma","href":"https://app.nuvia.ai"}},"footer":{"socials":{"linkedin":"https://linkedin.com/company/nuvia-ai"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"pt-BR","default":true,"href":""},{"language":"en","href":"en"},{"language":"es","href":"es"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"nuvia-f82521d6","hasAudioNarration":false,"actualSubdomain":"nuvia-f82521d6","customDomains":["developers.nuvia.ai"],"gitSource":{"type":"github","owner":"nuvia-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"1460c06d-c8ae-4716-a568-caaa330a0d30","liveDeploymentHistoryId":"6ada8119e4e9a99a23eb2b9e","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ada8119e4e9a99a23eb2b9e"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ada8119e4e9a99a23eb2b9e","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"pt-BR","tag":"Referência da API","count":131},{"language":"en","tag":"API Reference","count":131},{"language":"es","tag":"Referencia de la API","count":131},{"language":"pt-BR","tag":"Tabelas e Listas","count":31},{"language":"en","tag":"Tabelas e Listas","count":31},{"language":"es","tag":"Tabelas e Listas","count":31},{"language":"pt-BR","tag":"Campanhas","count":19},{"language":"en","tag":"Campanhas","count":19},{"language":"es","tag":"Campanhas","count":19},{"language":"pt-BR","tag":"Contatos","count":17},{"language":"en","tag":"Contatos","count":17},{"language":"es","tag":"Contatos","count":17},{"language":"pt-BR","tag":"Conversas","count":13},{"language":"en","tag":"Conversas","count":13},{"language":"es","tag":"Conversas","count":13},{"language":"pt-BR","tag":"Início","count":12},{"language":"en","tag":"Home","count":12},{"language":"es","tag":"Inicio","count":12},{"language":"pt-BR","tag":"Agentes","count":10},{"language":"pt-BR","tag":"HubSpot","count":10},{"language":"en","tag":"Agentes","count":10},{"language":"en","tag":"HubSpot","count":10},{"language":"es","tag":"Agentes","count":10},{"language":"es","tag":"HubSpot","count":10},{"language":"pt-BR","tag":"Mensagens","count":8},{"language":"en","tag":"Mensagens","count":8},{"language":"es","tag":"Mensagens","count":8},{"language":"pt-BR","tag":"Guias","count":7},{"language":"en","tag":"Guides","count":7},{"language":"es","tag":"Guías","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/contacts/atualizar-contato","slug":"/api-reference/contacts/atualizar-contato","pageMetadata":{"title":"Atualizar contato","description":"Atualiza os campos enviados de um contato existente. Campos ausentes não são alterados.\n\n- **additional_attributes:** `{ \"slug\": valor }`, com valor primitivo (string, number, boolean ou null). Faz merge com os valores atuais. Slug inexistente, ou de custom field com contexto diferente de CONTACT, é ignorado em silêncio, sem erro.\n- **custom_fields:** `{ \"slug\": valor }` para campos `select` (option_id), `multi_select` (lista de option_id) e `text`. A validação é atômica: se algum valor for inválido, nenhum custom field é gravado. Slug inexistente retorna 404 e opção inválida retorna 422. Para `number` e `date`, use `additional_attributes`.\n- **custom_fields e additional_attributes juntos:** envie em requisições separadas. No mesmo payload, a gravação de `additional_attributes` sobrescreve a de `custom_fields`.\n- **Telefone:** `phone_number` e `country_code` podem ser trocados. O número novo é normalizado e, se for inválido, retorna 400.\n- **Identificador de outro contato:** gravar `email`, `linkedin_identifier` ou telefone que já pertence a OUTRO contato da empresa retorna 409 `CONTACT_IDENTIFIER_TAKEN` (ex.: `\"O e-mail já pertence a outro contato.\"`), com o contato dono do dado em `conflicts`. Valor igual ao que o próprio contato já tem não é conflito.\n- **Último identificador:** remover o último entre telefone, e-mail e LinkedIn retorna 400 `\"O contato precisa de pelo menos um identificador.\"`.","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/contacts/{id}","href":"/api-reference/contacts/atualizar-contato","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Atualiza os campos enviados de um contato existente. Campos ausentes não são alterados.\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"additional_attributes:\"\n }), \" \", _jsx(_components.code, {\n children: \"{ \\\"slug\\\": valor }\"\n }), \", com valor primitivo (string, number, boolean ou null). Faz merge com os valores atuais. Slug inexistente, ou de custom field com contexto diferente de CONTACT, é ignorado em silêncio, sem erro.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"custom_fields:\"\n }), \" \", _jsx(_components.code, {\n children: \"{ \\\"slug\\\": valor }\"\n }), \" para campos \", _jsx(_components.code, {\n children: \"select\"\n }), \" (option_id), \", _jsx(_components.code, {\n children: \"multi_select\"\n }), \" (lista de option_id) e \", _jsx(_components.code, {\n children: \"text\"\n }), \". A validação é atômica: se algum valor for inválido, nenhum custom field é gravado. Slug inexistente retorna 404 e opção inválida retorna 422. Para \", _jsx(_components.code, {\n children: \"number\"\n }), \" e \", _jsx(_components.code, {\n children: \"date\"\n }), \", use \", _jsx(_components.code, {\n children: \"additional_attributes\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"custom_fields e additional_attributes juntos:\"\n }), \" envie em requisições separadas. No mesmo payload, a gravação de \", _jsx(_components.code, {\n children: \"additional_attributes\"\n }), \" sobrescreve a de \", _jsx(_components.code, {\n children: \"custom_fields\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Telefone:\"\n }), \" \", _jsx(_components.code, {\n children: \"phone_number\"\n }), \" e \", _jsx(_components.code, {\n children: \"country_code\"\n }), \" podem ser trocados. O número novo é normalizado e, se for inválido, retorna 400.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Identificador de outro contato:\"\n }), \" gravar \", _jsx(_components.code, {\n children: \"email\"\n }), \", \", _jsx(_components.code, {\n children: \"linkedin_identifier\"\n }), \" ou telefone que já pertence a OUTRO contato da empresa retorna 409 \", _jsx(_components.code, {\n children: \"CONTACT_IDENTIFIER_TAKEN\"\n }), \" (ex.: \", _jsx(_components.code, {\n children: \"\\\"O e-mail já pertence a outro contato.\\\"\"\n }), \"), com o contato dono do dado em \", _jsx(_components.code, {\n children: \"conflicts\"\n }), \". Valor igual ao que o próprio contato já tem não é conflito.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Último identificador:\"\n }), \" remover o último entre telefone, e-mail e LinkedIn retorna 400 \", _jsx(_components.code, {\n children: \"\\\"O contato precisa de pelo menos um identificador.\\\"\"\n }), \".\"]\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=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":"Atualizar contato","description":"Atualiza os campos enviados de um contato existente. Campos ausentes não são alterados.\n\n- **additional_attributes:** `{ \"slug\": valor }`, com valor primitivo (string, number, boolean ou null). Faz merge com os valores atuais. Slug inexistente, ou de custom field com contexto diferente de CONTACT, é ignorado em silêncio, sem erro.\n- **custom_fields:** `{ \"slug\": valor }` para campos `select` (option_id), `multi_select` (lista de option_id) e `text`. A validação é atômica: se algum valor for inválido, nenhum custom field é gravado. Slug inexistente retorna 404 e opção inválida retorna 422. Para `number` e `date`, use `additional_attributes`.\n- **custom_fields e additional_attributes juntos:** envie em requisições separadas. No mesmo payload, a gravação de `additional_attributes` sobrescreve a de `custom_fields`.\n- **Telefone:** `phone_number` e `country_code` podem ser trocados. O número novo é normalizado e, se for inválido, retorna 400.\n- **Identificador de outro contato:** gravar `email`, `linkedin_identifier` ou telefone que já pertence a OUTRO contato da empresa retorna 409 `CONTACT_IDENTIFIER_TAKEN` (ex.: `\"O e-mail já pertence a outro contato.\"`), com o contato dono do dado em `conflicts`. Valor igual ao que o próprio contato já tem não é conflito.\n- **Último identificador:** remover o último entre telefone, e-mail e LinkedIn retorna 400 `\"O contato precisa de pelo menos um identificador.\"`.","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/contacts/{id}","href":"/api-reference/contacts/atualizar-contato","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Atualiza os campos enviados de um contato existente. Campos ausentes não são alterados.\n\n- **additional_attributes:** `{ \"slug\": valor }`, com valor primitivo (string, number, boolean ou null). Faz merge com os valores atuais. Slug inexistente, ou de custom field com contexto diferente de CONTACT, é ignorado em silêncio, sem erro.\n- **custom_fields:** `{ \"slug\": valor }` para campos `select` (option_id), `multi_select` (lista de option_id) e `text`. A validação é atômica: se algum valor for inválido, nenhum custom field é gravado. Slug inexistente retorna 404 e opção inválida retorna 422. Para `number` e `date`, use `additional_attributes`.\n- **custom_fields e additional_attributes juntos:** envie em requisições separadas. No mesmo payload, a gravação de `additional_attributes` sobrescreve a de `custom_fields`.\n- **Telefone:** `phone_number` e `country_code` podem ser trocados. O número novo é normalizado e, se for inválido, retorna 400.\n- **Identificador de outro contato:** gravar `email`, `linkedin_identifier` ou telefone que já pertence a OUTRO contato da empresa retorna 409 `CONTACT_IDENTIFIER_TAKEN` (ex.: `\"O e-mail já pertence a outro contato.\"`), com o contato dono do dado em `conflicts`. Valor igual ao que o próprio contato já tem não é conflito.\n- **Último identificador:** remover o último entre telefone, e-mail e LinkedIn retorna 400 `\"O contato precisa de pelo menos um identificador.\"`.","operationId":"ContactController_updateContact","parameters":["5fa1783d-f4dc-4c75-a886-b4a68716b3b2","d9b46484-49f8-4ffc-80db-465b6689033e"],"requestBody":"bc6e65e8-50ee-41e0-8ddd-4bbf41996d9b","responses":{"200":"ff27f38e-f332-47b3-bcbb-8bfe6ea24fd8","400":"a4ec0192-4f4f-41b9-a6c0-858e513a5ebe","401":"0488904a-b165-48a4-b3ba-d4040afabfdd","403":"2a5d386c-d32e-436e-8ac3-6d0183b6d29a","404":"f1ba1535-b469-44bc-a592-4398f64c45f1","409":"32285bb8-ee0d-478f-a0cf-92fb757262e6","422":"c580f31f-ee23-49ec-be72-439fe65a78c7"},"security":["78ef894c-1fea-45b2-b39f-e78004154f37"],"summary":"Atualizar contato","tags":["contacts"],"method":"put","type":"path","servers":["83dd3b1d-310d-42ac-a882-a5f00428c891"],"path":"/v1/contacts/{id}","baseUrlOptions":["https://api.nuvia.ai"],"title":"Atualizar contato","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"5fa1783d-f4dc-4c75-a886-b4a68716b3b2":{"name":"x-company-id","in":"header","description":"Identificador da empresa-alvo. Obrigatório apenas para API Keys globais (type=global). Ignorado para API Keys de empresa e usuários humanos.","required":false,"schema":{"type":"string","isRequired":false,"description":"Identificador da empresa-alvo. Obrigatório apenas para API Keys globais (type=global). Ignorado para API Keys de empresa e usuários humanos.","uniqueKey":"","typeLabel":"string"}},"d9b46484-49f8-4ffc-80db-465b6689033e":{"name":"id","required":true,"in":"path","description":"ID do contato","schema":{"type":"string","isRequired":true,"description":"ID do contato","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Nome completo do contato. Campo opcional na atualização.","uniqueKey":"name","typeLabel":"string"},"country_code":{"type":"string","description":"Código DDI do país (1-3 dígitos). Exemplos: 55 (Brasil), 1 (EUA), 351 (Portugal).","uniqueKey":"country_code","typeLabel":"string"},"email":{"type":"string","description":"Endereço de e-mail do contato. E-mail que já pertence a outro contato da empresa retorna 409.","uniqueKey":"email","typeLabel":"string"},"linkedin_identifier":{"type":"string","description":"Identificador do perfil LinkedIn do contato (URL ou nome do perfil). LinkedIn que já pertence a outro contato da empresa retorna 409.","uniqueKey":"linkedin_identifier","typeLabel":"string"},"phone_number":{"type":"string","description":"Número de telefone sem formatação, apenas dígitos (DDD + número, sem o DDI). Exemplo: 11999998888. O número é normalizado; se for inválido, retorna 400. Telefone que já pertence a outro contato da empresa retorna 409.","uniqueKey":"phone_number","typeLabel":"string"},"job_title":{"type":"string","description":"Cargo do contato. Exemplo: Gerente de Vendas.","uniqueKey":"job_title","typeLabel":"string"},"seniority":{"type":"string","description":"Nível de senioridade do contato. Exemplo: Senior, Junior, Pleno.","uniqueKey":"seniority","typeLabel":"string"},"department":{"type":"string","description":"Departamento do contato. Exemplo: Comercial, TI, Marketing.","uniqueKey":"department","typeLabel":"string"},"country":{"type":"string","description":"País do contato. Exemplo: Brasil.","uniqueKey":"country","typeLabel":"string"},"region":{"type":"string","description":"Estado ou região do contato. Exemplo: São Paulo.","uniqueKey":"region","typeLabel":"string"},"city":{"type":"string","description":"Cidade do contato. Exemplo: São Paulo.","uniqueKey":"city","typeLabel":"string"},"experience":{"type":"string","description":"Experiência profissional do contato.","uniqueKey":"experience","typeLabel":"string"},"skills":{"type":"string","description":"Habilidades do contato.","uniqueKey":"skills","typeLabel":"string"},"additional_attributes":{"type":"object","description":"Campos personalizados do contato. Formato: { \"slug_do_campo\": valor }. Os slugs devem corresponder a custom fields cadastrados com contexto CONTACT. Slugs inválidos ou inexistentes são ignorados silenciosamente. Os valores são mesclados com os atributos existentes (merge), não substitui todo o objeto. Os valores devem ser primitivos (string, number, boolean ou null). Exemplo: { \"cpf\": \"12345678900\", \"valor_total\": 2500.00 }","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"additional_attributes.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"additional_attributes.additionalProperties.oneOf.1","typeLabel":"null"},{"type":"number","uniqueKey":"additional_attributes.additionalProperties.oneOf.2","typeLabel":"number"},{"type":"null","uniqueKey":"additional_attributes.additionalProperties.oneOf.3","typeLabel":"null"},{"type":"boolean","uniqueKey":"additional_attributes.additionalProperties.oneOf.4","typeLabel":"boolean"},{"type":"null","uniqueKey":"additional_attributes.additionalProperties.oneOf.5","typeLabel":"null"}],"uniqueKey":"additional_attributes.additionalProperties","typeLabel":"string · null · number · null · boolean · null"},"uniqueKey":"additional_attributes","typeLabel":"object"},"custom_fields":{"type":"object","description":"Atualiza valores de campos customizados do contato, por slug. Cobre `select` ({ \"slug\": \"\u003coption_id>\" }), `multi_select` ({ \"slug\": [\"\u003cid1>\", \"\u003cid2>\"] }) e `text` ({ \"slug\": \"valor\" }). Para `number`/`date`, use `additional_attributes`, que preserva o tipo nativo. Validação atômica: se algum valor é inválido, nenhum custom field é gravado. Slug sem custom field correspondente retorna 404; opção inválida retorna 422; valor não textual em campo `text` retorna 400. Não envie junto com `additional_attributes` no mesmo payload: a gravação de `additional_attributes` sobrescreve a de `custom_fields`. Os `option_id` saem de `GET /v1/custom-fields/{id}/options`.","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"custom_fields.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"custom_fields.additionalProperties.oneOf.1","typeLabel":"null"},{"type":"array","items":{"type":"string","uniqueKey":"custom_fields.additionalProperties.oneOf.2.items.[INDEX]","typeLabel":"string"},"uniqueKey":"custom_fields.additionalProperties.oneOf.2","typeLabel":"string[]"},{"type":"null","uniqueKey":"custom_fields.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"custom_fields.additionalProperties","typeLabel":"string · null · string[] · null"},"uniqueKey":"custom_fields","typeLabel":"object"},"business":{"oneOf":[{"description":"ID do Business ao qual o contato pertence (null para remover).","type":"string","uniqueKey":"business.oneOf.0","typeLabel":"string"},{"description":"ID do Business ao qual o contato pertence (null para remover).","type":"null","uniqueKey":"business.oneOf.1","typeLabel":"null"}],"uniqueKey":"business","typeLabel":"string | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"\u003cstring>","country_code":"\u003cstring>","email":"\u003cstring>","linkedin_identifier":"\u003cstring>","phone_number":"\u003cstring>","job_title":"\u003cstring>","seniority":"\u003cstring>","department":"\u003cstring>","country":"\u003cstring>","region":"\u003cstring>","city":"\u003cstring>","experience":"\u003cstring>","skills":"\u003cstring>","additional_attributes":{},"custom_fields":{},"business":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"ff27f38e-f332-47b3-bcbb-8bfe6ea24fd8":{"description":"Contato atualizado com sucesso","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Nome do contato","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"company":{"description":"Empresa do contato","isRequired":true,"uniqueKey":"company","typeLabel":"any"},"_id":{"description":"ID do contato","type":"string","uniqueKey":"_id","typeLabel":"string"},"id":{"description":"ID do contato (mesmo valor de `_id`)","type":"string","uniqueKey":"id","typeLabel":"string"},"country_code":{"description":"Código do país do número. Ausente junto com o telefone quando o contato só tem identificador do WhatsApp.","type":"string","uniqueKey":"country_code","typeLabel":"string"},"email":{"description":"E-mail do contato","type":"string","uniqueKey":"email","typeLabel":"string"},"last_activity_at":{"description":"Data da última atividade do contato","uniqueKey":"last_activity_at","typeLabel":"any"},"phone_number":{"description":"Número de telefone do contato. Ausente quando o contato só tem identificador do WhatsApp.","type":"string","uniqueKey":"phone_number","typeLabel":"string"},"linkedin_identifier":{"description":"Identificador do perfil do LinkedIn","type":"string","uniqueKey":"linkedin_identifier","typeLabel":"string"},"job_title":{"description":"Cargo do contato","type":"string","uniqueKey":"job_title","typeLabel":"string"},"seniority":{"description":"Nível de senioridade do contato","type":"string","uniqueKey":"seniority","typeLabel":"string"},"department":{"description":"Departamento do contato","type":"string","uniqueKey":"department","typeLabel":"string"},"country":{"description":"País do contato","type":"string","uniqueKey":"country","typeLabel":"string"},"region":{"description":"Estado ou região do contato","type":"string","uniqueKey":"region","typeLabel":"string"},"city":{"description":"Cidade do contato","type":"string","uniqueKey":"city","typeLabel":"string"},"experience":{"description":"Experiência profissional do contato","type":"string","uniqueKey":"experience","typeLabel":"string"},"skills":{"description":"Habilidades do contato","type":"string","uniqueKey":"skills","typeLabel":"string"},"additional_attributes":{"description":"Valores dos campos personalizados do contato, por slug. Gravado via `additional_attributes`, o valor vem no envelope `{ id, value, type, updatedAt }`. Gravado via `custom_fields` (PUT), vem cru: o option_id (select), a lista de option_id (multi_select) ou o texto (text).","type":"object","additionalProperties":{"oneOf":[{"type":"object","required":["id","value","type","updatedAt"],"properties":{"id":{"type":"string","description":"ID do custom field","isRequired":true,"uniqueKey":"additional_attributes.additionalProperties.oneOf.0.id","typeLabel":"string"},"value":{"oneOf":[{"type":"string","description":"Valor gravado","isRequired":true,"uniqueKey":"additional_attributes.additionalProperties.oneOf.0.value.oneOf.0","typeLabel":"string"},{"type":"null","description":"Valor gravado","isRequired":true,"uniqueKey":"additional_attributes.additionalProperties.oneOf.0.value.oneOf.1","typeLabel":"null"},{"type":"number","description":"Valor gravado","isRequired":true,"uniqueKey":"additional_attributes.additionalProperties.oneOf.0.value.oneOf.2","typeLabel":"number"},{"type":"null","description":"Valor gravado","isRequired":true,"uniqueKey":"additional_attributes.additionalProperties.oneOf.0.value.oneOf.3","typeLabel":"null"},{"type":"boolean","description":"Valor gravado","isRequired":true,"uniqueKey":"additional_attributes.additionalProperties.oneOf.0.value.oneOf.4","typeLabel":"boolean"},{"type":"null","description":"Valor gravado","isRequired":true,"uniqueKey":"additional_attributes.additionalProperties.oneOf.0.value.oneOf.5","typeLabel":"null"}],"isRequired":true,"uniqueKey":"additional_attributes.additionalProperties.oneOf.0.value","typeLabel":"string · null · number · null · boolean · null"},"type":{"type":"string","description":"Tipo do custom field (ex.: text, number, date)","isRequired":true,"uniqueKey":"additional_attributes.additionalProperties.oneOf.0.type","typeLabel":"string"},"updatedAt":{"description":"Data da última gravação do valor","isRequired":true,"uniqueKey":"additional_attributes.additionalProperties.oneOf.0.updatedAt","typeLabel":"any"}},"uniqueKey":"additional_attributes.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"null","required":["id","value","type","updatedAt"],"properties":{"id":{"type":"string","description":"ID do custom field"},"value":{"oneOf":[{"type":"string","description":"Valor gravado"},{"type":"null","description":"Valor gravado"},{"type":"number","description":"Valor gravado"},{"type":"null","description":"Valor gravado"},{"type":"boolean","description":"Valor gravado"},{"type":"null","description":"Valor gravado"}]},"type":{"type":"string","description":"Tipo do custom field (ex.: text, number, date)"},"updatedAt":{"description":"Data da última gravação do valor"}},"uniqueKey":"additional_attributes.additionalProperties.oneOf.1","typeLabel":"null"},{"type":"string","uniqueKey":"additional_attributes.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"null","uniqueKey":"additional_attributes.additionalProperties.oneOf.3","typeLabel":"null"},{"type":"array","items":{"type":"string","uniqueKey":"additional_attributes.additionalProperties.oneOf.4.items.[INDEX]","typeLabel":"string"},"uniqueKey":"additional_attributes.additionalProperties.oneOf.4","typeLabel":"string[]"},{"type":"null","uniqueKey":"additional_attributes.additionalProperties.oneOf.5","typeLabel":"null"}],"uniqueKey":"additional_attributes.additionalProperties","typeLabel":"object · null · string · null · string[] · null"},"uniqueKey":"additional_attributes","typeLabel":"object"},"business":{"oneOf":[{"description":"ID do Business ao qual o contato pertence","type":"string","uniqueKey":"business.oneOf.0","typeLabel":"string"},{"description":"ID do Business ao qual o contato pertence","type":"null","uniqueKey":"business.oneOf.1","typeLabel":"null"}],"uniqueKey":"business","typeLabel":"string | null"},"notes":{"description":"Notas registradas no contato","type":"array","items":{"type":"object","properties":{"_id":{"type":"string","description":"ID da nota","isRequired":true,"uniqueKey":"notes.items.[INDEX]._id","typeLabel":"string"},"content":{"type":"string","description":"Texto da nota","isRequired":true,"uniqueKey":"notes.items.[INDEX].content","typeLabel":"string"},"user":{"type":"string","description":"ID do usuário que registrou a nota","isRequired":true,"uniqueKey":"notes.items.[INDEX].user","typeLabel":"string"},"createdAt":{"description":"Data de criação da nota","uniqueKey":"notes.items.[INDEX].createdAt","typeLabel":"any"},"updatedAt":{"description":"Data de atualização da nota","uniqueKey":"notes.items.[INDEX].updatedAt","typeLabel":"any"}},"required":["_id","content","user"],"uniqueKey":"notes.items.[INDEX]","typeLabel":"object"},"uniqueKey":"notes","typeLabel":"object[]"},"marketing_opt_out":{"description":"Opt-out de marketing por meio de comunicação (`whatsapp`, `email`, `linkedin`). Ausente ou vazio quando o contato não pediu para sair de nenhum meio.","type":"object","additionalProperties":{"type":"object","properties":{"value":{"type":"boolean","description":"true quando o contato saiu do marketing nesse meio","isRequired":true,"uniqueKey":"marketing_opt_out.additionalProperties.value","typeLabel":"boolean"},"source":{"type":"string","description":"Origem do registro de opt-out","isRequired":true,"uniqueKey":"marketing_opt_out.additionalProperties.source","typeLabel":"string"},"at":{"description":"Data do registro","isRequired":true,"uniqueKey":"marketing_opt_out.additionalProperties.at","typeLabel":"any"}},"required":["value","source","at"],"uniqueKey":"marketing_opt_out.additionalProperties","typeLabel":"object"},"uniqueKey":"marketing_opt_out","typeLabel":"object"},"do_not_contact":{"oneOf":[{"description":"Estado \"Não abordar\": objeto enquanto bloqueado, null depois do desbloqueio, ausente em quem nunca foi marcado. Bloqueia todo envio automático, em todos os canais.","type":"object","properties":{"reason":{"type":"string","enum":["UNSUBSCRIBE_REQUESTED","ACTIVE_CUSTOMER","COMPETITOR","IN_NEGOTIATION","STRATEGIC_ACCOUNT","IMPROPER_CONTACT","OTHER"],"description":"Motivo da marcação. Qualquer motivo bloqueia igual.","isRequired":true,"uniqueKey":"do_not_contact.oneOf.0.reason","typeLabel":"enum\u003cstring>"},"marked_by":{"type":"object","properties":{"type":{"type":"string","enum":["USER","SYSTEM"],"description":"USER (SYSTEM reservado para captura automática)","isRequired":true,"uniqueKey":"do_not_contact.oneOf.0.marked_by.type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"ID de quem marcou","isRequired":true,"uniqueKey":"do_not_contact.oneOf.0.marked_by.id","typeLabel":"string"},"name":{"type":"string","description":"Nome de quem marcou","isRequired":true,"uniqueKey":"do_not_contact.oneOf.0.marked_by.name","typeLabel":"string"}},"required":["type","id","name"],"description":"Quem marcou","isRequired":true,"uniqueKey":"do_not_contact.oneOf.0.marked_by","typeLabel":"object"},"marked_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Quando foi marcado","isRequired":true,"uniqueKey":"do_not_contact.oneOf.0.marked_at","typeLabel":"string\u003cdate-time>"},"note":{"description":"Texto do motivo OTHER","type":"string","uniqueKey":"do_not_contact.oneOf.0.note","typeLabel":"string"},"source_conversation_id":{"description":"Conversa de onde a marcação foi feita","type":"string","uniqueKey":"do_not_contact.oneOf.0.source_conversation_id","typeLabel":"string"},"block_id":{"description":"Bloco compartilhado pelos registros da mesma pessoa","type":"string","uniqueKey":"do_not_contact.oneOf.0.block_id","typeLabel":"string"},"origin_contact_id":{"description":"Registro onde a marcação foi feita","type":"string","uniqueKey":"do_not_contact.oneOf.0.origin_contact_id","typeLabel":"string"}},"required":["reason","marked_by","marked_at"],"uniqueKey":"do_not_contact.oneOf.0","typeLabel":"object"},{"description":"Estado \"Não abordar\": objeto enquanto bloqueado, null depois do desbloqueio, ausente em quem nunca foi marcado. Bloqueia todo envio automático, em todos os canais.","type":"null","properties":{"reason":{"type":"string","enum":["UNSUBSCRIBE_REQUESTED","ACTIVE_CUSTOMER","COMPETITOR","IN_NEGOTIATION","STRATEGIC_ACCOUNT","IMPROPER_CONTACT","OTHER"],"description":"Motivo da marcação. Qualquer motivo bloqueia igual."},"note":{"description":"Texto do motivo OTHER","type":"string"},"marked_by":{"type":"object","properties":{"type":{"type":"string","enum":["USER","SYSTEM"],"description":"USER (SYSTEM reservado para captura automática)"},"id":{"type":"string","description":"ID de quem marcou"},"name":{"type":"string","description":"Nome de quem marcou"}},"required":["type","id","name"],"description":"Quem marcou"},"marked_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Quando foi marcado"},"source_conversation_id":{"description":"Conversa de onde a marcação foi feita","type":"string"},"block_id":{"description":"Bloco compartilhado pelos registros da mesma pessoa","type":"string"},"origin_contact_id":{"description":"Registro onde a marcação foi feita","type":"string"}},"required":["reason","marked_by","marked_at"],"uniqueKey":"do_not_contact.oneOf.1","typeLabel":"null"}],"uniqueKey":"do_not_contact","typeLabel":"object | null"},"whatsapp_user_id":{"description":"Identificador do contato no WhatsApp (BSUID), atribuído pela Meta. String opaca.","type":"string","uniqueKey":"whatsapp_user_id","typeLabel":"string"},"whatsapp_username":{"description":"@username do contato no WhatsApp, como a Meta envia","type":"string","uniqueKey":"whatsapp_username","typeLabel":"string"},"whatsapp_parent_user_id":{"description":"parent_user_id do contato no WhatsApp, como a Meta envia","type":"string","uniqueKey":"whatsapp_parent_user_id","typeLabel":"string"},"createdAt":{"description":"Data de criação do contato","uniqueKey":"createdAt","typeLabel":"any"},"updatedAt":{"description":"Data de atualização do contato","uniqueKey":"updatedAt","typeLabel":"any"}},"required":["name","company"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"\u003cstring>","company":"\u003cunknown>","_id":"\u003cstring>","id":"\u003cstring>","country_code":"\u003cstring>","email":"\u003cstring>","last_activity_at":"\u003cunknown>","phone_number":"\u003cstring>","linkedin_identifier":"\u003cstring>","job_title":"\u003cstring>","seniority":"\u003cstring>","department":"\u003cstring>","country":"\u003cstring>","region":"\u003cstring>","city":"\u003cstring>","experience":"\u003cstring>","skills":"\u003cstring>","additional_attributes":{},"business":"\u003cstring>","notes":[{"_id":"\u003cstring>","content":"\u003cstring>","user":"\u003cstring>","createdAt":"\u003cunknown>","updatedAt":"\u003cunknown>"}],"marketing_opt_out":{},"do_not_contact":{"reason":"UNSUBSCRIBE_REQUESTED","marked_by":{"type":"USER","id":"\u003cstring>","name":"\u003cstring>"},"marked_at":"2023-11-07T05:31:56Z","note":"\u003cstring>","source_conversation_id":"\u003cstring>","block_id":"\u003cstring>","origin_contact_id":"\u003cstring>"},"whatsapp_user_id":"\u003cstring>","whatsapp_username":"\u003cstring>","whatsapp_parent_user_id":"\u003cstring>","createdAt":"\u003cunknown>","updatedAt":"\u003cunknown>"}}},"exampleType":"generated"}},"exampleType":"generated"},"a4ec0192-4f4f-41b9-a6c0-858e513a5ebe":{"description":"Dados inválidos","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"0488904a-b165-48a4-b3ba-d4040afabfdd":{"description":"Token inválido ou expirado","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"2a5d386c-d32e-436e-8ac3-6d0183b6d29a":{"description":"Sem permissão para acessar este recurso","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"f1ba1535-b469-44bc-a592-4398f64c45f1":{"description":"Contato não encontrado, ou slug de `custom_fields` sem custom field correspondente","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"32285bb8-ee0d-478f-a0cf-92fb757262e6":{"description":"`CONTACT_IDENTIFIER_TAKEN`: o e-mail, LinkedIn ou telefone já pertence a outro contato da empresa. Também 409 (sem `code`) quando o identificador está travado por conversa aberta no canal.","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","description":"409","isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"code":{"type":"string","enum":["CONTACT_IDENTITY_CONFLICT","CONTACT_IDENTIFIER_TAKEN"],"description":"`CONTACT_IDENTITY_CONFLICT` na criação; `CONTACT_IDENTIFIER_TAKEN` na edição.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Mensagem para exibir ao usuário","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"conflicts":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","enum":["email","linkedin","phone"],"description":"Identificador que casou","isRequired":true,"uniqueKey":"conflicts.items.[INDEX].field","typeLabel":"enum\u003cstring>"},"contact":{"type":"object","properties":{"_id":{"description":"ID do contato","type":"string","isRequired":true,"uniqueKey":"conflicts.items.[INDEX].contact._id","typeLabel":"string"},"name":{"type":"string","description":"Nome do contato","uniqueKey":"conflicts.items.[INDEX].contact.name","typeLabel":"string"},"email":{"description":"E-mail do contato","type":"string","uniqueKey":"conflicts.items.[INDEX].contact.email","typeLabel":"string"},"phone_number":{"description":"Telefone do contato","type":"string","uniqueKey":"conflicts.items.[INDEX].contact.phone_number","typeLabel":"string"},"country_code":{"description":"DDI do telefone","type":"string","uniqueKey":"conflicts.items.[INDEX].contact.country_code","typeLabel":"string"},"linkedin_identifier":{"description":"Identificador do LinkedIn do contato","type":"string","uniqueKey":"conflicts.items.[INDEX].contact.linkedin_identifier","typeLabel":"string"}},"required":["_id"],"isRequired":true,"uniqueKey":"conflicts.items.[INDEX].contact","typeLabel":"object"}},"required":["field","contact"],"uniqueKey":"conflicts.items.[INDEX]","typeLabel":"object"},"description":"Contato que já tem cada identificador em conflito","isRequired":true,"uniqueKey":"conflicts","typeLabel":"object[]"}},"required":["statusCode","code","message","conflicts"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":123,"code":"CONTACT_IDENTITY_CONFLICT","message":"\u003cstring>","conflicts":[{"field":"email","contact":{"_id":"\u003cstring>","name":"\u003cstring>","email":"\u003cstring>","phone_number":"\u003cstring>","country_code":"\u003cstring>","linkedin_identifier":"\u003cstring>"}}]}}},"exampleType":"generated"}},"exampleType":"generated"},"c580f31f-ee23-49ec-be72-439fe65a78c7":{"description":"Valor de `custom_fields` fora das opções aceitas pelo campo (select/multi_select)","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"78ef894c-1fea-45b2-b39f-e78004154f37":{"JWT-auth":{"scheme":"bearer","bearerFormat":"JWT","type":"http","description":"Token JWT de autenticação","scopes":[],"schemeName":"JWT-auth"}}},"servers":{"83dd3b1d-310d-42ac-a882-a5f00428c891":{"url":"https://api.nuvia.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"scheme":"bearer","bearerFormat":"JWT","type":"http","description":"Token JWT de autenticação","scopes":[],"schemeName":"JWT-auth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Token JWT de autenticação","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"JWT-auth","name":"Authorization"}],"title":"JWT-auth"}]},"originalFileLocation":"https://api.nuvia.ai/api/docs/user-json"},"subdomain":"nuvia-f82521d6","siteName":"Nuvia API","title":"Atualizar contato - Nuvia API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"pt-BR":{"href":"/api-reference/contacts/atualizar-contato","matchLevel":0},"en":{"href":"/en","matchLevel":4},"es":{"href":"/es","matchLevel":4}}},"lastModified":"2026-10-22T21:34:26.454Z","originalFileLocation":"api-reference/contacts/atualizar-contato.mdx","locale":"pt-BR"},"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=\"Atualiza os campos enviados de um contato existente. Campos ausentes não são alterados. - additional_attributes: { \u0026quot;slug\u0026quot;: valor }, com valor primitivo (string, number, boolean ou null). Faz merge com os valores atuais. Slug inexistente, ou de custom field com contexto diferente de CONTACT, é ignorado em silêncio, sem erro. - custom_fields: { \u0026quot;slug\u0026quot;: valor } para campos select (option_id), multi_select (lista de option_id) e text. A validação é atômica: se algum valor for inválido, nenhum custom field é gravado. Slug inexistente retorna 404 e opção inválida retorna 422. Para number e date, use additional_attributes. - custom_fields e additional_attributes juntos: envie em requisições separadas. No mesmo payload, a gravação de additional_attributes sobrescreve a de custom_fields. - Telefone: phone_number e country_code podem ser trocados. O número novo é normalizado e, se for inválido, retorna 400. - Identificador de outro contato: gravar email, linkedin_identifier ou telefone que já pertence a OUTRO contato da empresa retorna 409 CONTACT_IDENTIFIER_TAKEN (ex.: \u0026quot;O e-mail já pertence a outro contato.\u0026quot;), com o contato dono do dado em conflicts. Valor igual ao que o próprio contato já tem não é conflito. - Último identificador: remover o último entre telefone, e-mail e LinkedIn retorna 400 \u0026quot;O contato precisa de pelo menos um identificador.\u0026quot;.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Nuvia API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/nuvia-f82521d6/iNN4B_16K84FhP1C/_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/nuvia-f82521d6/iNN4B_16K84FhP1C/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/nuvia-f82521d6/iNN4B_16K84FhP1C/_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/nuvia-f82521d6/iNN4B_16K84FhP1C/_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/nuvia-f82521d6/iNN4B_16K84FhP1C/_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/nuvia-f82521d6/iNN4B_16K84FhP1C/_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/nuvia-f82521d6/iNN4B_16K84FhP1C/_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/nuvia-f82521d6/iNN4B_16K84FhP1C/_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/nuvia-f82521d6/iNN4B_16K84FhP1C/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Atualizar contato - Nuvia API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Atualiza os campos enviados de um contato existente. Campos ausentes não são alterados. - additional_attributes: { \u0026quot;slug\u0026quot;: valor }, com valor primitivo (string, number, boolean ou null). Faz merge com os valores atuais. Slug inexistente, ou de custom field com contexto diferente de CONTACT, é ignorado em silêncio, sem erro. - custom_fields: { \u0026quot;slug\u0026quot;: valor } para campos select (option_id), multi_select (lista de option_id) e text. A validação é atômica: se algum valor for inválido, nenhum custom field é gravado. Slug inexistente retorna 404 e opção inválida retorna 422. Para number e date, use additional_attributes. - custom_fields e additional_attributes juntos: envie em requisições separadas. No mesmo payload, a gravação de additional_attributes sobrescreve a de custom_fields. - Telefone: phone_number e country_code podem ser trocados. O número novo é normalizado e, se for inválido, retorna 400. - Identificador de outro contato: gravar email, linkedin_identifier ou telefone que já pertence a OUTRO contato da empresa retorna 409 CONTACT_IDENTIFIER_TAKEN (ex.: \u0026quot;O e-mail já pertence a outro contato.\u0026quot;), com o contato dono do dado em conflicts. Valor igual ao que o próprio contato já tem não é conflito. - Último identificador: remover o último entre telefone, e-mail e LinkedIn retorna 400 \u0026quot;O contato precisa de pelo menos um identificador.\u0026quot;.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Nuvia API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.nuvia.ai/api-reference/contacts/atualizar-contato\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://nuvia-f82521d6.mintlify.app/_mintlify/api/og/v2?division=Contatos\u0026amp;title=Atualizar+contato\u0026amp;description=Atualiza+os+campos+enviados+de+um+contato+existente.+Campos+ausentes+n%C3%A3o+s%C3%A3o+alterados.%0A%0A-+**additional_attributes%3A**+%60%7B+%22slug%22%3A+valor+%7D%60%2C+com+valor+primitivo+%28\u0026amp;theme=be549be015eeed3239a9dbfa\u0026amp;signature=cc5f499bc4d3e100a7373ae87750979e55d704616b4f0f4e0d21549fd05c6d3d\">\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=\"Atualizar contato - Nuvia API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Atualiza os campos enviados de um contato existente. Campos ausentes não são alterados. - additional_attributes: { \u0026quot;slug\u0026quot;: valor }, com valor primitivo (string, number, boolean ou null). Faz merge com os valores atuais. Slug inexistente, ou de custom field com contexto diferente de CONTACT, é ignorado em silêncio, sem erro. - custom_fields: { \u0026quot;slug\u0026quot;: valor } para campos select (option_id), multi_select (lista de option_id) e text. A validação é atômica: se algum valor for inválido, nenhum custom field é gravado. Slug inexistente retorna 404 e opção inválida retorna 422. Para number e date, use additional_attributes. - custom_fields e additional_attributes juntos: envie em requisições separadas. No mesmo payload, a gravação de additional_attributes sobrescreve a de custom_fields. - Telefone: phone_number e country_code podem ser trocados. O número novo é normalizado e, se for inválido, retorna 400. - Identificador de outro contato: gravar email, linkedin_identifier ou telefone que já pertence a OUTRO contato da empresa retorna 409 CONTACT_IDENTIFIER_TAKEN (ex.: \u0026quot;O e-mail já pertence a outro contato.\u0026quot;), com o contato dono do dado em conflicts. Valor igual ao que o próprio contato já tem não é conflito. - Último identificador: remover o último entre telefone, e-mail e LinkedIn retorna 400 \u0026quot;O contato precisa de pelo menos um identificador.\u0026quot;.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://nuvia-f82521d6.mintlify.app/_mintlify/api/og/v2?division=Contatos\u0026amp;title=Atualizar+contato\u0026amp;description=Atualiza+os+campos+enviados+de+um+contato+existente.+Campos+ausentes+n%C3%A3o+s%C3%A3o+alterados.%0A%0A-+**additional_attributes%3A**+%60%7B+%22slug%22%3A+valor+%7D%60%2C+com+valor+primitivo+%28\u0026amp;theme=be549be015eeed3239a9dbfa\u0026amp;signature=cc5f499bc4d3e100a7373ae87750979e55d704616b4f0f4e0d21549fd05c6d3d\">\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/nuvia-f82521d6/iNN4B_16K84FhP1C/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Nuvia API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#586DBF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.nuvia.ai/api-reference/contacts/atualizar-contato\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/contacts/atualizar-contato.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.nuvia.ai/#organization\",\"name\":\"Nuvia API\",\"url\":\"https://developers.nuvia.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/nuvia-f82521d6/z6aKZLErJ5b0Dl9Q/logo/logo-preta.svg?fit=max\u0026auto=format\u0026n=z6aKZLErJ5b0Dl9Q\u0026q=85\u0026s=eefb6da6faca9e8bd666072f4ee5169f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.nuvia.ai#website\",\"name\":\"Nuvia API\",\"url\":\"https://developers.nuvia.ai\",\"publisher\":{\"@id\":\"https://developers.nuvia.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.nuvia.ai/api-reference/contacts/atualizar-contato#webpage\",\"url\":\"https://developers.nuvia.ai/api-reference/contacts/atualizar-contato\",\"name\":\"Atualizar contato\",\"description\":\"Atualiza os campos enviados de um contato existente. Campos ausentes não são alterados. - additional_attributes: { \\\"slug\\\": valor }, com valor primitivo (string, number, boolean ou null). Faz merge com os valores atuais. Slug inexistente, ou de custom field com contexto diferente de CONTACT, é ignorado em silêncio, sem erro. - custom_fields: { \\\"slug\\\": valor } para campos select (option_id), multi_select (lista de option_id) e text. A validação é atômica: se algum valor for inválido, nenhum custom field é gravado. Slug inexistente retorna 404 e opção inválida retorna 422. Para number e date, use additional_attributes. - custom_fields e additional_attributes juntos: envie em requisições separadas. No mesmo payload, a gravação de additional_attributes sobrescreve a de custom_fields. - Telefone: phone_number e country_code podem ser trocados. O número novo é normalizado e, se for inválido, retorna 400. - Identificador de outro contato: gravar email, linkedin_identifier ou telefone que já pertence a OUTRO contato da empresa retorna 409 CONTACT_IDENTIFIER_TAKEN (ex.: \\\"O e-mail já pertence a outro contato.\\\"), com o contato dono do dado em conflicts. Valor igual ao que o próprio contato já tem não é conflito. - Último identificador: remover o último entre telefone, e-mail e LinkedIn retorna 400 \\\"O contato precisa de pelo menos um identificador.\\\".\",\"dateModified\":\"2026-10-22T21:34:26.454Z\",\"isPartOf\":{\"@id\":\"https://developers.nuvia.ai#website\"},\"breadcrumb\":{\"@id\":\"https://developers.nuvia.ai/api-reference/contacts/atualizar-contato#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.nuvia.ai/api-reference/contacts/atualizar-contato#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Contatos\",\"item\":\"https://developers.nuvia.ai/api-reference/contacts/listar-contatos\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Atualizar contato\",\"item\":\"https://developers.nuvia.ai/api-reference/contacts/atualizar-contato\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.nuvia.ai/api-reference/contacts/atualizar-contato#apireference\",\"headline\":\"Atualizar contato\",\"name\":\"Atualizar contato\",\"description\":\"Atualiza os campos enviados de um contato existente. Campos ausentes não são alterados. - additional_attributes: { \\\"slug\\\": valor }, com valor primitivo (string, number, boolean ou null). Faz merge com os valores atuais. Slug inexistente, ou de custom field com contexto diferente de CONTACT, é ignorado em silêncio, sem erro. - custom_fields: { \\\"slug\\\": valor } para campos select (option_id), multi_select (lista de option_id) e text. A validação é atômica: se algum valor for inválido, nenhum custom field é gravado. Slug inexistente retorna 404 e opção inválida retorna 422. Para number e date, use additional_attributes. - custom_fields e additional_attributes juntos: envie em requisições separadas. No mesmo payload, a gravação de additional_attributes sobrescreve a de custom_fields. - Telefone: phone_number e country_code podem ser trocados. O número novo é normalizado e, se for inválido, retorna 400. - Identificador de outro contato: gravar email, linkedin_identifier ou telefone que já pertence a OUTRO contato da empresa retorna 409 CONTACT_IDENTIFIER_TAKEN (ex.: \\\"O e-mail já pertence a outro contato.\\\"), com o contato dono do dado em conflicts. Valor igual ao que o próprio contato já tem não é conflito. - Último identificador: remover o último entre telefone, e-mail e LinkedIn retorna 400 \\\"O contato precisa de pelo menos um identificador.\\\".\",\"url\":\"https://developers.nuvia.ai/api-reference/contacts/atualizar-contato\",\"mainEntityOfPage\":{\"@id\":\"https://developers.nuvia.ai/api-reference/contacts/atualizar-contato#webpage\"},\"dateModified\":\"2026-10-22T21:34:26.454Z\",\"publisher\":{\"@id\":\"https://developers.nuvia.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.nuvia.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Nuvia API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Nuvia API","nav":{"global":null,"languages":[{"language":"pt-BR","default":true,"tabs":[{"tab":"Início","icon":"house","pages":[{"title":"Início","href":""}]},{"tab":"Referência da API","icon":"code","groups":[{"group":"Webhooks","pages":[{"title":"Buscar a configuração de webhook da empresa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/webhooks","href":"/api-reference/webhooks/buscar-a-configuração-de-webhook-da-empresa"},{"title":"Criar a configuração de webhook","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/webhooks","href":"/api-reference/webhooks/criar-a-configuração-de-webhook"},{"title":"Atualizar a configuração de webhook","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/webhooks/{id}","href":"/api-reference/webhooks/atualizar-a-configuração-de-webhook"},{"title":"Remover a configuração de webhook","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json delete /v1/webhooks/{id}","href":"/api-reference/webhooks/remover-a-configuração-de-webhook"}]},{"group":"Mensagens","pages":[{"title":"Listar mensagens de uma conversa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/messages/conversation/{id}","href":"/api-reference/messages/listar-mensagens-de-uma-conversa"},{"title":"Listar anexos de uma conversa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/messages/conversation/{id}/attachments","href":"/api-reference/messages/listar-anexos-de-uma-conversa"},{"title":"Enviar mensagem de texto","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/messages/send","href":"/api-reference/messages/enviar-mensagem-de-texto"},{"title":"Enviar imagem","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/messages/send-image","href":"/api-reference/messages/enviar-imagem"},{"title":"Enviar áudio","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/messages/send-audio","href":"/api-reference/messages/enviar-áudio"},{"title":"Enviar documento","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/messages/send-document","href":"/api-reference/messages/enviar-documento"},{"title":"Enviar vídeo","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/messages/send-video","href":"/api-reference/messages/enviar-vídeo"},{"title":"Enviar template em massa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/messages/send-bulk-template","href":"/api-reference/messages/enviar-template-em-massa"}]},{"group":"Conversas","pages":[{"title":"Listar conversas","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/conversations","href":"/api-reference/conversations/listar-conversas"},{"title":"Criar conversa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/conversations","href":"/api-reference/conversations/criar-conversa"},{"title":"Buscar conversa por ID","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/conversations/{id}","href":"/api-reference/conversations/buscar-conversa-por-id"},{"title":"Atualizar conversa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/conversations/{id}","href":"/api-reference/conversations/atualizar-conversa"},{"title":"Atribuir usuário à conversa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/conversations/{id}/assign-user","href":"/api-reference/conversations/atribuir-usuário-à-conversa"},{"title":"Atribuir dono à conversa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/conversations/{id}/assign-owner","href":"/api-reference/conversations/atribuir-dono-à-conversa"},{"title":"Retomar controle da IA","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/conversations/{id}/resume-ai","href":"/api-reference/conversations/retomar-controle-da-ia"},{"title":"Marcar conversa como lida","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/conversations/{id}/mark-as-read","href":"/api-reference/conversations/marcar-conversa-como-lida"},{"title":"Atribuir agente à conversa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/conversations/{id}/assign-agent","href":"/api-reference/conversations/atribuir-agente-à-conversa"},{"title":"Atribuir time à conversa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/conversations/{id}/assign-team","href":"/api-reference/conversations/atribuir-time-à-conversa"},{"title":"Atribuir prioridade à conversa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/conversations/{id}/assign-priority","href":"/api-reference/conversations/atribuir-prioridade-à-conversa"},{"title":"Atualizar status da conversa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/conversations/{id}/status","href":"/api-reference/conversations/atualizar-status-da-conversa"},{"title":"Atualizar passo da conversa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/conversations/{id}/step","href":"/api-reference/conversations/atualizar-passo-da-conversa"}]},{"group":"Campos Customizados","pages":[{"title":"Listar campos customizados","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/custom-fields","href":"/api-reference/custom-fields/listar-campos-customizados"},{"title":"Atualizar valor de um campo customizado","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/custom-fields/{id}/value","href":"/api-reference/custom-fields/atualizar-valor-de-um-campo-customizado"},{"title":"Listar opções de um campo select/multi_select","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/custom-fields/{id}/options","href":"/api-reference/custom-fields/listar-opções-de-um-campo-selectmulti_select"}]},{"group":"Contatos","pages":[{"title":"Listar contatos","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/contacts","href":"/api-reference/contacts/listar-contatos"},{"title":"Criar contato (ou reaproveitar o existente)","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/contacts","href":"/api-reference/contacts/criar-contato-ou-reaproveitar-o-existente"},{"title":"Conferir identificadores de contato","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/contacts/identity-check","href":"/api-reference/contacts/conferir-identificadores-de-contato"},{"title":"Listar contatos para CRM","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/contacts/crm","href":"/api-reference/contacts/listar-contatos-para-crm"},{"title":"Buscar contatos por telefones","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/contacts/find-by-phones","href":"/api-reference/contacts/buscar-contatos-por-telefones"},{"title":"Listar conversas de um contato","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/contacts/{contactId}/conversations","href":"/api-reference/contacts/listar-conversas-de-um-contato"},{"title":"Listar campanhas de um contato","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/contacts/{contactId}/campaigns","href":"/api-reference/contacts/listar-campanhas-de-um-contato"},{"title":"Listar listas de um contato","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/contacts/{contactId}/lists","href":"/api-reference/contacts/listar-listas-de-um-contato"},{"title":"Listar o histórico de atividade de um contato","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/contacts/{contactId}/activities","href":"/api-reference/contacts/listar-o-histórico-de-atividade-de-um-contato"},{"title":"Listar contatos de uma empresa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/contacts/by-business/{businessId}","href":"/api-reference/contacts/listar-contatos-de-uma-empresa"},{"title":"Listar contatos vinculados à empresa do contato","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/contacts/{contactId}/company-contacts","href":"/api-reference/contacts/listar-contatos-vinculados-à-empresa-do-contato"},{"title":"Buscar contato por ID","description":"Retorna os dados completos de um contato específico","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/contacts/{id}","href":"/api-reference/contacts/buscar-contato-por-id"},{"title":"Atualizar contato","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/contacts/{id}","href":"/api-reference/contacts/atualizar-contato"},{"title":"Excluir contato","description":"Remove um contato da base. Só é permitido quando o contato não possui vínculos ativos (conversas, mensagens, campanhas, logs de enriquecimento ou falhas de envio). Nesse caso retorna 409 com o detalhe do que bloqueia. Vínculos de listas e de empresa (employees) são desvinculados automaticamente.","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json delete /v1/contacts/{id}","href":"/api-reference/contacts/excluir-contato"},{"title":"Atualizar nome do contato","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/contacts/{id}/name","href":"/api-reference/contacts/atualizar-nome-do-contato"},{"title":"Desvincular contato de CRM externo","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json delete /v1/contacts/{id}/crm-link","href":"/api-reference/contacts/desvincular-contato-de-crm-externo"},{"title":"Histórico do \"Não abordar\" do contato","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/contacts/{contactId}/do-not-contact/history","href":"/api-reference/contacts/histórico-do-\"não-abordar\"-do-contato"}]},{"group":"Base de Conhecimento","pages":[{"title":"Listar conhecimentos e mídias","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/knowledge","href":"/api-reference/knowledge/listar-conhecimentos-e-mídias"},{"title":"Criar conhecimento ou mídia","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/knowledge","href":"/api-reference/knowledge/criar-conhecimento-ou-mídia"},{"title":"Criar conhecimento em markdown","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/knowledge/autcl","href":"/api-reference/knowledge/criar-conhecimento-em-markdown"},{"title":"Buscar conhecimento ou mídia por ID","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/knowledge/{id}","href":"/api-reference/knowledge/buscar-conhecimento-ou-mídia-por-id"},{"title":"Atualizar conhecimento ou mídia","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json patch /v1/knowledge/{id}","href":"/api-reference/knowledge/atualizar-conhecimento-ou-mídia"}]},{"group":"Arquivos e Anexos","pages":[{"title":"Fazer upload de attachment (anexo)","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/resource/upload-attachment","href":"/api-reference/resources/fazer-upload-de-attachment-anexo"}]},{"group":"Caixas de Entrada","pages":[{"title":"Listar inboxes","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/inboxes","href":"/api-reference/inboxes/listar-inboxes"},{"title":"Criar inbox","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/inboxes","href":"/api-reference/inboxes/criar-inbox"},{"title":"Buscar inbox por ID","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/inboxes/{id}","href":"/api-reference/inboxes/buscar-inbox-por-id"},{"title":"Atualizar inbox","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/inboxes/{id}","href":"/api-reference/inboxes/atualizar-inbox"},{"title":"Deletar inbox","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json delete /v1/inboxes/{id}","href":"/api-reference/inboxes/deletar-inbox"}]},{"group":"Tabelas e Listas","pages":[{"title":"Criar tabela manual","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/tables/manual","href":"/api-reference/tables/criar-tabela-manual"},{"title":"Listar tabelas","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/tables","href":"/api-reference/tables/listar-tabelas"},{"title":"Importar tabela","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/tables","href":"/api-reference/tables/importar-tabela"},{"title":"Buscar tabela por ID","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/tables/{id}","href":"/api-reference/tables/buscar-tabela-por-id"},{"title":"Remover tabela","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json delete /v1/tables/{id}","href":"/api-reference/tables/remover-tabela"},{"title":"Renomear tabela ou lista","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json patch /v1/tables/{id}","href":"/api-reference/tables/renomear-tabela-ou-lista"},{"title":"Atualizar labels das colunas","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json patch /v1/tables/{id}/columns","href":"/api-reference/tables/atualizar-labels-das-colunas"},{"title":"Exportar lista em CSV","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/tables/{id}/export-csv","href":"/api-reference/tables/exportar-lista-em-csv"},{"title":"Exportar lista em CSV (seleção grande)","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/tables/{id}/export-csv","href":"/api-reference/tables/exportar-lista-em-csv-seleção-grande"},{"title":"Listar linhas da tabela com paginação","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/tables/{id}/rows","href":"/api-reference/tables/listar-linhas-da-tabela-com-paginação"},{"title":"Adicionar linhas à tabela","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/tables/{id}/rows","href":"/api-reference/tables/adicionar-linhas-à-tabela"},{"title":"Remover uma linha da tabela","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json delete /v1/tables/{tableId}/rows/{rowId}","href":"/api-reference/tables/remover-uma-linha-da-tabela"},{"title":"Atualizar uma linha da tabela","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json patch /v1/tables/{tableId}/rows/{rowId}","href":"/api-reference/tables/atualizar-uma-linha-da-tabela"},{"title":"Remover múltiplas linhas da tabela em batch","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json delete /v1/tables/{tableId}/rows/batch","href":"/api-reference/tables/remover-múltiplas-linhas-da-tabela-em-batch"},{"title":"Remover todas as linhas da lista","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json delete /v1/tables/{tableId}/rows/all","href":"/api-reference/tables/remover-todas-as-linhas-da-lista"},{"title":"Criar lista","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/tables/list","href":"/api-reference/tables/criar-lista"},{"title":"Inserir linhas em lote","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/tables/rows/batch","href":"/api-reference/tables/inserir-linhas-em-lote"},{"title":"Atualizar o campo data de uma linha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json patch /v1/tables/rows/{rowId}/data","href":"/api-reference/tables/atualizar-o-campo-data-de-uma-linha"},{"title":"Importar CSV para uma lista existente","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/tables/{id}/import-csv","href":"/api-reference/tables/importar-csv-para-uma-lista-existente"},{"title":"Listar views de uma lista","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/tables/{id}/views","href":"/api-reference/tables/listar-views-de-uma-lista"},{"title":"Criar nova view para uma lista","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/tables/{id}/views","href":"/api-reference/tables/criar-nova-view-para-uma-lista"},{"title":"Excluir view de uma lista","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json delete /v1/tables/{id}/views/{viewId}","href":"/api-reference/tables/excluir-view-de-uma-lista"},{"title":"Atualizar view de uma lista","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json patch /v1/tables/{id}/views/{viewId}","href":"/api-reference/tables/atualizar-view-de-uma-lista"},{"title":"Atualizar um dataset por planilha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/tables/{id}/sync","href":"/api-reference/tables/atualizar-um-dataset-por-planilha"},{"title":"Listar relatórios de sync da tabela","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/tables/{id}/sync-reports","href":"/api-reference/tables/listar-relatórios-de-sync-da-tabela"},{"title":"Confirmar um sync abortado por deleção em massa","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/tables/{id}/sync-reports/{reportId}/confirm","href":"/api-reference/tables/confirmar-um-sync-abortado-por-deleção-em-massa"},{"title":"Descartar um preview de sync","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/tables/{id}/sync-reports/{reportId}/discard","href":"/api-reference/tables/descartar-um-preview-de-sync"},{"title":"Recalcular a coluna _score","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/tables/{id}/recompute-score","href":"/api-reference/tables/recalcular-a-coluna-_score"},{"title":"Sugerir a coluna-chave do sync","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/tables/{id}/sync-config/suggestions","href":"/api-reference/tables/sugerir-a-coluna-chave-do-sync"},{"title":"Simular o ranking da lista","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/tables/{id}/ranking-preview","href":"/api-reference/tables/simular-o-ranking-da-lista"},{"title":"Configurar o sync por upload","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json patch /v1/tables/{id}/sync-config","href":"/api-reference/tables/configurar-o-sync-por-upload"}]},{"group":"Agentes","pages":[{"title":"Listar agentes","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/agents","href":"/api-reference/agents/listar-agentes"},{"title":"Criar agente","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/agents","href":"/api-reference/agents/criar-agente"},{"title":"Clonar agente","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/agents/{id}/clone","href":"/api-reference/agents/clonar-agente"},{"title":"Listar agentes (payload enxuto)","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/agents/summary","href":"/api-reference/agents/listar-agentes-payload-enxuto"},{"title":"Buscar agente","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/agents/{id}","href":"/api-reference/agents/buscar-agente"},{"title":"Atualizar agente","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json put /v1/agents/{id}","href":"/api-reference/agents/atualizar-agente"},{"title":"Deletar agente","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json delete /v1/agents/{id}","href":"/api-reference/agents/deletar-agente"},{"title":"Campanhas ativas que usam o agente","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/agents/{id}/active-campaigns","href":"/api-reference/agents/campanhas-ativas-que-usam-o-agente"},{"title":"O que impede arquivar este funil, e o que precisa ser migrado","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/agents/{id}/archive-preflight","href":"/api-reference/agents/o-que-impede-arquivar-este-funil-e-o-que-precisa-ser-migrado"},{"title":"Arquivar funil transferindo as conversas","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/agents/{id}/archive","href":"/api-reference/agents/arquivar-funil-transferindo-as-conversas"}]},{"group":"HubSpot","pages":[{"title":"Listar propriedades do HubSpot","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/hubspot/properties","href":"/api-reference/hubspot/listar-propriedades-do-hubspot"},{"title":"Buscar mapeamentos de campos","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/hubspot/field-mappings","href":"/api-reference/hubspot/buscar-mapeamentos-de-campos"},{"title":"Listar pipelines do HubSpot","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/hubspot/pipelines","href":"/api-reference/hubspot/listar-pipelines-do-hubspot"},{"title":"Buscar mapeamentos de deal stages","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/hubspot/deal-stage-mappings","href":"/api-reference/hubspot/buscar-mapeamentos-de-deal-stages"},{"title":"Buscar configurações de telefone","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/hubspot/phone-settings","href":"/api-reference/hubspot/buscar-configurações-de-telefone"},{"title":"Listar histórico de sincronização","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/hubspot/sync-logs","href":"/api-reference/hubspot/listar-histórico-de-sincronização"},{"title":"Detalhar evento de sincronização","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/hubspot/sync-logs/{id}","href":"/api-reference/hubspot/detalhar-evento-de-sincronização"},{"title":"Buscar configurações de sincronização","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/hubspot/sync-settings","href":"/api-reference/hubspot/buscar-configurações-de-sincronização"},{"title":"Listar owners do HubSpot","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/hubspot/owners","href":"/api-reference/hubspot/listar-owners-do-hubspot"},{"title":"Buscar mapeamentos de owners","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/hubspot/owner-mappings","href":"/api-reference/hubspot/buscar-mapeamentos-de-owners"}]},{"group":"Campanhas","pages":[{"title":"Listar campanhas","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/campaigns","href":"/api-reference/campaigns/listar-campanhas"},{"title":"Criar nova campanha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/campaigns","href":"/api-reference/campaigns/criar-nova-campanha"},{"title":"Simular a audiência da campanha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/campaigns/audience-preview","href":"/api-reference/campaigns/simular-a-audiência-da-campanha"},{"title":"Listar quem fica de fora da campanha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/campaigns/audience-preview/excluded","href":"/api-reference/campaigns/listar-quem-fica-de-fora-da-campanha"},{"title":"Simular a mensagem da campanha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/campaigns/preview-message","href":"/api-reference/campaigns/simular-a-mensagem-da-campanha"},{"title":"Contar campanhas por status","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/campaigns/meta/count-by-status","href":"/api-reference/campaigns/contar-campanhas-por-status"},{"title":"Exportar contatos de todas as campanhas em CSV","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/campaigns/enrollments/export","href":"/api-reference/campaigns/exportar-contatos-de-todas-as-campanhas-em-csv"},{"title":"Buscar campanha por ID","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/campaigns/{id}","href":"/api-reference/campaigns/buscar-campanha-por-id"},{"title":"Arquivar campanha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json delete /v1/campaigns/{id}","href":"/api-reference/campaigns/arquivar-campanha"},{"title":"Atualizar campanha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json patch /v1/campaigns/{id}","href":"/api-reference/campaigns/atualizar-campanha"},{"title":"Ativar campanha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/campaigns/{id}/activate","href":"/api-reference/campaigns/ativar-campanha"},{"title":"Disparar step manualmente","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/campaigns/{id}/steps/{stepId}/execute","href":"/api-reference/campaigns/disparar-step-manualmente"},{"title":"Pausar campanha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/campaigns/{id}/pause","href":"/api-reference/campaigns/pausar-campanha"},{"title":"Analytics da campanha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/campaigns/{id}/analytics","href":"/api-reference/campaigns/analytics-da-campanha"},{"title":"Analytics da campanha agrupados por step","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/campaigns/{id}/step-analytics","href":"/api-reference/campaigns/analytics-da-campanha-agrupados-por-step"},{"title":"Exportar contatos da campanha em CSV","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/campaigns/{id}/enrollments/export","href":"/api-reference/campaigns/exportar-contatos-da-campanha-em-csv"},{"title":"Listar enrollments da campanha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/campaigns/{id}/enrollments","href":"/api-reference/campaigns/listar-enrollments-da-campanha"},{"title":"Listar execuções da campanha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/campaigns/{id}/executions","href":"/api-reference/campaigns/listar-execuções-da-campanha"},{"title":"Listar execuções de um enrollment específico","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/campaigns/{id}/enrollments/{enrollmentId}/executions","href":"/api-reference/campaigns/listar-execuções-de-um-enrollment-específico"}]},{"group":"Inscrições em Campanha","pages":[{"title":"Criar inscrições em massa a partir de contact_ids","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/campaigns/{campaignId}/enrollments/bulk","href":"/api-reference/campaign-enrollments/criar-inscrições-em-massa-a-partir-de-contact_ids"},{"title":"Criar inscrições em massa a partir de listas","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/campaigns/{campaignId}/enrollments/bulk-from-lists","href":"/api-reference/campaign-enrollments/criar-inscrições-em-massa-a-partir-de-listas"},{"title":"Criar inscrições em massa a partir do funil","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/campaigns/{campaignId}/enrollments/bulk-from-funnel","href":"/api-reference/campaign-enrollments/criar-inscrições-em-massa-a-partir-do-funil"},{"title":"Listar enrollments da campanha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json get /v1/campaigns/{campaignId}/enrollments","href":"/api-reference/campaign-enrollments/listar-enrollments-da-campanha"},{"title":"Inscrever um contato na campanha","deprecated":null,"version":null,"openapi":"https://api.nuvia.ai/api/docs/user-json post /v1/campaigns/{campaignId}/enrollments/from-contact","href":"/api-reference/campaign-enrollments/inscrever-um-contato-na-campanha"}]}]},{"tab":"MCP","icon":"plug","pages":[{"title":"MCP","href":"/mcp-nuvia"}]}]},{"language":"en","pages":[{"title":"en","href":"/en"}]},{"language":"es","pages":[{"title":"es","href":"/es"}]}]},"title":"Atualizar contato - Nuvia API","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-WRhTSUDL.js","utils-ChMov4Kr.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-_REmC2bI.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp6nVRCu.js","snippetPresets-DZadmXoU.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CY2WdoTl.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DwYG-Q4l.js","shallow-BXQIGwv4.js","getApiPlaygroundDisplay-CK5nK5B9.js","CodeSnippet-TH4a2aGW.js","CodeSnippets-DwsQiOFS.js","Page-R3M_BF4L.js","getPastedJson-DD7kUzi_.js","icon-holE3QoJ.js","MethodPill-DUW0T8us.js","DuplicateIcon-CI_p4be-.js","createIcon-BdbRvavb.js","DynamicMarkdown-DN96a4Ur.js","SectionHeading-SCu36A9d.js","axios-vUo_bRtp.js","Markdown-CCeGv-zI.js","clsx-BGBGWFTt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Cv_O2fky.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-2C5OB2eV.js"]}