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ágina | Quién | Qué configuras |
|---|---|---|
| Organization → Notifications | Propietarios y administradores | Qué eventos envía la organización, sus canales y el canal de Slack de cada proyecto. |
| My notifications | Todos los miembros | Qué eventos te llegan por correo, Slack y en la app, la frecuencia del resumen, las horas de silencio y los filtros. |
| Organization → Integrations → Webhooks | Propietarios y administradores | Los endpoints que reciben JSON firmado. |
Eventos
| Evento | Se envía cuando |
|---|---|
| Run started | Empieza una ejecución. |
| Run completed | Termina una ejecución, sea cual sea su resultado. |
| Run failed | Una ejecución termina sin superarse. Siempre activado para la organización; tú eliges dónde lo recibes. |
| New issues | Una ejecución encuentra una incidencia nueva o reabre una resuelta, aunque todos los pasos se hayan superado. |
| Report ready | Un informe PDF o HTML está listo. |
| Threshold breach | La tasa de fallos o el tiempo de ejecución superan tus límites. |
| Member joined | Alguien se une a la organización. |
| Member removed | Se retira el acceso de un miembro. |
| Infrastructure alert | Problemas 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.
- Abre Organization → Integrations → Webhooks y pulsa Add endpoint.
- Introduce la URL del endpoint y elige sus eventos.
- 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.
- 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:
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ó:
cause | Significado |
|---|---|
"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?