Integre o airfocus com Webhooks

Escrito por:  Morgan T
Ultima atualização:  

Receba atualizações automáticas e em tempo real do airfocus conectando seus aplicativos favoritos usando nossos Webhooks.

Benefícios da utilização de webhooks

Os webhooks permitem que o airfocus e outros aplicativos funcionem juntos de forma fácil e em tempo real. Isso significa que as atualizações e notificações acontecem rapidamente, sem a necessidade de aplicativos adicionais ou programação complexa.

Configuração inicial de um novo webhook

Crie um novo espaço de trabalho no airfocus ou selecione aquele em que deseja criar um novo webhook.

Requisitos:

  • Permissões "completas" para o espaço de trabalho no qual você deseja configurar o webhook.
  • Assinatura paga para plano Profissional ou Corporativo.
  • Conhecimento técnico para configuração adequada.

Você pode adicionar vários webhooks a um determinado espaço de trabalho (por exemplo, a diferentes canais do Slack para diferentes públicos-alvo).

Para isso, basta acessar a seção Extensões dentro do seu espaço de trabalho, clicar em "Adicionar integração" e "Conectar" em Webhook.

integrar-com-webhooks-1.png

integrar-com-webhooks-2.png

Em seguida, dê um nome ao seu webhook (opcional) e selecione para quais eventos as solicitações devem ser acionadas.

integrar-com-webhooks-3.png

Nas opções de solicitação, escolha o formato do marcador de posição e o método , e cole o URL do seu webhook no campo URL. Você também pode adicionar cabeçalhos às suas solicitações, se necessário.

integrar-com-webhooks-4.png

Opcionalmente, você também pode configurar o corpo da sua solicitação no formato de espaço reservado escolhido acima.

{
"blocos": [
{
"type": "divider"
},
{
"tipo": "seção",
"texto": {
"tipo": "mrkdwn",
"texto {{title|esc}}"
},
"acessório": {
"tipo": "botão",
"texto": {
"type": "plain_text",
"text": "Open in airfocus",
"emoji": true
},
"valor": "clique_em_mim_123",
"URL": "{{url}}",
"action_id": "botão-action"
}
},
{
"tipo": "seção",
"texto": {
"tipo": "mrkdwn",
"texto": "{{details|esc}}"
}
}
]
}

Para obter documentação detalhada sobre as opções de personalização dos seus webhooks, leia a seção a seguir.

Caso de uso: receber notificações do Slack sobre atualizações do airfocus.

Para este caso de uso, nosso objetivo é configurar um webhook que enviará uma mensagem do Slack para um canal de nossa escolha sempre que um item do espaço de trabalho para o qual configuramos o webhook tiver seu status atualizado.

Para isso, precisamos configurar um aplicativo Slack para gerar um URL de webhook e, em seguida, configurar o restante da integração no airfocus.

como fazer uma URL de webhook para seu canal Slack :

  1. Crie um novo aplicativo Slack no espaço de trabalho do Slack onde você deseja receber as notificações do airfocus.
    integrar-com-webhooks-5.png
    integrar-com-webhooks-6.png
  2. Na página de Funcionalidades, ative a opção Ativar Webhooks de Entrada .
    integrar-com-webhooks-7.png
  3. Clique em Adicionar novo webhook ao espaço de trabalho.
    integrar-com-webhooks-8.png
  4. Selecione um canal para o qual o aplicativo irá publicar e clique em Permitir.
    integrar-com-webhooks-9.png
  5. Copie o URL do webhook e abra o espaço de trabalho do airfocus para o qual deseja configurar as atualizações.
    integrar-com-webhooks-9.1.png

Como configurar seu webhook no airfocus para enviar notificações de atualização de eventos para o Slack:

  1. No popover de extensões, clique em “Adicionar integração”.
    integrar-com-webhooks-10.png
  2. Na visão geral da integração, clique em “Conectar” abaixo da integração “Webhooks”.
    integrar-com-webhooks-11.png
  3. Dê um nome ao seu webhook (opcional) e selecione para quais eventos as solicitações devem ser acionadas. → “Status atualizado” para este caso de uso.
    integrar-com-webhooks-12.png
  4. Nas opções de solicitação, selecione “Slack markdown” como formato de espaço reservado e “publicação” como método. Agora, cole a URL do webhook que você copiou do Slack no campo de URL.
    integrar-com-webhooks-13.png
  5. Para receber mensagens do Slack formatadas corretamente, cole o seguinte modelo no campo do corpo da mensagem e clique em atualizar.
    •  

      {
      "blocos": [
      {
      "type": "divider"
      },
      {
      "tipo": "seção",
      "texto": {
      "tipo": "mrkdwn",
      "texto {{title|esc}}"
      },
      "acessório": {
      "tipo": "botão",
      "texto": {
      "type": "plain_text",
      "text": "Open in airfocus",
      "emoji": true
      },
      "valor": "clique_em_mim_123",
      "URL": "{{url}}",
      "action_id": "botão-action"
      }
      },
      {
      "tipo": "seção",
      "texto": {
      "tipo": "mrkdwn",
      "texto": "{{details|esc}}"
      }
      }
      ]
      }

       

  6. Agora você receberá uma mensagem no Slack, no canal escolhido, sempre que o status de qualquer item no espaço de trabalho for alterado.
    integrar-com-webhooks-14.png

Receba atualizações airfocus no Microsoft Teams

Observação: o recurso de conector webhook do Microsoft Teams será desativado no final de abril de 2026. O guia abaixo inclui instruções sobre como usar o recurso de fluxo de trabalho como alternativa.

O recurso de fluxo de trabalho Microsoft Teams permite configurar um webhook que envia uma mensagem do Equipes para um canal designado quando itens dentro de um determinado espaço de trabalho airfocus são atualizados. Para isso, você precisará gerar um URL de webhook no Microsoft Teams e, em seguida, configurar o restante da integração no airfocus.

Criar um URL de webhook no Microsoft Teams

Para gerar um URL de webhook no Microsoft Teams, siga estes passos:

  1. Faça login no Microsoft Teams.
  2. Clique no menu de três pontos no menu de navegação, localizado no canto esquerdo.
  3. Select fluxo de trabalho.
  4. Na barra de pesquisa, digite “webhook”.
  5. Selecione publicação para um canal quando uma solicitação de webhook for recebida.
  6. Digite um nome para o seu fluxo de trabalho (por exemplo, "atualizações airfocus ").
  7. Clique em Avançar.
  8. Em “Detalhes”, selecione a Equipe e o Canal específicos onde deseja que as atualizações apareçam.
  9. Clique em Adicionar fluxo de trabalho.
  10. Na tela de confirmação, copie a URL da publicação.
    • Este é o URL do webhook que você precisará colar no airfocus.
  11. Clique em Concluído para finalizar a configuração.

Configure seu webhook no airfocus

Para configurar seu webhook no airfocus, siga estes passos:

  1. Abra o espaço de trabalho airfocus para o qual deseja enviar atualizações para o Microsoft Teams.
  2. Clique em Extensões no canto superior direito do espaço de trabalho.
  3. Selecione Adicionar integração.
  4. Em “Webhooks”, clique em Conectar.
  5. Digite um nome para o webhook.
  6. Em “Eventos”, selecione o tipo de atualizações que deseja enviar para o Microsoft Teams.
  7. Em “Formato de espaço reservado”, selecione Markdown.
  8. Em “Método”, selecione publicação e cole o URL que você gerou no Microsoft Teams em “URL”.
  9. Selecionar + Adicionar cabeçalho.
  10. Em “Nome do cabeçalho”, digite “Content-Type”.
  11. Em “Valor do cabeçalho”, digite “aplicativo/json”.
    exemplo-webhookd-form-filled-out-in-airfocus.png
  12. Para receber mensagens do Microsoft Teams formatadas corretamente, cole o seguinte modelo no campo do corpo da mensagem.
    • {
       "tipo": "AdaptiveCard",
       "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
       "versão": "1.4",
        "corpo": [
       {
       "tipo": "Bloco de Texto",
       "texto": "{{title}}",
       "Tamanho": "Médio",
       "peso": "Mais ousado",
       "envolver": verdadeiro
       },
       {
       "tipo": "Bloco de Texto",
       "texto {{details}}",
       "envolver": verdadeiro
       }
       ],
       "ações": [
       {
       "tipo": "Action.OpenUrl",
       "título": "Abrir no airfocus",
       "URL": "{{url}}"
       }
       ]
       }
  13. Clique em Atualizar no canto inferior direito da página.

Agora você receberá atualizações no canal do Microsoft Teams que configurou na primeira seção.
 

Configuração de requisições HTTP - documentação técnica

Método

Por padrão, está configurado para publicação, mas também pode ser alterado para GET ou PUT. Outros métodos não são suportados.

URL

  • não deve estar vazio
  • Só é possível iniciar com https:// (outros esquemas ou esquemas vazios não são suportados).
  • Deve ter um nome de domínio público com um domínio de nível superior bem conhecido (IPs não são suportados).

Cabeçalhos

  • A autorização é suportada.
  • O Content-Type é suportado.
  • Cabeçalhos personalizados que começam com x- são suportados
  • Outros cabeçalhos não são suportados.

Corpo

Define o corpo da requisição do webhook.

Pode conter qualquer texto com até 2000 caracteres.

Para preencher o corpo da requisição com dados de eventos relevantes, fornecemos uma série de marcadores que nosso servidor substitui por dados de eventos antes de enviar a requisição.

Formato de espaço reservado

Especifica como os espaços reservados do tipo RichText devem ser pré-renderizados pelo nosso servidor. Por exemplo, o marcador de posição {{title}} pode conter uma string como "John updated field Labels on item Fix the botão ", que contém formatação de texto avançada como negrito, itálico, etc., e, portanto, o formato do marcador de posição especifica em qual sintaxe específica essa formatação deve ser transformada. Formatos disponíveis:

Nome Descrição Exemplo
markdown Markdown padrão John atualizou os rótulos do campo no item Corrigir o botão
HTML <b>John</b> atualizou o campo <i>Rótulos</i> no item <b>Corrigir o botão</b>
texto formatação removida John atualizou os rótulos do campo no item Corrigir o botão
Slack Slack especial mrkdwn *John* atualizou o campo *Rótulos* no item *Corrigir o botão*

Espaços reservados

Placeholder Tipo Descrição Exemplo
{{type}} String tipo de evento item atualizado
{{title}} Texto (RichText) descreve a ação do evento John atualizou os rótulos do campo no item Corrigir o botão
{{details}} Texto (RichText) detalhes adicionais do evento (por exemplo) (O que foi alterado) Valor antigo ⇒ Valor novo
{{url}} String URL de chamada à ação para cada evento específico (por exemplo, um link para um espaço de trabalho ou um item) https://myteam.airfocus.com/w/workspaceId?item=itemId 
*Substitua airfocus.com por airfocus.app se você estiver localizado nos EUA ou na região da Ásia-Pacífico e sua conta tiver sido criada após setembro de 2025.
{{event}} JSON Dados JSON completos sobre o evento atual Veja o modelo de carga útil do evento abaixo.
{{title|esc}} Texto (RichText) igual a {{title}} , mas todas as aspas duplas são escapadas. Transforma uma string com aspas duplas em uma string com aspas duplas.
{{details|esc}} Texto (RichText) igual a {{details}} , mas todas as aspas duplas são escapadas. Transforma uma string com aspas duplas em uma string com aspas duplas.

Modelos de dados

Modelo de carga útil de evento

Um objeto de nível superior, produzido para cada evento. Contém dados sobre o evento, bem como dados básicos incorporados sobre todas as entidades relacionadas a esse evento.

Campo Tipo Obrigatório Descrição
Evento Evento sim dados básicos sobre o evento
Incorporar Incorporação de evento sim Dados adicionais sobre o evento - principalmente nomes de itens/espaço de trabalho/campos/etc. relacionados a este evento.
filtro correspondente Filtro de Eventos sim um dos filtros de eventos selecionados nas configurações de integração, que correspondeu ao evento atual.

Modelo de evento

Dados básicos sobre o evento

Campo Tipo Obrigatório Descrição
Id UUID sim ID único do evento
Iniciador Iniciador de Evento sim Informações sobre quem iniciou este evento.
Dados Dados do evento sim Os dados reais do evento. É diferente para cada tipo de evento específico.
criadoEm Timestamp sim quando o evento acontecer

Modelo EventInitiator

Informações sobre quem iniciou este evento. Na maioria dos casos, o userId será definido. Também é possível que haja um userId e um integrationId definidos - por exemplo, se um usuário pressionou o botão "sincronizar integração", o que gerou o evento.

Campo Tipo Obrigatório Descrição
IdUsuário UUID NÃO definido se este evento foi iniciado por um usuário
ID do aplicativo UUID NÃO definido se este evento foi iniciado por um aplicativo
ID de integração UUID NÃO definido se este evento foi iniciado por uma integração
ID do evento UUID NÃO definido se este evento foi iniciado por outro evento
ID da solicitação UUID NÃO definido se este evento foi iniciado dentro de uma requisição HTTP

Modelo EventEmbed

Dados adicionais sobre o evento - principalmente nomes de itens/espaço de trabalho/campos/etc. relacionados a este evento.

Campo Tipo Obrigatório Descrição
Equipes {UUID: TeamInfo} NÃO um mapa hash de IDs de Equipe para dados de Equipe
de usuários {UUID: UserInfo} NÃO um mapa hash de IDs de usuário para dados de usuário
apps {UUID: AppInfo} NÃO um mapa hash de IDs de aplicativos para dados de aplicativos
Espaços de trabalho {UUID: WorkspaceInfo} NÃO um mapa hash de IDs de espaço de trabalho para dados de espaço de trabalho
integrações {UUID: IntegrationInfo} NÃO um mapa hash de IDs de integração para dados de integração
campos {UUID: FieldInfo} NÃO um mapa hash de IDs de campos para dados de campos
status {UUID: StatusInfo} NÃO um mapa hash de IDs de status para dados de status
itens {UUID: ItemInfo} NÃO um mapa hash de IDs de itens para dados de itens

Modelo TeamInfo

Campo Tipo Obrigatório Descrição
nome String sim Nome da equipe
lesma String sim Equipe URL slug
URL base String sim Exemplo: https://myteam.airfocus.com 
*Substitua airfocus.com por airfocus.app se você estiver localizado nos EUA ou na região da Ásia-Pacífico e sua conta tiver sido criada após setembro de 2025.

Modelo de informações do usuário

Campo Tipo Obrigatório Descrição
ID da equipe UUID sim ID da Equipe a qual este usuário pertence
nome completo String sim nome completo do usuário

Modelo AppInfo

Campo Tipo Obrigatório Descrição
ID da equipe UUID sim ID da Equipe à qual este aplicativo pertence
tipoId String sim um dos seguintes: formulários, insights, espelho, portal, priorização

Modelo WorkspaceInfo

Campo Tipo Obrigatório Descrição
ID da equipe UUID sim ID da Equipe a qual este espaço de trabalho pertence
nome String sim nome do espaço de trabalho

Modelo IntegrationInfo

Campo Tipo Obrigatório Descrição
ID do espaço de trabalho UUID sim ID do espaço de trabalho ao qual esta integração pertence
tipoId String sim Uma das seguintes opções: Asana, Azure DevOps, Clubhouse, GitHub, Intercom, Jira, Planner, Trello

Modelo de informações de status

Campo Tipo Obrigatório Descrição
ID do espaço de trabalho UUID sim ID do espaço de trabalho ao qual este status pertence
nome String sim nome do status
categoria String sim uma das seguintes opções: rascunho, ativo, fechado

ItemInfo modelo

Campo Tipo Obrigatório Descrição
ID do espaço de trabalho UUID sim ID do espaço de trabalho ao qual este item pertence
statusId UUID sim ID do status do item
nome String sim nome do item

Modelo EventData

EventData é um tipo de união - pode ser qualquer um dos tipos especificados:

Item criado

Campo Tipo Obrigatório Descrição
itemId UUID sim ID do item criado

Item atualizado

Campo Tipo Obrigatório Descrição
itemId UUID sim ID do item atualizado
status {prev: UUID, next: UUID} NÃO IDs antigo e novo do status (se alterado)
cor {prev: String, next: String} NÃO IDs antigo e novo da cor do item (se alterada)
IDs de usuário atribuídos {prev: UUID[], next: UUID[]} NÃO Lista antiga e nova de IDs de usuário atribuídos (se alterados)
nome {prev: String, next: String} NÃO Nome antigo e novo do item (se alterado)
Descrição {prev: RichText, next: RichText} NÃO Descrição antiga e nova do item (se alterada)
Descrição { UUID: { prev: JSON, next: JSON } } NÃO um mapa hash de IDs de campos para seus valores alterados; cada valor é um JSON que depende do tipo do campo.
arquivado {prev: Boolean, next: Boolean} NÃO Arquivar antigo e novo (se alterado)

Dar feedback sobre este artigo

Gostaria de compartilhar sua opinião sobre este artigo? Conte-nos sobre sua experiência aqui.

Encontrou o que procurava?

Ainda tem dúvidas ou quer compartilhar o que aprendeu? Visite nossa Comunidade   para obter ajuda e colaborar com outras pessoas.