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¶
- Ve a Agentes
- Abre el agente deseado
- 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¶
- Haz clic en + Añadir Trigger
- Selecciona Webhook
- 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) |
- Haz clic en Crear
- Copia la URL generada
Crear schedule trigger¶
- Haz clic en + Añadir Trigger
- Selecciona Schedule
- Configura:
| Campo | Descripción |
|---|---|
| Nombre | Identificador del trigger |
| CRON | Expresión de horario |
| Timezone | Zona horaria |
| Habilitado | Estado inicial |
- Haz clic en Crear
Editar trigger¶
- Haz clic en el trigger existente
- Modifica los campos necesarios
- Haz clic en Guardar
Eliminar trigger¶
- Haz clic en junto al trigger
- 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¶
- Ve a tu repositorio en GitHub
- Settings > Webhooks > Add webhook
- Payload URL: Pega la URL del trigger de Nexus
- Content type:
application/json - Secret: El mismo que configuraste en Nexus
- Selecciona los eventos que quieres recibir
- Haz clic en Add webhook
Sentry¶
- Ve a tu proyecto en Sentry
- Settings > Integrations > Webhooks
- Callback URL: URL del trigger de Nexus
- Selecciona los eventos (Issue, Error, etc.)
- 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:
- En el trigger, haz clic en Ver logs
- Verás:
- Fecha/hora de activación
- Payload recibido
- Respuesta del agente
- 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¶
- Edita el trigger
- Cambia el estado Habilitado
- Guarda
Seguridad en webhooks¶
Verificación de firma¶
Configura un secret para verificar que las peticiones vienen del origen esperado:
- Al crear el trigger, define un Secret
- El servicio externo debe firmar las peticiones con ese secret
- 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.