tickets N8N
Objetivo¶
Nesta seção, vamos aprender como usar o QSM + N8n para criar tickets automaticamente e atualizar eventos relacionados aos tickets criados.
Criando hooks para eventos do chamado¶
É necessário criar um hooks que servirá como base para chamar o n8n quando um chamado for criado.
-
Acesse a página de hooks disponíveis em
/hooks
e clique no botão Novo. -
Preencha os campos conforme descrito abaixo:
2.1. Tipo de Hook: Indique o tipo de recurso que o webhook irá monitorar. No nosso caso, será um modelo (model).
2.2. Nome do Recurso (Base de Dados): Informe o nome da base de dados que o webhook irá escutar. No exemplo, será o TicketUserActions, pois se refere a eventos de tickets que serão atualizados.
2.3. Handler: Este campo corresponde ao endpoint configurado no nó Webhook do n8n (que veremos em seguida). Ele define a URL para onde as solicitações serão enviadas.
2.4. Eventos: Aqui, você define quando o nó será acionado. As opções incluem: após a criação, após a edição, antes da criação, antes da edição, entre outras.
2.5. Condição: Neste campo, você especifica a condição para a execução do nó. Por exemplo, pode ser configurado para ser acionado apenas para um ticket específico ou apenas para uma determinada categoria. Caso não seja necessário envie como "null"
{ "all": [ { "fact": "requestData", "path": "$.body.data.ticket.ticketType", "value": [ "100000", ], "operator": "in", "description": "Only tickets of type different than 3, 4 and 5 (assets and chats)" } ] }
Conforme ilustrado na imagem acima, este hook será acionado sempre que um chamado for criado. (Nota: Na imagem, o nome ticket é utilizado, mas é importante lembrar que, nesse contexto, todo chamado é considerado um ticket.) Os dados do chamado que sofreu a alteração serão enviados automaticamente.
Após criado, deixe seu nó ativo:
Criar Workflow para Criação de Tickets¶
-
Acesse a página de workflows
- Acesse a interface de workflows no sistema.
-
Crie um novo workflow
- Clique em "Criar novo workflow".
-
Adicione um nó trigger
- Crie um nó trigger chamado "Em X horas" (caso deseje que o ticket seja criado automaticamente a cada intervalo de tempo).
-
Adicione um nó Javascript para montar os dados da requisição
- Crie um nó Javascript que irá montar o objeto de dados para o ticket a ser criado. O código abaixo é um exemplo de como esse nó pode ser configurado:
const ticketToCreate = { "description": "chamado teste", // Descrição do chamado "ticketStatus": "pendente", // Status do chamado "body": "", "attachments": [], "assignedTo": 90, // Fila do chamado: "recipient": 601, // Responsável pelo chamado "createdBy": 601, // Criado por "categoryId": 100001, // Categoria do chamado "ticketTypeId": 100000, // Tipo do chamado "ticketTypeAdditionalInfo": { "report": "Empresa 123", "anexo": [] }, "categoryAdditionalInfo": { "tipo_do_software": "Setor xyz", "problema_principal": "Projeto abc" }, } return {json: {ticketToCreate}}
4.1. Como obter os IDs correspondentes:
- assignedTo: Para encontrar o ID da fila, acesse https://quoti.cloud/{{ organização }}/groups/fila?groupTypeName=fila&hideChangeStatus=true.
- recipient: Para encontrar o ID do criador, acesse https://quoti.cloud/{{ organização }}/users. Abra o DevTools (pressione F12 no navegador), clique sobre o usuário desejado e, em seguida, será gerada uma requisição com o respectivo ID.
- createdBy: Para encontrar o ID do criador, acesse https://quoti.cloud/{{ organização }}/users. Abra o DevTools (pressione F12 no navegador), clique sobre o usuário desejado e, em seguida, será gerada uma requisição com o respectivo ID.
- categoryId: Acesse https://quoti.cloud/{{ organização }}/app/categories para obter o ID da categoria.
- ticketTypeAdditionalInfo: Acesse a página /ticketTypes para visualizar os campos do formulário do tipo de caso. Clique no botão Editar (ícone lápis) ao lado do tipo de caso desejado. Em seguida, role até o final da janela de diálogo para encontrar os campos do formulário associados a esse tipo de caso.
- categoryAdditionalInfo: Acesse a página /categories para visualizar os campos do formulário da categoria. Clique no botão Editar (ícone lápis) ao lado do tipo de caso desejado. Em seguida, role até o final da janela de diálogo para encontrar os campos do formulário associados a essa categoria.
- ticketTypeId: Acesse https://quoti.cloud/{{ organização }}/app/ticketTypes para obter o ID do tipo de caso.
-
Adicione um nó HTTP para enviar a requisição
- Crie um nó HTTP com o method POST, endpoint: https://api.csm.quoti.cloud/api/v1/{{ organização }}/tickets. Passe o objeto montado no nó anterior para que o ticket seja criado no sistema.
- Para obter o BearerStatic, acesse a página de Service Account da sua organização no seguinte https://quoti.cloud/{{ organização }}/serviceaccounts e copie o token do seu ambiente.
exemplo do nó (copie e cole no seu workflow):
{ "meta": { "instanceId": "994f6ec3e5b18860fe331bff83e7ae8bf524205c4d1007723e1059e43a78ea7e" }, "nodes": [ { "parameters": { "method": "POST", "url": "=https://api.csm.quoti.cloud/api/v1/{{ org }}/tickets", "sendHeaders": true, "headerParameters": { "parameters": [ { "name": "=BearerStatic", "value": "=bearerStatic" } ] }, "sendBody": true, "specifyBody": "json", "jsonBody": "json criado no nó anterior", "options": {} }, "id": "ba0ec7a5-1056-4b73-b16b-dcff01c584ae", "name": "Cria chamados", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.1, "position": [ 800, 280 ] } ], "connections": {} }
Agora vamos criar um exemplo para enviar uma mensagem no eventos quando o chamado for criado
- Visualização do workflow criado
Crie um workflow para eventos do chamado¶
Após configurar o hooks
, o próximo passo é criar um workflow, siga o é reproduzido quando um chamado sofrer alteração.
-
Acesse novamente a página de workflows.
-
Crie um novo workflow, como descrito nos passos anteriores.
-
Adicione um nó Webhook que irá receber os dados do hook configurado. O endpoint configurado no hook (campo handler) será utilizado aqui.
-
Adicione um nó javascript para montar a estrutura da mensagem que será enviada para o evento do ticket. Abaixo está um exemplo de como configurar o nó:
const ticket = {}; // Replace with actual ticket object const createEvents = { "details": "<p>criar mensaagem</p>", //mensagem para o ticket criado "ticketId": ticket.ticketId, //id do ticket criado (vindo do webhook) "data": "{}", "type": "message" } return {json: {createEvents}}
-
Adicione um nó HTTP para enviar mensagem configurada no nó javascript para o eventos do ticket. exemplo para nó http:
- Para obter o BearerStatic, acesse a página de Service Account da sua organização no seguinte https://quoti.cloud/{{ organização }}/serviceaccounts e copie o token do seu ambiente.
{ "meta": { "instanceId": "994f6ec3e5b18860fe331bff83e7ae8bf524205c4d1007723e1059e43a78ea7e" }, "nodes": [ { "parameters": { "method": "POST", "url": " https://api.csm.quoti.cloud/api/v1/beyondschool/ticket-user-actions", "sendHeaders": true, "headerParameters": { "parameters": [ { "name": "=BearerStatic", "value": "=bearerStatic" } ] }, "sendBody": true, "specifyBody": "json", "jsonBody": "json criado no nó anterior", "options": {} }, "id": "da02a560-ad89-408d-b52d-0fc85bcaa3fc", "name": "HTTP Request", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.1, "position": [ 1100, 460 ] } ], "connections": {} }
- Para obter o BearerStatic, acesse a página de Service Account da sua organização no seguinte https://quoti.cloud/{{ organização }}/serviceaccounts e copie o token do seu ambiente.
-
Visualização do workflow criado