Pular para o conteúdo principal
O nodo Botões envia uma mensagem com botões que o usuário pode tocar para escolher uma opção. É ideal para guiar a conversa por caminhos específicos sem que o usuário precise digitar.

Configuração geral

  • Cabeçalho: Título da mensagem (máximo 60 caracteres)
  • Conteúdo: Mensagem principal que acompanha os botões (máximo 1.024 caracteres no WhatsApp, 640 no Facebook/Instagram)
  • Rodapé: Texto adicional abaixo do conteúdo (opcional)

Opções

Cada botão tem:
  • Nome da opção: Texto visível no botão (máximo 20 caracteres)
  • Descrição: Texto de contexto adicional (opcional, máximo 72 caracteres)
Você pode adicionar até 3 botões. Para mostrar mais opções, use o nodo Lista.

Tipos de botão

TipoComportamento
PostbackEnvia um payload para o fluxo e continua pela rota conectada
URLAbre uma página web no navegador
TelefoneInicia uma chamada telefônica

Opções dinâmicas

Se as opções vêm de dados variáveis (por exemplo, uma lista de produtos da sua API), você pode habilitar o modo dinâmico em vez de defini-las manualmente. Configure:
  • Variável de origem: A variável que contém a lista (por exemplo, {{$memory.products}})
  • Template de rótulo: Como cada opção é exibida (por exemplo, {{item.name}} - ${{item.price}})
  • Template de descrição: Texto adicional por opção (por exemplo, {{item.description}})
Templates predefinidos disponíveis: Lista simples, Produtos, Horários disponíveis, Filiais.

Variáveis nas mensagens

Você pode usar variáveis no cabeçalho e conteúdo:
Cabeçalho: Olá {{$user.names}}
Conteúdo: Escolha uma opção para {{$memory.category}}

Configuração avançada

Seleção obrigatória

Quando habilitado, o usuário deve tocar em um botão para continuar. Se digitar texto livre, verá uma mensagem de erro personalizável (máximo 250 caracteres).

Variável de resposta

Salva a opção selecionada pelo usuário em uma variável de memória para uso posterior no fluxo. Como configurar:
  1. Habilite o toggle Salvar resposta.
  2. Insira o nome da variável (por exemplo, department).

Valor salvo com opções estáticas

Quando os botões são definidos manualmente, o payload do botão escolhido é salvo como texto simples. Exemplo com estes botões:
BotãoPayload
Vendassales
Suporte Técnicosupport
Faturamentobilling
Se o usuário tocar em Suporte Técnico:
// {{$memory.department}} contém:
const department = "support";

Valor salvo com opções dinâmicas

Quando os botões são gerados a partir de uma variável de origem, o objeto completo do array ao qual a opção selecionada pertence é salvo. Suponha que {{$memory.departments}} contenha:
[
  { "id": "dep1", "name": "Sales", "email": "[email protected]" },
  { "id": "dep2", "name": "Support", "email": "[email protected]" },
  { "id": "dep3", "name": "Billing", "email": "[email protected]" }
]
Se o usuário tocar em Support, a variável contém o objeto completo:
// {{$memory.department}} contém o objeto completo:
const department = {
  id: "dep2",
  name: "Support",
  email: "[email protected]"
};
Você pode acessar cada propriedade do objeto em nodos subsequentes:
// Acessando propriedades de {{$memory.department}}:
department.name;   // "Support"
department.email;  // "[email protected]"
department.id;     // "dep2"

Casos de uso

Conecte um nodo Condicional e crie um ramo para cada payload:
Se {{$memory.department}} = "sales"   → Ramo Vendas
Se {{$memory.department}} = "support" → Ramo Suporte
Se {{$memory.department}} = "billing" → Ramo Faturamento
Com o objeto completo salvo, você pode usá-lo diretamente em mensagens ou nodos subsequentes sem consultas adicionais:
Texto: "Vou conectá-lo com a equipe {{$memory.department.name}}.
Escreva para eles em {{$memory.department.email}}"
Passe a seleção como contexto para o nodo AI Agent:
O usuário selecionou o departamento: {{$memory.department.name}}.
E-mail de contato: {{$memory.department.email}}.
Responda com informações específicas para esse departamento.
Use um nodo API ou Datum para salvar a seleção:
{
  "userId": "{{$user.id}}",
  "departmentId": "{{$memory.department.id}}",
  "departmentName": "{{$memory.department.name}}",
  "timestamp": "{{$context.timestamp}}"
}

Botão de uso único

Após a primeira seleção, os botões são desativados. Você pode configurar o que acontece depois:
  • Enviar texto: Exibe uma mensagem informativa
  • Redirecionar para skill: Leva o usuário a outro fluxo

Botão expira

Se o usuário não selecionar nenhum botão dentro do tempo configurado na sua organização:
  • Enviar texto: Exibe uma mensagem de expiração
  • Redirecionar para skill: Leva o usuário a outro fluxo