# 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 e tabelas de conversão;
* 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.

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 para falhas ou situações operacionais relevantes.

Além de email, o produto atual também suporta outros canais conforme o caso, como webhook e integrações de colaboração corporativa.

## 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.
