Docs de Autonomy
Integraciones

Notificaciones y webhooks

Envía eventos de ejecuciones, incidencias y de la organización por correo, Slack, en la app y a webhooks firmados.

Autonomy avisa a las personas cuando pasa algo: una ejecución falla, una ejecución encuentra una incidencia nueva, se une un miembro. Los administradores deciden qué envía la organización y adónde. Después, cada miembro elige lo que le llega.

PáginaQuiénQué configuras
Organization → NotificationsPropietarios y administradoresQué eventos envía la organización, sus canales y el canal de Slack de cada proyecto.
My notificationsTodos los miembrosQué eventos te llegan por correo, Slack y en la app, la frecuencia del resumen, las horas de silencio y los filtros.
Organization → Integrations → WebhooksPropietarios y administradoresLos endpoints que reciben JSON firmado.

Eventos

EventoSe envía cuando
Run startedEmpieza una ejecución.
Run completedTermina una ejecución, sea cual sea su resultado.
Run failedUna ejecución termina sin superarse. Siempre activado para la organización; tú eliges dónde lo recibes.
New issuesUna ejecución encuentra una incidencia nueva o reabre una resuelta, aunque todos los pasos se hayan superado.
Report readyUn informe PDF o HTML está listo.
Threshold breachLa tasa de fallos o el tiempo de ejecución superan tus límites.
Member joinedAlguien se une a la organización.
Member removedSe retira el acceso de un miembro.
Infrastructure alertProblemas de capacidad de los runners o los dispositivos. Solo administradores.

Run failed siempre te llega por algún lado: si desactivas tanto el correo como Slack para este evento, uno de los dos se vuelve a activar. New issues no se envía cuando una ejecución ve una incidencia que ya está abierta; se envía una vez por cada incidencia nueva o reabierta. Por defecto va a Slack y a la app, no al correo.

Ajustes de la organización

En Organization → Notifications:

  • Events: qué envía la organización.
  • Channels: correo a cada miembro que lo tenga activado, el espacio de Slack y los endpoints de webhook (Manage los abre).
  • Route by project: el canal de Slack de cada proyecto. Run failed siempre va al canal del proyecto y al canal predeterminado. Consulta Slack.

Pulsa Save preferences cuando termines.

Tus ajustes

En My notifications, elige para cada evento si te llega por Email, Slack o In-app. En Digest settings:

  • Frequency: Real-time, Daily at 9:00 AM o Weekly on Monday. Las opciones diaria y semanal agrupan tu correo en un solo resumen.
  • Quiet hours: una franja en la que no se envía nada.
  • Only my runs: eventos de ejecución solo de las ejecuciones que iniciaste tú.
  • Always notify on production failures: los fallos en entornos de producción te llegan incluso durante las horas de silencio.

Cada correo tiene un enlace para darse de baja que abre estos ajustes.

El resumen semanal de un entorno del proyecto, con lo que se ejecutó, lo que se rompió y las incidencias encontradas, es otra cosa: lo revisas y lo publicas en la página Digests del proyecto.

Webhooks

Los webhooks envían eventos a tus propios sistemas como JSON firmado.

  1. Abre Organization → Integrations → Webhooks y pulsa Add endpoint.
  2. Introduce la URL del endpoint y elige sus eventos.
  3. En Projects, deja todos los proyectos sin marcar para recibir los eventos de todos, o marca algunos para recibir solo los suyos. Los eventos de la organización, como los de miembros y las alertas de infraestructura, van a todos los endpoints suscritos a ellos.
  4. Guarda, copia el Signing secret y envía un Test event.

Para cambiar el secreto, usa Roll secret: el secreto actual deja de funcionar al instante, así que actualiza tu receptor. Cada endpoint muestra su estado, su última entrega y su historial de entregas. Las entregas fallidas se reintentan con espera progresiva durante unas 24 horas. Un endpoint que sigue fallando se desactiva.

El payload

Cada entrega es un POST con un cuerpo JSON:

issue.foundjson
1{2  "type": "issue.found",3  "timestamp": "2026-10-05T14:30:00.000Z",4  "data": {5    "eventKey": "issueFound",6    "label": "New issues",7    "title": "issue.found",8    "body": "New bug: Checkout total ignores the discount code",9    "ctaLabel": null,10    "ctaUrl": null,11    "runId": "...",12    "runExecutionId": "...",13    "reportId": null,14    "actorUserId": null,15    "targetUserId": null,16    "project": {17      "id": "...",18      "name": "Storefront",19      "slug": "storefront"20    },21    "environment": "Staging",22    "isProduction": false,23    "metadata": {24      "issueId": "...",25      "issueHeadline": "New bug",26      "issueTitle": "Checkout total ignores the discount code",27      "issueKind": "Bug",28      "issueStatus": "new",29      "issueUrl": "https://app.autonomyqa.com/p/storefront/issues/...",30      "projectName": "Storefront",31      "environment": "Staging",32      "runName": "Checkout with a discount",33      "runUrl": "https://app.autonomyqa.com/p/storefront/runs/..."34    },35    "createdAt": 179121060000036  }37}

type es uno de run.started, run.completed, run.failed, issue.found, report.ready, threshold.breach, member.joined, member.removed e infrastructure.alert.

data.project es el proyecto del evento, o null en los eventos de la organización. data.metadata solo lleva un conjunto autorizado de datos: el nombre de la ejecución, el entorno, el resultado, la duración, los recuentos, los resultados de los pasos y los enlaces; el ID, el encabezado, el título, el tipo, el estado y el enlace de la incidencia; y los campos del umbral, del miembro o de la alerta. No se envía nada sobre el funcionamiento interno de Autonomy.

Un evento run.failed también tiene data.cause, que indica por qué la ejecución no se superó:

causeSignificado
"app"La ejecución falló. Ábrela para ver qué paso falló y por qué.
"couldnt_start"La ejecución dio Couldn't start, por ejemplo porque la app no abrió o no había ningún dispositivo de prueba disponible. Corrige la configuración y vuelve a ejecutarla.

Verificar la firma

Las entregas siguen Standard Webhooks. Cada una lleva las cabeceras webhook-id, webhook-timestamp y webhook-signature. La firma es un HMAC-SHA256 de <webhook-id>.<webhook-timestamp>.<body> con el secreto de firma del endpoint, enviado como v1,<base64>. Usa una biblioteca de Standard Webhooks para verificarla, rechaza todo lo que no coincida y rechaza las marcas de tiempo antiguas para evitar repeticiones. Usa webhook-id para ignorar una entrega que ya procesaste.

Qué enviar

Empieza por Run failed y New issues, enviados al equipo responsable del recorrido. Añade Run completed solo para un canal o un sistema que exista para registrar todos los resultados. Un canal que recibe todas las ejecuciones es un canal que nadie lee.

¿No lo encontraste?

On this page