GET /contacts-schema

Retorna os metadados configuráveis da sua organização: campos personalizados de contato, tags e atendentes elegíveis pra serem donos de carteira.

Útil pra que integrações descubram o que podem mandar em `POST /contacts` sem precisar abrir a UI.

Campo Valor
URL https://api.wevi.chat/functions/v1/contacts-schema
Método GET
Auth Authorization: Bearer wevi_SUA_CHAVE
Rate limit 60 req/min por token

Exemplo

curl https://api.wevi.chat/functions/v1/contacts-schema \
  -H "Authorization: Bearer wevi_SUA_CHAVE"

Resposta

Sucesso (200)

{
  "org": {
    "id": "org-uuid",
    "name": "Empresa Acme",
    "slug": "acme"
  },
  "custom_fields": [
    {
      "key": "cpf",
      "label": "CPF",
      "type": "cpf",
      "options": null,
      "placeholder": "000.000.000-00"
    },
    {
      "key": "plano_atual",
      "label": "Plano atual",
      "type": "select",
      "options": ["Básico", "Pro", "Ultra"],
      "placeholder": null
    }
  ],
  "tags": [
    { "id": "uuid-1", "name": "VIP",            "color": "#22D650" },
    { "id": "uuid-2", "name": "Trial expirando","color": "#F59E0B" }
  ],
  "assignable_users": [
    { "email": "maria@empresa.com", "name": "Maria Silva", "role": "atendente" },
    { "email": "joao@empresa.com",  "name": "João Santos", "role": "admin" }
  ],
  "whatsapp_connections": [
    { "id": "conn-uuid", "display_name": "Vendas Acme", "phone_number_id": "1234567890" }
  ]
}

Campos da resposta

org — info básica da sua organização (id, name, slug). Útil pra integrações multi-tenant que querem confirmar contra qual org o token resolve.

custom_fields — chaves que você pode mandar em fields no /contacts.

Subcampo Descrição
key Identificador da chave (use exatamente assim no fields).
label Nome humano mostrado na UI.
type text, number, select, email, phone, date, cpf, cnpj, boolean, multiselect, rich_text.
options Pra select e multiselect: lista de opções aceitas. null pros outros tipos.
placeholder Hint mostrado na UI. Pode ser null.

tags — tags existentes na org. Não é obrigatório consultar antes de enviar tags no /contacts (lá novas tags são criadas automaticamente), mas útil pra:

  • Mostrar dropdown de tags no seu CRM/automação.
  • Conferir se a tag já existe antes de criar variações de nome (ex: "Vip" vs "VIP" são tratadas como a mesma).

assignable_users — atendentes elegíveis a serem dono de carteira. Use o email no campo assigned_user_email do /contacts.

Inclui apenas membros com role admin, editor ou atendente. Membros com role financeiro ficam fora.

whatsapp_connections — conexões WhatsApp Business configuradas na org. Use o id como connection_id em `/send-template` e `/send-message`, sem precisar abrir a UI pra pegar o UUID.

Erros

Status error
401 Missing Authorization header ou Invalid API key
405 Method not allowed (use GET, não POST)
429 Too many requests (60 req/min)

Padrão de uso

Cachear no seu lado

A lista de campos e tags muda raramente. Faça 1 GET no início do seu processo e cache em memória pelo menos por alguns minutos. Não precisa chamar a cada requisição de /contacts.

Construir UI dinâmica de mapeamento

Se você tá fazendo uma integração tipo Zapier/Make, use este endpoint pra montar a tela de "mapear campos do meu CRM nos campos da Wevi". Mostra ao usuário a lista de custom_fields da org dele.