Criar um campo personalizado
const url = 'https://dattacrm.com.br/api/v1/custom-fields';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"label":"example","key":"example","type":"text","options":[{"label":"example","value":"example"}],"group":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://dattacrm.com.br/api/v1/custom-fields \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "label": "example", "key": "example", "type": "text", "options": [ { "label": "example", "value": "example" } ], "group": "example" }'Cria um campo personalizado de lead, no grupo informado ou no padrão. Não cria campo que repete um campo padrão do CRM (contato, UTMs e rastreio, como email, utm_source ou fbclid, pela chave ou pelo nome): responde 400. Idempotente pela chave, sem diferenciar maiúsculas: se já existe um campo com a mesma chave e o mesmo tipo, devolve ele como está (200, result: matched), sem mudar nome, opções nem grupo; com outro tipo, responde 409 conflict com details.field = type. Campo novo responde 201 com result: created e já vale em customFields de create_or_update_lead.
Authorizations
Seção intitulada “Authorizations ”Request Body required
Seção intitulada “Request Body required ”Dados do novo campo personalizado de lead.
object
Nome do campo, como aparece na tela, de 1 a 60 caracteres.
Chave do campo em customFields, de 1 a 40 caracteres: letras sem acento, números e _. É gravada em minúsculas (Cargo vira cargo). Sem ela, deriva do nome (Cargo do lead vira cargo_do_lead). Não pode ser a de um campo nativo: name, email, phone, company, address ou notes.
Tipo do campo: text (padrão), number, date, select, multi_select ou boolean.
Grupo do campo em Leads > Campos, pelo id ou pelo nome (sem diferenciar maiúsculas). O grupo precisa existir: crie-o na tela de Campos. Sem ele, o campo vai para o grupo padrão (Geral).
Responses
Seção intitulada “ Responses ”O campo já existia com a mesma chave e o mesmo tipo e foi devolvido como está (result: matched).
object
Campo personalizado de lead, criado ou já existente.
object
Chave estável do campo, usada em customFields do lead.
Nome do campo, como aparece na tela.
Tipo do campo: text, number, date, select, multi_select ou boolean.
Opções permitidas; vazio nos campos que não são de seleção.
Opção de um campo de seleção.
object
Texto da opção, como aparece para a pessoa.
Valor gravado no lead quando a opção é escolhida.
Grupo do campo em Leads > Campos. Todo campo tem um; o padrão é Geral.
object
Id do grupo.
Nome do grupo, como aparece em Leads > Campos.
created quando o campo foi criado agora; matched quando já existia com a mesma chave e o mesmo tipo.
Example
{ "data": { "type": "text", "result": "created" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Máximo de requisições por janela de 60 segundos para esta chave.
Requisições restantes na janela atual.
Fim da janela atual, em milissegundos desde a época Unix (epoch ms).
Campo criado (result: created).
object
Campo personalizado de lead, criado ou já existente.
object
Chave estável do campo, usada em customFields do lead.
Nome do campo, como aparece na tela.
Tipo do campo: text, number, date, select, multi_select ou boolean.
Opções permitidas; vazio nos campos que não são de seleção.
Opção de um campo de seleção.
object
Texto da opção, como aparece para a pessoa.
Valor gravado no lead quando a opção é escolhida.
Grupo do campo em Leads > Campos. Todo campo tem um; o padrão é Geral.
object
Id do grupo.
Nome do grupo, como aparece em Leads > Campos.
created quando o campo foi criado agora; matched quando já existia com a mesma chave e o mesmo tipo.
Example
{ "data": { "type": "text", "result": "created" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Máximo de requisições por janela de 60 segundos para esta chave.
Requisições restantes na janela atual.
Fim da janela atual, em milissegundos desde a época Unix (epoch ms).
Dados inválidos (validation_error): chave fora do formato, chave ou nome de campo padrão do CRM, nome do qual não sai chave ou grupo que não existe, ou chave enviada na URL (api_key_in_url).
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Chave ausente, inválida (invalid_api_key), vencida (api_key_expired) ou revogada (api_key_revoked).
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
A chave é somente leitura e a operação grava dados (insufficient_scope).
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Conflito com o estado atual (conflict), contato oculto, cujo negócio não muda (lead_hidden), ou limite do plano atingido (plan_limit).
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
O corpo da requisição passa de 256 KB (payload_too_large).
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Limite de requisições atingido (rate_limited). Aguarde Retry-After segundos.
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Máximo de requisições por janela de 60 segundos para esta chave.
Requisições restantes na janela atual.
Fim da janela atual, em milissegundos desde a época Unix (epoch ms).
Segundos até poder tentar de novo.
Erro interno (internal_error). Informe o requestId ao suporte.
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
O CRM está em modo somente leitura durante uma migração (maintenance). Tente de novo depois de Retry-After segundos.
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Segundos até poder tentar de novo.