Webhooks
Los webhooks te permiten recibir notificaciones HTTP en tiempo real cuando ocurren eventos en tu inquilino de FeedbackPulse.
Configuración
Desde el Panel de Control
- Ve a Configuración > Integraciones
- Introduce tu URL del Webhook
- Selecciona a qué eventos suscribirte
- Opcionalmente configura un secreto para la verificación de firma HMAC
- Guarda
Desde la API
PUT /api/v2/webhooks/config
{
"url": "https://your-app.com/webhooks/feedbackpulse",
"events": ["submission.created", "submission.status_changed"],
"secret": "your_shared_secret"
}
Payload del Webhook
Cuando ocurre un evento, FeedbackPulse envía una solicitud POST a tu 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"
}
}
Cabeceras
Content-Type: application/json
X-FeedbackPulse-Signature: sha256=abc123...
X-FeedbackPulse-Event: submission.created
Verificación de Firma
Si configuras un secreto de webhook, verifica la firma:
$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 Compatibles
FeedbackPulse detecta automáticamente y formatea los payloads para:
| Servicio | Patrón de URL | Formato |
|---|---|---|
| Slack | hooks.slack.com/* | Formato Slack Block Kit |
| Discord | discord.com/api/webhooks/* | Formato Discord embed |
| Personalizado | Cualquier URL HTTPS | Payload JSON sin procesar |
Protección SSRF
Las URLs de webhook se validan para prevenir la falsificación de solicitudes del lado del servidor (SSRF):
localhost,127.0.0.1,0.0.0.0están bloqueados- Los rangos de IP privados (10.x, 172.16-31.x, 192.168.x) están bloqueados
- Solo se permiten URLs HTTPS públicas
Registros de Webhooks
Ver el historial de entregas:
Desde el Panel de Control
Configuración > Integraciones > Registros de Webhook
También hay disponible una página dedicada de Registros de Webhook en /webhooks/logs, que proporciona un historial completo de entregas con detalles de respuesta y opciones de filtrado. Puedes filtrar por tipo de evento, código de estado y rango de fechas, e inspeccionar el payload completo de la solicitud y el cuerpo de la respuesta para cada intento de entrega.
Visor de Webhooks del Administrador
Los superadmins tienen acceso a un visor de registros de webhook de toda la plataforma en /admin/webhook-logs. Esto proporciona visibilidad sobre las entregas de webhooks en todos los inquilinos, útil para diagnosticar problemas de integración y monitorear la salud de la plataforma.
Desde la API
GET /api/v2/webhooks/logs
Cada entrada del registro muestra:
- Tipo de evento
- URL
- Código de respuesta
- Payload enviado
- Cuerpo de la respuesta
- Marca de tiempo