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

# Funções e Ações

> Configure ações automáticas que o agente executa durante a conversa: webhooks, transferências, tags e mais.

# Funções e Ações do Agente

Ações são tarefas que o agente executa automaticamente durante a conversa. Quando um gatilho é ativado, o agente realiza a ação configurada.

## Tipos de Ações

<CardGroup cols={2}>
  <Card title="Webhook" icon="globe">
    Envia dados para um sistema externo via HTTP (CRM, ERP, planilha, etc.)
  </Card>

  <Card title="Requisição HTTP" icon="code">
    Faz uma chamada HTTP personalizada e pode usar a resposta no contexto da conversa
  </Card>

  <Card title="Marketplace" icon="store">
    Executa uma integração do Marketplace de apps conectados
  </Card>

  <Card title="Enviar WhatsApp" icon="message">
    Envia uma mensagem WhatsApp para outro número (ex: notificar o vendedor)
  </Card>

  <Card title="Enviar E-mail" icon="envelope">
    Envia um e-mail com os dados coletados (para, cc, cco, assunto e corpo configuráveis)
  </Card>

  <Card title="Aplicar Tag" icon="tag">
    Aplica uma etiqueta ao contato para segmentação
  </Card>

  <Card title="Remover Tag" icon="tag">
    Remove uma etiqueta do contato
  </Card>

  <Card title="Transferir p/ Agente" icon="right-left">
    Transfere a conversa para outro agente de IA
  </Card>

  <Card title="Follow-Up" icon="clock">
    Agenda mensagens de acompanhamento automáticas após inatividade
  </Card>

  <Card title="Pausar Agente" icon="pause">
    Pausa o agente por um período configurável (em minutos)
  </Card>
</CardGroup>

## Gatilhos (Triggers)

Cada ação tem um gatilho que define **quando** ela será executada:

| Gatilho               | Descrição                           | Exemplo                              |
| --------------------- | ----------------------------------- | ------------------------------------ |
| **Palavra-chave**     | Ativada por palavras específicas    | "comercial", "vendas", "comprar"     |
| **Intenção**          | IA interpreta a intenção do usuário | "O usuário quer falar com um humano" |
| **Objetivo completo** | Quando um goal é atingido           | Após coletar nome + e-mail           |
| **Mudança de dado**   | Quando um campo coletado muda       | Quando o e-mail é atualizado         |
| **Sempre**            | Executa em toda mensagem            | Logging, analytics                   |
| **Agendado**          | Executa após um tempo programado    | Follow-up após 24h                   |

## Configurar uma Ação

<Steps>
  <Step title="Acesse as Ações do Agente">
    Em **Agente de IA → Ações**, clique em **Nova Ação**.
  </Step>

  <Step title="Defina nome e gatilho">
    Dê um nome descritivo (ex: "Enviar lead para CRM") e selecione o tipo de gatilho.
  </Step>

  <Step title="Configure a ação">
    Para **Webhook**, informe:

    * URL de destino
    * Método HTTP (POST, GET, PUT, PATCH, DELETE)
    * Headers personalizados
    * Template do payload com variáveis dinâmicas
  </Step>
</Steps>

## Variáveis Disponíveis nos Templates

Use estas variáveis nos templates de payload, mensagem ou e-mail. Todas usam o prefixo `_` para variáveis do sistema:

### Variáveis do Sistema

| Variável               | Descrição                          |
| ---------------------- | ---------------------------------- |
| `{{_phone}}`           | Número do cliente                  |
| `{{_contact_name}}`    | Nome do contato                    |
| `{{_collected_data}}`  | Resumo de todos os dados coletados |
| `{{_conversation_id}}` | ID da conversa                     |
| `{{_agent_id}}`        | ID do agente                       |
| `{{_instance_id}}`     | ID da instância                    |

### Variáveis de Dados Coletados

Cada campo configurado nos goals pode ser acessado diretamente pelo nome:

| Variável        | Descrição                           |
| --------------- | ----------------------------------- |
| `{{nome}}`      | Valor do campo "nome" coletado      |
| `{{email}}`     | Valor do campo "email" coletado     |
| `{{interesse}}` | Valor do campo "interesse" coletado |

<Tip>
  As variáveis de dados coletados usam exatamente o `name` configurado no goal. Variáveis do sistema usam o prefixo `_` para evitar conflitos.
</Tip>

## Exemplo: Enviar Lead para Webhook

```json theme={null}
{
  "nome": "Enviar lead para CRM",
  "trigger_type": "goal_complete",
  "trigger_goal_id": "collect_email",
  "action_type": "webhook",
  "webhook_url": "https://meu-crm.com/api/leads",
  "webhook_method": "POST",
  "webhook_payload_template": {
    "nome": "{{nome}}",
    "email": "{{email}}",
    "telefone": "{{_phone}}",
    "contato": "{{_contact_name}}",
    "origem": "whatsapp-brainchat",
    "dados": "{{_collected_data}}"
  }
}
```

## Opções Avançadas

| Opção                         | Descrição                                                            |
| ----------------------------- | -------------------------------------------------------------------- |
| **Permitir repetição**        | Permite que a ação execute mais de uma vez na mesma conversa         |
| **Usar resposta no contexto** | Para Requisição HTTP: inclui a resposta da API no contexto do agente |
| **Condições**                 | Regras condicionais para executar a ação (campo X = valor Y)         |
| **Prioridade**                | Ordem de execução quando múltiplas ações disparam ao mesmo tempo     |
