Integração via Webhook – WordPress + Leavo
1. Visão Geral
O WordPress é o CMS (Content Management System) mais popular do mundo, base de 43% dos websites. A integração com o Leavo permite capturar leads de formulários, comentários e eventos do site.
Casos de uso principais:
- Capturar leads de formulários Contact Form 7, Gravity Forms
- Enviar comentaristas para qualificação no Leavo
- Qualificar visitantes que baixam materiais
- Sincronizar usuários WordPress com leads
Fluxos disponíveis:
- ✅ WordPress → Leavo: Via webhooks (plugins) ou API REST
- ✅ Leavo → WordPress: Via REST API (criar usuários, posts)
Diferencial: CMS flexível, API REST nativa, webhooks via plugins, 60.000+ plugins disponíveis.
2. Documentação Oficial
WordPress:
Leavo:
3. Recursos disponíveis via Webhook
3.1 WordPress.org vs WordPress.com
| Aspecto | WordPress.org (Self-hosted) | WordPress.com (Managed) |
|---|---|---|
| Webhooks nativos | ❌ Não | ✅ Sim |
| API REST | ✅ Sim | ✅ Sim |
| Plugins | ✅ Total liberdade | ⚠️ Limitado |
| Customização | ✅ Total | ⚠️ Limitada |
Para WordPress.org: Use plugins de webhooks (WP Webhooks, WPForms, etc)
3.2 Eventos Disponíveis (via Plugins)
WP Webhooks Plugin:
| Evento | Descrição | Recomendado Leavo |
|---|---|---|
user_register | Usuário registrado | ✅ Sim |
comment_post | Comentário publicado | ⚠️ Opcional |
wpforms_submit | Formulário enviado | ✅ Sim |
cf7_submit | Contact Form 7 enviado | ✅ Sim |
gf_submit | Gravity Forms enviado | ✅ Sim |
wc_order_created | Pedido WooCommerce | ✅ Sim |
4. Como configurar webhooks
4.1 FLUXO 1: WordPress → Leavo (Capturar Leads)
Permite que formulários WordPress enviem leads para qualificação no Leavo.
Passo 1: Instalar Plugin de Webhooks
Opção A: WP Webhooks (Recomendado)
- No Admin WordPress, vá em Plugins → Adicionar novo
- Busque "WP Webhooks"
- Clique em "Instalar agora"
- Clique em "Ativar"
Opção B: Contact Form 7 + Webhook Add-on
- Instale Contact Form 7
- Instale CF7 to Webhook
Opção C: WPForms (Próprio webhook integrado)
- Instale WPForms
- Webhook integrado nas configurações
Passo 2: Criar Webhook de Entrada no Leavo
- No Leavo, vá em Webhooks → Entrada
- Clique em "+ Criar Webhook"
Configurar:
- Nome:
Receber de WordPress - Formulários - Descrição:
Leads de Contact Form 7 e outros - Webhook ativo: LIGADO
Passo 3: Copiar URL do Leavo
https://api.leavo.ai/api/webhooks/w1p2w3p4-r5d6-7890-press-ab0123456789
Passo 4: Configurar Webhook no WordPress
4.1 Via WP Webhooks:
- No Admin WP, vá em WP Webhooks → Send Data
- Clique em "Add Webhook URL"
Configurar:
| Campo | Valor |
|---|---|
| Webhook URL | https://api.leavo.ai/api/webhooks/w1p2w3p4... |
| Trigger | wpforms_submit (ou outro) |
| HTTP Method | POST |
| Content Type | application/json |
4.2 Mapear Campos:
{
"name": "{{form.fields.name}}",
"email": "{{form.fields.email}}",
"phone": "{{form.fields.phone}}",
"message": "{{form.fields.message}}",
"source": "WordPress Contact Form"
}
4.3 Via WPForms:
- Edite o formulário no WPForms
- Vá em Settings → Webhooks
- Clique em "Add New Webhook"
Configurar:
| Campo | Valor |
|---|---|
| Webhook URL | https://api.leavo.ai/api/webhooks/... |
| Request Method | POST |
| Request Format | JSON |
Passo 5: Estrutura do Payload WordPress
Exemplo de WPForms:
{
"entry_id": "123",
"form_id": "456",
"form_name": "Formulário Contato",
"fields": {
"1": {
"name": "Name",
"value": "João Silva",
"id": 1
},
"2": {
"name": "Email",
"value": "joao@example.com",
"id": 2
},
"3": {
"name": "Phone",
"value": "5511999999999",
"id": 3
}
},
"date": "2025-12-11 18:00:00"
}
Passo 6: Mapear Campos no Leavo
| Campo Leavo | Campo Payload | Preview |
|---|---|---|
| Nome * | fields.1.value OU name | "João Silva" |
fields.2.value OU email | "joao@example.com" | |
| Telefone * | fields.3.value OU phone | "5511999999999" |
4.2 FLUXO 2: Leavo → WordPress (Criar Usuários)
Permite que leads qualificados no Leavo virem usuários WordPress.
Passo 1: Gerar Application Password
1.1 No WordPress Admin:
- Vá em Usuários → Seu Perfil
- Role até "Senhas de Aplicação"
- Nome:
Leavo Integration - Clique em "Adicionar Nova Senha"
WordPress gera senha:
abcd 1234 efgh 5678 ijkl 9012
Use sem espaços: abcd1234efgh5678ijkl9012
Passo 2: Configurar Middleware (n8n)
2.1 Nó Function:
// Transformar payload do Leavo para WordPress
const leavo = $json.body.data;
return {
json: {
username: leavo.email.split('@')[0],
email: leavo.email,
first_name: leavo.nome.split(' ')[0],
last_name: leavo.nome.split(' ').slice(1).join(' '),
roles: ['subscriber'],
meta: {
telefone: leavo.telefone,
empresa: leavo.empresa
}
}
};
2.2 Nó HTTP Request:
| Campo | Valor |
|---|---|
| Method | POST |
| URL | https://seu-site.com/wp-json/wp/v2/users |
| Authentication | Basic Auth |
| Username | Seu username WordPress |
| Password | Application Password |
5. Testando a integração
✅ Checklist - WordPress → Leavo
WordPress:
- Plugin instalado
- Webhook configurado
- Campos mapeados
- Formulário testado
Leavo:
- Webhook de entrada criado
- URL copiada
- Campos mapeados
✅ Checklist - Leavo → WordPress
WordPress:
- Application Password gerada
- API REST testada
Middleware (n8n):
- Workflow criado
- Transformation implementada
- Basic Auth configurado
6. Estrutura de Payloads
6.1 WordPress → Leavo (Contact Form 7)
{
"your-name": "Maria Santos",
"your-email": "maria@example.com",
"your-phone": "5511988887777",
"your-message": "Gostaria de saber mais sobre os serviços",
"form-id": "123",
"form-title": "Formulário de Contato"
}
6.2 Leavo → WordPress (REST API users)
curl -X POST 'https://seu-site.com/wp-json/wp/v2/users' \
-u 'username:abcd1234efgh5678ijkl9012' \
-H 'Content-Type: application/json' \
-d '{
"username": "pedro",
"email": "pedro@example.com",
"first_name": "Pedro",
"last_name": "Oliveira",
"roles": ["subscriber"]
}'
7. Observações e Limitações
7.1 Limitações do WordPress
| Aspecto | Limitação |
|---|---|
| Webhooks nativos | Apenas WordPress.com |
| Rate limit | Depende do servidor |
| Plugins obrigatórios | Para WordPress.org |
| HTTPS | Obrigatório para API |
7.2 Plugins Recomendados
Para Webhooks:
- WP Webhooks (Grátis + Pro)
- CF7 to Webhook (Contact Form 7)
- Webhooks for WPForms
Para Formulários:
- WPForms (Webhooks nativos)
- Contact Form 7 (Popular)
- Gravity Forms (Avançado)
8. Boas Práticas
8.1 Usar Application Passwords
✅ Mais seguro que senha normal:
Vantagens:
- Pode ser revogada
- Não expõe senha real
- Por aplicação
8.2 Validar Dados Antes de Enviar
✅ Filtrar spam:
add_filter('wpcf7_before_send_mail', function($contact_form) {
$submission = WPCF7_Submission::get_instance();
$data = $submission->get_posted_data();
if (!filter_var($data['your-email'], FILTER_VALIDATE_EMAIL)) {
return false;
}
return $contact_form;
});
9. Troubleshooting
9.1 Webhook não envia
| Causa | Solução |
|---|---|
| Plugin desativado | ✅ Ative o plugin |
| URL incorreta | ✅ Verifique URL |
| SSL inválido | ✅ Configure HTTPS |
| Firewall bloqueando | ✅ Libere domínio |
9.2 Usuário não cria
| Causa | Solução |
|---|---|
| Password inválida | ✅ Regenere Application Password |
| Email já existe | ✅ Verifique duplicidade |
| Permissões insuficientes | ✅ Use admin |
10. Casos de Uso
10.1 Formulário → Qualificação
Objetivo: Leads de formulários qualificados automaticamente
Fluxo:
WordPress (Formulário Enviado)
↓
Webhook → Leavo
↓
Qualificação IA
10.2 Lead → Usuário WordPress
Objetivo: Leads qualificados viram usuários
Fluxo:
Leavo (Lead Qualificado)
↓
n8n → WordPress API
↓
Usuário Criado


