Webhooks

  • Introducción

Los webhooks proporcionan una forma para que tu aplicación reciba notificaciones en tiempo real sobre eventos que ocurren dentro de nuestro sistema. Cuando se desencadena un evento suscrito, como la creación de un informe o la ejecución de una consulta, enviaremos una solicitud HTTP POST a una URL que especifiques. Esto te permite construir integraciones potentes, automatizar flujos de trabajo y mantener tus propios sistemas sincronizados con tus datos.

Puedes crear y gestionar tus webhooks directamente desde la interfaz de usuario de la aplicación.

Eventos y Cargas Útiles

Eventos Relacionados con Informes

Este evento se desencadena cuando se ejecuta un informe completo, ya sea de forma programada o manual. De manera crucial, los datos del evento report.run contendrán una URL query_result para cada consulta individual que formó parte del informe.

report.created

{
  "event": "report.created",
  "report_id": 123,
  "report_name": "Crecimiento Trimestral de Usuarios",
  "report_description": "Un análisis detallado de los nuevos registros de usuarios y la participación para el segundo trimestre.",
  "collection_id": 1,
  "collection_name": "Colección Principal",
  "timestamp": "2025-06-09T18:30:00+00:00"
}

report.updated

{
  "event": "report.updated",
  "report_id": 123,
  "report_name": "Crecimiento Trimestral de Usuarios Actualizado",
  "report_description": "Un análisis actualizado de los nuevos registros de usuarios y la participación para el segundo trimestre.",
  "collection_id": 1,
  "collection_name": "Colección Principal",
  "timestamp": "2025-06-09T18:35:10+00:00"
}

report.deleted

{
  "event": "report.deleted",
  "report_id": 123,
  "report_name": "Crecimiento Trimestral de Usuarios Actualizado",
  "collection_id": 1,
  "collection_name": "Colección Principal",
  "timestamp": "2025-06-09T18:40:25+00:00"
}

report.run

{
  "event": "report.run",
  "report_id": 1,
  "report_name": "Nam minus placeat nisi sint.",
  "collection_id": 1,
  "collection_name": "Colección Principal",
  "report_notebook_outputs": "http://laravel.test/api/reports/1/run/1",
  "queries": [
    {
      "query_id": 1,
      "query_name": "velit",
      "query_result": "http://laravel.test/api/reports/1/queries/1/reportRun/1"
    },
    {
      "query_id": 2,
      "query_name": "non",
      "query_result": "http://laravel.test/api/reports/1/queries/2/reportRun/1"
    },
    {
      "query_id": 3,
      "query_name": "alias",
      "query_result": "http://laravel.test/api/reports/1/queries/3/reportRun/1"
    }
  ],
  "timestamp": "2025-06-09T17:11:23+00:00"
}

Eventos Relacionados con Consultas

Este evento es más específico y se desencadena solo cuando se realizan acciones en una consulta individual de forma aislada.

  • Esto incluye ejecutar una consulta por sí misma o gestionar su programación específica.
  • Distinción Clave: El evento query.run no se desencadenará si la consulta se ejecuta como parte de la ejecución de un informe más grande. En ese escenario, debes consultar el evento principal report.run para encontrar los resultados de la consulta.

query.created

{
  "event": "query.created",
  "query_id": 45,
  "query_name": "Registros de Nuevos Usuarios por Región",
  "report_id": 123,
  "report_name": "Crecimiento Trimestral de Usuarios",
  "collection_id": 1,
  "collection_name": "Colección Principal",
  "timestamp": "2025-06-09T19:05:15+00:00"
}

query.updated

{
  "event": "query.updated",
  "query_id": 45,
  "query_name": "Usuarios Activos por Región (Diario)",
  "report_id": 123,
  "report_name": "Crecimiento Trimestral de Usuarios",
  "collection_id": 1,
  "collection_name": "Colección Principal",
  "timestamp": "2025-06-09T19:10:00+00:00"
}

query.deleted

{
  "event": "query.deleted",
  "query_id": 45,
  "report_id": 123,
  "report_name": "Crecimiento Trimestral de Usuarios",
  "collection_id": 1,
  "collection_name": "Colección Principal",
  "timestamp": "2025-06-09T19:15:40+00:00"
}

query.run

{
  "event": "query.run",
  "query_id": 3,
  "query_name": "alias",
  "report_id": 1,
  "report_name": "Nam minus placeat nisi sint.",
  "collection_id": 1,
  "collection_name": "Colección Principal",
  "query_result": "http://laravel.test/api/reports/1/queries/3/run/2",
  "timestamp": "2025-06-09T17:03:33+00:00"
}

Recuperación de Resultados de Ejecución

Las cargas útiles de los eventos report.run y query.run proporcionan URLs (report_notebook_outputs y query_result) en lugar de los datos de ejecución reales. Para descargar los resultados, debes realizar una solicitud GET a la URL proporcionada utilizando tu token de API Personal para la autenticación.

Ejemplo de Solicitud cURL

A continuación se muestra un ejemplo de cómo obtener los resultados de un evento query.run usando curl.

curl -X POST "http://laravel.test/api/reports/1/queries/3/run/2" \
     -H "Authorization: Bearer YOUR_PERSONAL_API_TOKEN" \
     -H "Accept: application/json"