Fluxo correto de uso
O uso seguro de campos adicionais segue uma ordem específica que evita problemas de tipagem e inconsistências nos dados. 1. Criar o campo no workspace Antes de associar valores a qualquer registro, o campo precisa existir com o tipo correto configurado. UsePOST /v1/custom-fields para isso.
2. Associar valores nos registros
Com o campo criado, passe custom_fields no body de POST ou PATCH em pessoas, empresas ou negócios, referenciando o campo pela sua key.
Por que criar o campo antes
Ao enviar umafield_key desconhecida nas rotas de pessoa, empresa ou negócio, a API cria o campo automaticamente com type: text. Isso pode parecer conveniente, mas cria um problema real: se o campo precisar ser select, date, number ou qualquer outro tipo, ele terá sido criado com o tipo errado. Corrigir isso depois exige uma chamada separada de atualização e pode gerar inconsistências em valores já gravados.
Crie sempre o campo com o tipo correto antes de começar a gravar valores.
Criar um campo adicional
label, key e type.
keyé imutável após a criação. Use identificadores descritivos e estáveis, comoorigem_leadoucnpj_empresa.typetambém é imutável. Escolha o tipo correto antes de criar.- Para
selectemulti_select, o campovalue.select_listé obrigatório e define as opções disponíveis. - Os flags
show_people,show_companieseshow_dealscontrolam em quais entidades o campo aparece. O padrão étruepara pessoas e empresas,falsepara negócios.
Tipos disponíveis
| Tipo | Descrição |
|---|---|
text | Texto em linha única |
long_text | Texto multilinha |
number | Valor numérico inteiro ou decimal |
date | Data no formato YYYY-MM-DD |
select | Uma opção de lista predefinida |
multi_select | Múltiplas opções de lista predefinida |
cpf | CPF brasileiro |
cnpj | CNPJ brasileiro |
link | URL completa |
address | Endereço físico estruturado em subcampos |
Associar valores a registros
Com o campo criado, incluacustom_fields no body ao criar ou atualizar um registro. Cada item requer field_key e value.
field_key para o ID interno do campo. Caso nenhum campo com essa chave exista no workspace, ele é criado automaticamente com type: text. Veja a seção acima sobre por que isso deve ser evitado.
Modo de associação
O parâmetroassociation_mode controla o comportamento ao atualizar um registro via PATCH:
append(padrão): define ou substitui o valor de cadafield_keyenviado, sem alterar os demais campos do registro.replace: remove todos os valores de campos adicionais do registro e insere apenas os enviados nesta requisição.
Referência de formatos por tipo
text
String simples, linha única.
long_text
String com quebras de linha representadas por \n.
number
Número JSON sem aspas. Aceita inteiro ou decimal.
date
String no formato YYYY-MM-DD, sem horário.
select
Key de uma única opção da lista predefinida do campo. Para consultar as keys disponíveis, use GET /v1/custom-fields/:id e inspecione value.select_list.
multi_select
Array JSON com as keys das opções selecionadas.
cpf
String com ou sem pontuação.
cnpj
String com ou sem pontuação.
link
URL completa com protocolo.
address
Objeto JSON com os subcampos abaixo. Todos são opcionais: envie apenas os que estiverem disponíveis. Subcampos não enviados são armazenados como string vazia.
| Subcampo | Descrição |
|---|---|
address_line_1 | Logradouro e número |
address_line_2 | Complemento (sala, andar, bloco) |
city | Cidade |
region | Estado ou região |
postal_code | CEP ou código postal |
country | País |
Ler valores de um registro
Ao buscar um registro por ID, os valores associados retornam no arraycustom_fields com o objeto field embutido:
Exemplo completo
O exemplo abaixo cria uma pessoa com campos de todos os tipos, considerando que cada campo já foi criado previamente viaPOST /v1/custom-fields.