Saltar al contingut principal
Versió: 25.12

Webhooks

Webhooks és una funcionalitat que permet integrar Portal amb eines de tercers per a l'enviament de notificacions quan es produeixen determinats esdeveniments a la organització.

Esdeveniments disponibles:

  • Alerta activada
  • Microservei executat
  • Objecte creat
  • Objecte modificat
  • Objecte eliminat
  • Operació executada
  • Operació executada en un workspace

Quan ocorre un d'aquests esdeveniments, Portal realitza una crida HTTP a la URL configurada per l'organització i envia un missatge amb la informació corresponent. L'aplicació de destí pot utilitzar aquestes dades per executar accions com crear un tiquet en un sistema ITSM, enviar un missatge per Slack o Microsoft Teams, enviar un correu electrònic, entre altres.

Aquesta eina només pot ser configurada per un usuari amb rol de Administrador d'organització.

Visió general

La pantalla principal mostra el llistat de webhooks configurats a la organització, indicant si estan habilitats o deshabilitats. La taula inclou:

  • Nom. Nom assignat al webhook. En fer clic s'accedeix a la seva vista de detall.
  • Tipus d'esdeveniment. Esdeveniment que activarà el webhook.
  • URL de destí. Adreça del sistema extern que rep l'esdeveniment i actua segons la informació proporcionada en el missatge.
  • Estat. Indica si el webhook està Habilitat o Deshabilitat.

webhook-intg

Crear una integració webhook

Per crear un nou webhook s'han de seguir els següents passos:

  1. En Portal, accedir a Configuració -> Integracions Webhook.

  2. Fer clic a Nou.

  3. Omplir i configurar cada secció del formulari:

    Visió general

    webhook-create1

    • Nom. Nom assignat al webhook.
    • Tipus d'esdeveniment. Esdeveniment que activarà el webhook.
    • URL de destí. Adreça del sistema extern que rep l'esdeveniment i actua segons la informació proporcionada en el missatge.

    Elements

    webhook-create2

    El contingut d'aquesta taula depèn del tipus d'esdeveniment seleccionat.

    • Alerta activada

      • Mostra el llistat d'alertes actives de la organització per seleccionar quines enviaran el webhook.

      • Enviar webhook per a totes les alertes - Activa el webhook per a totes les alertes.

    • Microservei executat

      • Mostra el llistat de microserveis habilitats per seleccionar quins enviaran el webhook.

      • Enviar webhook per a tots els microserveis - Activa el webhook per a tots els microserveis.

      • En ambdós casos, el botó Veure permet accedir a la vista de detall del recurs.

    • Objecte creat, Objecte modificat o Objecte eliminat

      • Mostren un llistat per seleccionar l'objecte que enviarà el webhook després de l'acció corresponent.

      • Enviar webhook per a tots els objectes - Activa el webhook per a tots els objectes.

    • Operació executada

      • Mostra un llistat per seleccionar l'operació que enviarà el webhook quan s'executi.

      • Enviar webhook per a totes les operacions - Activa el webhook per a totes les operacions.

    • Operació executada en un workspace

      • Mostra un llistat per seleccionar l'operació que enviarà un webhook per cada dispositiu en què s'ha executat.

      • Enviar webhooks per a totes les operacions executades en cada workspace - Activa el webhook per a totes les operacions per dispositiu.

      nota
      • Les operacions poden executar-se en un o més dispositius.

      • L'esdeveniment Operació executada permet enviar un webhook a nivell global.

      • L'esdeveniment Operació executada en un workspace permet enviar un webhook per cada un dels dispositius en què s'ha executat l'operació.

        Exemple:

        Si s'executa l'operació Reiniciar en tres dispositius simultàniament, es generaran:

        • Una notificació webhook de tipus Operació executada.
        • Tres notificacions webhook de tipus Operació executada en un workspace.

    Configuració del missatge

    webhook-create3

    En aquest apartat es defineix el missatge que s'enviarà quan occorri l'esdeveniment. La configuració utilitza format JSON i determina l'estructura i el contingut del missatge transmès al sistema extern.

    Les variables es substitueixen automàticament per valors reals quan es produeix l'esdeveniment.

  4. Fer clic a Guardar.

avís

Una organització no hauria de tenir dos webhooks amb la mateixa configuració perquè podria generar enviaments duplicats.

Variables disponibles per al missatge

Tots els tipus d'esdeveniments

VariablesDescripció
#event_typeTipus d'esdeveniment
#organization_idID de l'organització
#organization_nameNom de la organització/inquilí
#timestampData i hora de l'esdeveniment (ISO 8601)

Alerta activada

VariablesDescripció
#alert_nameNom de l'alerta
#alert_informationInformació addicional de l'alerta
#alert_startData i hora d'inici de l'alerta (ISO 8601)
#alert_elementElement que va disparar l'alerta
#workspace_idID del dispositiu
#workspace_nameNom del dispositiu
#workspace_last_userÚltim usuari que va usar el dispositiu
#workspace_reporting_group_idID del grup de report
#workspace_reporting_group_nameNom del grup de report

Exemple de plantilla

{
"message": {
"event_type": "#event_type",
"organization_id": "#organization_id",
"organization_name": "#organization_name",
"workspace_id": "#workspace_id",
"workspace_name": "#workspace_name",
"workspace_last_user": "#workspace_last_user",
"reporting_group_id": "#workspace_reporting_group_id",
"reporting_group_name": "#workspace_reporting_group_name",
"alert_name": "#alert_name",
"alert_information": "#alert_information",
"alert_start": "#alert_start",
"alert_element": "#alert_element",
"timestamp": "#timestamp"
}
}

Microservei executat

VariablesDescripció
#operation_idID de l'operació executada
#microservice_idID del microservei
#microservice_nameNom del microservei
#operation_startdateData i hora d'inici de l'operació (ISO 8601)
#operation_enddateData i hora de fi de l'operació (ISO 8601)
#operation_resultResultat de l'operació (Completed, Error, Timeout o Cancelled)
#workspace_idID del dispositiu
#workspace_nameNom del dispositiu
#workspace_last_userÚltim usuari que va usar el dispositiu
#workspace_reporting_group_idID del grup de report
#workspace_reporting_group_nameNom del grup de report

Exemple de plantilla

{
"message": {
"event_type" : "#event_type",
"organization_id" : "#organization_id",
"organization_name" : "#organization_name",
"timestamp" : "#timestamp",
"workspace_id" : "#workspace_id",
"workspace_name" : "#workspace_name",
"workspace_last_user" : "#workspace_last_user",
"reporting_group_id" : "#workspace_reporting_group_id",
"reporting_group_name" : "#workspace_reporting_group_name",
"operation_id": "#operation_id",
"microservice_id": "#microservice_id",
"microservice_name": "#microservice_name",
"operation_startdate": "#operation_startdate",
"operation_enddate": "#operation_enddate",
"operation_result": "#operation_result"
}
}

Objecte creat, modificat o eliminat

VariablesDescripció
#event_typeTipus d'esdeveniment
#organization_idID de l'organització
#organization_nameNom de la organització/inquilí
#timestampData i hora de l'esdeveniment (ISO 8601)
#entity_typeTipus d'entitat
#entity_nameNom de l'entitat
#entity_idID de l'entitat
#actionAcció realitzada (Creació, Modificació o Eliminació)
#triggered_by_nameNom de l'usuari que va disparar l'esdeveniment
#triggered_by_emailAdreça de correu electrònic de l'usuari que va disparar l'esdeveniment
#triggered_by_idID de l'usuari que va disparar l'esdeveniment

Exemple de plantilla

{
"message": {
"event-type": "#event_type",
"organization": {
"id": "#organization_id",
"name": "#organization_name"
},
"entity": {
"entity-type": "#entity_type",
"object-name": "#entity_name",
"object-id": "#entity_id"
},
"metadata": {
"action": "#action",
"timestamp": "#timestamp",
"user-name": "#triggered_by_name",
"useremail": "#triggered_by_email",
"user-id": "#triggered_by_id"
}
}
}

Operació executada

VariablesDescripció
#event_typeTipus d'esdeveniment
#timestampData i hora de l'esdeveniment (ISO 8601)
#organization_idID de l'organització
#organization_nameNom de la organització/inquilí
#operation_typeTipus d'operació
#descriptionDescripció de l'operació
#statusEstat actual de l'execució de l'operació
#summaryResum de l'operació (JSON)
#started_byUsuari que va iniciar l'operació
#created_atData i hora de creació de l'operació (ISO 8601)
#started_atData i hora d'inici de l'operació (ISO 8601)
#finished_atData i hora de finalització de l'operació (ISO 8601)
#total_workspacesNúmero total de dispositius processats
#total_warningsNúmero total d'execucions amb advertències durant l'operació
#total_errorsNúmero total d'execucions amb errors durant l'operació
#flow_idID del flux associat
#microservice_idID del microservei associat
#fra_typeTipus de Flexxible Remote Assistance (FRA)
#fra_startData i hora d'inici de Flexxible Remote Assistance (FRA) (ISO 8601)
#fra_endData i hora de fi de Flexxible Remote Assistance (FRA) (ISO 8601)

Exemple de plantilla

{
"message": {
"event_type": "#event_type",
"timestamp": "#timestamp",
"organization": {
"id": "#organization_id",
"name": "#organization_name"
},
"operation": {
"type": "#operation_type",
"description": "#description",
"status": "#status",
"summary": "#summary",
"started_by": "#started_by",
"created_at": "#created_at",
"started_at": "#started_at",
"finished_at": "#finished_at"
},
"results": {
"total_workspaces": "#total_workspaces",
"total_warnings": "#total_warnings",
"total_errors": "#total_errors"
},
"context": {
"flow_id": "#flow_id",
"microservice_id": "#microservice_id",
"fra_type": "#fra_type",
"fra_start": "#fra_start",
"fra_end": "#fra_end"
}
}
}

Operació executada en un workspace

VariablesDescripció
#event_typeTipus d'esdeveniment
#timestampData i hora de l'esdeveniment (ISO 8601)
#organization_idID de l'organització
#organization_nameNom de la organització/inquilí
#operation_typeTipus d'operació
#descriptionDescripció de l'operació
#operation_statusEstat de l'operació
#started_byUsuari que va iniciar l'operació
#created_atData i hora de creació de l'operació (ISO 8601)
#started_atData i hora d'inici de l'operació (ISO 8601)
#finished_atData i hora de fi de l'operació (ISO 8601)
#operation_flow_idID del flux associat a l'operació
#operation_microservice_idID del microservei associat a l'operació
#operation_fra_typeTipus de Flexxible Remote Assistance (FRA)
#operation_fra_startData i hora d'inici de Flexxible Remote Assistance (FRA)(ISO 8601)
#operation_fra_endData i hora de fi de Flexxible Remote Assistance (FRA) (ISO 8601)
#workspace_idID del dispositiu
#workspace_nameNom del dispositiu
#workspace_last_userÚltim usuari que va usar el dispositiu
#workspace_reporting_group_idID del grup de report
#workspace_reporting_group_nameNom del grup de report
#workspace_operation_resultResultat de l'operació en el dispositiu
#workspace_operation_startdateData i hora d'inici de l'operació en el workspace (ISO 8601)
#workspace_operation_enddateData i hora de finalització de l'operació en el workspace (ISO 8601)

Exemple de plantilla

{
"message": {
"event_type": "#event_type",
"timestamp": "#timestamp",
"organization": {
"id": "#organization_id",
"name": "#organization_name"
},
"operation": {
"type": "#operation_type",
"description": "#description",
"status": "#operation_status",
"started_by": "#started_by",
"created_at": "#created_at",
"started_at": "#started_at",
"finished_at": "#finished_at"
},
"context": {
"flow_id": "#operation_flow_id",
"microservice_id": "#operation_microservice_id",
"fra_type": "#operation_fra_type",
"fra_start": "#operation_fra_start",
"fra_end": "#operation_fra_end"
},
"workspace": {
"id": "#workspace_id",
"name": "#workspace_name",
"last_user": "#workspace_last_user",
"reporting_group": {
"id": "#workspace_reporting_group_id",
"name": "#workspace_reporting_group_name"
}
},
"execution": {
"result": "#workspace_operation_result",
"start_date": "#workspace_operation_startdate",
"end_date": "#workspace_operation_enddate"
}
}
}

Slack

A continuació, es mostra un exemple de plantilla compatible amb Slack Incoming Webhooks, que pot utilitzar-se com a base per construir el missatge enviat des de Portal:

{
"text": "*Flexxible microservice was executed*",
"blocks": [
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Microservicio:*\n#microservice_name"
},
{
"type": "mrkdwn",
"text": "*Resultado:*\n#operation_result"
}
]
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Organización:*\n#organization_name"
},
{
"type": "mrkdwn",
"text": "*Workspace:*\n#workspace_name"
}
]
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Inicio:*\n#operation_startdate"
},
{
"type": "mrkdwn",
"text": "*Fin:*\n#operation_enddate"
}
]
}
]
}
nota

Per a més informació sobre el format de missatges, els blocs disponibles i les millors pràctiques, consulta la guia oficial de Slack.

Microsoft Teams

A Microsoft Teams, les plantilles es poden consultar directament des de la configuració de cada canal.

nota

Per obtenir detalls sobre com configurar correctament un webhook entrant i quina estructura ha de tenir la plantilla JSON, consulta la guia oficial de Microsoft.

Vista de detall

En seleccionar un webhook des de la taula s'accedeix a la seva vista de detall:

Visió general

Presenta targetes amb informació bàsica: Estat, Creat el i Actualitzat el.

webhook-detail

1. Visió general

  • Nom. Nom assignat al webhook.
  • Tipus d'esdeveniment. Esdeveniment que activarà el webhook.
  • Creat per. Usuari que va crear l'esdeveniment.
  • Actualitzat per. Últim usuari que va modificar el webhook.
  • URL de destí. Adreça del sistema extern que rep l'esdeveniment i actua segons la informació proporcionada en el missatge.

2. Recursos seleccionats

Mostra els recursos associats segons el tipus d'esdeveniment.

3. Plantilla de missatge

Presenta l'estructura JSON configurada per al webhook.

Mètriques

Intentos de lliurament de missatges

Aquesta pestanya presenta dos nivells d'informació. A la part superior, es mostren targetes resum amb l'estat global dels missatges enviats mitjançant el webhook:

  • Missatges exitosos
  • Missatges pendents
  • Missatges en progrés
  • Missatges fallits
  • Total de missatges
  • Índex d'èxit

delivery-attempts

A la part inferior es mostra una taula amb l'històric d'intents d'enviament de missatges corresponents als últims 28 dies. Els registres poden filtrar-se segons els següents criteris: Tots els intents, Intents exitosos, Intents pendents, Intents fallits i Intents en progrés.

La taula inclou la següent informació:

  • Estat. Resultat de l'execució.
  • Durada. En mil·lisegons, temps que va trigar en executar-se el webhook.
  • Codi de resposta. Codi HTTP retornat en executar-se el webhook.
  • Executat el. Data i hora en què es va realitzar l'execució.
  • Accions. Obre una finestra amb el detall de l'execució.

Quan una crida a la URL de destinació no es completa correctament, el sistema reintenta l'enviament del missatge de forma automàtica, segons la següent programació:

  • Immediatament
  • Als 5 segons
  • Als 5 minuts
  • Als 30 minuts
  • A les 2 hores
  • A les 5 hores
  • A les 10 hores
  • A les 10 hores (addicionals)
nota

Cada interval s'inicia a partir del fall de l'intent anterior.

info

Si l'enviament d'un missatge falla tres vegades i es completa amb èxit en el quart intent, a la taula es mostraran quatre intents (tres fallits i un exitós). No obstant, el sistema el comptabilitzarà com un únic missatge.

Accions sobre webhooks

La vista de detall també permet realitzar les següents accions sobre el webhook:

webhook-actions

Habilitar / Deshabilitar

Habilita o deshabilita el webhook segons el seu estat actual.

nota

Els webhooks estan deshabilitats per defecte.

Edita

Permet modificar:

  • Nom
  • Tipus d'esdeveniment
  • URL de destinació
  • Recursos
  • Plantilla de missatge

Suprimeix

Elimina el webhook de forma permanent. Aquesta operació no es pot desfer.

Provar

Envia un missatge amb el contingut de la plantilla a la URL configurada sense substituir les variables per valors reals. L'objectiu d'aquesta accion és validar la connectivitat i el format del missatge.