Webhook
7 min
Criado por Movidesk em 02/07/2019 16:34
Atualizado por Thiago Tamanini em 29/06/2022 18:02

Neste artigo você irá aprender a utilizar os webhooks no seu Movidesk.

Os webhooks são automações que permitem o envio de dados do Movidesk para outro sistema, instantaneamente, desde que atenda a requisitos determinados. Quando os critérios são cumpridos, as informações são enviadas e é preciso que o recebedor esteja preparado para hospedá-las.

O acionamento de um webhook ocorre por meio de gatilhos, disparados a partir de condições específicas.

Por isso, para configurar o webhook, é preciso habilitar o mesmo parâmetro dos gatilhos no perfil de acesso: Configurações > Pessoas > Perfis de acesso, selecionar a pessoa desejada e ativar a opção "Permitir criar gatilhos".

Há dois cenários que você pode fazer uso dessa automação, entre dois sistemas Movidesk ou entre Movidesk e outro software.

 

Webhooks entre dois domínios do Movidesk

Primeiramente, você precisará realizar a integração entre os dois sistemas. Clique aqui para saber como realizar essa etapa. É nesse momento que as configurações de disparo serão definidas. 

Feito isso, um novo gatilho habilitado será criado automaticamente no domínio integrado ao seu. É ele que garante o funcionamento da webhook.

 

Webhooks entre Movidesk e outro sistema

Para realizar o envio de webhooks do Movidesk para outro sistema, você precisa ir até Configurações > Automação > Gatilhos. Clique no ícone + para criar um novo gatilho.

Preencha o nome que deseja dar para o gatilho e defina o seu tipo. Depois, preencha as condições que devem ser cumpridas para que o webhook seja enviado. Para mais informações sobre como utilizar os gatilhos, você pode clicar aqui.

No campo de ações, você deverá escolher a ação acionar webhook. Um campo se abrirá para que se adicione a URL do local de recebimento, que será acionada para receber os dados definidos.

 webhook.png

 

Log de execução

Caso deseje acompanhar a execução dos webhooks, basta verificar em configurações > automação > webhook - log de execução.

Aparecerá a listagem com os webhooks disparados, contendo a última atualização, status, número de tentativas, URL, erro, gatilho e número do ticket.

Quando o gatilho é disparado, o webhook é direcionado a uma fila que é monitorada de 30 em 30 segundos. Na ocasião de erro de disparo de webhook, você receberá uma notificação no sininho, nos ícones da barra superior, ao lado direito. O sistema fará mais quatro tentativas de envio, a cada 30 segundos.

Casos de lentidão nos disparos de webhook são causados geralmente por regra de negócio dentro da chamada do webhook. O cenário ideal é receber o webhook, guardar em alguma tabela de um banco de dados, por exemplo, e invocar um segundo programa para fazer essa regra de negócio. Um webhook deve responder "Ok" em no máximo 3 (três) segundos (padrão de funcionamento de sistema de webhook). Se não fizer isso, é marcado como falho.

Existe um controle de tempo para evitar casos em que o webhook fica preso quando não há respostas dos sistemas terceiros. O limite atual é 2 minutos. Após esse período, o sistema cancela a operação com a mensagem "Error: The operation was cancelled".

 

Demonstração de execução

Ao disparar o webhook, a resposta seguirá essa estrutura:

{
  "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
    }
  ]
}
Este artigo foi útil para você?
Últimos artigos visitados