Ricevi aggiornamenti automatici e in tempo reale da airfocus collegando le tue app preferite tramite i nostri Webhook.
Vantaggi dell'uso dei webhook
I Webhook permettono a airfocus e ad altre app di lavorare insieme facilmente e in tempo reale. Questo significa che aggiornamenti e notifiche avvengono rapidamente senza bisogno di app aggiuntive o di programmazione complicata.
Configurazione iniziale di un nuovo webhook
Crea un nuovo spazio di lavoro in airfocusoppure seleziona quello in cui vorresti creare un nuovo webhook.
Requisiti:
- Permessi "completi" sullo spazio di lavoro in cui vuoi configurare il webhook.
- Abbonamento a pagamento a un piano Professional o Aziendale.
- Conoscenze tecniche per una corretta configurazione.
Puoi aggiungere più webhook a un dato spazio di lavoro (ad esempio a diversi canali Slack per diversi pubblici di stakeholder).
Per farlo, vai semplicemente nella sezione Estensioni all'interno del tuo spazio di lavoro, clicca su "Aggiungi integrazioni" e "Connetti" sotto Webhook.
Poi, assegna al tuo webhook un nome (opzionale) e seleziona per quali eventi le richieste devono essere attivate.
Nelle opzioni di richiesta, scegli il formato segnaposto e il metodo e incolla l'URL del tuo webhook nel campo URL. Puoi anche aggiungere intestazioni alle tue richieste se necessario.
Opzionalmente puoi anche configurare il corpo della tua richiesta nel formato segnaposto scelto sopra.
{
"blocchi": [
{
"type": "divider"
},
{
"tipo": "sezione",
"testo": {
"tipo": "mrkdwn",
"testo": "{{title|esc}}"
},
"accessorio": {
"tipo": "pulsante",
"testo": {
"type": "plain_text",
"text": "Open in airfocus",
"emoji": true
},
"valore": "click_me_123",
"URL": "{{url}}",
"action_id": "azione a pulsante"
}
},
{
"tipo": "sezione",
"testo": {
"tipo": "mrkdwn",
"testo": "{{details|esc}}"
}
}
]
}Per una documentazione dettagliata delle opzioni di personalizzazione dei tuoi webhook, leggi la seguente sezione.
Caso d'uso - ricevi notifiche Slack per aggiornamenti airfocus
Per questo caso d'uso, il nostro obiettivo è configurare un webhook che invii un messaggio Slack a un canale a nostra scelta ogni volta che un elemento dello spazio di lavoro per cui configuriamo il webhook viene aggiornato.
Per farlo, dobbiamo configurare un'app Slack per generare un URL webhook e poi configurare il resto dell'integrazione in airfocus.
Come creare un URL webhook per il tuo canale Slack:
-
Crea una nuova app Slack nello spazio di lavoro Slack dove vuoi ricevere le notifiche di airfocus.
- Nella pagina Funzionalità, attiva l'opzione Attiva webhook in arrivo .
- Fare clic su Aggiungi nuovo webhook all'area di lavoro.
- Scegli un canale su cui l'app pubblicherà, poi clicca su Consenti.
-
Copia l'URL del webhook e apri il airfocus spazio di lavoro per cui vuoi configurare gli aggiornamenti.
Come configurare il tuo webhook in airfocus per inviare notifiche di aggiornamento degli eventi a Slack:
- Nel popover delle estensioni, clicca su "Aggiungi integrazioni".
- Nella panoramica delle integrazioni, clicca su "Connetti" sotto l'integrazione "Webhooks".
- Dai un nome al tuo webhook (opzionale) e seleziona quali eventi devono essere attivate le richieste. → "Stato aggiornato" per questo caso d'uso.
- Nelle opzioni di richiesta, seleziona "Slack markdown" come formato provvisorio e "POST" come metodo. Ora incolla l'URL del webhook che hai copiato da Slack nel campo URL.
- Per ricevere messaggi Slack formattati correttamente, incolla il seguente Modello nel campo della carrozzeria e premi aggiorna.
-
{
"blocchi": [
{
"type": "divider"
},
{
"tipo": "sezione",
"testo": {
"tipo": "mrkdwn",
"testo": "{{title|esc}}"
},
"accessorio": {
"tipo": "pulsante",
"testo": {
"type": "plain_text",
"text": "Open in airfocus",
"emoji": true
},
"valore": "click_me_123",
"URL": "{{url}}",
"action_id": "azione a pulsante"
}
},
{
"tipo": "sezione",
"testo": {
"tipo": "mrkdwn",
"testo": "{{details|esc}}"
}
}
]
}
-
- Ora riceverai un messaggio Slack al canale scelto quando un elemento nell'area di lavoro ha cambiato il suo Stato.
Ricevi aggiornamenti airfocus su Microsoft Team
Nota: La funzione Microsoft Team webhook connector sarà deprecata alla fine di aprile 2026. La guida qui sotto include i passaggi su come utilizzare la funzione Workflow come alternativa.
La funzione Microsoft Team Workflows ti permette di configurare un webhook che invia un messaggio Team a un canale designato quando vengono aggiornati elementi all'interno di un determinato airfocus workspace. Per farlo, dovrai generare un URL webhook su Microsoft Team e poi configurare il resto dell'integrazione in airfocus.
Crea un URL di webhook in Microsoft Team
Per generare un URL di webhook in Microsoft Team, segui questi passaggi:
- Accedi a Microsoft Team.
- Clicca sul menu a tre punti nel menu di navigazione in estrema sinistra.
- Select workflow.
- Nella barra di ricerca, cerca "webhook".
- Seleziona Pubblica su un canale quando ricevi una richiesta di webhook.
- Digita un nome per il tuo workflow (ad esempio, "aggiornamentiairfocus ").
- Clicca su Next.
- Sotto "Dettagli", seleziona il Team e il Canale specifici dove vuoi che appaiono gli aggiornamenti.
- Clicca su Aggiungi workflow.
- Nella schermata di conferma, copia l'URL del POST.
- Questo è l'URL del webhook che dovrai incollare in airfocus.
- Clicca su Finito per finalizzare la configurazione.
Configura il tuo webhook in airfocus
Per configurare il tuo webhook in airfocus, segui questi passaggi:
- Apri il airfocus spazio di lavoro per cui vuoi inviare aggiornamenti a Microsoft Team.
- Clicca su Estensioni dall'angolo in alto a destra dello spazio di lavoro.
- Seleziona Aggiungi integrazioni.
- Sotto "Webhooks", clicca su Connetti.
- Scrivi un nome per il webhook.
- Sotto "eventi", seleziona che tipo di aggiornamenti vuoi inviare a Microsoft Team.
- Sotto "Formato segnaposto", seleziona Markdown.
- Sotto "Metodo", seleziona POST e poi incolla l'URL che hai generato in Microsoft Team sotto "URL".
- Seleziona + Aggiungi intestare.
- Sotto "Nome intestazione", digita "Content-Type".
- Sotto "Header value", digita "application/json".
- Per ricevere messaggi Microsoft Team formattati correttamente, incolla il seguente Modello nel campo corpo.
{ "tipo": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "versione": "1.4", "corpo": [ { "type": "TextBlock", "testo": "{{title}}", "dimensione": "Media", "peso": "Più audaci", "Avvolgere": vero }, { "type": "TextBlock", "testo": "{{details}}", "Avvolgere": vero } ], "azioni": [ { "type": "Action.OpenUrl", "titolo": "Apri in airfocus", "URL": "{{url}}" } ] }
- Clicca su Aggiorna dall'angolo in basso a destra della pagina.
Ora riceverai aggiornamenti sul canale Microsoft Team che hai impostato nella prima sezione.
Configurazione della richiesta HTTP - documentazione tecnica
Metodo
È impostato su POST di default, ma può anche essere cambiato in GET o PUT. Altri metodi non sono supportati.
URL
- Non dovrebbe essere vuoto
- può iniziare solo con https:// (altri schemi o schemi vuoti non sono supportati)
- dovrebbe avere un nome di dominio pubblico con un dominio di alto livello ben noto (gli IP non sono supportati)
Intestazioni
- L'autorizzazione è supportata
- È supportato il tipo di contenuto
- Sono supportate le intestazioni personalizzate che iniziano con x-
- Qualsiasi altra intestazione non è supportata
Corpo
Definisce il corpo della richiesta del webhook.
Può contenere qualsiasi testo fino a 2000 caratteri.
Per completare il corpo della richiesta con dati eventi significativi, forniamo una serie di segnaposto che il nostro server sostituisce con dati eventi prima di inviare la richiesta.
Formato segnaposto
Specifica come i segnaposto con tipo RichText devono essere pre-renderizzati dal nostro server. Ad esempio, il segnaposto {{title}} può contenere una stringa come "John ha aggiornato le etichette dei campi sull'elemento Correggi il pulsante " che contiene una formattazione RTF come grassetto, corsivo, ecc. e pertanto il formato del segnaposto specifica in quale sintassi specifica questa formattazione deve essere trasformata. Formati disponibili:
| Nome | Descrizione | Esempio |
| Sconto | Markdown predefinito | John ha aggiornato il campo Etichette sull'oggetto Fissa il pulsante |
| HTML | <b>John</b> ha aggiornato il campo <i>Etichette</i> sull'elemento <b>Correggi il pulsante</b> |
|
| testo | Formattazione rimossa | John ha aggiornato il campo Etichette sull'oggetto Fissa il pulsante |
| slack | speciale Slack mrkdwn | *John* campo aggiornato *Etichette* sull'oggetto *Correggi il pulsante* |
Segnaposto
| Segnaposto | Tipo | Descrizione | Esempio |
{{type}} |
String | Tipo di eventi | aggiornatoItem |
{{title}} |
Stringa (RichText) | Descrive gli eventi action | John ha aggiornato il campo Etichette sull'oggetto Fissa il pulsante |
{{details}} |
Stringa (RichText) | Dettagli aggiuntivi sugli eventi (ad esempio, cosa è stato cambiato) | Vecchio valore ⇒ Nuovo valore |
{{url}} |
String | URL di chiamata all'azione per ogni evento specifico (ad esempio un link a un workspace o a un elemento) |
https://myteam.airfocus.com/w/workspaceId?item=itemId *sostituisci airfocus.com con airfocus.app se ti trovi negli Stati Uniti o nella regione APAC e il tuo account è stato creato dopo settembre 2025 |
{{event}} |
JSON | dati JSON completi sull'evento attuale | Vedi il modello di carico utile degli eventi qui sotto |
{{title|esc}} |
Stringa (RichText) | Uguale ma {{title}} tutte le doppie virgolette sono sfuggite |
trasforma la stringa con virgolette "doppie" in stringhe con virgolette "doppie" |
{{details|esc}} |
Stringa (RichText) | Uguale ma {{details}} tutte le doppie virgolette sono sfuggite |
trasforma la stringa con virgolette "doppie" in stringhe con virgolette "doppie" |
Modelli di Dati
Modello di carico utile eventi
Un oggetto di livello superiore, prodotto per ogni eventi. Contiene dati sugli eventi così come dati di base incorporati su tutte le entità correlate a questo evento.
| Campo | Tipo | Obbligatorio | Descrizione |
| evento | Evento | sì | Dati di base sugli eventi |
| Incorpora | EventEmbed | sì | Dati aggiuntivi sull'evento - principalmente nomi di oggetti/spazi di lavoro/campi/ecc. correlati a questo evento |
| matchedFilter | EventFilter | sì | Uno dei filtri eventi selezionati nelle impostazioni di integrazione, che corrispondeva all'evento corrente |
Modello eventi
Dati di base sugli eventi
| Campo | Tipo | Obbligatorio | Descrizione |
| Id | UUID | sì | ID unico dell'evento |
| Iniziatore | EventInitiator | sì | Informazioni su chi ha dato inizio a questo evento |
| Dati | EventData | sì | I dati reali dell'eventoi. È diverso per ogni tipo di evento specifico |
| creatoA | Data e ora | sì | quando è avvenuto l'evento |
Modello EventInitiator
Informazioni su chi ha avviato questo evento. Nella maggior parte dei casi l'userID sarà definito. È anche possibile che vengano definiti sia userId che integrationId - ad esempio se un utente preme il pulsante "sincronizza integrazione" che produce l'eventi.
| Campo | Tipo | Obbligatorio | Descrizione |
| UserId | UUID | No | definiti se questo evento è stato avviato da un utente |
| appId | UUID | No | definiti se questo evento è stato avviato da un'app |
| integrationId | UUID | No | definita se questo evento è stato avviato da un'integrazione |
| ID evento | UUID | No | definita se questo evento fosse stato iniziato da un altro evento |
| requestId | UUID | No | definita se questo evento è stato avviato all'interno di una richiesta HTTP |
Modello EventEmbed
Dati aggiuntivi sull'evento - principalmente nomi di elementi/workspace/campi/ecc. che sono correlati a questo eventoi.
| Campo | Tipo | Obbligatorio | Descrizione |
| team | {UUID: TeamInfo} | No | una mappa hash degli ID del Team ai dati del Team |
| utenti | {UUID: UserInfo} | No | una mappa hash degli ID utente ai dati utente |
| App | {UUID: AppInfo} | No | una mappa hash degli ID delle app ai dati dell'app |
| Spazi di lavoro | {UUID: WorkspaceInfo} | No | una mappa hash degli ID degli spazi di lavoro ai dati dello spazio di lavoro |
| Integrazioni | {UUID: IntegrationInfo} | No | una mappa hash degli ID di integrazione ai dati di integrazione |
| Campi | {UUID: FieldInfo} | No | una mappa hash degli ID dei campi ai dati dei campi |
| Status | {UUID: StatusInfo} | No | una mappa hash degli ID di stato sui dati di stato |
| Elementi | {UUID: ItemInfo} | No | una mappa hash degli ID degli elementi ai dati degli elementi |
Modello TeamInfo
| Campo | Tipo | Obbligatorio | Descrizione |
| Nome | String | sì | Nome del team |
| Lumaca | String | sì | Slug URL della squadra |
| baseUrl | String | sì | Esempio: https://myteam.airfocus.com *sostituisci airfocus.com con airfocus.app se ti trovi negli Stati Uniti o nella regione APAC e il tuo account è stato creato dopo settembre 2025 |
Modello UserInfo
| Campo | Tipo | Obbligatorio | Descrizione |
| teamId | UUID | sì | ID del Team a cui appartiene questo utente |
| Nome completo | String | sì | Nome completo dell'utente |
Modello AppInfo
| Campo | Tipo | Obbligatorio | Descrizione |
| teamId | UUID | sì | ID del Team a cui appartiene questa app |
| typeId | String | sì | Uno di: moduli, Insight, specchio, portale, priorità |
Modello WorkspaceInfo
| Campo | Tipo | Obbligatorio | Descrizione |
| teamId | UUID | sì | ID del Team a cui appartiene questo spazio di lavoro |
| Nome | String | sì | Nome dello spazio di lavoro |
Modello IntegrationInfo
| Campo | Tipo | Obbligatorio | Descrizione |
| workspaceId | UUID | sì | ID dello spazio di lavoro a cui appartiene questa integrazione |
| typeId | String | sì | Uno di: Asana, Azure-DevOps, Clubhouse, GitHub, Intercom, Jira, Planner, Trello |
Modello StatusInfo
| Campo | Tipo | Obbligatorio | Descrizione |
| workspaceId | UUID | sì | ID dello spazio di lavoro a cui appartiene questo stato |
| Nome | String | sì | Nome dello status |
| categoria | String | sì | Uno di: draft, attivo, chiuso |
Modello ItemInfo
| Campo | Tipo | Obbligatorio | Descrizione |
| workspaceId | UUID | sì | ID dello spazio di lavoro a cui appartiene questo elemento |
| statusId | UUID | sì | ID dello stato dell'articolo |
| Nome | String | sì | Nome dell'oggetto |
Modello EventData
EventData è un tipo unione - può essere uno dei tipi specificati:
Elemento creato
| Campo | Tipo | Obbligatorio | Descrizione |
| itemId | UUID | sì | ID dell'oggetto creato |
AggiornatoArticolo
| Campo | Tipo | Obbligatorio | Descrizione |
| itemId | UUID | sì | ID dell'articolo aggiornato |
| Stato | {prev: UUID, next: UUID} | No | vecchi e nuovi ID dello stato (se modificati) |
| colore | {prev: String, next: String} | No | ID vecchi e nuovi del colore dell'articolo (se cambiati) |
| assigneeUserIds | {prev: UUID[], next: UUID[]} | No | vecchia e nuova lista degli ID utente assegnati (se modificati) |
| Nome | {prev: String, next: String} | No | Nome vecchio e nuovo articolo (se modificato) |
| Descrizione | {prev: RichText, next: RichText} | No | Descrizione dell'oggetto vecchio e nuovo (se modificata) |
| Descrizione | { UUID: { prev: JSON, next: JSON } } | No | una mappa hash di ID di campo ai loro valori cambiati, ogni valore è un JSON che dipende dal tipo di campo |
| archiviato | {prev: Boolean, next: Boolean} | No | Vecchi e nuovi archiviati (se modificati) |
Dai un feedback su questo articolo
Hai un feedback su questo articolo? Raccontaci della tua esperienza qui.