Webhook
7 min
Creado por Movidesk en 02/07/2019 16:34
Actualizado por Ligia Sarmento en 19/09/2024 14:47

En este artículo aprenderás a utilizar los webhooks en tu Movidesk.

Los webhooks son automatizaciones que permiten el envío de datos del Movidesk a otro sistema, de manera instantánea, siempre que cumplan con ciertos requisitos. Cuando se cumplen los criterios, la información se envía y es necesario que el receptor esté preparado para alojarla.

La activación de un webhook ocurre a través de desencadenadores, disparados a partir de condiciones específicas.

Por lo tanto, para configurar el webhook, es necesario habilitar el mismo parámetro de los desencadenadores en el perfil de acceso: Configuraciones > Personas > Perfiles de acceso, seleccionar a la persona deseada y activar la opción "Usuario puede mantener los disparadores".

Hay dos escenarios en los que puedes utilizar esta automatización, entre dos sistemas Movidesk o entre Movidesk y otro software.

 

Webhooks entre dos dominios de Movidesk

Primero, necesitarás realizar la integración entre los dos sistemas. Haz clic aquí para saber cómo realizar esta etapa. Es en este momento cuando se definirán las configuraciones de disparo.

Hecho esto, se creará automáticamente un nuevo desencadenador habilitado en el dominio integrado al tuyo. Es él quien garantiza el funcionamiento del webhook.

 

Webhooks entre Movidesk y otro sistema

Para realizar el envío de webhooks del Movidesk a otro sistema, debes ir a Configuraciones > Automatización > Disparadores. Haz clic en el ícono + para crear un nuevo desencadenador.

Rellena el nombre que deseas dar al desencadenador y define su tipo. Luego, completa las condiciones que deben cumplirse para que el webhook sea enviado. Para más información sobre cómo utilizar los desencadenadores, puedes hacer clic aquí.

En el campo de acciones, deberás elegir la acción de activar el webhook. Se abrirá un campo para que agregues la URL del lugar de recepción, que será activado para recibir los datos definidos.

 webhook.png

 

Registro de ejecución

Si deseas seguir la ejecución de los webhooks, simplemente verifica en configuraciones > automatización > Registro de ejecución de webhook.

Aparecerá la lista con los webhooks disparados, que contiene la última actualización, estado, número de intentos, URL, error, desencadenador y número del ticket.

Cuando se dispara el desencadenador, el webhook se dirige a una cola que se monitorea cada 30 segundos. En caso de error en el disparo del webhook, recibirás una notificación en el ícono de la campanita, en los íconos de la barra superior, a la derecha. El sistema hará cuatro intentos adicionales de envío, cada 30 segundos.

Los casos de lentitud en los disparos de webhook son generalmente causados por reglas de negocio dentro de la llamada del webhook. El escenario ideal es recibir el webhook, guardarlo en alguna tabla de una base de datos, por ejemplo, y llamar a un segundo programa para hacer esa regla de negocio. Un webhook debe responder "Ok" en no más de 3 (tres) segundos (estándar de funcionamiento de sistemas de webhook). Si no lo hace, se marca como fallido.

Existe un control de tiempo para evitar casos en los que el webhook queda atrapado cuando no hay respuestas de los sistemas externos. El límite actual es de 2 minutos. Después de este período, el sistema cancela la operación con el mensaje "Error: La operación fue cancelada".

 

Demostración de ejecución

Al disparar el webhook, la respuesta seguirá esta estructura:

{
  "Id": int,
  "Type": int,
  "Subject": string,
  "Urgency": string,
  "Status": string,
  "Origin": int,
  "IsDeleted": bool,
  "ServiceFirstLevel": string,
  "ActionCount": int,
  "ResolvedInFirstCall": bool,
  "SlaSolutionTime": int,
  "Actions": [
    {
      "Id": int,
      "Type": int,
      "Origin": int,
      "Description": string,
      "HtmlDescription": string,
      "CreatedBy": {
        "Id": string,
        "PersonType": int,
        "ProfileType": int
      },
      "IsDeleted": bool,
      "Attachments": [
         {
          "FileName": string,
          "Path": string
        }
      ]
    }
  ],
  "CustomFieldValues": [
    {
      "CustomFieldId": int,
      "CustomFieldRuleId": int,
      "Line": int,
      "Items": [
        {
          "CustomFieldItem": string,
          "StorageFileGuid": string
        }
      ]
    }
  ],
  "WebhookEvents": [
    {
      "Criteria": int,
      "Operation": int
    }
  ]
}
¿Te ha útil este artículo?
Vistos recientemente