Integrare airfocus con Webhook

Scritto da:  Morgan T
Ultimo aggiornamento:  

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.

integrate-with-webhooks-1.png

integrate-with-webhooks-2.png

Poi, assegna al tuo webhook un nome (opzionale) e seleziona per quali eventi le richieste devono essere attivate.

integrare-con-webhook-3.png

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.

integrate-with-webhooks-4.png

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:

  1. Crea una nuova app Slack nello spazio di lavoro Slack dove vuoi ricevere le notifiche di airfocus.
    integrate-with-webhooks-5.png
    integrate-with-webhooks-6.png
  2. Nella pagina Funzionalità, attiva l'opzione Attiva webhook in arrivo .
    integrate-with-webhooks-7.png
  3. Fare clic su Aggiungi nuovo webhook all'area di lavoro.
    integrate-with-webhooks-8.png
  4. Scegli un canale su cui l'app pubblicherà, poi clicca su Consenti.
    integrate-with-webhooks-9.png
  5. Copia l'URL del webhook e apri il airfocus spazio di lavoro per cui vuoi configurare gli aggiornamenti.
    integrate-with-webhooks-9.1.png

Come configurare il tuo webhook in airfocus per inviare notifiche di aggiornamento degli eventi a Slack:

  1. Nel popover delle estensioni, clicca su "Aggiungi integrazioni".
    integrate-with-webhooks-10.png
  2. Nella panoramica delle integrazioni, clicca su "Connetti" sotto l'integrazione "Webhooks".
    integrate-with-webhooks-11.png
  3. Dai un nome al tuo webhook (opzionale) e seleziona quali eventi devono essere attivate le richieste. → "Stato aggiornato" per questo caso d'uso.
    integrate-with-webhooks-12.png
  4. 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.
    integrate-with-webhooks-13.png
  5. 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}}"
      }
      }
      ]
      }

       

  6. Ora riceverai un messaggio Slack al canale scelto quando un elemento nell'area di lavoro ha cambiato il suo Stato.
    integrate-with-webhooks-14.png

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:

  1. Accedi a Microsoft Team.
  2. Clicca sul menu a tre punti nel menu di navigazione in estrema sinistra.
  3. Select workflow.
  4. Nella barra di ricerca, cerca "webhook".
  5. Seleziona Pubblica su un canale quando ricevi una richiesta di webhook.
  6. Digita un nome per il tuo workflow (ad esempio, "aggiornamentiairfocus ").
  7. Clicca su Next.
  8. Sotto "Dettagli", seleziona il Team e il Canale specifici dove vuoi che appaiono gli aggiornamenti.
  9. Clicca su Aggiungi workflow.
  10. Nella schermata di conferma, copia l'URL del POST.
    • Questo è l'URL del webhook che dovrai incollare in airfocus.
  11. Clicca su Finito per finalizzare la configurazione.

Configura il tuo webhook in airfocus

Per configurare il tuo webhook in airfocus, segui questi passaggi:

  1. Apri il airfocus spazio di lavoro per cui vuoi inviare aggiornamenti a Microsoft Team.
  2. Clicca su Estensioni dall'angolo in alto a destra dello spazio di lavoro.
  3. Seleziona Aggiungi integrazioni.
  4. Sotto "Webhooks", clicca su Connetti.
  5. Scrivi un nome per il webhook.
  6. Sotto "eventi", seleziona che tipo di aggiornamenti vuoi inviare a Microsoft Team.
  7. Sotto "Formato segnaposto", seleziona Markdown.
  8. Sotto "Metodo", seleziona POST e poi incolla l'URL che hai generato in Microsoft Team sotto "URL".
  9. Seleziona + Aggiungi intestare.
  10. Sotto "Nome intestazione", digita "Content-Type".
  11. Sotto "Header value", digita "application/json".
    example-webhookd-form-filled-out-in-airfocus.png
  12. 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}}"
          }
        ]
      }
  13. 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 Dati di base sugli eventi
Incorpora EventEmbed Dati aggiuntivi sull'evento - principalmente nomi di oggetti/spazi di lavoro/campi/ecc. correlati a questo evento
matchedFilter EventFilter 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 ID unico dell'evento
Iniziatore EventInitiator Informazioni su chi ha dato inizio a questo evento
Dati EventData I dati reali dell'eventoi. È diverso per ogni tipo di evento specifico
creatoA Data e ora 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 Nome del team
Lumaca String Slug URL della squadra
baseUrl String 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 ID del Team a cui appartiene questo utente
Nome completo String Nome completo dell'utente

Modello AppInfo

Campo Tipo Obbligatorio Descrizione
teamId UUID ID del Team a cui appartiene questa app
typeId String Uno di: moduli, Insight, specchio, portale, priorità

Modello WorkspaceInfo

Campo Tipo Obbligatorio Descrizione
teamId UUID ID del Team a cui appartiene questo spazio di lavoro
Nome String Nome dello spazio di lavoro

Modello IntegrationInfo

Campo Tipo Obbligatorio Descrizione
workspaceId UUID ID dello spazio di lavoro a cui appartiene questa integrazione
typeId String Uno di: Asana, Azure-DevOps, Clubhouse, GitHub, Intercom, Jira, Planner, Trello

Modello StatusInfo

Campo Tipo Obbligatorio Descrizione
workspaceId UUID ID dello spazio di lavoro a cui appartiene questo stato
Nome String Nome dello status
categoria String Uno di: draft, attivo, chiuso

Modello ItemInfo

Campo Tipo Obbligatorio Descrizione
workspaceId UUID ID dello spazio di lavoro a cui appartiene questo elemento
statusId UUID ID dello stato dell'articolo
Nome String Nome dell'oggetto

Modello EventData

EventData è un tipo unione - può essere uno dei tipi specificati:

Elemento creato

Campo Tipo Obbligatorio Descrizione
itemId UUID ID dell'oggetto creato

AggiornatoArticolo

Campo Tipo Obbligatorio Descrizione
itemId UUID 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.

Hai trovato quello che stavi cercando?

Hai ancora una domanda o vuoi condividere ciò che hai imparato? Visita il nostro Community   per ricevere aiuto e collaborare con gli altri.