Entidades suportadas
Você pode criar campos customizados para as seguintes entidades:
Campos customizados permitem estender clientes, produtos e vendas com informações próprias do seu negócio. Eles são definidos uma vez pelo painel do Engage e, a partir daí, ficam disponíveis para leitura e escrita nas chamadas da API v1.
Você pode criar campos customizados para as seguintes entidades:
A criação e a remoção de campos customizados são feitas pelo painel — a API v1 não expõe endpoints para isso. Siga este fluxo:
O Engage oferece três tipos fixos. Cada tipo determina como o valor é validado pelo servidor e o formato em que é retornado nas respostas da API.
textTextonumberNúmerodateDataNos endpoints de criação (POST /v1/customers, POST /v1/products, POST /v1/sales) envie um objeto customFields no body. As chaves são os nomes exatos dos campos criados no painel e os valores são strings (ou null).
curl -X POST https://api.engage.app/v1/customers \
-H "x-api-key: $ENGAGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Maria Silva",
"email": "maria@exemplo.com",
"customFields": {
"Cargo": "Gerente de Compras",
"Data de contrato": "15/04/2026",
"Limite de crédito": "12000"
}
}'customFields pelo nome exato — inclusive acentos e maiúsculas. Se a chave não existir como definição, a resposta é 400 Bad Request com a mensagem Unknown custom fields: <nomes>.Ao buscar uma entidade por ID (GET /v1/customers/id/:id, GET /v1/products/id/:id, GET /v1/sales/id/:id) a resposta inclui o objeto customFields com os valores normalizados pelo tipo:
{
"id": "f7e8d9c0-1a2b-3c4d-5e6f-7a8b9c0d1e2f",
"name": "Maria Silva",
"email": "maria@exemplo.com",
"status": "active",
"preferredChannel": "whatsapp",
"tags": [],
"location": null,
"company": null,
"birthDate": null,
"createdAt": "2026-04-24T12:34:56.000Z",
"customFields": {
"Cargo": "Gerente de Compras",
"Data de contrato": "2026-04-15T00:00:00.000Z",
"Limite de crédito": "12000"
}
}Observe que o valor de Data de contrato foi enviado como 15/04/2026 e retornado em ISO 8601 (2026-04-15T00:00:00.000Z). Números são sempre retornados como string.
Todos os erros de campos customizados retornam 400 Bad Request. As mensagens são fixas e indicam exatamente o campo problemático:
Unknown custom fields: <nomes>Alguma chave do objeto customFields não existe como definição na entidade.Valor numérico inválido: <valor>Campo do tipo number recebeu um valor que não pôde ser convertido para número.Data inválida: <valor>Campo do tipo date recebeu valor fora dos formatos aceitos (DD/MM/AAAA, DD/MM/AAAA HH:MM ou ISO 8601).