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“ .
Gib als Nächstes deinem Webhook einen Namen (optional) und wähle aus, für welche Ereignisse die Anfragen ausgelöst werden sollen.
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.
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:
-
Erstelle eine neue Slack App im Slack Der Arbeitsbereich, in der du die airfocus-Benachrichtigungen empfangen möchtest.
- Aktivieren Sie auf der Seite „Funktionen“ die Option „Eingehende Webhooks aktivieren“ .
- Klicken Sie auf Neuen Webhook zu Der Arbeitsbereich hinzufügen.
- Wähle einen Kanal aus, auf dem die App posten wird, und klicke dann auf Erlauben.
-
Kopieren Sie die Webhook-URL und öffnen Sie den airfocus Arbeitsbereich, für den Sie die Updates einrichten möchten.
So konfigurieren Sie Ihren Webhook in AirFocus, um Ereignisaktualisierungsbenachrichtigungen an Slack zu senden:
- Klicken Sie im Popover „Erweiterungen“ auf „Integration hinzufügen“.
- Klicken Sie in der Integrationsübersicht unter der Integration „Webhooks“ auf „Verbinden“.
- 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.
- 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.
- 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}}"
}
}
]
}
-
- Sie erhalten nun eine Slack -Nachricht an den von Ihnen gewählten Kanal, sobald sich der Status eines Elements im Arbeitsbereich ändert.
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:
- Melden Sie sich bei Microsoft Teams an.
- Klicken Sie im Navigationsmenü ganz links auf das Dreipunkt-Menü.
- Wählen Sie Arbeitsabläufe.
- In der Suchleiste suchen Sie nach "webhook".
- Wähle "Auf einem Kanal posten", wenn eine Webhook-Anfrage eingeht.
- Gib einen Namen für deinen Workflow ein (z. B. "Airfocus-Updates").
- Klicken Sie auf Weiter.
- Wählen Sie unter „Details“ das jeweilige Team und den Kanal aus, auf dem die Aktualisierungen angezeigt werden sollen.
- Klicken Sie auf Workflow hinzufügen.
- Auf dem Bestätigungsbildschirm kopieren Sie die POST-URL.
- Das ist die Webhook-URL, die du in AirFocus einfügen musst.
- 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:
- Öffnen Sie den airfocus Arbeitsbereich, für den Sie Aktualisierungen an Microsoft Teams senden möchten.
- Klicken Sie in der oberen rechten Ecke des Arbeitsbereichs auf „Erweiterungen“ .
- Wählen Sie „Integration hinzufügen“.
- Unter "Webhooks" klickst du auf Verbinden.
- Gib einen Namen für den Webhook ein.
- Wählen Sie unter „Ereignisse“ aus, welche Art von Aktualisierungen an Microsoft Teams gesendet werden sollen.
- Unter "Platzhalter-Format" wählen Sie Markdown.
- Wählen Sie unter „Methode“ die Option POST aus und fügen Sie anschließend die in Microsoft Teams generierte URL unter „URL“ ein.
- Header auswählen + Hinzufügen.
- Unter "Header name" geben Sie "Content-Type" ein.
- Geben Sie unter „Header-Wert“ „Anwendung/json“ ein.
- 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}}" } ] }
- 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.