Pular para o conteúdo principal

Webhooks

Os webhooks permitem receber notificações HTTP em tempo real quando eventos ocorrem no seu tenant do FeedbackPulse.


Configuração

Via Painel

  1. Vá para Configurações > Integrações
  2. Insira sua URL de Webhook
  3. Selecione quais eventos assinar
  4. Opcionalmente, defina um segredo para verificação de assinatura HMAC
  5. Salve

Via API

PUT /api/v2/webhooks/config
{
"url": "https://your-app.com/webhooks/feedbackpulse",
"events": ["submission.created", "submission.status_changed"],
"secret": "your_shared_secret"
}

Payload do Webhook

Quando um evento ocorre, o FeedbackPulse envia uma requisição POST para sua URL:

{
"event": "submission.created",
"timestamp": "2024-03-15T10:30:00Z",
"data": {
"id": 42,
"campaign_id": 1,
"star_rating": 5,
"text_feedback": "Love this product!",
"customer_name": "Jane Doe",
"status": "pending"
}
}

Headers

Content-Type: application/json
X-FeedbackPulse-Signature: sha256=abc123...
X-FeedbackPulse-Event: submission.created

Verificação de Assinatura

Se você definir um segredo de webhook, verifique a assinatura:

$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_FEEDBACKPULSE_SIGNATURE'];
$expected = 'sha256=' . hash_hmac('sha256', $payload, $secret);

if (!hash_equals($expected, $signature)) {
http_response_code(403);
exit('Invalid signature');
}

Endpoints Suportados

O FeedbackPulse detecta automaticamente e formata payloads para:

ServiçoPadrão de URLFormato
Slackhooks.slack.com/*Formato Slack Block Kit
Discorddiscord.com/api/webhooks/*Formato Discord embed
PersonalizadoQualquer URL HTTPSPayload JSON bruto

Proteção SSRF

As URLs de webhook são validadas para prevenir Server-Side Request Forgery:

  • localhost, 127.0.0.1, 0.0.0.0 são bloqueados
  • Faixas de IP privado (10.x, 172.16-31.x, 192.168.x) são bloqueadas
  • Apenas URLs HTTPS públicas são permitidas

Logs de Webhook

Visualize o histórico de entregas:

Via Painel

Configurações > Integrações > Logs de Webhook

Uma página dedicada de Logs de Webhook também está disponível em /webhooks/logs, fornecendo um histórico completo de entregas com detalhes de resposta e opções de filtragem. Você pode filtrar por tipo de evento, código de status e intervalo de datas, e inspecionar o payload completo da requisição e o corpo da resposta para cada tentativa de entrega.

Visualizador de Logs de Webhook do Admin

Os superadmins têm acesso a um visualizador de logs de webhook em toda a plataforma em /admin/webhook-logs. Isso fornece visibilidade nas entregas de webhook em todos os tenants, útil para diagnosticar problemas de integração e monitorar a saúde da plataforma.

Via API

GET /api/v2/webhooks/logs

Cada entrada de log mostra:

  • Tipo de evento
  • URL
  • Código de resposta
  • Payload enviado
  • Corpo da resposta
  • Timestamp

Próximos Passos