Pular para o conteúdo principal

Endpoint Público

POST /webhooks/{token}
SEM AUTENTICAÇÃO
Este endpoint é público e não requer autenticação. Use o token único do webhook para identificação.

Exemplo de Payload

{
  "form": {
    "nome_completo": "João Silva",
    "email": "[email protected]",
    "telefone": "+5511999999999",
    "empresa": "Empresa XYZ",
    "produto_interesse": "Plano Premium"
  }
}

Resposta

{
  "success": true,
  "lead_id": "550e8400-e29b-41d4-a716-446655440000",
  "message": "Lead created/updated successfully"
}

Criar Webhook de Entrada

POST /backend/webhooks

Request Body

name
string
obrigatório
Nome do webhook
description
string
Descrição do webhook
type
string
obrigatório
Deve ser "inbound"
is_active
boolean
padrão:"true"
Se o webhook está ativo
field_mapping
object
obrigatório
Mapeamento de campos do payload para campos de lead
custom_field_mapping
object
Mapeamento para campos personalizados
default_status_id
string
Status padrão para leads criados
default_tags
array
Tags a serem adicionadas automaticamente

Exemplo

curl -X POST "https://api.leavo.ai/backend/webhooks" \
  -H "Authorization: Bearer sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Webhook Formulário Site",
    "description": "Recebe leads do formulário do site",
    "type": "inbound",
    "is_active": true,
    "field_mapping": {
      "name": "form.nome_completo",
      "email": "form.email",
      "phone": "form.telefone",
      "company": "form.empresa"
    },
    "custom_field_mapping": {
      "interesse": "form.produto_interesse"
    },
    "default_status_id": "uuid-do-status",
    "default_tags": ["uuid-tag-1", "uuid-tag-2"]
  }'

Resposta

{
  "id": "uuid",
  "tenant_id": "uuid",
  "name": "Webhook Formulário Site",
  "webhook_token": "abc123xyz",
  "type": "inbound",
  "is_active": true,
  "total_calls": 0,
  "created_at": "2024-01-01T00:00:00Z"
}

Mapeamento de Campos

Campos Disponíveis

CampoDescrição
nameNome completo do lead
surnameSobrenome do lead
emailEmail do lead
phoneTelefone do lead (obrigatório)
companyEmpresa do lead

Notação de Ponto

Use notação de ponto para acessar campos aninhados:
// Payload recebido
{
  "customer": {
    "contact": {
      "email": "[email protected]"
    }
  }
}

// Mapeamento
{
  "email": "customer.contact.email"
}

Testar Webhook

POST /backend/webhooks/{id}/test
Envia um payload de teste para validar os mapeamentos.
{
  "payload": {
    "form": {
      "nome_completo": "Teste",
      "email": "[email protected]",
      "telefone": "+5511999999999"
    }
  }
}