Descripción General
Esta guía te guía a través de la configuración de webhooks en tu dashboard de Gu1. Los webhooks se configuran a nivel de organización y se aplican a todos los eventos que coincidan con tus filtros.Requisitos Previos
Antes de configurar webhooks, necesitas:- ✅ Una cuenta activa de Gu1 con permisos de administrador
- ✅ Un endpoint HTTPS públicamente accesible para recibir webhooks
- ✅ (Opcional) Un secreto de webhook para verificación de firmas
Para desarrollo local, usa herramientas como ngrok para crear una URL pública que haga túnel a tu servidor local.
Configuración Paso a Paso
Paso 1: Navegar a Configuración de Webhooks
- Inicia sesión en tu dashboard de Gu1 en app.gu1.ai
- Ve a Settings → Webhooks
- Haz clic en Add Webhook o Create Webhook
Paso 2: Información Básica
Nombra tu webhook
Ingresa un nombre descriptivo para identificar este webhookEjemplos:
- “Production KYC Webhook”
- “Sandbox Entity Events”
- “Compliance Monitoring”
Agregar descripción (opcional)
Agrega notas sobre para qué se usa este webhookEjemplo: “Envía eventos de aprobación de KYC a nuestro sistema CRM”
Paso 3: Seleccionar Ambiente
Elige a qué ambiente se aplica este webhook:- Sandbox
- Production
Usar para:
- Desarrollo y pruebas
- Ambientes de staging
- Procesos de QA
- Eventos de llamadas API de sandbox
- Validaciones y transacciones de prueba
Puedes crear webhooks separados para sandbox y producción con URLs diferentes. Esto permite pruebas seguras sin afectar sistemas de producción.
Paso 4: Suscribirse a Eventos
Selecciona qué tipos de eventos activan este webhook:Opción A: Suscribirse a Todos los Eventos en una Categoría
entity.*- Todos los eventos de entidadeskyc.*- Todos los eventos de validación de KYCrule.*- Todos los eventos de reglastransaction.*- Todos los eventos de transacciones (próximamente)alert.*- Todos los eventos de alertas (próximamente)
Opción B: Suscribirse a Eventos Específicos
Selecciona eventos individuales: Eventos de Entidades:- ☐
entity.created - ☐
entity.updated - ☐
entity.status_changed - ☐
entity.deleted(próximamente)
- ☐
kyc.validation_created - ☐
kyc.validation_in_progress - ☐
kyc.validation_approved - ☐
kyc.validation_rejected - ☐
kyc.validation_abandoned - ☐
kyc.validation_expired
- ☐
rule.triggered
Paso 5: Configurar Filtros (Opcional)
Agrega filtros para recibir solo eventos relevantes:Filtrar por Tipo de Entidad
Filtrar por Tipo de Entidad
Solo activa webhook para tipos de entidades específicas:Opciones:
- Person
- Company
- Device
- Payment Method
Filtrar por Cambios de Estado
Filtrar por Cambios de Estado
Solo activar cuando los cambios de estado coincidan con criterios específicos:Estado Desde: Solo activar cuando cambia DESDE este estado
under_reviewactiveblockedpending
activeblockedarchived
blockedFiltrar por Bandera de Cliente
Filtrar por Bandera de Cliente
Filtrar eventos basados en la bandera
isClient de la entidad:Opciones:- Solo clientes (
isClient: true) - Solo no clientes (
isClient: false) - Todas las entidades (sin filtro)
Filtros Personalizados
Filtros Personalizados
Agrega filtros avanzados basados en JSON para escenarios complejos:Este ejemplo solo activa para entidades de tipo persona que son clientes cuando cambian a estado bloqueado.
Paso 6: Configurar Política de Reintentos (Opcional)
Personaliza cómo Gu1 maneja entregas de webhooks fallidas:maxRetries- Intentos de reintento máximos (predeterminado: 3)retryDelayMs- Retraso inicial antes del primer reintento (predeterminado: 1000ms)backoffMultiplier- Multiplicador para retroceso exponencial (predeterminado: 2)
- Intento inicial en T+0s
- Primer reintento en T+1s (1000ms)
- Segundo reintento en T+3s (1000ms × 2)
- Tercer reintento en T+7s (1000ms × 2 × 2)
Paso 7: Agregar Encabezados Personalizados (Opcional)
Agrega encabezados HTTP personalizados a las solicitudes de webhook: Casos de uso comunes:- Tokens de autorización:
Authorization: Bearer token123 - API keys:
X-API-Key: your-api-key - Identificadores personalizados:
X-Webhook-Source: gu1
Paso 8: Guardar Secreto del Webhook
Después de crear el webhook, Gu1 genera automáticamente un secreto:Copiar el secreto
IMPORTANTE: Copia y guarda este secreto inmediatamente. No podrás verlo de nuevo.El secreto se ve como:
whsec_abc123def456...Almacenar de forma segura
Guarda el secreto en tus variables de entorno o administrador de secretos:
Usar para verificación
Usa este secreto para verificar firmas de webhook en tu endpoint.Aprende sobre verificación de firmas →
Paso 9: Habilitar Webhook
Cambia el webhook a estado Enabled:- ✅ Enabled - Webhook recibe eventos activamente
- ⏸️ Disabled - Webhook pausado, no se envían eventos
Paso 10: Probar tu Webhook
Antes de poner en marcha, prueba tu webhook:Verificar recepción
Verifica los logs de tu endpoint para confirmar:
- ✅ Solicitud recibida
- ✅ Firma verificada (si está implementada)
- ✅ Estado 200 devuelto
Gestionar Webhooks
Ver Lista de Webhooks
Ve a Settings → Webhooks para ver todos los webhooks configurados: Información mostrada:- Nombre y descripción
- URL del endpoint
- Ambiente (sandbox/production)
- Estado (enabled/disabled)
- Suscripciones de eventos
- Estadísticas (conteos de éxito/fallo)
- Última marca de tiempo activada
Editar Webhook
Haz clic en un webhook para editar:- ✏️ Actualizar nombre, descripción o URL
- 🔔 Cambiar suscripciones de eventos
- 🎯 Modificar filtros
- ⚙️ Ajustar política de reintentos
- 🔄 Agregar/eliminar encabezados personalizados
Ver Logs de Webhook
Haz clic en View Logs o History para ver intentos de entrega: Detalles del log:- Marca de tiempo de entrega
- Tipo de evento
- Código de estado HTTP
- Tiempo de respuesta
- Cuerpo de respuesta
- Número de intento de reintento
- Mensajes de error (si falló)
- Depurar fallos de entrega
- Monitorear rendimiento
- Investigar eventos duplicados
- Verificar datos de eventos
Regenerar Secreto
Si tu secreto de webhook está comprometido:- Haz clic en Regenerate Secret
- Copia el nuevo secreto inmediatamente
- Actualiza tu aplicación con el nuevo secreto
- El secreto antiguo deja de funcionar inmediatamente
Deshabilitar/Habilitar Webhook
Pausa temporalmente un webhook sin eliminarlo:- Haz clic en el toggle para Disable
- No se enviarán eventos mientras esté deshabilitado
- Toda la configuración se preserva
- Vuelve a habilitar en cualquier momento para reanudar
- Mantenimiento en tu endpoint
- Depuración de problemas
- Detener temporalmente el flujo de eventos
Eliminar Webhook
Eliminar permanentemente un webhook:- Haz clic en Delete en el webhook
- Confirmar eliminación
- El webhook se elimina permanentemente
- Los logs se conservan por 90 días
Monitoreo y Estadísticas
Cada webhook muestra métricas clave:Tasa de Éxito
- Total Triggers: Intentos de entrega totales
- Success Count: Entregas exitosas (respuestas 2xx)
- Failure Count: Entregas fallidas
- Success Rate: Porcentaje de entregas exitosas
Marcas de Tiempo
- Last Triggered: Intento de entrega más reciente
- Last Success: Entrega exitosa más reciente
- Last Failure: Entrega fallida más reciente
Rendimiento
- Average Response Time: Tiempo promedio para que tu endpoint responda
- P95 Response Time: Tiempo de respuesta percentil 95
- Identificar webhooks problemáticos
- Monitorear salud del endpoint
- Optimizar procesamiento de webhooks
- Detectar problemas de entrega
Mejores Prácticas
Usar Nombres Descriptivos
Usar Nombres Descriptivos
Nombra los webhooks claramente para identificar su propósito:✅ Bueno: “Production KYC → CRM Integration”❌ Malo: “Webhook 1”
Separar Ambientes
Separar Ambientes
Crea webhooks diferentes para sandbox y producción:
- URLs diferentes (staging vs production)
- Prueba primero en sandbox
- Nunca mezcles ambientes
Comenzar con Eventos Específicos
Comenzar con Eventos Específicos
Empieza con eventos que necesitas, expande después:✅ Inicio: Suscribirse a
kyc.validation_approved✅ Después: Agregar kyc.validation_rejected, entity.status_changedUsar Filtros Sabiamente
Usar Filtros Sabiamente
Agrega filtros para reducir ruido:
- Filtrar por tipo de entidad si solo te interesan personas
- Filtrar por cambios de estado para transiciones específicas
- Usar filtros personalizados para escenarios complejos
Monitorear Regularmente
Monitorear Regularmente
Revisa la salud del webhook semanalmente:
- Revisar tasas de éxito
- Investigar fallos
- Verificar tiempos de respuesta
- Actualizar filtros según sea necesario
Documentar tus Webhooks
Documentar tus Webhooks
Mantén documentación interna:
- Qué webhook maneja qué
- Qué acciones activa
- Quién es dueño de la integración
- Pasos de resolución de problemas
Resolución de Problemas
Webhook No Recibe Eventos
Webhook No Recibe Eventos
Lista de verificación:
- ✅ Webhook está habilitado
- ✅ Ambiente correcto seleccionado
- ✅ Suscrito a tipos de eventos correctos
- ✅ Filtros no demasiado restrictivos
- ✅ URL es correcta y accesible
- ✅ Endpoint devuelve estado 200
Todas las Entregas Fallan
Todas las Entregas Fallan
Causas comunes:
- Endpoint está caído o inalcanzable
- Firewall bloqueando solicitudes de Gu1
- Endpoint expirando (>30s)
- Endpoint devolviendo estado no-2xx
- Problemas de certificado SSL
Recibiendo Demasiados Eventos
Recibiendo Demasiados Eventos
Soluciones:
- Agregar filtros para reducir alcance
- Desuscribirse de tipos de eventos no usados
- Usar filtros de tipo de entidad
- Agregar filtros de cambio de estado
Eventos Duplicados
Eventos Duplicados
Esto es comportamiento normal debido a reintentos. Siempre implementa idempotencia usando IDs de eventos.Aprende sobre manejo de duplicados →