> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gu1.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Ações

> Ações do motor de automações: IDs, comportamento, contexto mínimo e o que escrevem em event.data — no motor de automações gu1 com gatilhos e ações.

As automações executam **ações** (o **ENTÃO**). Cada ação tem um **`type`** (abaixo) e um objeto **`config`**. O motor valida o tipo e aplica sinergia com [Gatilhos](/pt/workflows/triggers) e [Sinergia](/pt/workflows/synergy).

<Info>
  **Lista canônica:** `AUTOMATION_ACTION_TYPES` (20 tipos). Qualquer outra string não é ação de primeira classe no motor.
</Info>

## Catálogo de ações

### Inteligência e investigações

| ID da ação              | O que faz                                                                                                                                                                                                                            |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `create_investigation`  | Abre uma investigação sobre a entidade; pode usar contexto de alerta quando existir.                                                                                                                                                 |
| `generate_checklist`    | Gera checklist em uma investigação existente.                                                                                                                                                                                        |
| `start_investigation`   | Coloca a investigação em trabalho ativo.                                                                                                                                                                                             |
| `change_status`         | Altera o status da investigação.                                                                                                                                                                                                     |
| `change_priority`       | Altera a prioridade.                                                                                                                                                                                                                 |
| `assign_to`             | Atribui a investigação.                                                                                                                                                                                                              |
| `assign_load_balanced`  | Atribui entre um pool de usuários, equipes ou funções (`assigneePool`), minimizando carga pelo mesmo `assignedTo` + `assignedToType`; `userIds` antigo (só usuários) continua válido. `balanceScope`: `all_open` \| `same_category`. |
| `set_stage_role_access` | Restringe etapa por papel.                                                                                                                                                                                                           |
| `add_note`              | Adiciona nota à investigação.                                                                                                                                                                                                        |

### Risco, entidade, enriquecimento

| ID da ação              | O que faz                                                    |
| ----------------------- | ------------------------------------------------------------ |
| `run_basic_enrichment`  | Enriquecimento básico conforme entidade/país.                |
| `run_enrichment`        | Enriquecimento completo (provedores configurados).           |
| `run_shareholders_flow` | Fluxo de acionistas / estrutura societária.                  |
| `run_risk_matrix`       | Recalcula risco; atualiza scores e `riskMatrix` no contexto. |
| `set_entity_status`     | Atualiza status comercial/compliance da entidade.            |

### Alertas e transações

| ID da ação                     | O que faz                                                           |
| ------------------------------ | ------------------------------------------------------------------- |
| `create_alert`                 | Cria alerta de sistema na entidade.                                 |
| `request_transaction_approval` | Envia fluxo de aprovação (email/SMS/link ou OTP) para a transação.  |
| `set_transaction_status`       | Atualiza status da transação (transições válidas conforme o motor). |

### KYC

| ID da ação              | O que faz                                                                                                     |
| ----------------------- | ------------------------------------------------------------------------------------------------------------- |
| `create_kyc_validation` | Inicia validação KYC para pessoa quando aplicável; pode ser omitida se o tipo de entidade não for compatível. |

### Integrações e mensagens

| ID da ação               | O que faz                                                                                                                           |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| `send_webhook`           | HTTP para URL com JSON (retentativas em falhas transitórias).                                                                       |
| `send_push_notification` | Canais configurados (email, SMS, WhatsApp, Slack, Telegram, etc.); templates podem incluir `continueUrl` / `cancelUrl` com standby. |

## Contexto: entrada e saída (resumo)

Objetos aninhados **`entity`**, **`transaction`**, **`investigation`**, **`kyc`**, **`alert`** seguem a **mesma forma das tabelas** para templates `{{entity.status}}`, `{{transaction.amount}}`, etc.

| Ação                                                                                                                              | Precisa no contexto (mínimo)                             | Adiciona / atualiza em `event.data`                                          |
| --------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `create_investigation`                                                                                                            | `entityId` / `targetEntityId`; opcional alerta/categoria | `investigationId`, `investigation`                                           |
| `generate_checklist`, `start_investigation`, `change_status`, `change_priority`, `assign_to`, `set_stage_role_access`, `add_note` | `investigationId`                                        | Investigação atualizada no contexto                                          |
| `create_alert`                                                                                                                    | `entityId` / `targetEntityId`, tipo entidade             | — (efeitos no BD)                                                            |
| `run_basic_enrichment`                                                                                                            | `entityId`, `entityType`, `countryCode`                  | `enrichment`                                                                 |
| `run_enrichment`, `run_shareholders_flow`                                                                                         | `entityId` / `targetEntityId`                            | `enrichment`                                                                 |
| `run_risk_matrix`                                                                                                                 | `entityId`, `entityType`                                 | `newScore`, `riskScore`, `riskScoreRaw`, `riskMatrix`, scores na entidade    |
| `set_entity_status`                                                                                                               | `entityId` / `targetEntityId`                            | Status, `previousStatus` / `entity.oldStatus`                                |
| `set_transaction_status`                                                                                                          | Contexto de transação                                    | `transaction.status`                                                         |
| `create_kyc_validation`                                                                                                           | `entityId`, `entityType` (pessoa)                        | `kycValidationId`, `kyc`                                                     |
| `request_transaction_approval`                                                                                                    | Contexto de transação                                    | Tokens de aprovação externos (não é `resumeExecution` genérico)              |
| `send_webhook`                                                                                                                    | —                                                        | —                                                                            |
| `send_push_notification`                                                                                                          | Conforme destinatário                                    | Pode injetar `continueUrl` / `cancelUrl` com `executionId` + `callbackToken` |

A sinergia **não** garante dados: uma ação pode ser omitida (ex.: KYC em tipo errado). No modo **passos**, um `create_kyc_validation` omitido pode **parar** o fluxo.

***

**Manutenção:** mudanças em ações → `automation-engine`, `AUTOMATION_ACTION_TYPES`, `workflow-synergy.ts` e esta página.
