Integration von Airfocus mit Webhooks

Geschrieben von:  Morgan T
Letzte Aktualisierung:  

Erhalten Sie automatische, Echtzeit-Updates von AirFocus, indem Sie Ihre Lieblings-Apps über unsere Webhooks verbinden.

Vorteile der Verwendung von Webhooks

Webhooks ermöglichen es AirFocus und anderen Apps, einfach und in Echtzeit zusammenzuarbeiten. Das bedeutet, dass Updates und Benachrichtigungen schnell ablaufen, ohne dass zusätzliche Apps oder kompliziertes Programmieren nötig sind.

Anfängliche Einrichtung eines neuen Webhooks

Erstellen Sie einen neuen Arbeitsbereich in airfocus oder wählen Sie den Arbeitsbereich aus, in dem Sie einen neuen Webhook erstellen möchten.

Anforderungen:

  • „Vollständige“ Berechtigungen für den Arbeitsbereich, in dem Sie den Webhook setzen, bringen, einstellen möchten.
  • Bezahltes Abonnement eines Professional- oder Enterprise-Tarifs.
  • Technisches Wissen für die korrekte Konfiguration.

Sie können einem bestimmten Arbeitsbereich mehrere Webhooks hinzufügen (z. B. zu verschiedenen Slack Kanälen für unterschiedliche Stakeholder-Zielgruppen).

Gehen Sie dazu einfach im Der Arbeitsbereich zum Bereich „Erweiterungen“, klicken Sie auf „Integration hinzufügen“ und anschließend unter „Webhook “ auf „Verbinden“ .

integrate-with-webhooks-1.png

integrate-with-webhooks-2.png

Gib als Nächstes deinem Webhook einen Namen (optional) und wähle aus, für welche Ereignisse die Anfragen ausgelöst werden sollen.

integrate-with-webhooks-3.png

In den Anfrageoptionen wähle das Platzhalter-Format und die Methode und füge deine Webhook-URL in das URL-Feld ein. Du kannst bei Bedarf auch Header zu deinen Anfragen hinzufügen.

integrate-with-webhooks-4.png

Optional können Sie auch den Inhalt Ihrer Anfrage im oben ausgewählten Platzhalterformat konfigurieren.

{
"Blöcke": [
{
"type": "divider"
},
{
"Typ": "Abschnitt",
"Text": {
"type": "mrkdwn",
"Text {{title|esc}}"
},
"Zubehör": {
"Typ": "Schaltfläche",
"text": {
"type": "plain_text",
"text": "Open in airfocus",
"emoji": true
},
"Wert": "click_me_123",
"url": "{{url}}",
„action_id“: „Schaltfläche-action“
}
},
{
"Typ": "Abschnitt",
"Text": {
"type": "mrkdwn",
"text": "{{details|esc}}"
}
}
]
}

Für eine detaillierte Dokumentation der Anpassungsoptionen für Ihre Webhooks lesen Sie bitte den folgenden Abschnitt.

Anwendungsfall – Slack-Benachrichtigungen für AirFocus-Updates erhalten

In diesem Anwendungsfall ist unser Ziel, einen Webhook zu konfigurieren, der jedes Mal eine Slack -Nachricht an einen Kanal unserer Wahl sendet, wenn der Status eines Elements des Arbeitsbereichs, für das wir den Webhook konfigurieren, aktualisiert wird.

Dazu müssen wir eine Slack App einrichten, um eine Webhook-URL zu generieren, und anschließend den Rest der Integration in airfocus konfigurieren.

So erstellen Sie eine Webhook-URL für Ihren Slack-Kanal:

  1. Erstelle eine neue Slack App im Slack Der Arbeitsbereich, in der du die airfocus-Benachrichtigungen empfangen möchtest.
    integrate-with-webhooks-5.png
    integrate-with-webhooks-6.png
  2. Aktivieren Sie auf der Seite „Funktionen“ die Option „Eingehende Webhooks aktivieren“ .
    integrate-with-webhooks-7.png
  3. Klicken Sie auf Neuen Webhook zu Der Arbeitsbereich hinzufügen.
    integrate-with-webhooks-8.png
  4. Wähle einen Kanal aus, auf dem die App posten wird, und klicke dann auf Erlauben.
    integrate-with-webhooks-9.png
  5. Kopieren Sie die Webhook-URL und öffnen Sie den airfocus Arbeitsbereich, für den Sie die Updates einrichten möchten.
    integrate-with-webhooks-9.1.png

So konfigurieren Sie Ihren Webhook in AirFocus, um Ereignisaktualisierungsbenachrichtigungen an Slack zu senden:

  1. Klicken Sie im Popover „Erweiterungen“ auf „Integration hinzufügen“.
    integrate-with-webhooks-10.png
  2. Klicken Sie in der Integrationsübersicht unter der Integration „Webhooks“ auf „Verbinden“.
    integrate-with-webhooks-11.png
  3. Gib deinem Webhook einen Namen (optional) und wähle aus, für welche Events die Anfragen ausgelöst werden sollen. → "Status aktualisiert" für diesen Anwendungsfall.
    integrate-with-webhooks-12.png
  4. Wählen Sie in den Anfrageoptionen „Slack Markdown“ als Platzhalterformat und „POST“ als Methode aus. Fügen Sie nun die Webhook-URL, die Sie aus Slack kopiert haben, in das URL-Feld ein.
    integrate-with-webhooks-13.png
  5. Um korrekt formatierte Slack-Nachrichten zu erhalten, fügen Sie die folgende Vorlage in das Nachrichtenfeld ein und klicken Sie auf „Aktualisieren“.
    •  

      {
      "Blöcke": [
      {
      "type": "divider"
      },
      {
      "Typ": "Abschnitt",
      "Text": {
      "type": "mrkdwn",
      "Text {{title|esc}}"
      },
      "Zubehör": {
      "Typ": "Schaltfläche",
      "text": {
      "type": "plain_text",
      "text": "Open in airfocus",
      "emoji": true
      },
      "Wert": "click_me_123",
      "url": "{{url}}",
      „action_id“: „Schaltfläche-action“
      }
      },
      {
      "Typ": "Abschnitt",
      "Text": {
      "type": "mrkdwn",
      "text": "{{details|esc}}"
      }
      }
      ]
      }

       

  6. Sie erhalten nun eine Slack -Nachricht an den von Ihnen gewählten Kanal, sobald sich der Status eines Elements im Arbeitsbereich ändert.
    integrate-with-webhooks-14.png

Erhalten Sie airfocus-Updates in Microsoft Teams

Hinweis: Die Microsoft Teams Webhook-Connector-Funktion wird Ende April 2026 eingestellt. Der nachfolgende Leitfaden enthält Schritte zur alternativen Nutzung der Workflow-Funktion.

Mit der Microsoft Teams Workflows-Funktion können Sie einen Webhook konfigurieren, der eine Teams -Nachricht an einen bestimmten Kanal sendet, wenn Elemente innerhalb eines bestimmten Arbeitsbereichs aktualisiert werden. Dazu müssen Sie eine Webhook-URL in Microsoft Teams generieren und anschließend die restliche Integration in airfocus konfigurieren.

Erstellen einer Webhook-URL in Microsoft Teams

Um eine Webhook-URL in Microsoft Teams zu generieren, befolgen Sie diese Schritte:

  1. Melden Sie sich bei Microsoft Teams an.
  2. Klicken Sie im Navigationsmenü ganz links auf das Dreipunkt-Menü.
  3. Wählen Sie Arbeitsabläufe.
  4. In der Suchleiste suchen Sie nach "webhook".
  5. Wähle "Auf einem Kanal posten", wenn eine Webhook-Anfrage eingeht.
  6. Gib einen Namen für deinen Workflow ein (z. B. "Airfocus-Updates").
  7. Klicken Sie auf Weiter.
  8. Wählen Sie unter „Details“ das jeweilige Team und den Kanal aus, auf dem die Aktualisierungen angezeigt werden sollen.
  9. Klicken Sie auf Workflow hinzufügen.
  10. Auf dem Bestätigungsbildschirm kopieren Sie die POST-URL.
    • Das ist die Webhook-URL, die du in AirFocus einfügen musst.
  11. Klicken Sie auf Fertig, um die Einrichtung abzuschließen.

Konfigurieren Sie Ihren Webhook in AirFocus

Um Ihren Webhook in Airfocus zu konfigurieren, befolgen Sie diese Schritte:

  1. Öffnen Sie den airfocus Arbeitsbereich, für den Sie Aktualisierungen an Microsoft Teams senden möchten.
  2. Klicken Sie in der oberen rechten Ecke des Arbeitsbereichs auf „Erweiterungen“ .
  3. Wählen Sie „Integration hinzufügen“.
  4. Unter "Webhooks" klickst du auf Verbinden.
  5. Gib einen Namen für den Webhook ein.
  6. Wählen Sie unter „Ereignisse“ aus, welche Art von Aktualisierungen an Microsoft Teams gesendet werden sollen.
  7. Unter "Platzhalter-Format" wählen Sie Markdown.
  8. Wählen Sie unter „Methode“ die Option POST aus und fügen Sie anschließend die in Microsoft Teams generierte URL unter „URL“ ein.
  9. Header auswählen + Hinzufügen.
  10. Unter "Header name" geben Sie "Content-Type" ein.
  11. Geben Sie unter „Header-Wert“ „Anwendung/json“ ein.
    example-webhookd-form-filled-out-in-airfocus.png
  12. Um korrekt formatierte Microsoft Teams-Nachrichten zu erhalten, fügen Sie die folgende Vorlage in das Nachrichtenfeld ein.
    • {
        "type": "AdaptiveCard",
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "Version": "1.4",
        "Körper": [
          {
            "type": "TextBlock",
            "text": "{{title}}",
            "Größe": "Mittel",
            "Gewicht": "Kühner",
            "Wrap": Wahr
          },
          {
            "type": "TextBlock",
            "text": "{{details}}",
            "Wrap": Wahr
          }
        ],
        "Handlungen": [
          {
            "type": "Action.OpenUrl",
            "Titel": "Öffnen im Luftfokus",
            "URL": "{{url}}"
          }
        ]
      }
  13. Klicken Sie unten rechts auf der Seite auf Aktualisieren .

Sie erhalten nun Aktualisierungen für den Microsoft Teams -Kanal, den Sie im ersten Abschnitt einrichten.
 

HTTP-Anfrage konfigurieren – technische Dokumentation

Methode

Es heißt setzen, bringen, einstellen und ist standardmäßig auf POST eingestellt, kann aber auch auf GET oder PUT geändert werden. Andere Methoden werden nicht unterstützt.

URL

  • Darf nicht leer sein
  • Es kann nur mit https:// geschrieben werden (andere Schemata oder ein leeres Schema werden nicht unterstützt).
  • sollte einen öffentlichen Domainnamen mit einer bekannten Top-Level-Domain haben (IP-Adressen werden nicht unterstützt).

Kopfzeilen

  • Die Autorisierung wird unterstützt
  • Content-Type wird unterstützt
  • Benutzerdefinierte Header, die mit x- beginnen, werden unterstützt
  • andere Header werden nicht unterstützt

Textkörper

Definiert den Anfragetext des Webhooks.

Kann jeden Text von bis zu 2000 Zeichen lang enthalten.

Um den Request-Body mit sinnvollen Ereignisdaten auszufüllen, stellen wir eine Reihe von Platzhaltern bereit, die unser Server vor dem Versand der Anfrage durch Ereignisdaten ersetzt.

Platzhalter-Format

Legt an, wie die Platzhalter mit RichText-Typ von unserem Server vorgerendert werden sollen. Beispielsweise kann der Platzhalter {{title}} eine Zeichenkette wie „ John updated field Labels on Elemente Fix the Schaltfläche“ enthalten, die Rich-Text-Formatierungen wie Fettdruck, Kursivschrift usw. enthält. Daher gibt das Platzhalterformat an, in welcher spezifischen Syntax diese Formatierung umgewandelt werden soll. Verfügbare Formate:

Name Beschreibung Beispiel
Preisnachlass Standard-Markdown John hat die Feldbeschriftungen auf „Elemente Fix the Button“aktualisiert
HTML <b></b> <i></i> <b>John hat das Feld „Labels“ in den Elementen aktualisiert. Die Schaltfläche wurde repariert.</b>
Text Formatierung entfernt John hat die Feldbeschriftungen auf „Elemente Fix the Button“ aktualisiert
Slack spezielle Slack-Markierung *John* Feld *Beschriftungen* auf Elementen aktualisiert *Schaltfläche reparieren*

Platzhalter

Platzhalter Art Beschreibung Beispiel
{{type}} String Art der Veranstaltung aktualisiertItem
{{title}} String (RichText) Beschreibt Ereignisaktion John hat die Feldbeschriftungen auf „Elemente Fix the Button“ aktualisiert
{{details}} String (RichText) Weitere Veranstaltungsdetails (z. B. Was wurde geändert) Alter Wert ⇒ neuer Wert
{{url}} String Handlungsaufforderungs-URL für jedes spezifische Ereignis (z. B. ein Link zu „Der Arbeitsbereich“ oder „Elemente“) https://myteam.airfocus.com/w/workspaceId?item=itemId 
*ersetzen Sie airfocus.com durch airfocus.app, wenn Sie sich in den USA oder der APAC-Region befinden und Ihr Konto nach September 2025 erstellt wurde
{{event}} JSON vollständige JSON-Daten zum aktuellen Ereignis Siehe unten die Ereignisnutzlast Das Modell
{{title|esc}} String (RichText) Dasselbe wie {{title}} , aber alle doppelten Anführungszeichen sind entkommen Wandelt eine Zeichenkette mit "Doppel"-Anführungszeichen in eine Zeichenkette mit "Doppel"-Anführungszeichen um
{{details|esc}} String (RichText) Dasselbe wie {{details}} , aber alle doppelten Anführungszeichen sind entkommen Wandelt eine Zeichenkette mit "Doppel"-Anführungszeichen in eine Zeichenkette mit "Doppel"-Anführungszeichen um

Datenmodelle

Event Payload Das Modell

Ein Objekt der obersten Ebene, das für jedes Ereignis erzeugt wird. Es enthält Daten über das Ereignis sowie eingebettete Basisdaten über alle Entitäten, die mit diesem Ereignis in Zusammenhang stehen.

Feld Art Pflichtangabe Beschreibung
Ereignis Ereignis ja Grundlegende Daten zum Ereignis
Einbetten EventEmbed ja zusätzliche Daten zum Ereignis – hauptsächlich Namen von Elementen/Arbeitsbereich/Feldern usw., die mit diesem Ereignis in Zusammenhang stehen.
matchedFilter EventFilter ja einer der in den Integrationseinstellungen ausgewählten Ereignisfilter, der mit dem aktuellen Ereignis übereinstimmte

Event Das Modell

Grundlegende Daten zum Ereignis

Feld Art Pflichtangabe Beschreibung
ID UUID ja eindeutige ID der Veranstaltung
Initiator EventInitiator ja Informationen darüber, wer diese Veranstaltung initiiert hat
Daten EventData ja Die tatsächlichen Daten des Ereignisses. Es ist je nach Art von Ereignis unterschiedlich
createdAt Zeitstempel ja wenn das Ereignis stattgefunden hat

EventInitiator Das Modell

Informationen darüber, wer diese Veranstaltung initiiert hat. In den meisten Fällen wird die UserId definiert. Es ist auch möglich, dass sowohl userId als auch integrationId definiert sind – z. B. wenn ein Nutzender die Schaltfläche „Integration synchronisieren“ gedrückt hat, wodurch das Ereignis ausgelöst wurde.

Feld Art Pflichtangabe Beschreibung
NutzerID UUID Nein definiert, ob dieses Ereignis von einem Nutzende initiiert wurde
App-ID UUID Nein definiert, ob dieses Ereignis von einer App ausgelöst wurde.
integrationId UUID Nein definiert, ob dieses Ereignis durch eine Integration ausgelöst wurde
Ereignis-ID UUID Nein definiert, ob dieses Ereignis von einem anderen Ereignis ausgelöst wurde
requestId UUID Nein definiert, wenn dieses Ereignis innerhalb einer HTTP-Anfrage initiiert wurde

EventEmbed Das Modell

Zusätzliche Daten zum Ereignis – hauptsächlich Namen von Elementen/Arbeitsbereich/Feldern usw., die mit diesem Ereignis in Zusammenhang stehen.

Feld Art Pflichtangabe Beschreibung
Teams {UUID: TeamInfo} Nein eine Hash-Zuordnung von Team-IDs zu Teamdaten
Benutzer {UUID: UserInfo} Nein eine Hash-Map von Nutzende-IDs zu Nutzende-Daten
Apps {UUID: AppInfo} Nein eine Hash-Abbildung von App-IDs zu App-Daten
Arbeitsräume {UUID: WorkspaceInfo} Nein eine Hash-Map der Arbeitsbereich-IDs zu den Arbeitsbereich-Daten
Integrationen {UUID: IntegrationInfo} Nein eine Hash-Zuordnung von Integrations-IDs zu Integrationsdaten
Felder {UUID: FieldInfo} Nein eine Hash-Abbildung von Feld-IDs zu Felddaten
Status {UUID: StatusInfo} Nein eine Hash-Abbildung von Status-IDs zu Statusdaten
Elemente {UUID: ItemInfo} Nein eine Hash-Map von Elemente-IDs zu Elemente-Daten

TeamInfo Das Modell

Feld Art Pflichtangabe Beschreibung
Name String ja Teamname
Nacktschnecke String ja Team-URL-Slug
Basis-URL String ja Beispiel: https://myteam.airfocus.com 
*ersetzen Sie airfocus.com durch airfocus.app, wenn Sie sich in den USA oder der APAC-Region befinden und Ihr Konto nach September 2025 erstellt wurde

Benutzerinformationen Das Modell

Feld Art Pflichtangabe Beschreibung
teamId UUID ja ID des Teams, zu dem diese Nutzende gehört
Vollname String ja Nutzendes vollständiger Name

AppInfo Das Modell

Feld Art Pflichtangabe Beschreibung
teamId UUID ja ID des Teams, zu dem diese App gehört
typeId String ja eines von: Formulare, Einsichten, Spiegel, Portal, Priorisierung

WorkspaceInfo Das Modell

Feld Art Pflichtangabe Beschreibung
teamId UUID ja ID des Teams, zu dem dieser Arbeitsbereich gehört
Name String ja Der Arbeitsbereichsname

Integrationsinformationen Das Modell

Feld Art Pflichtangabe Beschreibung
workspaceId UUID ja ID des Arbeitsbereichs, zu dem diese Integration gehört
typeId String ja Eines von: Asana, Azure-DevOps, Clubhouse, GitHub, Intercom, Jira, Planner, Trello

StatusInfo Das Modell

Feld Art Pflichtangabe Beschreibung
workspaceId UUID ja ID des Arbeitsbereichs, zu dem dieser Status gehört
Name String ja Name des Status
kategorie String ja Einer von: Draft, aktiv, geschlossen

Artikelinformationen Das Modell

Feld Art Pflichtangabe Beschreibung
workspaceId UUID ja ID des Arbeitsbereichs, zu dem dieses Elemente gehört
statusId UUID ja Status-ID der Elemente
Name String ja Elementes Name

EventData Das Modell

EventData ist ein Union-Typ – es kann eines der angegebenen Typen sein:

Erstelltes Element

Feld Art Pflichtangabe Beschreibung
itemId UUID ja ID des erstellten Elements

UpdatedItem

Feld Art Pflichtangabe Beschreibung
itemId UUID ja ID der aktualisierten Elemente
Status {prev: UUID, next: UUID} Nein alte und neue Status-IDs (falls geändert)
Farbe {prev: String, next: String} Nein Alte und neue IDs der Elementefarbe (falls geändert)
assigneeUserIds {prev: UUID[], next: UUID[]} Nein Alte und neue Liste der zugewiesenen Nutzen-IDs (falls geändert)
Name {prev: String, next: String} Nein Alter und neuer Name der Elemente (falls geändert)
Beschreibung {prev: RichText, next: RichText} Nein Beschreibung der alten und neuen Elemente (falls geändert)
Beschreibung { UUID: { prev: JSON, next: JSON } } Nein eine Hash-Abbildung von Feld-IDs auf ihre geänderten Werte. Jeder Wert ist ein JSON, das vom Feldtyp abhängt
archiviert {prev: Boolean, next: Boolean} Nein altes und neues Archiv (falls geändert)

Geben Sie uns Feedback zu diesem Artikel

Haben Sie Feedback zu diesem Artikel? Erzählen Sie uns hier von Ihren Erfahrungen.

Haben Sie gefunden wonach Sie gesucht haben?

Haben Sie noch eine Frage oder möchten Sie Ihre Erfahrungen mit anderen teilen? Besuchen Sie unsere Community,   um Hilfe zu bekommen und mit anderen zusammenzuarbeiten.