Saltar a contenido

Triggers

Los triggers son eventos que activan agentes automáticamente sin intervención manual.

¿Qué es un trigger?

Un trigger es una condición o evento que, cuando se cumple, ejecuta un agente o tarea:

graph LR
    E[Evento] -->|Trigger| A[Agente]
    A --> R[Respuesta/Acción]

    subgraph "Tipos de eventos"
        W[Webhook]
        S[Schedule]
        M[Mensaje]
    end

    W --> E
    S --> E
    M --> E

Tipos de triggers

Webhook Trigger

Se activa cuando se recibe una llamada HTTP a una URL específica.

Propiedad Descripción
URL Endpoint único generado por Nexus
Método GET, POST, PUT, DELETE
Payload Datos enviados en la petición
Headers Cabeceras HTTP opcionales

Casos de uso:

  • Notificaciones de GitHub (push, PR, issues)
  • Alertas de Sentry
  • Eventos de CI/CD
  • Integraciones con servicios externos

Schedule Trigger

Se activa según un horario definido (expresión CRON).

Propiedad Descripción
CRON Expresión de programación
Timezone Zona horaria
Habilitado Activo/Inactivo

Casos de uso:

  • Backups programados
  • Reportes diarios
  • Limpieza de datos
  • Sincronizaciones periódicas

Message Trigger

Se activa cuando se recibe un mensaje por un canal específico.

Propiedad Descripción
Canal WhatsApp, Email, etc.
Patrón Texto o regex que activa
Remitente Filtro por origen

Casos de uso:

  • Comandos por WhatsApp
  • Respuestas automáticas
  • Escalación de incidentes

Gestionar triggers

Ver triggers de un agente

  1. Ve a Agentes
  2. Abre el agente deseado
  3. Haz clic en la pestaña Triggers
┌─────────────────────────────────────────────────────────────────┐
│ Triggers                                      [+ Añadir Trigger]│
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │ ⚡ Webhook: GitHub Push                           [✓] [✕] │  │
│  │ URL: https://nexus.../webhook/abc123                     │  │
│  │ Último trigger: hace 2 horas                             │  │
│  └──────────────────────────────────────────────────────────┘  │
│                                                                 │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │ ⚡ Schedule: Diario 9:00                          [✓] [✕] │  │
│  │ CRON: 0 9 * * *                                          │  │
│  │ Próximo: mañana a las 09:00                              │  │
│  └──────────────────────────────────────────────────────────┘  │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Crear webhook trigger

  1. Haz clic en + Añadir Trigger
  2. Selecciona Webhook
  3. Configura:
Campo Descripción
Nombre Identificador del trigger
Descripción Propósito del trigger
Método HTTP method esperado
Secret Token de verificación (opcional)
  1. Haz clic en Crear
  2. Copia la URL generada

Crear schedule trigger

  1. Haz clic en + Añadir Trigger
  2. Selecciona Schedule
  3. Configura:
Campo Descripción
Nombre Identificador del trigger
CRON Expresión de horario
Timezone Zona horaria
Habilitado Estado inicial
  1. Haz clic en Crear

Editar trigger

  1. Haz clic en el trigger existente
  2. Modifica los campos necesarios
  3. Haz clic en Guardar

Eliminar trigger

  1. Haz clic en junto al trigger
  2. Confirma la eliminación

Webhooks externos

Si eliminas un webhook trigger, asegúrate de actualizar el servicio externo que lo usaba.

Configurar webhooks externos

GitHub

  1. Ve a tu repositorio en GitHub
  2. Settings > Webhooks > Add webhook
  3. Payload URL: Pega la URL del trigger de Nexus
  4. Content type: application/json
  5. Secret: El mismo que configuraste en Nexus
  6. Selecciona los eventos que quieres recibir
  7. Haz clic en Add webhook

Sentry

  1. Ve a tu proyecto en Sentry
  2. Settings > Integrations > Webhooks
  3. Callback URL: URL del trigger de Nexus
  4. Selecciona los eventos (Issue, Error, etc.)
  5. Guarda la configuración

Otros servicios

La mayoría de servicios modernos soportan webhooks. Busca en la configuración del servicio:

  • "Webhooks"
  • "Notifications"
  • "Integrations"
  • "Events"

Logs de triggers

Para ver el historial de activaciones:

  1. En el trigger, haz clic en Ver logs
  2. Verás:
  3. Fecha/hora de activación
  4. Payload recibido
  5. Respuesta del agente
  6. Estado (éxito/error)
┌─────────────────────────────────────────────────────────────────┐
│ Logs del Trigger: GitHub Push                                   │
├─────────────────────────────────────────────────────────────────┤
│ Fecha              │ Estado  │ Duración │ Payload              │
├────────────────────┼─────────┼──────────┼──────────────────────┤
│ 2025-01-25 14:30   │ ✓ OK    │ 2.3s     │ {"ref": "main"...}   │
│ 2025-01-25 12:15   │ ✓ OK    │ 1.8s     │ {"ref": "dev"...}    │
│ 2025-01-25 10:00   │ ✗ Error │ 0.5s     │ {"ref": "feat..."}   │
└────────────────────┴─────────┴──────────┴──────────────────────┘

Habilitar/Deshabilitar

Toggle rápido

  • Usa el switch [✓] junto al trigger para activar/desactivar sin eliminarlo

Desde la edición

  1. Edita el trigger
  2. Cambia el estado Habilitado
  3. Guarda

Seguridad en webhooks

Verificación de firma

Configura un secret para verificar que las peticiones vienen del origen esperado:

  1. Al crear el trigger, define un Secret
  2. El servicio externo debe firmar las peticiones con ese secret
  3. Nexus verifica la firma antes de procesar

Filtrado por IP

Si está disponible, configura rangos de IP permitidos:

  • GitHub: 192.30.252.0/22, 185.199.108.0/22
  • Otros servicios: Consulta su documentación

Rate limiting

Nexus aplica límites de frecuencia para prevenir abusos:

  • Máximo 100 webhooks por minuto por trigger
  • Máximo 1000 webhooks por hora por agente

Preguntas frecuentes

¿Puedo tener múltiples triggers en un agente?

Sí, un agente puede tener tantos triggers como necesites.

¿Qué pasa si el webhook falla?

El error se registra en los logs. Algunos servicios reintentarán automáticamente.

¿Puedo probar un webhook manualmente?

Sí, usa herramientas como curl o Postman para enviar peticiones de prueba a la URL del webhook.

curl -X POST https://nexus.../webhook/abc123 \
  -H "Content-Type: application/json" \
  -d '{"test": true}'

Siguiente: System Prompts - Las instrucciones base de los agentes.