# Modelando uma automação no produto

Boa parte da qualidade de uma automação no TunnelHub vem da modelagem no produto, não apenas do código.

## Ordem recomendada

Um fluxo prático costuma seguir esta sequência:

1. escolher o ambiente;
2. criar ou selecionar um pacote;
3. cadastrar systems;
4. definir parâmetros;
5. criar Tabelas De/Para e Sequências, quando fizer sentido;
6. criar a automação;
7. associar os recursos necessários;
8. configurar triggers e notificações.

## Pacote

Use o pacote como agrupador funcional. Ele deve refletir domínio, cliente, iniciativa ou contexto de manutenção.

## Systems

Cadastre um system quando a automação depender de uma conexão externa reutilizável.

Exemplos comuns:

* API HTTP;
* FTP/SFTP;
* banco de dados;
* SOAP;
* SAP RFC.

Boas práticas:

* usar `internalName` estável;
* separar credenciais por ambiente;
* evitar um mesmo system para contextos sem relação.

## Parâmetros

Use parâmetros para valores variáveis e pequenos estados controlados pela automação.

Exemplos:

* feature flags;
* datas de corte;
* nomes de tabela;
* cursores de sincronização.

Não use parâmetro para tudo. Quando o dado representa conexão, prefira `System`. Quando representa mapeamento de negócio, prefira uma Tabela De/Para.

## Tabelas De/Para

Use Tabelas De/Para quando o negócio precisa manter mapeamentos e listas de referência sem alterar código.

Casos típicos:

* de/para de status;
* códigos de filial;
* mapeamento de categorias;
* IDs legados para IDs externos.

## Sequências

Use Sequências quando a plataforma precisa gerar identificadores centralizados e atômicos.

Casos típicos:

* número de lote;
* identificador incremental;
* chave de negócio controlada.

## Associação com a automação

Uma automação só recebe em runtime os recursos explicitamente associados a ela.

Revise antes do deploy:

* systems corretos associados;
* parâmetros esperados cadastrados;
* Tabelas De/Para corretas disponíveis;
* Sequências corretas criadas.

## Triggers

Hoje, a modelagem pública mais comum inclui:

* webhook;
* scheduled;
* inbound email.

Escolha o trigger conforme a forma de disparo do processo, não conforme a tecnologia da origem.

## Notificações e retenção

Antes de publicar em produção, revise:

* retenção de logs;
* notificações de falha;
* quem precisa operar essa automação;
* se usuários limitados precisam enxergar a execução.

## Pergunta prática de modelagem

Quando estiver em dúvida sobre onde colocar uma configuração, use esta regra:

* conexão externa: `System`;
* valor variável da automação: `Parameter`;
* regra de negócio configurável: Tabela De/Para;
* contador centralizado: Sequência.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tunnelhub.io/primeiros-passos/modeling-an-automation-in-the-product.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
