Zintegruj airfocus z Webhookami

Napisane przez:  Morgan T
Ostatnia aktualizacja:  

Uzyskaj automatyczne aktualizacje w czasie rzeczywistym z airfocus, łącząc swoje ulubione aplikacje za pomocą naszych Webhooków.

Korzyści z używania haczyków

Webhook umożliwiają łatwą współpracę airfocus i innych aplikacji w czasie rzeczywistym. Oznacza to, że aktualizacje i powiadomienia odbywają się szybko, bez konieczności korzystania z dodatkowych aplikacji lub skomplikowanego kodowania.

Początkowa konfiguracja nowego haczyka

/utworz/ nową przestrzeń roboczą w airfocus lub wybierz tę, w której chcesz /utworz/ utworzyć nowy webhook.

Wymagania:

  • „Pełne” uprawnienia do obszaru roboczego, w którym chcesz skonfigurować webhook.
  • Płatny abonament w planie Professional lub Przedsiębiorstwo.
  • Wiedza techniczna dla prawidłowej konfiguracji.

Do danego obszaru roboczego można dodać wiele haczyków internetowych (np. do różnych kanałów Slack dla różnych odbiorców interesariuszy).

Aby to zrobić, po prostu przejdź do sekcji Rozszerzenia w swoim obszarze roboczym, kliknij " Dodaj integracje " i " Connect " pod Webhook.

Plik integrate-with-webhooks-1.png

Plik integrate-with-webhooks-2.png

Następnie nadaj swojemu webhakowi nazwę (opcjonalnie) i wybierz, dla których zdar zeń żądania powinny być uruchamiane.

Plik integrate-with-webhooks-3.png

W opcjach żądania wybierz format zastępczy i metodę i wklej adres URL haczyka internetowego w polu URL. W razie potrzeby możesz także dodawać nagłówki do żądań.

Plik integrate-with-webhooks-4.png

Opcjonalnie można również skonfigurować treść żądania w wybranym powyżej formacie symbolu zastępczego.

{
"bloki": [
{
"type": "divider"
},
{
„typ”: „sekcja”,
"tekst": {
"typ": "mrkdwn",
"Tekst {{title|esc}}"
},
"akcesorium": {
"typ": "przycisk",
"tekst": {
"type": "plain_text",
"text": "Open in airfocus",
"emoji": true
},
"wartość": "kliknij_mnie_123",
"url": "{{url}}",
"action_id": "działanie przycisku"
}
},
{
„typ”: „sekcja”,
"tekst": {
"typ": "mrkdwn",
"tekst": "{{details|esc}}"
}
}
]
}

Aby uzyskać szczegółową dokumentację opcji dostosowywania dla twoich webhooków, przeczytaj poniższą sekcję.

Przypadek użycia - otrzymuj powiadomienia Slack o aktualizacjach airfocus

W tym przypadku użycia naszym celem jest skonfigurowanie haczyka internetowego, który wyśle wiadomość Slack do wybranego przez nas kanału za każdym razem, gdy element obszaru roboczego, dla którego konfigurujemy haczyk internetowy, uzyska aktualizację statusu.

Aby to zrobić, musimy skonfigurować aplikację Slack, aby wygenerować adres URL webhook, a następnie skonfigurować resztę integracji w airfocus.

Jak utworzyć adres URL webhooka dla swojego kanału Slack:

  1. /utworz/ nowa aplikacja Slack w przestrzeni roboczej Slack, na którą chcesz otrzymywać powiadomienia AirFocus.
    Plik integrate-with-webhooks-5.png
    Plik integrate-with-webhooks-6.png
  2. Na stronie Funkcje włącz opcję Aktywuj przychodzące sieci Web Hooks.
    Plik integrate-with-webhooks-7.png
  3. Kliknij Dodaj nowy Webhook do obszaru roboczego.
    Plik integrate-with-webhooks-8.png
  4. Wybierz kanał, na którym aplikacja będzie publikować, a następnie kliknij Zez wól.
    Plik integrate-with-webhooks-9.png
  5. Skopiuj adres URL webhook i otwórz obszar roboczy airfocus, dla którego chcesz skonfigurować aktualizacje.
    integracja-z-webhooks-9.1.png

Jak skonfigurować webhook w airfocus, aby wysyłać powiadomienia o aktualizacji zdarzeń do Slack:

  1. W wyskakującym okienku rozszerzeń kliknij „Dodaj integracje”.
    Plik integrate-with-webhooks-10.png
  2. W przeglądzie integracji kliknij „Połącz” pod integracją „Webhook”.
    Plik integrate-with-webhooks-11.png
  3. Nadaj swojemu webhakowi nazwę (opcjonalnie) i wybierz, dla których zdarzeń żądania powinny być uruchamiane. → „Status zaktualizowany” dla tego przypadku użycia.
    Plik integrate-with-webhooks-12.png
  4. W opcjach żądania wybierz „Slack markdown” jako format symbolu zastępczego i „POST” jako metodę. Teraz wklej adres URL webhook skopiowany z Slacka do pola URL.
    Plik integrate-with-webhooks-13.png
  5. Aby otrzymywać poprawnie sformatowane wiadomości Slack, wklej poniższy szablon w polu treści i naciśnij przycisk aktualizuj.
    •  

      {
      "bloki": [
      {
      "type": "divider"
      },
      {
      „typ”: „sekcja”,
      "tekst": {
      "typ": "mrkdwn",
      "Tekst {{title|esc}}"
      },
      "akcesorium": {
      "typ": "przycisk",
      "tekst": {
      "type": "plain_text",
      "text": "Open in airfocus",
      "emoji": true
      },
      "wartość": "kliknij_mnie_123",
      "url": "{{url}}",
      "action_id": "działanie przycisku"
      }
      },
      {
      „typ”: „sekcja”,
      "tekst": {
      "typ": "mrkdwn",
      "tekst": "{{details|esc}}"
      }
      }
      ]
      }

       

  6. Otrzymasz teraz wiadomość Slack na wybrany kanał, gdy zmienił się status dowolnego elementu w obszarze roboczym.
    Plik integrate-with-webhooks-14.png

Otrzymuj aktualizacje airfocus w Microsoft Zespole

Uwaga: funkcja łącznika webhook Microsoft Zespół zostanie wycofana z końcem kwietnia 2026 r. Poniższy przewodnik zawiera kroki, jak korzystać z funkcji Workflow jako alternatywy.

Funkcja Microsoft Zespół Workflows umożliwia skonfigurowanie webhooka, który wysyła wiadomość Zespół do wyznaczonego kanału, gdy elementy w określonym obszarze roboczym AirFocus zostaną zaktualizowane. Aby to zrobić, musisz wygenerować adres URL webhooka w Microsoft Zespół, a następnie skonfigurować resztę integracji w airfocus.

/utworz/ adres URL webhooka w zespole Microsoft

Aby wygenerować adres URL webhooka w programie Microsoft Zespół, wykonaj następujące kroki:

  1. Zaloguj się do Microsoft Zespół.
  2. Kliknij menu z trzema kropkami w menu nawigacyjnym po lewej stronie.
  3. Select workflow.
  4. W pasku wyszukiwania wyszukaj „webhook”.
  5. Wybierz opcję Opublikuj na kanale po otrzymaniu żądania webhook.
  6. Wpisz nazwę swojego workflow (np. „Aktualizacje Airfocus”).
  7. Kliknij przycisk Dalej.
  8. W sekcji „Szczegóły” wybierz konkretny Zespół i Kanał, w którym mają pojawiać się aktualizacje.
  9. Kliknij Dodaj workflow.
  10. Na ekranie potwierdzenia skopiuj adres URL POST.
    • To jest adres URL webhook, który musisz wkleić do airfocus.
  11. Kliknij przycisk Gotowe, aby zakończyć konfigurację.

Skonfiguruj swój webhook w airfocus

Aby skonfigurować haczyk internetowy w airfocus, wykonaj następujące kroki:

  1. Otwórz obszar roboczy AirFocus, dla którego chcesz wysyłać aktualizacje do Microsoft Zespół.
  2. Kliknij opcję Rozszerzenia w prawym górnym rogu obszaru roboczego.
  3. Wybierz Dodaj integracje.
  4. W sekcji „Webhook” kliknij Połącz.
  5. Wpisz nazwę haczyka sieciowego.
  6. W sekcji „Wydarzenia” wybierz typ aktualizacji, które chcesz otrzymywać od Microsoft Zespół.
  7. W polu „Format symbolu zastępczego” wybierz opcję Mark down.
  8. W obszarze „Metoda” wybierz opcję POST , a następnie wklej adres URL wygenerowany w programie Microsoft Zespół w polu „URL”.
  9. Wybierz polec enie+Dodaj nagłówek.
  10. W polu „Nazwa nagłówka” wpisz „Content-Type”.
  11. W polu „Wartość nagłówka” wpisz „application/json”.
    Plik example-webhookd-form-filled-out-in-airfocus.png
  12. Aby otrzymywać poprawnie sformatowane wiadomości Microsoft Zespół, wklej poniższy szablon w polu treści.
    • {
       " typ ": " AdaptiveCard ",
       " $schemat ": " http://adaptivecards.io/schemas/adaptive-card.json",
       " wersja ": " 1.4 ",
        "ciało": [
       {
       „typ”: „Blok tekstu”,
       "tekst": "{{title}}",
       „rozmiar”: „Średni”,
       „waga”: „Odważniejszy”,
       „wrap”: prawda
       },
       {
       „typ”: „Blok tekstu”,
       "Tekst {{details}}",
       „wrap”: prawda
       }
       ],
       "działanie": [
       {
       "type": "działanie.OpenUrl",
       „tytuł”: „Otwórz w Airfocus”,
       "url": "{{url}}"
       }
       ]
       }
  13. Kliknij Aktualiz uj w prawym dolnym rogu strony.

Teraz będziesz otrzymywać aktualizacje kanału Microsoft Zespół skonfigurowanego w pierwszej sekcji.
 

Konfigurowanie żądania HTTP - dokumentacja techniczna

Metoda

Domyślnie jest ustawiony na POST, ale można go również zmienić na GET lub PUT. Inne metody nie są obsługiwane.

URL

Nagłówki

  • Autoryzacja jest obsługiwana
  • Obsługiwany jest typ zawartości
  • obsługiwane są niestandardowe nagłówki zaczynające się od x-
  • inne nagłówki nie są obsługiwane

Ciało

Definiuje treść żądania webhook.

Może zawierać dowolny tekst o długości do 2000 znaków.

Aby wypełnić treść żądania znaczącymi danymi zdarzeń, udostępniamy kilka symboli zastępczych, które nasz serwer zastępuje danymi zdarzeń przed wysłaniem żądania.

Format symbolu zastępczego

Określa, w jaki sposób symbole zastępcze z typem RichText powinny być wstępnie renderowane przez nasz serwer. Na przykład symbol zastępczy {{title}} może zawierać ciąg znaków typu „John zaktualizował etykiety pól na elemencie Nap raw przycisk”, który zawiera formatowanie tekstu bogatego, takie jak pogrubienie, kursywa itp., dlatego format symbolu zastępczego określa, w jakiej konkretnej składni formatowanie powinno zostać przekształcone. Dostępne formaty:

Imię Opis Przykład
przecenienie domyślne przecenienie John zaktualizował pole E tykiety na elem encie Napraw przycisk
html <b>John</b> zaktualizowane pole <i>Etykiety</i> na pozycji <b>Napraw przycisk</b>
Tekst formatowanie usunięte John zaktualizował pole Etykiety na elemencie Napraw przycisk
slack specjalny Slack mrkdwn *John* zaktualizowane pole*Etykietykie* na pozycji *Napraw przycisk*

Symbole zastępcze

Symbol zastępczy Type Opis Przykład
{{type}} String Rodzaj wydarzenia AktualizacjaEdytuj
{{title}} Ciąg znaków (RichText) opisuje działanie zdarzenia John zaktualizował pole Etykiety na elemencie Napraw przycisk
{{details}} Ciąg znaków (RichText) dodatkowe szczegóły wydarzenia (np. co zostało zmienione) Stara wartość ⇒ Nowa wartość
{{url}} String adres URL call-to-działanie dla każdego konkretnego zdarzenia (np. link do obszaru roboczego lub elementu) https://myteam.airfocus.com/w/workspaceId?item=itemId 
*zastąp airfocus.com przez airfocus.app, jeśli znajdujesz się w USA lub regionie Azji i Pacyfiku, a Twoje konto zostało utworzone /utworz/ po wrześniu 2025 r.
{{event}} JSON pełne dane JSON o bieżącym wydarzeniu Zobacz model obciążenia zdarzenia poniżej
{{title|esc}} Ciąg znaków (RichText) tak samo jak {{title}}, ale wszystkie podwójne cytaty są uniknięte przekształca ciąg z " podwójnymi cudzysłowami " w ciąg z\ " podwójnymi\ " cudzysłowami
{{details|esc}} Ciąg znaków (RichText) tak samo jak {{details}}, ale wszystkie podwójne cytaty są uniknięte przekształca ciąg z " podwójnymi cudzysłowami " w ciąg z\ " podwójnymi\ " cudzysłowami

Modele danych

Model ładunku zdarzenia

Obiekt najwyższego poziomu, tworzony dla każdego zdarzenia. Zawiera dane dotyczące zdarzenia, a także osadzone podstawowe dane dotyczące wszystkich podmiotów powiązanych z tym zdarzeniem.

Field Type Wymagane Opis
wydarzenie Wydarzenie Tak podstawowe dane o wydarzeniu
Osadź EventEmbed Tak dodatkowe dane o wydarzeniu - głównie nazwy przedmiotów/przestrzeni roboczej/pol/itp., które są związane z tym wydarzeniem
Dopasowany filtr Filtr zdarzeń Tak jeden z filtrów zdarzeń wybranych w ustawieniach integracji, który pasował do bieżącego zdarzenia

Model zdarzenia

Podstawowe dane o wydarzeniu

Field Type Wymagane Opis
Identyfikator UUID Tak niepowtarzalny identyfikator wydarzenia
Inicjator Inicjator zdarzeń Tak informacje o tym, kto zainicjował to wydarzenie
dane Dane zdarzenia Tak rzeczywiste dane wydarzenia. Różni się w zależności od konkretnego typu zdarzenia
CreateDat Znacznik czasu Tak Kiedy wydarzenie się wydarzyło

Model EventInitiator

Informacje o tym, kto zainicjował to wydarzenie. W większości przypadków identyfikator użytkownika zostanie zdefiniowany. Możliwe jest również, że zostaną zdefiniowane zarówno userId, jak i IntegrationID - np. jeśli użytkownik nacisnął przycisk „synchronizuj integrację”, który następnie wygenerował zdarzenie.

Field Type Wymagane Opis
Id użytkownikaID UUID Nie zdefiniowano, czy to zdarzenie zostało zainicjowane przez użytkownika
AppID UUID Nie zdefiniowano, czy to zdarzenie zostało zainicjowane przez aplikację
Identyfikator integracji UUID Nie zdefiniowano, czy zdarzenie to zostało zainicjowane przez integrację
EventID UUID Nie zdefiniowano, czy to zdarzenie zostało zainicjowane przez inne zdarzenie
Żądanie ID UUID Nie zdefiniowano, czy to zdarzenie zostało zainicjowane w żądaniu HTTP

EventEmbed Model

Dodatkowe dane o wydarzeniu - głównie nazwy przedmiotów/przestrzeni roboczej/pol/itp., które są związane z tym wydarzeniem.

Field Type Wymagane Opis
Zespoły {UUID: TeamInfo} Nie mapa skrótów identyfikatorów Zespołu na dane Zespołu
użytkowników {UUID: UserInfo} Nie Hash-map identyfikatorów użytkownika do danych użytkownika
Aplikacje {UUID: AppInfo} Nie Hash-map identyfikatorów aplikacji do danych aplikacji
Miejsca pracy {UUID: WorkspaceInfo} Nie Hash-map identyfikatorów obszaru roboczego do danych obszaru roboczego
integracje {UUID: IntegrationInfo} Nie Hash-map identyfikatorów integracji do danych integracyjnych
Pola {UUID: FieldInfo} Nie Hash-map identyfikatorów pól do danych pól
statusy {UUID: StatusInfo} Nie Hash-map identyfikatorów stanu do danych stanu
Elementy {UUID: ItemInfo} Nie Hash-map identyfikatorów elementów do danych pozycji

Model TeamInfo

Field Type Wymagane Opis
Imię String Tak Nazwa zespołu
ślimak String Tak Zespół URL slug
BaseURL String Tak przykład: https://myteam.airfocus.com 
*zastąp airfocus.com przez airfocus.app, jeśli znajdujesz się w USA lub regionie Azji i Pacyfiku, a Twoje konto zostało utworzone /utworz/ po wrześniu 2025 r.

Model UserInfo

Field Type Wymagane Opis
Identyfikator drużyny UUID Tak ID Zespołu, do którego należy ten użytkownik
Pełna nazwa String Tak imię i nazwisko użytkownika

Model AppInfo

Field Type Wymagane Opis
Identyfikator drużyny UUID Tak ID zespołu, do którego należy ta aplikacja
Identyfikator typu String Tak jeden z: formularzy, podsumowania, lustra, portalu, priorytetyzacji

Model WorkspaceInfo

Field Type Wymagane Opis
Identyfikator drużyny UUID Tak ID zespołu, do którego należy ta przestrzeń robocza
Imię String Tak nazwa obszaru roboczego

IntegrationInfo Model

Field Type Wymagane Opis
Przestrzeń roboczaID UUID Tak Identyfikator obszaru roboczego, do którego należy ta integracja
Identyfikator typu String Tak jeden z: asana, azure-devops, clubhouse, github, domofon, jira, planner, trello

Model StatusInfo

Field Type Wymagane Opis
Przestrzeń roboczaID UUID Tak Identyfikator obszaru roboczego, do którego należy ten status
Imię String Tak nazwa statusu
kategoria String Tak jeden z: wersja robocza, aktywna, zamknięta

Model ItemInfo

Field Type Wymagane Opis
Przestrzeń roboczaID UUID Tak Identyfikator obszaru roboczego, do którego należy ten element
StatusID UUID Tak Identyfikator statusu przedmiotu
Imię String Tak Nazwa przedmiotu

Model EventData

EventData jest typem zjednoczenia - może dowolny z określonych typów:

UtwórzEdytuj

Field Type Wymagane Opis
Identyfikator przedmiotu UUID Tak identyfikator elementu /utworz/

AktualizacjaEdytuj

Field Type Wymagane Opis
Identyfikator przedmiotu UUID Tak Identyfikator zaktualizowanego elementu
Status {prev: UUID, next: UUID} Nie stare i nowe identyfikatory statusu (jeśli zostały zmienione)
Kolor {prev: String, next: String} Nie stare i nowe identyfikatory koloru przedmiotu (jeśli zostały zmienione)
PrzypisanieUSERIDS {prev: UUID[], next: UUID[]} Nie stara i nowa lista przypisanych identyfikatorów użytkownika (jeśli zmieniona)
Imię {prev: String, next: String} Nie stara i nowa nazwa przedmiotu (jeśli została zmieniona)
opis {prev: RichText, next: RichText} Nie opis starego i nowego przedmiotu (jeśli został zmieniony)
opis {UID: { prev: JSON, next: JSON } } Nie Hash-map identyfikatorów pól do ich zmienionych wartości, każda wartość to jakiś JSON, który zależy od typu pola
Zarchiwizowano {prev: Boolean, next: Boolean} Nie stare i nowe zarchiwizowane (jeśli zmienione)

Przekaż opinię na temat tego artykułu

Masz opinię na temat tego artykułu? Opowiedz nam o swoich doświadcz eniach tutaj.

Czy znalazłeś to, czego szukałeś?

Nadal masz pytanie lub chcesz podzielić się tym, czego się nauczyłeś? Odwiedź naszą Społeczność   aby uzyskać pomoc i współpracować z innymi.