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

# Automações Corvex

> Fluxos de e-mail, WhatsApp e SMS — gatilhos, etapas, templates e como montar o JSON no painel.

Automações enviam mensagens quando algo acontece na loja: PIX gerado, pagamento confirmado, carrinho abandonado, lead novo, rastreio atualizado, e-mail recebido ou eventos de assinatura.

O fluxo é o JSON `{ name, trigger_event, steps, active }`. Você monta no **painel** ou pela [API v1](/api-introduction) (`cvx_live_...`). Automações criadas pela API nascem **desativadas** (`active: false`) até alguém ligar. Use o [builder](/automations-builder) e os [templates](/automations-templates) para montar o JSON.

## Páginas

<CardGroup cols={2}>
  <Card title="Criar e editar" icon="wand" href="/automations-builder">
    Intenção → plano → JSON, etapas, preview e validação.
  </Card>

  <Card title="Templates" icon="mail" href="/automations-templates">
    E-mail, SMS e WhatsApp com metatags válidas.
  </Card>

  <Card title="Triggers" icon="zap" href="/automations-triggers">
    Quando cada gatilho dispara e quais dados vêm junto.
  </Card>

  <Card title="Steps, actions e conditions" icon="git-branch" href="/automations-steps">
    Tipos de passo, operadores (`=` e não `equals`) e actions.
  </Card>

  <Card title="Metatags" icon="braces" href="/automations-metatags">
    Variáveis `{{categoria.campo}}` por gatilho.
  </Card>

  <Card title="Execução" icon="play" href="/automations-runtime">
    Quando corre, duplicidade, falhas e como diagnosticar.
  </Card>

  <Card title="Regras para IA" icon="bot" href="/automations-llm-rules">
    Contrato para a LLM operar como automation builder.
  </Card>
</CardGroup>

## Como funciona (visão de uso)

```mermaid theme={null}
flowchart TD
  A[Evento na loja] --> B{Automação ativa com esse gatilho?}
  B -->|não| C[Nada é enviado]
  B -->|sim| D[Avalia conditions]
  D --> E[Substitui metatags]
  E --> F[Envia e-mail, WhatsApp ou SMS]
  F --> G[Registra o resultado no painel]
```

1. Um evento ocorre (pagamento, PIX, carrinho, etc.).
2. Só correm automações **da mesma loja**, com o mesmo `trigger_event` e `active: true`.
3. Conditions decidem o ramo. Metatags `{{chave}}` são preenchidas no envio; chave sem valor vira texto vazio.
4. Actions enviam a mensagem, disparam o webhook ou criam o cupom.
5. O painel mostra se a execução concluiu, falhou ou foi bloqueada (por exemplo, falta de créditos).

## Campos da automação

| Campo           | Tipo     | Obrigatório | Notas                                                                                 |
| --------------- | -------- | ----------- | ------------------------------------------------------------------------------------- |
| `id`            | UUID     | gerado      | Não envie na criação                                                                  |
| `name`          | string   | sim         | 3–100 caracteres                                                                      |
| `trigger_event` | string   | sim         | Um dos [14 gatilhos](/automations-triggers)                                           |
| `steps`         | JSON     | sim         | 1–50 passos                                                                           |
| `active`        | boolean  | opcional    | Painel: default `true`. API v1: criar sem `active` nasce `false`. `false` não executa |
| `created_at`    | datetime | gerado      |                                                                                       |

Não há `draft`, `paused` ou `archived`. Pausar = `active: false`. Excluir a automação no painel remove o fluxo.

## Exemplo mínimo válido

```json theme={null}
{
  "name": "Recuperação PIX",
  "trigger_event": "pix.generated",
  "active": true,
  "steps": [
    {
      "type": "delay",
      "minutes": 30,
      "nextId": "send-1"
    },
    {
      "id": "send-1",
      "type": "action",
      "name": "send_whatsapp",
      "data": {
        "type": "text",
        "message": "Olá {{customer.name}}, seu PIX ainda está aberto: {{order.pix_code}}"
      }
    }
  ]
}
```

Válido: gatilho existe, nome no tamanho certo, delay entre 1 e 10080 minutos, WhatsApp com mensagem, metatags disponíveis em `pix.generated`.

## Exemplo inválido

```json theme={null}
{
  "name": "Pedido enviado",
  "trigger_event": "order.shipped",
  "steps": [
    {
      "type": "action",
      "name": "send_email",
      "data": {
        "subject": "Saiu",
        "body": "Status {{order.status}}"
      }
    }
  ]
}
```

Inválido: `order.shipped` não existe; e-mail exige nome e e-mail do remetente. Para rastreio use `tracking_code_updated`.

## Exemplos comuns

### PIX gerado → espera → WhatsApp

Use o exemplo mínimo. `{{order.pix_code}}` é o copia-e-cola; `{{order.url_pix_gerado}}` é a página de pagamento. O QR em HTML (`{{order.pix_qr_code}}`) vale no **e-mail**.

### Carrinho abandonado → SMS

```json theme={null}
{
  "name": "Carrinho abandonado SMS",
  "trigger_event": "cart.abandoned",
  "active": true,
  "steps": [
    {
      "type": "condition",
      "field": "lead.phone",
      "operator": "not-empty",
      "if_true": [
        {
          "type": "action",
          "name": "send_sms",
          "data": {
            "message": "Oi {{lead.name}}, volte ao checkout: {{cart.url_checkout}}"
          }
        }
      ]
    }
  ]
}
```

O limite de 160 caracteres do SMS vale no texto salvo. Depois da substituição, a URL pode deixar a mensagem mais longa.

### Pagamento confirmado → e-mail

```json theme={null}
{
  "name": "Obrigado pelo pagamento",
  "trigger_event": "payment.confirmed",
  "active": true,
  "steps": [
    {
      "type": "action",
      "name": "send_email",
      "data": {
        "remetente_nome": "Loja",
        "remetente_email": "loja@example.com",
        "subject": "Pagamento confirmado",
        "body": "Olá {{customer.name}}, recebemos {{order.total}}."
      }
    }
  ]
}
```

### Código de rastreio → WhatsApp

```json theme={null}
{
  "name": "Código de rastreio",
  "trigger_event": "tracking_code_updated",
  "active": true,
  "steps": [
    {
      "type": "action",
      "name": "send_whatsapp",
      "data": {
        "type": "text",
        "message": "Seu pedido saiu: {{tracking.code}} — {{tracking.url}}"
      }
    }
  ]
}
```

Não existe gatilho “pedido enviado”. O evento é a atualização do rastreio.

## Autenticação da API pública

```http theme={null}
Authorization: Bearer cvx_live_...
X-Store-Id: UUID-DA-LOJA
```

| Uso                      | Método                                      | Escopo                 |
| ------------------------ | ------------------------------------------- | ---------------------- |
| Metatags                 | `GET /api/v1/automation/metatags`           | `automations:read`     |
| Validar JSON (não salva) | `POST /api/v1/automations/validate`         | `automations:read`     |
| Listar / obter           | `GET /api/v1/automations`                   | `automations:read`     |
| Criar / editar / excluir | `POST` `PATCH` `DELETE /api/v1/automations` | `automations:write`    |
| Templates                | `/api/v1/automation/templates`              | read lista; write cria |

`POST /api/v1/automations` sem `active` grava **desativada**. Para disparar mensagens, envie `PATCH` com `"active": true` depois de revisar.
