# Gatilhos

### **Gatilhos e Notificações – Visão Geral**

Os **gatilhos** requerem **fontes de dados configuradas**, as quais são preparadas pela equipe de desenvolvimento conforme necessidades específicas.\
As **notificações por e-mail** podem ser enviadas tanto **internamente** quanto **externamente**, utilizando configurações **SMTP flexíveis**.

* **Eventos**: acionam ações imediatas (por exemplo, criação de uma Ordem de Serviço).
* **Jobs**: executam periodicamente, ideais para tarefas programadas (por exemplo, alertas de expiração de contrato).

As **fontes de dados padrão** estão sendo carregadas, permitindo que  inicie os testes e identifique possíveis requisitos adicionais.

### **Tópicos Principais**

#### 1. Configuração de Fonte de Dados

* Foram realizadas mudanças recentes para permitir **filtragem em movimentações de cartões**.
* A equipe de desenvolvimento precisa saber **quais dados são necessários** para os alertas (ex.: e-mails, responsáveis, status).
* Fontes padrão sendo carregadas incluem: **OS, CRM, Propostas**.
* Deve testar com as fontes disponíveis e **relatar dados ausentes** ou **necessidades de novos filtros**.

#### Configuração de Notificação por E-mail

* As **configurações SMTP** podem ser personalizadas para **diferentes departamentos** (Comercial, Execução, Financeiro).
* Opções flexíveis de destinatários:
  * E-mails fixos
  * Gerentes de contrato
  * Chefes de unidade de negócio
* O **corpo do e-mail** suporta **variáveis dinâmicas** (ex.: ID do pedido, nome do produto).
* Pode ser usado para **comunicações internas e externas**, incluindo **pesquisas com clientes**.

#### Tipos de Gatilhos: **Eventos x Jobs**

| Tipo       | Descrição                    | Exemplo                         |
| ---------- | ---------------------------- | ------------------------------- |
| **Evento** | Acionado por ações imediatas | Criação de uma Ordem de Serviço |
| **Job**    | Executado periodicamente     | Alerta de expiração de contrato |

> Ambos utilizam a mesma configuração de e-mail, mas **Jobs** exigem **fontes de dados específicas**&#x20;
>
> para seu funcionamento.

#### Integração via **Web Hook**

* Disponível para **integração com sistemas externos**, embora **não necessária** no caso atual.
* Pode ser usada para **chamadas automáticas** a outros sistemas, como **metrologia** ou **monitoramento de contratos**.

Para criar um novo gatilho, clique no botão <img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2FBilMbCFYOcm1pLXmzJ6i%2Fimage.png?alt=media&#x26;token=b8ed15f0-36c8-43c8-bae6-66d8ff1c32ae" alt="" data-size="line"> localizado no topo do grid.

Com o botão <img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2FOIOI4YWDwk9QKlcHkMi4%2Fimage.png?alt=media&#x26;token=a3c1a1b9-455d-4f97-a6c1-1c0f450a06a3" alt="" data-size="line"> esta ação serve para sincronizar as novas entidades disponibilizadas no cadastro de gatilhos. É necessário executá-la antes do primeiro uso da funcionalidade.

Com o botão <img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2F9ORbBilcdb5bKMjEkONl%2Fimage.png?alt=media&#x26;token=fa983a0d-d896-4f93-b6cc-7b14054ed062" alt="" data-size="line"> **"Expandir agrupamentos",** permite aos usuários acessar e ver uma lista completa de todas as entradas ou registros dentro de um determinado contexto ou funcionalidade do sistema. O campo de  <img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2FuFj1FhlLnUEvPU2gCvXC%2Fimage.png?alt=media&#x26;token=8c0eb7b2-70f1-4677-93e5-ccb511af2b1a" alt="" data-size="line"> pesquisar permite localizar facilmente o objetivo desejado, tornando o processo mais completo e fácil de seguir. Ao clicar no botão <img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2F13Vv4nvEKW2DDUJd2QIm%2Fimage.png?alt=media&#x26;token=bd3dd7f1-615c-4acf-a57f-e00543c791f8" alt="" data-size="line"> **"Exportar todos os dados",** todas as informações serão exportadas para uma planilha do Excel. Com o botão <img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2FNddfHPYCmjOpyoMWSXRG%2Fimage.png?alt=media&#x26;token=4d0e5f84-6947-4f9d-b0ea-1e798eee4ff9" alt="" data-size="line"> **"Seletor de Colunas",** a função principal deste botão é permitir que os usuários personalizem a visualização de dados, selecionando quais colunas devem ser exibidas ou ocultadas. O botão **"Atualizar dados"** <img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2F84ruxcRrwNmDgbbsoBCs%2Fimage.png?alt=media&#x26;token=8e962104-88bd-4353-af63-3cc0098ac3c1" alt="" data-size="line"> ao clicar nesse botão, o sistema realizará uma atualização dos dados conforme as configurações e parâmetros estabelecidos, garantindo que as informações exibidas estejam sempre atualizadas e precisas. Utilize o botão <img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2FhCCVfVUqWbe5d9eOW3mk%2Fimage.png?alt=media&#x26;token=f4efc776-8721-4faf-afd4-398cae1c8b7c" alt="" data-size="line"> **"Expandir / Esconder Menu"** para alternar entre a visualização completa e compacta do menu, facilitando a navegação pelo sistema. Ao expandir o menu, você tem acesso a todas as opções e funcionalidades disponíveis, enquanto ao esconder, você libera mais espaço na tela para focar nas informações ou tarefas em andamento.  Utilizando o botão  <img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2F5bZrQeIuBK4MMuu5Uatb%2Fimage.png?alt=media&#x26;token=dc23eb99-64dc-4249-acd5-7f8b8bf85517" alt="" data-size="line">  "Troca de módulo" permite alternar rapidamente entre diferentes módulos do sistema sem precisar sair ou reiniciar a sessão. Ao clicar nele, será exibida uma lista de módulos disponíveis para o seu perfil de acesso. Basta selecionar o módulo desejado, e o sistema carregará a interface e funcionalidades correspondentes.

<figure><img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2FTyXZUXLnQ1iQkMxY4X2G%2Fimage.png?alt=media&#x26;token=1df5a09e-1a7c-415b-84ae-1d5cafb3792f" alt=""><figcaption></figcaption></figure>

O popup abaixo será exibido com o formulário para preenchimento.

<figure><img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2FBTtFNGg9sop0bZunKzDb%2Fimage.png?alt=media&#x26;token=76c70574-8ef7-4331-9c1a-d41674677695" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Em um mesmo gatilho é possível configurar o envio de mais de um email e webhook, com corpo e destinatários diferentes, no caso do email, e endpoints e headers diferentes, no caso dos webhooks.
{% endhint %}

### Emails

* Nome de Exibição do Remetente: opcional. Serve como máscara para o nome do remetente padrão da Solução 360º
* Responder Para: opcional. Serve para configurar um email para ser enviada uma resposta se o destinatários desejar
* Responder Para (Nome de Exibição): opcional. Serve como máscara para o email do campo Responder Para

Para preencher os destinatários, assunto e corpo do email, clique no botão <img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2F2W5KW8WcW8LUrCFwOFj3%2Ffiepe.dev-empresarial.localhost_3015_ferramentas_gatilhos%20(4).png?alt=media&#x26;token=ea60cc5b-e66e-43df-b253-c85bfa76aaaf" alt="" data-size="line">. O popup abaixo será aberto.

<figure><img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2FZK94vi6XMILYCa9JXVhN%2Fimage.png?alt=media&#x26;token=ad19feca-666d-4d28-a64c-788687b3e467" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Em alguns casos, será disponibilizado atores da entidade para ser feito o envio do email. Como, por exemplo, no contrato, onde é possível enviar uma email para o gestor ou fiscal do contrato que ocorreu o evento.
{% endhint %}

No Assunto e Corpo, é possível adicionar informações do registro que ocorreu o evento, essas informações podem ser conferidas clicando no botão "Propriedades disponíveis". Para que a propriedade seja corretamente preenchida no email, é necessário que ela seja colocada da mesma forma que é exibida `{NomePropriedade}`

### Webhooks

* URL: Obrigatório
* Token: opcional. Serve para os casos em que o endpoint necessita de um *Authorization*
* Algoritmo de Criptografia: obrigatório, padrão Nenhum. Se escolhido SHA256, o corpo da requisição será criptografado e enviado como header `s360-webhook-signature`
* Secret: opcional. Serve como chave para realizar a criptografia do corpo da requisição. Disponível apenas se o Algoritmo de Criptografia for SHA256

Para configurar os headers da requisição, clique no botão <img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2F9xitnAofGcdKk7R0hJm7%2Ffiepe.dev-empresarial.localhost_3015_ferramentas_gatilhos%20(3).png?alt=media&#x26;token=864f8270-e1b6-45b2-9520-dae49893b8d8" alt="" data-size="line">. O popup abaixo será aberto, onde é possível adicionar os headers da requisição, bastando preencher a chave (Key) e o valor (Value) do header.

<figure><img src="https://475573713-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4TFXuJVO24fYp1hdl8Ww%2Fuploads%2F5lR5t7SiJW2q3bAyhzrp%2Fimage.png?alt=media&#x26;token=4fd78a0b-1154-4503-880c-11724d451ec5" alt=""><figcaption></figcaption></figure>

#### Exemplo do corpo enviado na requisição

```json
{
  "CreatedOn": "2024-01-16T15:13:03.8660981Z",
  "EntityType": "UnidadeMedida",
  "EventType": "EntityInsertedEvent`1",
  "Entity": {
    "Produtos": [],
    "Indicadores": [],
    "Codigo": "dm3",
    "Nome": "decímetro cúbico",
    "InicioValidade": "2024-01-16T15:13:03.8659105Z",
    "TerminoValidade": "9999-12-31T23:59:59.9999999",
    "Ativo": true,
    "CreationTime": "2024-01-16T15:13:03.8665056Z",
    "CreatorUserId": 1,
    "LastModificationTime": "2024-01-16T15:13:03.8665056Z",
    "LastModifierUserId": 1,
    "DomainEvents": [
      {
        "ChangeType": 1,
        "EntityType": "UnidadeMedida",
        "CreatedOn": "2024-01-16T15:13:03.8660981Z",
        "EventType": "EntityInsertedEvent`1"
      }
    ],
    "RowVersion": "AAAAAAAXEk8=",
    "PropriedadesAdicionais": {},
    "Id": 19
  }
}
```
