Saltar al contenido principal

Webhooks

Los Webhooks envían notificaciones en tiempo real a tus sistemas externos cuando ocurren eventos de activos. Úsalos con Zapier, Make, APIs personalizadas o sistemas de inventario.


1. Acceder a Webhooks

Navegación: AssetsSettings → pestaña Webhooks.


2. Crear un Webhook

  1. Haz clic en New Webhook
  2. Introduce el Webhook Name (p. ej., "Sync to ERP")
  3. Introduce el Webhook URL - tu endpoint (debe aceptar peticiones POST)
  4. Selecciona los Events a los que suscribirse (o selecciona todos)
  5. Opcionalmente configura Secret Key para verificación de firma HMAC
  6. Opcionalmente añade Custom Headers (p. ej., API key)
  7. Establece Active en Yes
  8. Haz clic en Save

3. Eventos disponibles

Ciclo de vida del activo

EventWhen Triggered
asset.createdNuevo activo creado
asset.updatedActivo actualizado
asset.deletedActivo eliminado

Asignación y asignación

EventWhen Triggered
asset.allocatedActivo asignado al personal
asset.revokedAsignación revocada

Check-in/Check-out

EventWhen Triggered
asset.checked_outActivo objeto de check-out
asset.checked_inActivo objeto de check-in

Reservas

EventWhen Triggered
asset.reservedReserva creada
asset.reservation_approvedReserva aprobada
asset.reservation_rejectedReserva rechazada

Mantenimiento y transferencias

EventWhen Triggered
asset.maintenance_scheduledMantenimiento programado
asset.maintenance_completedMantenimiento completado
asset.transferredTransferencia completada

Pérdida, daño, disposición

EventWhen Triggered
asset.lostActivo reportado como perdido
asset.brokenActivo reportado como roto
asset.warrantyActivo enviado a garantía
asset.liquidatedActivo liquidado

Alertas (vía Cron)

EventWhen Triggered
alert.warranty_expiringGarantía expira en 30 días
alert.maintenance_dueMantenimiento debido en 7 días
alert.checkout_overdueCheckout vencido
alert.low_stockStock por debajo del umbral

4. Formato del payload

Cada webhook envía un payload JSON:

{
"event": "asset.created",
"timestamp": "2025-02-04T12:00:00+00:00",
"source": "perfex_assets_module",
"asset_id": 123,
"asset": { ... },
"data": { ... }
}
  • event - Nombre del evento
  • timestamp - Formato ISO 8601
  • asset_id - ID del activo (null si está eliminado)
  • asset - Datos del activo (o datos extra si está eliminado)
  • data - Datos específicos del evento (p. ej., detalles de asignación)

5. Verificación de firma

El módulo envía una firma HMAC-SHA256 en el encabezado:

X-Asset-Webhook-Signature: <signature>
X-Asset-Webhook-Timestamp: <timestamp>
X-Asset-Webhook-Event: <event>

Verifica en tu endpoint:

signature = HMAC-SHA256(secret_key, request_body)

6. Registros de Webhooks

  • Consulta Webhook Logs para ver el estado de entrega
  • Response Code - 2xx = éxito, 4xx/5xx = fallo
  • Retry - Algunas interfaces permiten reintentar entregas fallidas
  • Los registros suelen limpiarse tras 30 días

7. Probar Webhook

Usa Test Webhook para enviar un payload de prueba. Útil para verificar que tu endpoint es accesible y está configurado correctamente.


Buenas prácticas

  • Usa HTTPS para las URLs de webhooks
  • Verifica la firma para asegurarte de que las peticiones provienen del módulo
  • Responde rápidamente (p. ej., 200 OK) - el timeout es de ~30 segundos
  • Maneja duplicados - el mismo evento puede reintentarse
  • Monitorea los registros para entregas fallidas