Saltar al contenido principal

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

  1. Ve a Configuración > Integraciones
  2. Introduce tu URL del Webhook
  3. Selecciona a qué eventos suscribirte
  4. Opcionalmente configura un secreto para la verificación de firma HMAC
  5. 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:

ServicioPatrón de URLFormato
Slackhooks.slack.com/*Formato Slack Block Kit
Discorddiscord.com/api/webhooks/*Formato Discord embed
PersonalizadoCualquier URL HTTPSPayload 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.0 está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

Próximos Pasos