Integra el enfoque aéreo con los Webhooks

Escrito por:  Morgan T
Última actualización:  

Recibe actualizaciones automáticas y en tiempo real de Airfocus conectando tus aplicaciones favoritas usando nuestros Webhooks.

Beneficios de usar webhooks

Los webhooks permiten que Airfocus y otras aplicaciones trabajen juntas fácilmente y en tiempo real. Esto significa que las actualizaciones y notificaciones ocurren rápidamente sin necesidad de aplicaciones adicionales ni codificación complicada.

Configuración inicial de un nuevo webhook

Crea un nuevo espacio de trabajo en Airfocus, o selecciona el que te gustaría para crear un nuevo webhook.

Requisitos:

  • Licencias "completas" al espacio de trabajo donde quieres configurar el webhook.
  • Subscripción pagada a un plan profesional o corporativo.
  • Conocimientos técnicos para una correcta configuración.

Puedes agregar varios webhooks a un espacio de trabajo dado (por ejemplo, a diferentes canales de Slack para distintas audiencias de stakeholders).

Para ello, simplemente ve a la sección de Extensiones dentro de tu espacio de trabajo, haz clic en "Agregar integración" y "Conectar" bajo Webhook.

integrate-with-webhooks-1.png

integrate-with-webhooks-2.png

A continuación, ponle un nombre a tu webhook (opcional) y selecciona para qué eventos deben activar las solicitudes.

integrate-with-webhooks-3.png

En las opciones de solicitud, elige el formato marcador y el método y pega la URL de tu webhook en el campo de la URL. También puedes agregar cabeceras a tus peticiones si es necesario.

integrate-with-webhooks-4.png

Opcionalmente, también puedes configurar el cuerpo de tu solicitud en el formato marcador elegido arriba.

{
"bloqueos": [
{
"type": "divider"
},
{
"tipo": "sección",
"texto": {
"tipo": "mrkdwn",
"texto": "{{title|esc}}"
},
"accesorio": {
"tipo": "botón",
"texto": {
"type": "plain_text",
"text": "Open in airfocus",
"emoji": true
},
"valor": "click_me_123",
"URL": "{{url}}",
"action_id": "acción de botón"
}
},
{
"tipo": "sección",
"texto": {
"tipo": "mrkdwn",
"texto": "{{details|esc}}"
}
}
]
}

Para una documentación detallada de las opciones de personalización de tus webhooks, por favor lee la siguiente sección.

Caso de uso: recibir notificaciones de Slack para actualizaciones de Airfocus

Para este caso de uso, nuestro objetivo es configurar un webhook que envíe un mensaje de Slack a un canal de nuestra elección cada vez que un elemento del espacio de trabajo para el que configuramos el webhook se actualice en estado.

Para ello, necesitamos configurar una app de Slack para generar una URL de webhook y luego configurar el resto de la integración en Airfocus.

Cómo crear una URL de webhook para tu canal de Slack:

  1. Crea una nueva aplicación de Slack en el espacio de trabajo de Slack donde quieras recibir las notificaciones de AirFocus.
    integrate-with-webhooks-5.png
    integrate-with-webhooks-6.png
  2. Desde la página Características, active la opción Activar webhooks entrantes .
    integrate-with-webhooks-7.png
  3. Haga clic en Agregar nuevo webhook al espacio de trabajo.
    integración-con-webhooks-8.png
  4. Elige un canal al que la app publique y luego haz clic en Permitir.
    integrate-with-webhooks-9.png
  5. Copia la URL del webhook y abre el espacio de trabajo de Airfocus para el que quieres configurar las actualizaciones.
    integrate-with-webhooks-9.1.png

Cómo configurar su webhook en Airfocus para enviar notificaciones de actualización de eventos a Slack:

  1. En el popover de extensiones, haz clic en "Agregar integración".
    integrate-with-webhooks-10.png
  2. En la visión general de integración, haz clic en "Conectar" debajo de la integración "Webhooks".
    integrate-with-webhooks-11.png
  3. Ponle un nombre a tu webhook (opcional) y selecciona para qué eventos deben activar las solicitudes. → "Estado actualizado" para este caso de uso.
    integrate-with-webhooks-12.png
  4. En las opciones de solicitud, selecciona "Slack markdown" como formato marcador y "POST" como método. Ahora pega la URL del webhook que copiaste de Slack en el campo URL.
    integrate-with-webhooks-13.png
  5. Para recibir mensajes de Slack correctamente formateados, pega la siguiente Plantilla en el campo del cuerpo y pulsa actualizar.
    •  

      {
      "bloqueos": [
      {
      "type": "divider"
      },
      {
      "tipo": "sección",
      "texto": {
      "tipo": "mrkdwn",
      "texto": "{{title|esc}}"
      },
      "accesorio": {
      "tipo": "botón",
      "texto": {
      "type": "plain_text",
      "text": "Open in airfocus",
      "emoji": true
      },
      "valor": "click_me_123",
      "URL": "{{url}}",
      "action_id": "acción de botón"
      }
      },
      {
      "tipo": "sección",
      "texto": {
      "tipo": "mrkdwn",
      "texto": "{{details|esc}}"
      }
      }
      ]
      }

       

  6. Ahora recibirás un mensaje de Slack en el canal que elegiste cuando cualquier elemento en el espacio de trabajo tenga su estado cambiado.
    integrate-with-webhooks-14.png

Recibe airfocus actualizaciones en Microsoft Teams

Nota: La función de conector webhook de Microsoft Teams será descontinuada a finales de abril de 2026. La siguiente guía incluye pasos para usar la función de Flujos de Trabajo como alternativa.

La función Microsoft Teams Flujos de Trabajo te permite configurar un gancho sitio web que envía un mensaje de Teams a un canal designado cuando se actualizan elementos dentro de un espacio de trabajo airfocus concreto. Para ello, necesitarás generar una URL de webhook en Microsoft Teams y luego configurar el resto de la integración en airfocus.

Crea una URL de webhook en Microsoft Teams

Para generar una URL de webhook en Microsoft Teams, sigue estos pasos:

  1. Inicia sesión en Microsoft Teams.
  2. Haz clic en el menú de tres puntos en el menú de navegación en el extremo izquierdo.
  3. Selecciona flujos de trabajo.
  4. En la barra de búsqueda, busca "webhook".
  5. Selecciona Publicar en un canal cuando se reciba una solicitud de webhook.
  6. Escribe un nombre para tu flujo de trabajo (por ejemplo, "airfocus actualizaciones").
  7. Haz clic en Siguiente.
  8. En "Detalles", selecciona el equipo y canal específicos donde quieres que aparezcan las actualizaciones.
  9. Haz clic en Agregar flujo de trabajo.
  10. En la pantalla de confirmación, copia la URL de POST.
    • Esta es la URL del webhook que tendrás que pegar en airfocus.
  11. Haz clic en Listo para finalizar la configuración.

Configura tu webhook en airfocus

Para configurar tu webhook en airfocus, sigue estos pasos:

  1. Abre el espacio de trabajo airfocus para el que quieres enviar actualizaciones a Microsoft Teams.
  2. Haz clic en Extensiones desde la esquina superior derecha del espacio de trabajo.
  3. Selecciona Agregar integración.
  4. En "Webhooks", haz clic en Conectar.
  5. Escribe un nombre para el webhook.
  6. En "Eventos", selecciona qué tipo de actualizaciones quieres que se envíen a Microsoft Teams.
  7. En "Formato marcador", selecciona Markdown.
  8. En "Método", selecciona POST y luego pega la URL que generaste en Microsoft Teams bajo "URL".
  9. Seleccionar + Agregar encabezado.
  10. En "Nombre del encabezado", escribe "Content-Type".
  11. En "Valor de cabecera", escribe "aplicación/json".
    example-webhookd-form-filled-out-in-airfocus.png
  12. Para recibir mensajes de Microsoft Teams correctamente formateados, pega la siguiente Plantilla en el campo del cuerpo.
    • {
        "tipo": "AdaptiveCard",
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "versión": "1.4",
        "cuerpo": [
          {
            "type": "TextBlock",
            "texto": "{{title}}",
            "tamaño": "Mediano",
            "peso": "Más audaz",
            "wrap": Cierto
          },
          {
            "type": "TextBlock",
            "texto": "{{details}}",
            "wrap": Cierto
          }
        ],
        "acciones": [
          {
            "type": "Action.OpenUrl",
            "título": "Abierto en airfocus",
            "URL": "{{url}}"
          }
        ]
      }
  13. Haz clic en Actualizar desde la parte inferior derecha de la página.

Ahora recibirás actualizaciones en el canal de Microsoft Teams que configuraste en la primera sección.
 

Configuración de la solicitud HTTP - documentación técnica

Método

Por defecto está configurado como POST, pero también se puede cambiar a GET o PUT. No se admiten otros métodos.

URL

  • no debe estar vacío
  • solo puede empezar con https:// (no se admiten otros esquemas o esquemas vacíos)
  • debe tener un nombre de dominio público con un dominio de nivel superior bien conocido (no se admiten IPs)

Encabezados

  • Se admite la autorización
  • Se admite el tipo de contenido
  • se admiten cabeceras personalizadas que Empezar con x-
  • No se admiten otros encabezados

Texto

Define el cuerpo de la solicitud del webhook.

Puede contener cualquier texto de hasta 2000 caracteres.

Para completar el cuerpo de la solicitud con datos significativos de eventos, proporcionamos un conjunto de marcadores de posición que nuestro servidor reemplaza por datos de eventos antes de enviar la solicitud.

Formato provisional

Especifica cómo los marcadores de posición con tipo RichText deben ser prerenderizados por nuestro servidor. Por ejemplo {{title}} , el marcador de posición puede contener una cadena como "John updated field Labels on item Fix the botón" que contiene cierto formato de texto enriquecido como negrilla, cursiva, etc., y por lo tanto el formato de marcador especifica en qué sintaxis específica debe transformar este formato. Formatos disponibles:

Nombre Descripción Ejemplo
reducción Reducción por defecto John actualizó el campo Etiquetas en el artículo Arreglar el botón
HTML <b>John</b> campo actualizado <i>Etiquetas</i> en el elemento <b>Arreglar el botón</b>
texto Formateo eliminado John actualizó el campo Etiquetas en el artículo Arreglar el botón
Slack Slack especial mrkdwn *John* campo actualizado *Etiquetas* en el elemento *Arreglar el botón*

Placeholders

Marcador de posición Tipo Descripción Ejemplo
{{type}} String Tipo de evento ÍtemActualizado
{{title}} Cadena (RichText) describe la acción del evento John actualizó el campo Etiquetas en el artículo Arreglar el botón
{{details}} Cadena (RichText) Detalles adicionales del evento (por ejemplo, lo que cambió) Valor antiguo ⇒ Valor nuevo
{{url}} String URL de llamada a la acción para cada evento específico (por ejemplo, un enlace a un espacio de trabajo o un elemento) https://myteam.airfocus.com/w/workspaceid?item=itemid 
*sustituye airfocus.com por airfocus.app si estás en la región de EE. UU. o APAC y tu cuenta se creó luego de septiembre de 2025
{{event}} JSON datos completos en JSON sobre el evento actual Consulta el modelo de Carga Útil de Eventos a continuación
{{title|esc}} Cadena (RichText) Igual que {{title}} en las comillas dobles se evaden transforma una cadena con comillas "dobles" en una cadena con comillas \"dobles"
{{details|esc}} Cadena (RichText) Igual que {{details}} en las comillas dobles se evaden transforma una cadena con comillas "dobles" en una cadena con comillas \"dobles"

Data modelo

Modelo de carga útil de eventos

Un objeto de nivel superior, producido para cada evento. Contiene datos sobre el evento, así como datos básicos incrustados sobre todas las entidades relacionadas con este evento.

Campo Tipo Obligatorio Descripción
Evento Evento Datos básicos sobre el evento
Incrustar Evento incrustado Datos adicionales sobre el evento: principalmente nombres de elementos/espacios de trabajo/campos/etc., que están relacionados con este evento
matchedFilter EventFilter Uno de los filtros de eventos seleccionados en la configuración de integración, que coincidía con el evento actual

Modelo de evento

Datos básicos sobre el evento

Campo Tipo Obligatorio Descripción
id UUID ID único del evento
Iniciador IniciadorEvento Información sobre quién inició este evento
Datos EventData los datos reales del evento. Es diferente según cada tipo de evento específico
creadoEn Código de tiempo cuando el evento ocurrió

Modelo EventInitiator

Información sobre quién inició este evento. En la mayoría de los casos, el userId estará definido. También es posible que haya tanto userId como integrationId definidos, por ejemplo, si un usuario pulsaba el botón "sincronizar integración" que producía el evento.

Campo Tipo Obligatorio Descripción
Idusuario UUID no definido si este evento fue iniciado por un usuario
appId UUID no define si este evento fue iniciado por una aplicación
integrationId UUID no definido si este evento fue iniciado por una integración
eventId UUID no definido si este evento fue iniciado por otro evento
requestId UUID no definido si este evento se iniciaba dentro de una solicitud HTTP

Modelo EventEmbed

Datos adicionales sobre el evento: principalmente nombres de elementos/espacios de trabajo/campos/etc., que están relacionados con este evento.

Campo Tipo Obligatorio Descripción
Equipos {UUID: TeamInfo} no un hash-map algoritmo de IDs de equipo a datos de equipo
usuarios {UUID: UserInfo} no un hash-map algoritmo de IDs de Usuario a datos de Usuario
aplicaciones {UUID: AppInfo} no un hash-map algoritmo de IDs de app a datos de app
Espacios de trabajo {UUID: WorkspaceInfo} no un hash-map algoritmo de IDs de espacio de trabajo a datos de espacios de trabajo
integraciones {UUID: IntegrationInfo} no un hash-map algoritmo de IDs de integración a datos de integración
campos {UUID: FieldInfo} no un hash-map algoritmo de IDs de campo a datos de campo
Situación {UUID: StatusInfo} no un hash-map algoritmo de IDs de estado a datos de estado
elementos {UUID: ItemInfo} no un hash-map algoritmo de IDs de elementos a datos de elementos

TeamInfo modelo

Campo Tipo Obligatorio Descripción
nombre String Nombre del equipo
trago String slug de URL del equipo
baseUrl String Ejemplo: https://myteam.airfocus.com 
*sustituye airfocus.com por airfocus.app si estás en la región de EE. UU. o APAC y tu cuenta se creó luego de septiembre de 2025

Modelo UserInfo

Campo Tipo Obligatorio Descripción
teamId UUID ID del equipo al que pertenece este usuario
Nombre completo String Nombre completo del usuario

Modelo AppInfo

Campo Tipo Obligatorio Descripción
teamId UUID ID del equipo al que pertenece esta app
typeId String Uno de: formularios, Insights, espejo, portal, priorización

Modelo WorkspaceInfo

Campo Tipo Obligatorio Descripción
teamId UUID ID del equipo al que pertenece este espacio de trabajo
nombre String Nombre del espacio de trabajo

Modelo IntegrationInfo

Campo Tipo Obligatorio Descripción
workspaceId UUID ID del espacio de trabajo al que pertenece esta integración
typeId String Uno de: Asana, Azure-DevOps, Clubhouse, GitHub, Intercom, Jira, Planner, Trello

StatusInfo modelo

Campo Tipo Obligatorio Descripción
workspaceId UUID ID del espacio de trabajo al que pertenece este estado
nombre String Nombre del estatus
categoría String Uno de: Tiro, activo, cerrado

ItemInfo modelo

Campo Tipo Obligatorio Descripción
workspaceId UUID ID del espacio de trabajo al que pertenece este elemento
statusId UUID ID del estado del artículo
nombre String Nombre del objeto

Modelo EventData

EventData es un tipo de unión: puede cualquiera de los tipos especificados:

CreatedItem

Campo Tipo Obligatorio Descripción
itemId UUID ID del elemento creado

Punto actualizado

Campo Tipo Obligatorio Descripción
itemId UUID ID del artículo actualizado
estado {prev: UUID, next: UUID} no Identificaciones antiguas y nuevas del estado (si cambiaron)
color {prev: String, next: String} no IDs antiguos y nuevos del color del artículo (si cambiados)
ID de usuario asignado {prev: UUID[], next: UUID[]} no lista antigua y nueva de IDs de usuario asignados (si cambiados)
nombre {prev: String, next: String} no Nombre del artículo antiguo y nuevo (si se cambió)
Descripción {prev: RichText, next: RichText} no Descripción del artículo antiguo y nuevo (si se cambió)
Descripción { UUID: { prev: JSON, next: JSON } } no un hash-map algoritmo de IDs de campo a sus valores cambiados, cada valor es un JSON que depende del tipo de campo
archivado {prev: Boolean, next: Boolean} no archivo antiguo y nuevo (si se modifica)

Dejar comentarios sobre este artículo

¿Tienes comentarios sobre este artículo? Cuéntanos tu experiencia aquí.

¿Encontraste lo que estabas buscando?

¿Todavía tienes alguna pregunta o quieres compartir lo que has aprendido? Visita nuestro Comunidad   para obtener ayuda y colaborar con otras personas.