Central de Ajuda

Guardar a Escolha do Menu em Variável e Limpar Dados do Contato

Duas novidades do construtor de fluxos: o menu agora pode guardar o número da opção escolhida em uma variável, e você pode apagar os dados antigos do contato quando ele recomeçar o atendimento.

Duas novidades no construtor de fluxos. Agora o bloco Menu pode guardar a opção que o cliente escolheu em uma variável — e existe uma forma de apagar os dados antigos do contato quando o atendimento recomeça, para não misturar informação de um pedido com o outro.

1. Guardar a escolha do menu em uma variável

Antes, o bloco Menu apenas direcionava a conversa (opção 1 vai por um caminho, opção 2 por outro). Agora ele também grava a escolha, para você usar depois na mensagem ou enviar ao seu sistema.

Como configurar:

  1. Abra o Construtor de Fluxos e clique no bloco Menu.
  2. No campo “Salvar escolha na variável”, escreva um nome sem espaços. Ex.: tipo_agendamento.
  3. Salve o fluxo. Pronto.

Quando o cliente responder, o AgeuBot grava duas informações:

Deixando o campo vazio, o menu funciona exatamente como antes. Seus fluxos atuais não mudam em nada.

2. Usar a variável nos blocos seguintes

Em qualquer bloco depois do menu, escreva o nome da variável entre chaves duplas:

Numa mensagem:

Você escolheu *{{tipo_agendamento_texto}}*.
Vamos confirmar seu horário!

No corpo de uma Requisição HTTP (para mandar ao seu sistema):

{
  "tipo_agendamento": "{{tipo_agendamento}}",
  "exame_escolhido": "{{exame_escolhido}}"
}

O cliente que escolher Consulta gera "tipo_agendamento": "1"; quem escolher Exame gera "2", e assim por diante.

3. Apagar os dados do contato ao recomeçar

Situação comum: o cliente agendou um exame ontem e hoje quer marcar uma consulta. O tipo é atualizado, mas o exame escolhido antes continuava gravado e ia junto no envio — misturando os dois atendimentos.

Para resolver, use um bloco Requisição HTTP (API) no ponto do fluxo em que o atendimento recomeça:

Configuração do bloco:

  • Método: POST
  • URL: https://ageubot.com.br/api/public/contact-data/clear
  • Cabeçalhos: Content-Type: application/json e X-API-Key: sua chave
  • Corpo:
{
  "phone": "{{telefone}}",
  "fields": ["tipo_agendamento", "exame_escolhido"]
}

Para apagar todos os dados capturados do contato, basta não enviar a lista fields:

{ "phone": "{{telefone}}" }

Onde pego a API Key? No painel, em Integrações → API. É a mesma chave usada nas outras integrações.

Atenção: apagar é definitivo — os dados não voltam. Prefira listar em fields exatamente o que precisa limpar. Informações internas do atendimento (controle do fluxo e de pagamentos) são sempre preservadas automaticamente.

4. Exemplo completo (copiar e colar)

Fluxo de clínica que pergunta o tipo de agendamento, pergunta o exame, envia ao sistema, oferece agendar outro procedimento e — ao escolher “Sim” — limpa os dados e recomeça do zero.

{
  "nodes": [
    { "id": 1, "type": "start", "x": 60, "y": 200,
      "data": { "label": "Início", "triggerMode": "any", "triggers": "oi, olá, agendar" } },

    { "id": 2, "type": "menu", "x": 340, "y": 200,
      "data": {
        "label": "Tipo de agendamento",
        "headerText": "O que deseja agendar?",
        "options": [ { "text": "Consulta" }, { "text": "Exame" }, { "text": "Retorno" } ],
        "fallbackMessage": "Digite apenas o número da opção desejada.",
        "saveVariable": "tipo_agendamento"
      } },

    { "id": 3, "type": "menu", "x": 620, "y": 200,
      "data": {
        "label": "Qual exame",
        "headerText": "Qual exame você precisa?",
        "options": [ { "text": "Sangue" }, { "text": "Raio-X" }, { "text": "Ultrassom" },
                     { "text": "Tomografia" }, { "text": "Ressonância" } ],
        "fallbackMessage": "Digite apenas o número da opção desejada.",
        "saveVariable": "exame_escolhido"
      } },

    { "id": 4, "type": "content", "x": 900, "y": 200,
      "data": { "label": "Confirmação",
        "message": "Confirmando:\n\nTipo: *{{tipo_agendamento_texto}}*\nExame: *{{exame_escolhido_texto}}*\n\nEstou registrando..." } },

    { "id": 5, "type": "http", "x": 1180, "y": 200,
      "data": {
        "label": "Enviar para o sistema",
        "httpMethod": "POST",
        "httpUrl": "https://SEU-SISTEMA.com/agendamento",
        "httpHeaders": [ { "key": "Content-Type", "value": "application/json" } ],
        "httpBody": "{\"tipo_agendamento\": \"{{tipo_agendamento}}\", \"exame_escolhido\": \"{{exame_escolhido}}\"}",
        "httpTimeoutSec": 15,
        "httpExtractions": [ { "path": "protocolo", "variable": "protocolo" } ]
      } },

    { "id": 6, "type": "content", "x": 1460, "y": 110,
      "data": { "label": "Deu certo", "message": "✅ Agendamento registrado!\nProtocolo: *{{protocolo}}*" } },

    { "id": 7, "type": "content", "x": 1460, "y": 330,
      "data": { "label": "Deu erro", "message": "⚠️ Não consegui registrar agora. Um atendente vai te chamar." } },

    { "id": 8, "type": "menu", "x": 1740, "y": 110,
      "data": {
        "label": "Agendar outro?",
        "headerText": "Deseja agendar outro procedimento?",
        "options": [ { "text": "Sim" }, { "text": "Não" } ],
        "fallbackMessage": "Digite 1 para Sim ou 2 para Não.",
        "saveVariable": "deseja_outro"
      } },

    { "id": 9, "type": "http", "x": 2020, "y": 40,
      "data": {
        "label": "Limpar dados e recomeçar",
        "httpMethod": "POST",
        "httpUrl": "https://ageubot.com.br/api/public/contact-data/clear",
        "httpHeaders": [
          { "key": "Content-Type", "value": "application/json" },
          { "key": "X-API-Key", "value": "COLE_SUA_API_KEY_AQUI" }
        ],
        "httpBody": "{\"phone\": \"{{telefone}}\", \"fields\": [\"tipo_agendamento\", \"tipo_agendamento_texto\", \"exame_escolhido\", \"exame_escolhido_texto\", \"deseja_outro\", \"deseja_outro_texto\"]}",
        "httpTimeoutSec": 10,
        "httpExtractions": []
      } },

    { "id": 10, "type": "content", "x": 2020, "y": 300,
      "data": { "label": "Encerrar", "message": "Perfeito! Qualquer coisa é só chamar. 👋" } }
  ],

  "connections": [
    { "fromNode": 1, "fromPort": "next",     "toNode": 2 },
    { "fromNode": 2, "fromPort": "option_0", "toNode": 4 },
    { "fromNode": 2, "fromPort": "option_1", "toNode": 3 },
    { "fromNode": 2, "fromPort": "option_2", "toNode": 4 },
    { "fromNode": 3, "fromPort": "option_0", "toNode": 4 },
    { "fromNode": 3, "fromPort": "option_1", "toNode": 4 },
    { "fromNode": 3, "fromPort": "option_2", "toNode": 4 },
    { "fromNode": 3, "fromPort": "option_3", "toNode": 4 },
    { "fromNode": 3, "fromPort": "option_4", "toNode": 4 },
    { "fromNode": 4, "fromPort": "next",     "toNode": 5 },
    { "fromNode": 5, "fromPort": "success",  "toNode": 6 },
    { "fromNode": 5, "fromPort": "error",    "toNode": 7 },
    { "fromNode": 6, "fromPort": "next",     "toNode": 8 },
    { "fromNode": 8, "fromPort": "option_0", "toNode": 9 },
    { "fromNode": 8, "fromPort": "option_1", "toNode": 10 },
    { "fromNode": 9, "fromPort": "success",  "toNode": 2 },
    { "fromNode": 9, "fromPort": "error",    "toNode": 2 }
  ]
}

Para usar este exemplo:

  1. Troque https://SEU-SISTEMA.com/agendamento pela URL do seu sistema.
  2. Troque COLE_SUA_API_KEY_AQUI pela sua chave (Integrações → API).
  3. Monte os blocos no construtor seguindo essa mesma sequência — ou peça ajuda ao suporte para importar.

Dúvidas frequentes

Preciso mexer nos fluxos que já tenho?
Não. Enquanto o campo “Salvar escolha na variável” estiver vazio, tudo continua funcionando igual.

Posso usar o mesmo nome de variável em menus diferentes?
Pode. O valor mais recente substitui o anterior — útil quando o cliente refaz a escolha.

A variável vale para quem?
Para aquele contato específico. Cada cliente tem os seus próprios dados.

Artigos relacionados

Pronto para deixar seu fluxo mais inteligente?

Abrir o painel e editar meu fluxo