Skip to main content
Las automatizaciones te permiten conectar eventos externos — mensajes de Slack, webhooks de GitHub, actualizaciones de tickets de Linear, programaciones y webhooks personalizados — con sesiones de Devin que se inician automáticamente. En lugar de etiquetar manualmente a Devin cada vez que se reporta un bug o falla una comprobación de CI, defines el disparador una sola vez y Devin gestiona cada evento a medida que llega. También puedes gestionar las automatizaciones de forma declarativa con el proveedor de Terraform. Para ver un recorrido en video con cuatro ejemplos, consulta el tutorial de automatizaciones de Devin.

Conceptos básicos

Una automatización tiene un disparador y acciones, además de condiciones opcionales y una verificación previa (Preflight check):

Tipos de acciones

Fuentes de trigger

Las fuentes que no son de programación aparecen en el picker de triggers una vez que la integración correspondiente está conectada en Settings > Connections. Una sola automatización puede tener múltiples triggers: funcionan como un OR, por lo que la automatización se ejecuta cuando coincide cualquiera de sus triggers. Por ejemplo, puedes tener una automatización que se ejecute tanto ante un fallo de CI en GitHub como ante una reacción en Slack.

Crear una automatización

Desde la página de automatizaciones

  1. Ve a automatización en la barra lateral
  2. Haz clic en crear automatización y elige Create para abrir un editor en blanco (si aún no tienes automatizaciones, haz clic en Create manually en la página de inicio). El mismo menú también ofrece plantilla (abre la galería de plantillas) y Generate with Devin (inicia una sesión que crea la automatización contigo)
  3. Configura el disparador, las Conditions y la Action
  4. Haz clic en crear automatización

A partir de una plantilla

  1. Ve a Automatizaciones en la barra lateral
  2. Haz clic en Crear automatización > Plantilla (si aún no tienes automatizaciones, haz clic en Crear a partir de una plantilla en la página de inicio), o ve directamente a /automations/templates
  3. Explora la galería de plantillas: cada plantilla es una automatización preconfigurada para un flujo de trabajo habitual
  4. Haz clic en una plantilla para precargar el editor con su disparador, acción y límites sugeridos
  5. Personaliza la configuración (p. ej., selecciona tu canal de Slack o repositorio) y haz clic en Crear automatización

Cómo usar el lenguaje natural

En la página de automatizaciones, haz clic en Crear automatización > Generate with Devin (si todavía no tienes automatizaciones, haz clic en la card Generate with Devin de la página de inicio). Devin abre una nueva sesión para ayudarte a crear la automatización. Describe lo que quieres; por ejemplo: “Cuando falle una comprobación de CI en my-org/my-repo, haz que Devin lo solucione y haga push a la misma rama”. Devin generará la configuración de la automatización para ti, que luego podrás revisar y crear.

Configuración de disparadores

Disparadores de Slack

Los disparadores de Slack se activan cuando se publica un mensaje o se agrega una reacción en un canal al que Devin ha sido invitado.
  • Mensaje de Slack: Se activa cuando hay mensajes nuevos. De forma predeterminada se agrega una condición de canal; puedes eliminarla para que coincida con mensajes de todos los canales, pero en ese caso cada grupo de condiciones necesita al menos otro filtro (por ejemplo, el texto del mensaje o el tipo de remitente; Include thread replies por sí solo no es suficiente).
  • Mención de grupo de usuarios: Se activa cuando se menciona a un grupo de usuarios de Slack (por ejemplo, @oncall). Selecciona el grupo o introduce su ID de Slack (empieza por S) y, si quieres, limítalo a canales específicos.
  • Reacción de Slack: Se activa cuando se agrega a un mensaje una reacción con un emoji específico (p. ej., 🚨 para incidentes). Puedes filtrar por el nombre de la reacción y por el canal.
Para los disparadores acotados a un canal, Devin debe estar invitado al canal de Slack. También debes tener conectada tu cuenta personal de Slack en Settings > Connections > Slack.

Disparadores de GitHub

Los disparadores de GitHub se activan con eventos del repositorio. Debes seleccionar un repositorio específico para cada disparador.
  • Incidencia: Se activa con eventos de incidencias (apertura, cierre, reapertura, edición, etiquetado).
  • Comentario en incidencia: Se activa cuando se publica un comentario en una incidencia de GitHub. Suele usarse con una condición starts_with "/devin" para que los usuarios puedan escribir /devin en cualquier incidencia y activar Devin.
  • Pull request: Se activa con eventos de PR (apertura, sincronización, etc.).
  • Revisión de pull request: Se activa cuando se envía una revisión sobre una PR.
  • Comentario de revisión de pull request: Se activa con comentarios de revisión individuales.
  • ejecución de check (CI): Se activa cuando se completa una comprobación de CI. Filtra por conclusion = failure para corregir automáticamente compilaciones fallidas.
  • Push: Se activa al hacer push a una rama.
De forma predeterminada, las automatizaciones de GitHub solo se activan en repositorios privados. Un Admin puede habilitar repositorios públicos para una conexión de GitHub individual: en Settings → Connections → GitHub, abre el menú de la conexión y configura Ámbito de automatización como Todos los repos instalados. Cualquier persona en internet puede comentar en un repo público o abrir una PR en él, por lo que los disparadores de repos públicos conllevan un mayor riesgo de inyección de prompts; habilítalos deliberadamente y mantén las condiciones de los disparadores limitadas.

Disparadores de GitLab

Los disparadores de GitLab se activan con eventos de proyecto en tu instancia de GitLab conectada:
  • Solicitud de fusión: se activa con acciones en la MR (abierta, cerrada, fusionada, reabierta, aprobada, actualizada).
  • Comentario de MR: se activa cuando se publica un comentario (note) en una solicitud de fusión, incluidos los threads de review del diff.
  • Incidencia: se activa con acciones en la incidencia (abierto, cerrado, reabierto, actualizado).
  • Comentario en issue: se activa cuando se publica un comentario en una incidencia.
  • Push: se activa con los pushes a una rama.
  • Proceso: se activa cuando un proceso alcanza un status determinado; filtra por status (p. ej. failed) para aplicar corrección automática a los procesos que fallan.

Disparadores de Linear

Los disparadores de Linear se activan cuando ocurren eventos de incidencias en tu espacio de trabajo de Linear conectado. Debes seleccionar un equipo para cada disparador.
  • Incidencia creada: Se activa cuando se crea una nueva incidencia en el equipo seleccionado.
  • Etiqueta agregada: Se activa cuando se aplica una etiqueta a una incidencia (p. ej. bug, devin).
  • Estado cambiado: Se activa cuando cambia el estado de una incidencia (p. ej. cuando se mueve a “In Progress”).
  • Prioridad cambiada: Se activa cuando cambia la prioridad de una incidencia.
  • Asignada: Se activa cuando se asigna una incidencia a alguien.
  • Incidencia movida: Se activa cuando una incidencia se mueve a otro equipo: el filtro de equipo del disparador coincide con el equipo de destino.

Disparadores de Jira

Los disparadores de Jira se activan con eventos de incidencias en tu sitio de Jira conectado. Puedes filtrar por proyecto, etiquetas, status, persona asignada y épica:
  • Incidencia creada: se activa cuando se crea una nueva incidencia.
  • Incidencia actualizada: se activa cuando cambian los campos de una incidencia.
  • Etiqueta agregada: se activa cuando se aplica una etiqueta a una incidencia.
  • Estado cambiado: se activa cuando cambia el status de una incidencia.
  • Asignada: se activa cuando se asigna una incidencia a alguien.
  • Comentario creado o editado: se activa cuando se agrega o se edita un comentario en una incidencia.

Disparadores de programación

Los disparadores de programación se ejecutan según una programación basada en el tiempo, ya sea de forma recurrente o como una ejecución puntual. En el menú desplegable de disparadores, expande Programación y elige Cada hora, Cada día, Cada semana, Ejecutar una vez o Programación personalizada.
  • Recurrente: Configura la frecuencia (cada hora, cada día o cada semana) y la hora. Internamente, las programaciones usan el formato RRULE de iCalendar. Elige Programación personalizada para crear una recurrencia personalizada (repetir cada N minutos/horas/días/semanas/meses) o introducir directamente una cadena RRULE (p. ej. FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0) para cadencias más complejas.
  • Ejecutar una vez: Se activa una sola vez en una fecha y hora futuras concretas, y luego se desactiva automáticamente. Es útil para tareas puntuales con retraso; p. ej., “despierta a Devin dentro de 12 horas para ejecutar una tarea”. Elige la fecha y la hora (de forma predeterminada, una hora a partir de ahora); debe ser en el futuro.
Cada programación tiene su propia zona horaria, que por defecto es la de tu navegador y se puede cambiar en el editor de la programación. La programación se ejecuta a esa hora local, incluso cuando hay cambios al horario de verano.

Disparadores de webhook

Los disparadores de webhook te permiten conectar cualquier sistema externo a Devin mediante un endpoint HTTPS único.
  1. Crea una automatización con un disparador de Webhook
  2. Copia la URL del webhook y el secreto que se muestran en la configuración del disparador
  3. Configura tu sistema externo (PagerDuty, Datadog, Sentry o cualquier herramienta personalizada) para que envíe solicitudes HTTP POST a esta URL
  4. Opcionalmente, agrega un filtro de carga útil: un patrón regex con el que debe coincidir el cuerpo de la solicitud para que se active la automatización
Envía el secreto del webhook de cualquiera de estas formas:
  • Encabezado X-Webhook-Secret: <secret>
  • Encabezado Authorization: Bearer <secret>
  • Parámetro de consulta ?secret=<secret>
Prefiere un encabezado: las cadenas de consulta suelen registrarse en los logs de acceso de proxy, CDN y servidor. La carga útil del webhook se incluye en el prompt de la sesión de Devin como contexto. Las cargas útiles de más de 200 KB se truncan automáticamente.

Secreto del webhook

Cada disparador de webhook tiene un secreto que autentica las solicitudes entrantes; las llamadas que no incluyan el secreto correcto se rechazan. El secreto se genera automáticamente y se muestra al agregar el disparador de webhook en el editor de automatizaciones.
Copie el secreto cuando se muestre; no volverá a mostrarse. Un secreto perdido no se puede recuperar; genérelo de nuevo.
Cada solicitud debe incluir el secreto en el encabezado HTTP X-Webhook-Secret. Por ejemplo, para probarlo con curl:
Si pierdes el secreto o necesitas rotarlo, abre el disparador de webhook en el editor de automatizaciones y vuelve a generarlo. El secreto anterior deja de funcionar de inmediato, así que actualiza tu sistema externo con el nuevo valor.

Comprobaciones previas

Una comprobación previa (Preflight check) es un script opcional que se ejecuta entre un trigger coincidente y las acciones de la automatización. Úsala cuando las condiciones del trigger no sean suficientes: por ejemplo, para comprobar si una alerta sigue activa antes de iniciar Devin, o para sondear un servicio externo según una programación e iniciar una sesión por cada elemento nuevo. El script se ejecuta en una máquina virtual (VM) independiente y de corta duración, no dentro de la sesión de Devin que pueda iniciar. Puede leer el evento, conservar una pequeña cantidad de estado entre ejecuciones y decidir qué trabajo llega a las acciones configuradas.
Las comprobaciones previas se están implementando de forma gradual. Si Add a step before the agent runs no aparece en tu editor de automatizaciones, esta funcionalidad aún no está habilitada en tu organización.

Configurar y probar una comprobación Preflight

  1. Crea una automatización o edita una existente, y configura sus triggers y condiciones.
  2. Haz clic en Add a step before the agent runs, debajo de la sección del trigger. Se abrirá la card Before the agent runs.
  3. Haz clic en Edit script, elige Python, Node (JavaScript) o Bash en el selector de runtime y edita el script inicial.
  4. Si es necesario, usa Select secrets en el editor de scripts para adjuntar secretos de la organización. Solo los secretos seleccionados se inyectan como variables de entorno. Para guardar o probar un script con secretos adjuntos, necesitas permiso para gestionar los secretos de la organización.
  5. Define Timeout (seconds) en la card: el valor predeterminado es de 60 segundos y el rango permitido va de 1 a 300 segundos. De forma predeterminada, el script usa el Minimal environment; si hay imágenes de la máquina disponibles, el selector Environment también te permite elegir una instantánea de la organización con tus dependencias.
  6. En el editor de scripts, elige un evento en Test against y haz clic en Run. Puedes probar el script sin guardar con una muestra de un trigger configurado o con un evento reciente de una automatización existente. Revisa el resultado, el registro y, en el caso de los elementos emitidos, la vista previa de cuántos se ejecutarían, cuántos serían duplicados y cuántos se aplazarían.
  7. Haz clic en Save script para aplicar los cambios del editor y, después, en Create automation, o guarda la automatización para conservar la configuración.
Las ejecuciones de prueba ejecutan tu script, pero no ejecutan las acciones de la automatización, no modifican su estado guardado ni marcan los elementos emitidos como procesados. Cualquier solicitud externa o efecto secundario que realice tu script es real. Por ejemplo, si pruebas un script que escribe en un servicio externo, la escritura se realizará igualmente.
El botón Run now de la automatización omite Preflight y ejecuta directamente las acciones configuradas. Para probar el script, usa en su lugar Test against → Run dentro de Edit script.

Entrada y salida del script

El script recibe estas variables de entorno. Cada una contiene una ruta de archivo, no los datos JSON en sí: Escribe solo uno de los campos run o items en OUTPUT_FILE, opcionalmente acompañado de un reason de tipo string: Por ejemplo, este script de Python solo deja pasar un mensaje de Slack si su texto contiene urgent:
Selecciona un mensaje de Slack de ejemplo o un mensaje reciente de Slack en Test against para revisar el resultado. No basta con imprimir una decisión en la salida estándar: el script debe escribir JSON válido en OUTPUT_FILE y finalizar con el código 0.

Elementos, estado y límites

  • Prevención de duplicados: El id de un elemento identifica una unidad de trabajo dentro de esta automatización, no solo una entidad. {"id": "INC-1"} se procesa una sola vez; agrega un version, como la marca de tiempo de la última actualización en el sistema de origen, para procesar una nueva ocurrencia de ese incidente. Sin un id, Preflight identifica el elemento mediante un hash de su contenido, por lo que modificar el contenido puede provocar otra ejecución.
  • Límite de elementos por ejecución: De forma predeterminada, se despachan como máximo 10 elementos nuevos por ejecución; el límite máximo del sistema es 50. Los elementos que superan el límite no se procesan ni se programan automáticamente, así que la siguiente ejecución de tu script debe volver a emitirlos. No avances un cursor más allá del trabajo pendiente solo porque haya aparecido en tu salida.
  • Resultados anteriores: Usa LAST_RUN_FILE para distinguir el trabajo en curso, completado, fallido u omitido. Cuando la ejecución de un elemento falla, este se libera, de modo que una ejecución posterior del script puede volver a emitirlo.
  • Estado persistente: Las ejecuciones en vivo del script de una automatización se realizan de una en una. Si un script falla, no avanza el estado guardado ni marca elementos como procesados. Clear state borra tanto el estado JSON guardado como el historial de elementos ya procesados; tras este restablecimiento, los elementos procesados anteriormente pueden volver a ejecutarse.
  • Límites de tamaño: El código fuente del script y su salida están limitados a 256 KiB cada uno, el estado guardado a 64 KiB y los registros capturados a 1 MiB.
  • Fallos: Un código de salida distinto de cero, un tiempo de espera agotado, una salida o un estado no válidos, o un fallo de infraestructura detienen ese evento antes de que se ejecuten sus acciones. El script no se reintenta automáticamente para ese evento; un trigger posterior puede volver a ejecutarlo.
  • Acceso a la red: La VM del script se rige por las restricciones de red de la automatización y por el perfil de seguridad aplicable. Por ejemplo, para sondear un servicio de alertas externo, su host debe estar permitido. Adjuntar un secreto no otorga acceso a la red.

Configurar acciones

Iniciar una sesión

La acción más común. Cuando se activa el disparador, Devin inicia una nueva sesión con tu prompt. La carga útil del evento (p. ej., el texto del mensaje de Slack, el cuerpo del webhook de GitHub o los detalles del ticket de Linear) se agrega automáticamente al prompt para que Devin tenga el contexto completo. Opciones:
  • Prompt: Las instrucciones que sigue Devin. Redáctalo como lo harías con un prompt normal de Devin.
  • Playbook (opcional): Usa @playbook-name en tu prompt para incluir un playbook con instrucciones adicionales.
  • Tags (opcional): Agrega etiquetas a las sesiones creadas por esta automatización para facilitar el filtrado.

Enviar un mensaje a una sesión

Envía un mensaje a una sesión de Devin existente y de larga duración. Resulta útil cuando quieres que una única sesión persistente procese eventos con el tiempo, en lugar de crear una nueva para cada evento. Debes seleccionar la sesión de destino al configurar esta acción.

Triaje de Devin (monitor)

Crea una sesión persistente de Devin que supervisa un canal de Slack. Consulta la guía de triaje automático para conocer todos los detalles sobre este tipo de acción.

Notificación por correo electrónico

Envía una notificación por correo electrónico cuando se ejecuta la automatización. Elige cuándo recibirla:
  • Siempre — en cada invocación
  • En caso de error — solo cuando la sesión falla o se produce un error
  • En caso de éxito — solo cuando la sesión se completa correctamente

Límites y salvaguardas

Las automatizaciones incluyen controles integrados para evitar un uso excesivo:

Límite de ACU

Establece un presupuesto máximo de ACU (unidades de cómputo del agente) por cada sesión iniciada por esta automatización. Si Devin alcanza ese límite, la sesión se detiene. Esto evita que una sola invocación consuma recursos en exceso.

Límite de invocaciones

Establece un tope de cuántas veces puede activarse la automatización en un periodo determinado. Por ejemplo, “como máximo 10 invocaciones por hora” evita que un canal de Slack muy activo o una oleada de fallos de CI genere decenas de sesiones. Ambos campos son opcionales: si se borran, la automatización se ejecuta sin ese límite. Las nuevas automatizaciones empiezan sin límite de ACU y con un límite de tasa de 50 ejecuciones por hora (150 por hora para las automatizaciones de triaje que monitorean canales de Slack); las plantillas aplican los mismos valores predeterminados.

Puesta en cola

De forma predeterminada, cada evento coincidente inicia una ejecución de inmediato. Activa Enable queueing en el editor de automatizaciones para limitar cuántas ejecuciones se realizan a la vez:
  • Concurrent runs: el número máximo de ejecuciones simultáneas de esta automatización. Los eventos adicionales esperan en la cola. Una ejecución deja de contar para el límite en cuanto su sesión termina y queda a la espera de nuevas instrucciones.
  • Queue depth: el número máximo de eventos que pueden esperar en la cola. Los eventos que llegan cuando la cola está llena se descartan.
Las ejecuciones en cola aparecen con el estado Queued en la actividad de la automatización.

Política de red

Puede habilitar una política de red para restringir a qué hosts externos pueden acceder las sesiones de la automatización. Esto es especialmente importante para las automatizaciones que procesan entradas de usuarios no confiables (p. ej., mensajes de Slack o cargas útiles de webhooks). Puede agregar dominios específicos a la lista de permitidos si Devin necesita acceder a servicios externos. La política de red de una automatización solo restringe el acceso: se aplica de forma conjunta con el perfil de seguridad que rige las sesiones de la automatización.

Integraciones MCP

Se recomienda encarecidamente conectar integraciones MCP: mejoran drásticamente la calidad de las automatizaciones al darle a Devin acceso a datos del entorno de ejecución, como logs, métricas y detalles de errores.
Las automatizaciones usan integraciones MCP para darle a Devin acceso a herramientas externas. Al crear una automatización, la sección Connections muestra qué servidores MCP se recomiendan y cuál es su estado de conexión. Por ejemplo, la plantilla “Fix Sentry Errors Daily” recomienda el MCP de Sentry para que Devin pueda consultar Sentry en busca de errores no resueltos. La plantilla “Investigate Alerts Triggered” recomienda el MCP de Datadog para obtener métricas y trazas. Habilita los servidores MCP en la pestaña Settings → Connections → MCPs (o instala sus plugins desde el marketplace de plugins) antes de crear automatizaciones que los necesiten.

Acceso a las herramientas de Slack

De forma predeterminada, las sesiones de automatización pueden leer y escribir en los canales de Slack asociados al disparador. Puedes conceder acceso a canales de Slack adicionales en la sección herramientas de Slack del editor de automatización. Esto resulta útil cuando Devin necesita leer varios canales además del que activó la automatización.

Actividad y monitorización

Cada automatización registra el historial de sus invocaciones. En la página de detalles de la automatización, la pestaña Actividad muestra:
  • Invocaciones recientes con fecha y hora
  • Si cada invocación se completó correctamente o se omitió
  • Enlaces a las sesiones de Devin que se crearon
  • Mensajes de error de las invocaciones fallidas
La página de lista de automatizaciones muestra un minigráfico para cada automatización, que ofrece una vista general visual de la actividad de los últimos 30 días.

Activar y desactivar

Activa o desactiva una automatización en cualquier momento desde la lista de automatizaciones o la página de detalles. Las automatizaciones desactivadas dejan de procesar eventos, pero conservan su configuración. Al volver a activar una automatización, el procesamiento de eventos se reanuda de inmediato.

Plantillas

Devin incluye una biblioteca de plantillas de automatización predefinidas para flujos de trabajo habituales: Para explorar todas las plantillas, abre la página automatización en la app de Devin y haz clic en Crear automatización > Plantilla (o ve directamente a /automations/templates).