Ontvang automatische, realtime updates van AirFocus door jouw favoriete apps te verbinden via onze Webhooks.
Voordelen van het gebruik van webhooks
Webhooks laten airfocus en andere apps eenvoudig en in real-time samenwerken. Dit betekent dat updates en meldingen snel gebeuren zonder dat je extra apps of ingewikkelde codering nodig hebt.
Eerste opstelling van een nieuwe webhook
Maak een nieuwe werkruimte aan in Airfocus, of selecteer degene waarin je een nieuwe webhook wilt maken.
Vereisten:
- "Full" Toestemmingen naar de werkruimte waar ik de webhook wil opzetten.
- Betaald abonnement op professioneel of Enterprise abonnement.
- Technische kennis voor de juiste configuratie.
je kan meerdere webhooks toevoegen aan een bepaald werkruimte (bijvoorbeeld aan verschillende Slack kanalen voor verschillende Stakeholder-doelgroepen).
Om dat te doen, ga je gewoon naar de sectie Extensies binnen jouw werkruimte, klik je op "Add integratie" en "Connect" onder Webhook.
Geef vervolgens jouw webhook een naam (optioneel) en selecteer voor welke gebeurtenis de verzoeken getriggerd moeten worden.
Kies in de verzoekopties het tijdelijke formaat en methode en plak jouw webhook URL in het URL-veld. JE kan ook headers toevoegen aan jouw verzoeken indien nodig.
Optioneel kan je ook het lichaam van jouw request configureren in het hierboven gekozen tijdelijke formaat.
{
"blokken": [
{
"type": "divider"
},
{
"type": "sectie",
"tekst": {
"type": "mrkdwn",
"tekst": "{{title|esc}}"
},
"accessoire": {
"type": "knop",
"tekst": {
"type": "plain_text",
"text": "Open in airfocus",
"emoji": true
},
"waarde": "click_me_123",
"url": "{{url}}",
"action_id": "knop-actie"
}
},
{
"type": "sectie",
"tekst": {
"type": "mrkdwn",
"tekst": "{{details|esc}}"
}
}
]
}Voor gedetailleerde documentatie van aanpassingsopties voor jouw webhooks lees de volgende sectie.
Gebruik - ontvang Slack-meldingen voor AirFocus-updates
Voor dit gebruiksgeval is ons doel om een webhook te configureren die elke keer dat een item van de werkruimte waarvoor we de webhook configureren zijn status krijgt een Slack-bericht naar een kanaal naar keuze stuurt.
Om dat te doen, moeten we een Slack-app instellen om een webhook-URL te genereren en vervolgens de rest van de integratie in Airfocus configureren.
Hoe maak je een webhook-URL aan naar jouw Slack kanaal:
-
Maak een nieuwe Slack-app aan in de Slack-werkruimte waar je de AirFocus-meldingen wilt ontvangen.
- Zet vanaf de pagina Functies de optie Inkomende Webhooks Activeren in.
- Klik op Voeg nieuwe webhook toe aan werkruimte.
- Kies een kanaal waar de app op zal posten en klik dan op Toestaan.
-
Kopieer de webhook-URL en open de airfocus-werkruimte waarvoor je de updates wilt opstellen.
Hoe configureer je jouw webhook in Airfocus om gebeurtenis-updatemeldingen naar Slackte sturen:
- Klik in de popover van extensies op "Add integratie".
- Klik in het integratieoverzicht op "Verbinden" onder de integratie "Webhooks".
- Geef jouw webhook een naam (optioneel) en selecteer voor welke gebeurtenis de verzoeken getriggerd moeten worden. → "Status bijgewerkt" voor dit gebruiksgeval.
- Selecteer in de verzoekopties "Slack markdown" als plaatsvervangend formaat en "POST" als methode. Plak nu de webhook-URL die je uit Slack hebt gekopieerd in het URL-veld.
- Om correct geformatteerd Slack bericht te ontvangen, plak je het volgende sjabloon in het hoofdtekstveld en druk je op update.
-
{
"blokken": [
{
"type": "divider"
},
{
"type": "sectie",
"tekst": {
"type": "mrkdwn",
"tekst": "{{title|esc}}"
},
"accessoire": {
"type": "knop",
"tekst": {
"type": "plain_text",
"text": "Open in airfocus",
"emoji": true
},
"waarde": "click_me_123",
"url": "{{url}}",
"action_id": "knop-actie"
}
},
{
"type": "sectie",
"tekst": {
"type": "mrkdwn",
"tekst": "{{details|esc}}"
}
}
]
}
-
- JE ontvangt nu een Slack bericht aan het kanaal dat je heeft gekozen wanneer een item in de werkruimte zijn Status heeft gewijzigd.
Ontvang airfocus updates in Microsoft Teams
Opmerking: De Microsoft Teams webhook connector functie wordt eind april 2026 afgeschaft. De onderstaande gids bevat stappen om de workflowfunctie als alternatief te gebruiken.
De Microsoft Teams workflowfunctie stelt je in staat een webhook te configureren die een Teambericht naar een aangewezen kanaal stuurt wanneer items binnen een bepaald airfocus werkruimte worden bijgewerkt. Om dit te doen, moet ik een webhook-URL op Microsoft Teams genereren en vervolgens de rest van de integratie configureren in airfocus.
Maak een webhook-URL aan in Microsoft Teams
Om een webhook-URL in Microsoft Teamste genereren, volgen we deze stappen:
- Log in bij Microsoft Teams.
- Klik op het menu met drie puntjes in het navigatiemenu helemaal links.
- Select workflow.
- Zoek in de zoekbalk op "webhook".
- Selecteer Plaatsen op een kanaal wanneer een webhook-verzoek wordt ontvangen.
- Typ een naam in voor jouw workflow (bijv. "Airfocus updates").
- Klik op Volgende.
- Selecteer onder "Details" het specifieke Team en Kanaal waar je wilt dat de updates verschijnen.
- Klik op Voeg workflowtoe.
- Kopieer op het bevestigingsscherm de POST-URL.
- Dit is de webhook-URL die je in airfocusmoet plakken.
- Klik op Klaar om de setup af te ronden.
Configureer jouw webhook in airfocus
Om jouw webhook in airfocuste configureren, volg deze stappen:
- Open de airfocus werkruimte waarvoor je updates naar Microsoft Teamswilt sturen.
- Klik rechtsboven op Uitbreidingen in de werkruimte.
- Selecteer Voeg integratie toe.
- Klik onder "Webhooks" op Verbinden.
- Typ een naam in voor de webhook.
- Selecteer onder "gebeurtenis" welk soort updates ik naar Microsoft Teamswilt sturen.
- Selecteer onder "Placeholder-formaat" Markdown.
- Selecteer onder "Methode" POST en plak de URL die je in Microsoft Teams hebt gegenereerd onder "URL".
- Selecteer + Voeg kop.
- Onder "Header name" typ je "Content-Type".
- Onder "Header value" typ je "applicatie/json".
- Om correct geformatteerd Microsoft Teams bericht te ontvangen, plakt u het volgende sjabloon in het hoofdtekstveld.
{ "type": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "versie": "1.4", "lichaam": [ { "type": "TextBlock", "tekst": "{{title}}", "grootte": "Medium", "gewicht": "Gedurfder", "Wrap": waar }, { "type": "TextBlock", "tekst": "{{details}}", "Wrap": waar } ], "Acties": [ { "type": "Action.OpenUrl", "titel": "Open in airfocus", "URL": "{{url}}" } ] }
- Klik rechtsonder op de pagina op Updaten .
JE ontvangt nu updates over het Microsoft Teams kanaal dat JE in het eerste gedeelte heeft opgezet.
HTTP-verzoek configureren - technische documentatie
Methode
Het staat standaard op POST, maar kan ook worden gewijzigd naar GET of PUT. Andere methoden worden niet ondersteund.
URL
- Mag niet leeg zijn
- Kan alleen beginnen met https:// (andere schema's of lege schema's worden niet ondersteund)
- moet een publieke domeinnaam hebben met een bekend top-niveau-domein (IP's worden niet ondersteund)
Kopteksten
- Autorisatie wordt ondersteund
- Content-Type wordt ondersteund
- Aangepaste headers die beginnen met x- worden ondersteund
- andere headers worden niet ondersteund
Hoofdtekst
Definieert een request body van de webhook.
Kan elke tekst tot 2000 tekens lang bevatten.
Om het verzoeklichaam in te vullen met betekenisvolle gebeurtenis-data, leveren we een aantal tijdelijke elementen die onze server vervangt door gebeurtenis-data voordat het verzoek wordt verzonden.
Plaatsvervangerformaat
Geeft aan hoe de placeholders met RichText-type vooraf door onze server moeten worden gerenderd. Bijvoorbeeld {{title}} , een tijdelijke tekst kan een string bevatten zoals "John updated field Labels on item Fix the knop" die wat rich-text opmaak bevat zoals vetgedrukt, cursief, enzovoort, en daarom specificeert het placeholderformaat in welke specifieke syntaxis deze opmaak moet worden getransformeerd. Beschikbare formaten:
| Naam | Beschrijving | Voorbeeld |
| markdown | Standaard markdown | John heeft het veld bijgewerkt Labels op het item Fix de knop |
| HTML | <b>John</b> bijgewerkte veld <i>Labels</i> op item <b>Fix de knop</b> |
|
| tekst | Opmaak verwijderd | John heeft het veld bijgewerkt Labels op het item Fix de knop |
| Slack | speciale Slack mrkdwn | *John* bijgewerkt veld *Labels* op item *Fix de knop* |
Plaatsvervangers
| Placeholder | Type | Beschrijving | Voorbeeld |
{{type}} |
String | Type gebeurtenis | bijgewerktItem |
{{title}} |
String (RichText) | beschrijft gebeurtenis actie | John heeft het veld bijgewerkt Labels op het item Fix de knop |
{{details}} |
String (RichText) | aanvullende gebeurtenisdetails (bijv. Wat is er veranderd) | Oude waarde ⇒ Nieuwe waarde |
{{url}} |
String | call-to-action URL voor elke specifieke gebeurtenis (bijvoorbeeld een link naar een werkruimte of een item) |
https://myteam.airfocus.com/w/workspaceId?item=itemId *vervang airfocus.com door airfocus.app als je je in de VS of APAC-regio bevindt en jouw account na september 2025 is aangemaakt |
{{event}} |
JSON | volledige JSON-gegevens over de huidige gebeurtenis | Zie hieronder het gebeurtenis Payload-model |
{{title|esc}} |
String (RichText) | Hetzelfde als {{title}} , maar alle dubbele aanhalingstekens worden ontsnapt |
Transformeert een string met "dubbele" aanhalingstekens in een string met \"double\" aanhalingstekens |
{{details|esc}} |
String (RichText) | Hetzelfde als {{details}} , maar alle dubbele aanhalingstekens worden ontsnapt |
Transformeert een string met "dubbele" aanhalingstekens in een string met \"double\" aanhalingstekens |
Datamodellen
gebeurtenis Payload model
Een object op topniveau, geproduceerd voor elke gebeurtenis. Het bevat gegevens over de gebeurtenis evenals ingebedde basisgegevens over alle entiteiten die met deze gebeurtenis te maken hebben.
| Veld | Type | Vereist | Beschrijving |
| Gebeurtenis | Gebeurtenis | ja | Basisgegevens over de gebeurtenis |
| Insluiten | Gebeurtenisbed | ja | Aanvullende gegevens over de gebeurtenis - voornamelijk namen van items/werkruimte/velden/etc. die met deze gebeurtenis te maken hebben |
| matchedFilter | EventFilter | ja | Een van de gebeurtenis-filters geselecteerd in de integratie-instellingen, die overeenkwam met de huidige gebeurtenis |
Gebeurtenismodel
Basisgegevens over de gebeurtenis
| Veld | Type | Vereist | Beschrijving |
| Id | UUID | ja | unieke identificatie van de gebeurtenis |
| Initiatiefnemer | EventInitiator | ja | informatie over wie deze gebeurtenis heeft geïnitieerd |
| Gegevens | EventData | ja | de daadwerkelijke gegevens van de gebeurtenis. Het verschilt per specifiek gebeurtenis-type |
| createdAt | Tijdstempel | ja | wanneer de gebeurtenis heeft plaatsgevonden |
EventInitiator-model
Informatie over wie deze gebeurtenis heeft geïnitieerd. In de meeste gevallen wordt de userId gedefinieerd. Het is ook mogelijk dat er zowel userId als integrationId gedefinieerd zijn - bijvoorbeeld als een gebruiker op de knop "synchronise integratie" drukt, wat dan de gebeurtenis produceert.
| Veld | Type | Vereist | Beschrijving |
| gebruikersId | UUID | Nee | gedefinieerd als deze gebeurtenis werd geïnitieerd door een Gebruiker |
| appId | UUID | Nee | gedefinieerd als deze gebeurtenis door een app is geïnitieerd |
| integrationId | UUID | Nee | gedefinieerd als deze gebeurtenis is geïnitieerd door een integratie |
| eventId | UUID | Nee | gedefinieerd als deze gebeurtenis werd geïnitieerd door een andere gebeurtenis |
| requestId | UUID | Nee | gedefinieerd als deze gebeurtenis werd gestart binnen een HTTP-verzoek |
EventEmbed-model
Aanvullende gegevens over de gebeurtenis - voornamelijk namen van items/werkruimte/velden/etc. die met deze gebeurtenis te maken hebben.
| Veld | Type | Vereist | Beschrijving |
| Teams | {UUID: TeamInfo} | Nee | een hash-map van Team-ID's naar Teamdata |
| gebruikers | {UUID: UserInfo} | Nee | een hash-map van Gebruiker-ID's naar Gebruiker-data |
| apps | {UUID: AppInfo} | Nee | een hash-map van app-ID's naar app-data |
| Werkruimte | {UUID: WorkspaceInfo} | Nee | een hash-map van werkruimte-ID's naar werkruimte-data |
| integraties | {UUID: IntegrationInfo} | Nee | een hash-map van integratie-ID's naar integratiedata |
| velden | {UUID: FieldInfo} | Nee | een hash-map van veld-ID's naar veldgegevens |
| Statussen | {UUID: StatusInfo} | Nee | een hash-map van status-ID's naar statusgegevens |
| items | {UUID: ItemInfo} | Nee | een hash-map van item-ID's naar itemgegevens |
TeamInfo-model
| Veld | Type | Vereist | Beschrijving |
| naam | String | ja | Teamnaam |
| slug | String | ja | Team URL slug |
| baseUrl | String | ja | Voorbeeld: https://myteam.airfocus.com *vervang airfocus.com door airfocus.app als je je in de VS of APAC-regio bevindt en jouw account na september 2025 is aangemaakt |
UserInfo-model
| Veld | Type | Vereist | Beschrijving |
| teamId | UUID | ja | ID van het team waar deze Gebruiker bij hoort |
| volledige Naam | String | ja | Gebruikers volledige naam |
AppInfo-model
| Veld | Type | Vereist | Beschrijving |
| teamId | UUID | ja | ID van het team waar deze app toe behoort |
| typeId | String | ja | Eén van: Formulieren, Inzichten, Spiegel, Portaal, Prioritering |
WorkspaceInfo-model
| Veld | Type | Vereist | Beschrijving |
| teamId | UUID | ja | ID van het team waar deze werkruimte toe behoort |
| naam | String | ja | Werkruimtenaam |
IntegratieInfo-model
| Veld | Type | Vereist | Beschrijving |
| workspaceId | UUID | ja | ID van de werkruimte waar deze integratie bij hoort |
| typeId | String | ja | Eén van: Asana, Azure-DevOps, Clubhouse, GitHub, Intercom, Jira, Planner, Trello |
StatusInfo-model
| Veld | Type | Vereist | Beschrijving |
| workspaceId | UUID | ja | ID van de werkruimte waartoe deze status behoort |
| naam | String | ja | Naam van de status |
| categorie | String | ja | Eén van: Draft, Actief, Gesloten |
ItemInfo-model
| Veld | Type | Vereist | Beschrijving |
| workspaceId | UUID | ja | ID van de werkruimte waar dit item bij hoort |
| statusId | UUID | ja | ID van de status van het item |
| naam | String | ja | Naam van het item |
EventData-model
EventData is een unietype - het kan een van de gespecificeerde types zijn:
CreatedItem
| Veld | Type | Vereist | Beschrijving |
| itemId | UUID | ja | ID van het aangemaakte item |
BijgewerktItem
| Veld | Type | Vereist | Beschrijving |
| itemId | UUID | ja | ID van het bijgewerkte item |
| status | {prev: UUID, next: UUID} | Nee | oude en nieuwe ID's van de status (indien gewijzigd) |
| kleur | {prev: String, next: String} | Nee | oude en nieuwe ID's van de kleur van het item (indien gewijzigd) |
| administratorUserIds | {prev: UUID[], next: UUID[]} | Nee | oude en nieuwe lijst van toegewezen Gebruiker-ID's (indien gewijzigd) |
| naam | {prev: String, next: String} | Nee | Oude en nieuwe itemnaam (indien gewijzigd) |
| Beschrijving | {prev: RichText, next: RichText} | Nee | Oude en nieuwe itembeschrijving (indien gewijzigd) |
| Beschrijving | { UUID: { prev: JSON, next: JSON } } | Nee | een hash-map van veld-id's naar hun gewijzigde waarden; elke waarde is een soort JSON die afhangt van het veldtype |
| gearchiveerd | {prev: Boolean, next: Boolean} | Nee | oud en nieuw Archief (indien gewijzigd) |
Feedback geven over dit artikel
Heb je feedback over dit artikel? Deel je ervaringen hier.