> For the complete documentation index, see [llms.txt](https://docs.tunnelhub.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tunnelhub.io/produto/automations.md).

# Automações

Automações são o núcleo da plataforma de integração do TunnelHub. Elas definem como um fluxo é executado, monitorado e operado ao longo do tempo.

## O que uma automação concentra

Na tela de detalhes, a automação normalmente é organizada em abas como:

* dados básicos;
* gatilhos;
* deploys;
* parâmetros;
* notificações;
* usuários limitados;
* systems;
* Tabelas De/Para;
* histórico de ações.

Dependendo da automação, o produto também expõe execução manual, transporte entre ambientes e histórico de versões.

## Dados básicos

Na configuração básica, o time normalmente define:

* nome e descrição;
* pacote relacionado;
* status;
* URL de repositório, quando deseja rastreabilidade com o código;
* retenção de logs operacionais.

A retenção influencia diretamente a janela disponível para investigação no monitoramento.

## Gatilhos suportados

Atualmente, a plataforma expõe três formas principais de disparo:

* **Webhook**: execução sob demanda por URL.
* **Scheduled**: execução automatizada por agenda.
* **Inbound email**: execução a partir de recebimento de email.

Em gatilhos do tipo **Scheduled**, é possível definir uma data e hora em **Não executar antes de**. Essa opção permite configurar a agenda com antecedência para um go-live sem disparar execuções antes do momento planejado. Disparos anteriores à data configurada são ignorados; a automação passa a executar normalmente quando a próxima ocorrência da agenda for igual ou posterior à data/hora inicial.

Exemplo: uma agenda “de hora em hora” com **Não executar antes de** em `01/07/2026 06:00` começa a considerar execuções a partir de `06:00`, depois `07:00`, `08:00` e assim por diante.

No caso de webhook, o produto pode exigir autenticação conforme a configuração definida. Os modos mais comuns são:

* sem autenticação;
* `BASIC`;
* autenticação por query string;
* autenticação por header.

## Deploys e versões

Cada automação possui histórico de deploys. Esse histórico permite:

* saber quem publicou uma versão;
* acompanhar data e contexto do deploy;
* promover configurações e artefatos entre ambientes por transporte, quando aplicável.

Dependendo do caso, o runtime pode aparecer como `LAMBDA` ou `ECS_FARGATE`.

## Parâmetros e systems associados

Parâmetros permitem externalizar configurações variáveis do código.

Uma automação só recebe em runtime os systems que foram explicitamente associados a ela. Isso reduz acoplamento e melhora o controle operacional.

## Notificações

Você pode configurar notificações automáticas para falhas de execução. Quando uma execução termina com status de erro, o TunnelHub envia um alerta para cada destinatário configurado na aba **Notificações** da automação.

### Como configurar

1. Abra a automação e acesse a aba **Notificações**.
2. Clique em **Adicionar**.
3. Selecione o tipo de notificação.
4. Informe o e-mail ou a URL de destino.
5. Escolha o idioma da mensagem, entre português e inglês.
6. Salve a configuração.

Os canais disponíveis são:

| Canal               | Destinatário                                                                 | Configuração                                                                                                                                                                                                                                                                                                                    |
| ------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **E-mail**          | Endereço de e-mail que receberá o alerta.                                    | Informe o endereço do destinatário.                                                                                                                                                                                                                                                                                             |
| **Discord**         | URL de webhook criada para um canal do Discord.                              | Crie e copie a URL do webhook em **Integrações** do servidor. Consulte [Introdução a webhooks](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks).                                                                                                                                                      |
| **Microsoft Teams** | URL de webhook gerada pelo Workflows (Power Automate) para um canal ou chat. | No Teams, abra **Workflows**, escolha um modelo de alerta por webhook para o canal ou chat, crie o fluxo e copie a URL gerada. Consulte [Criar webhooks de entrada com Workflows](https://support.microsoft.com/en-us/office/create-incoming-webhooks-with-workflows-for-microsoft-teams-8ae491c7-0394-4861-ba59-055e33f75498). |
| **Google Chat**     | URL de webhook criada para um espaço do Google Chat.                         | Adicione um webhook em **Apps e integrações** do espaço e copie a URL. Consulte [Criar um webhook](https://developers.google.com/workspace/chat/quickstart/webhooks).                                                                                                                                                           |
| **Slack**           | URL de Incoming Webhook associada ao canal de destino.                       | Crie um Incoming Webhook no aplicativo Slack e copie a URL. Consulte [Enviar mensagens usando Incoming Webhooks](https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks).                                                                                                                                    |
| **Webhook**         | URL de um endpoint HTTP próprio.                                             | Prepare o endpoint para receber uma requisição `POST` com conteúdo JSON.                                                                                                                                                                                                                                                        |

É possível adicionar mais de um destinatário, inclusive usando canais diferentes. URLs de webhook podem conter tokens ou outros dados que permitem publicar mensagens no canal. Trate-as como segredos e não as exponha em repositórios, tickets, logs ou mensagens públicas.

### Conteúdo do alerta

A apresentação varia conforme o canal, mas as notificações normalmente incluem:

* conta, ambiente, pacote e automação;
* início e fim da execução;
* totais processados e registros com erro;
* mensagem geral de erro;
* link para consultar a execução no monitoramento, quando suportado pelo canal.

No webhook genérico, o TunnelHub envia esses dados em JSON e inclui o header `TunnelHub-Tenant-Id`. O endpoint deve aceitar requisições `POST` com `Content-Type: application/json`.

## Usuários limitados

Automações podem liberar visibilidade seletiva para usuários limitados. Esse recurso é importante quando parceiros ou clientes precisam acompanhar apenas execuções específicas.

## Execução

Depois do deploy, a automação pode ser executada:

* manualmente pelo portal;
* via webhook;
* por agenda;
* por inbound email, quando configurado.

As execuções geram logs de processamento, traces e métricas para investigação.

## Boas práticas

* modele `defineMetadata()` pensando no time que vai operar a execução;
* associe apenas os systems realmente necessários;
* prefira parâmetros, Tabelas De/Para e Sequências a regras rígidas no código;
* revise notificações e retenção de logs antes de colocar a automação em produção.
