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​