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.
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 } ] }