Cargo, matrícula, unidade, data de admissão: cada instância da Engage tem seus próprios campos de cadastro, chamados de campos adicionais (ou atributos). Este artigo mostra como descobrir quais existem na sua instância e como preenchê-los pela API.
Neste artigo
- Antes de começar
- Preencher os campos
- Formato de cada tipo de valor
- Quando um campo falha
- Cuidados
- Problemas comuns
Antes de começar
- As credenciais da sua instância, reunidas em Comece por aqui: credenciais para integrar com a API da Engage, e um token gerado em Passo 2 — Obtendo o access_token (POST /auth).
- Permissões do usuário de serviço: Gerenciar usuários (para enviar junto do cadastro) e Importação de dados (para enviar só os campos).
- Teste em homologação:
https://sandbox.engage.bz/api/v1.
Preencher os campos
1Descubra os nomes dos campos
GET https://sandbox.engage.bz/api/v1/{customer_id}/attributes
Authorization: Bearer {access_token}
Resposta da listagem de campos adicionais, com o tipo do campo e o nome com prefixo destacados
Repare em dois campos de cada item: attribute_type.name, o tipo (texto, número, data, lista), e name, o nome do campo. O nome vem com o seu customer_id como prefixo — no exemplo, manoel_test.
Importante
Na hora de enviar, use o nome sem o prefixo (test) ou o nome completo (manoel_test) — nunca o rótulo que aparece na tela. Maiúsculas e minúsculas não importam.
Outras consultas úteis:
| Rota (GET) | Para que serve |
|---|---|
/{customer_id}/attributes/{attribute_id}/values | Opções de um campo de lista — envie o texto de value |
/{customer_id}/attributeGroups | Quais campos são obrigatórios (items[].required) |
/{customer_id}/attributes/types | Catálogo dos tipos de campo |
2Envie os valores
Caminho recomendado — junto com o cadastro do usuário. Use a propriedade attributes no POST /{customer_id}/users: o usuário e os campos são gravados na mesma chamada.
[
{
"login": "joao.silva",
"name": "João da Silva",
"status": true,
"attributes": [
{ "cargo": "Recepcionista", "data_admissao": "25-09-2019", "unidade": "Matriz" }
]
}
]Caminho alternativo — só os campos, para usuários que já existem:
POST https://sandbox.engage.bz/api/v1/{customer_id}/users/importAttributes/import?customerToken={customer_token}
Authorization: Bearer {access_token}
Content-Type: application/json
[
{ "Login": "joao.silva", "cargo": "Recepcionista", "data_admissao": "25-09-2019" }
]
Corpo do envio só de campos adicionais no Postman: a chave Login e uma chave por campo
Formato de cada tipo de valor
| Tipo do campo | Como enviar | Exemplo |
|---|---|---|
| Texto | Até 255 caracteres | "Recepcionista" |
| Número | Inteiro, sem separador de milhar | 25 |
| Data | Texto no formato dd-mm-aaaa | "25-09-2019" |
| Lista | O texto exato da opção, nunca o id | "Matriz" |
Quando um campo falha
O cadastro do usuário é gravado antes dos campos adicionais. Se um campo falhar, o registro volta com "success": false — mas o usuário existe, e o object_id traz o ID dele:

Resposta real com success false e object_id preenchido: o usuário foi criado, mas um campo não existe e outro obrigatório faltou
Dica
Leia detail_messages[].event_code. Se todos os erros começam com attribute_, o usuário já está criado — basta corrigir e reenviar os campos adicionais.
Cuidados
Cuidado
Em campo de lista, um valor que não existe é criado automaticamente, sem erro. Se você enviar "Analísta" em vez de "Analista", a instância ganha uma opção nova no cadastro do campo. Valide os dados antes de enviar em massa.
- Enviou algum campo? Envie todos os obrigatórios daquele usuário. A validação cobra todos os campos obrigatórios, mesmo os que você não pretendia alterar. Consulte
/attributeGroups. Se você omitirattributespor inteiro, essa cobrança não acontece. - Um campo inválido descarta todos os campos daquele usuário na mesma chamada. Os outros usuários do lote não são afetados.
- Data enviada como número vira outra data, sem erro:
43738é lido como número de planilha. Envie sempre como texto. - Não use
POST /entityAttributespara integrar. É o caminho das telas da plataforma e substitui todos os campos do usuário pelo que veio na chamada.
Problemas comuns
O código de cada erro vem em detail_messages[].event_code.
| O que aparece | Causa provável | O que fazer |
|---|---|---|
attribute_doesnt_exist | Nome errado, rótulo de tela em vez do nome, ou campo inativo | Confira o name em /attributes |
attribute_value_is_required | Faltou um campo obrigatório | Envie todos os obrigatórios de /attributeGroups |
attribute_value_doesnt_exist_in_the_select_list | Valor fora das opções de um campo de múltipla escolha | Use o texto exato de /attributes/{id}/values |
attribute_type_must_be_date_type | Data fora do formato | Use dd-mm-aaaa, como texto |
attribute_type_must_be_numeric | Texto ou separador num campo numérico | Envie um inteiro |
login_invalido ou login_is_required | Usuário inexistente, ou faltou Login no envio só de campos | Cadastre o usuário antes e confira a chave Login |
registro_duplicado | O mesmo usuário com o mesmo campo duas vezes | Remova a duplicidade |
| HTTP 401 | Token expirado ou sem a permissão necessária | Gere um novo token e confira as permissões |
| Valor gravado cortado | Passou de 255 caracteres | Encurte o valor |
Próximo passo
Para o cadastro completo do usuário, veja Integração de usuários.
Precisa de ajuda?
Escreva para meajuda@engage.bz informando o customer_id, o ambiente e a resposta completa da chamada. Nunca envie senhas, tokens ou o client_secret por e-mail.
Este artigo foi útil?
Que bom!
Obrigado pelo seu feedback
Desculpe! Não conseguimos ajudar você
Obrigado pelo seu feedback
Feedback enviado
Agradecemos seu esforço e tentaremos corrigir o artigo