Como podemos ajudar?

02. Configurando variáveis no Zenvia Bots
10 min
Criado por Humanz em 03/06/2022 12:33
Atualizado por Ligia Sarmento em 23/07/2024 15:06

Para criar um bot no Zenvia Bots, você precisa configurar variáveis. Aqui estão as principais formas de gerar essas variáveis:

Mensagem do Usuário
Toda resposta de usuário gera uma variável pré-setada #{answer}, conforme imagem abaixo.
 
Configurando variáveis-01.png
 
A tela acima é de uma Mensagem do Sistema, mas note que automaticamente o Zenvia Bots já permite que seja inserida logo abaixo uma Mensagem do Usuário aguardando a informação de resposta.
 
Configurando variáveis-02.png
 
É possível também selecionar apenas o passo (step) de Mensagem do Usuário para inserir individualmente.
 
Configurando variáveis-03.png

Variáveis no Componente de Controle

Durante a construção do fluxo do bot, você pode adicionar o componente de controle de variáveis a qualquer momento. Este componente serve para declarar e atribuir valores às variáveis, que podem ser usadas em outros componentes ou lógicas do fluxo.
 
  • Título: Título para o controle de variáveis (opcional).
  • Nome: Nome da variável.
  • Expressão: Valor que será atribuído a variável ou expressão que definirá o valor. 
Configurando variáveis-04.png
  •  
  • Configurando variáveis-05.png
  •  
  • Configurando variáveis-06.png

Variáveis nos Componentes Inteligentes

Componentes como os de captação de e-mail ou de nome, por exemplo, geram variáveis peculiares às funções que são armazenadas com nomes diferentes e pré-definidos, sem a necessidade de criação de uma Mensagem do Usuário separada. 
 
💡 Dica: Confira nossa documentação detalhada sobre os componentes e variáveis e veja as informações de como tratar as variáveis. 

Variáveis nas Chamadas de API

Para integrações mais complexas, como chamadas de API REST Json, você pode extrair variáveis do tipo #{response} ou usar Expressão de Linguagem (Expression Language) para transformar características de um objeto personalizado em variáveis personalizadas.
 
 

Por exemplo, uma chamada de API GET deve retornar um JSON, do qual você pode extrair apenas a variável "intentName" do array "metadata". Para isso, você dá um nome à variável (ex: "CaptureIntent") e usa a expressão response.result.metadata.intentName.

Este valor pode ser utilizado, por exemplo, para direcionar o usuário para um fluxo específico com a expressão captureIntent=="RespostaPositiva.

Exemplo de retorno JSON:
 
{
  "id": "d6abdc1e-530f-41f2-bdf4-24548f1b7108-f6406966",
  "lang": "pt-br",
  "sessionId": "12345",
  "timestamp": "2019-10-11T19:32:33.904Z",
  "result": {
    "source": "agent",
    "resolvedQuery": "sim",
    "action": "",
    "actionIncomplete": false,
    "score": 1.0,
    "parameters": {},
    "contexts": [
      {
        "name": "shop",
        "lifespan": 4,
        "parameters": {}
      }
    ],
    "metadata": {
      "intentId": "2a55ae72-54c6-42a5-9b1a-1cfc7afd7c4e",
      "intentName": "RespostaPositiva",
      "webhookUsed": "false",
      "webhookForSlotFillingUsed": "false",
      "isFallbackIntent": "false"
    },
    "fulfillment": {
      "speech": "",
      "messages": [
        {
          "lang": "pt-br",
          "type": 0,
          "speech": ""
        }
      ]
    }
  },
  "status": {
    "code": 200,
    "errorType": "success"
  }
}

 

Variáveis declaradas no Json (código)

Todas as opções acima refletem a criação de variáveis na Zenvia Bots de forma mais simples na tela, de quem está arquitetando a estrutura.
 
Contudo, a ação do sistema por trás do processo está totalmente ligada com o código e estrutura do fluxo: o Json!
 
Configurando variáveis-10.png
 
Você pode perfeitamente a partir de um determinado momento do fluxo, definir que diversas variáveis serão criadas para te ajudar futuramente nos relatórios, na chamadas de API ou para fazer X regras específicas durante a automação.
 
Lembre-se, as variáveis também podem ter muitos sinônimos na aplicação da Zenvia Bots, como: tag, identificador, variante, dado, informação, entre diversas outras.
 
No exemplo abaixo, há uma jornada simples, onde digamos que a partir de uma pergunta para seguir em 4 jornadas diferentes, o fluxo precisa saber o perfil da pessoa para detalhar algo no relatório. O canal é WhatsApp e a resposta é apenas número 1, 2, 3 ou o 4.
 
Caso o usuário digite 1, no Json, há uma variável nova criada com a informação de que perfil é igual a string (texto) aluno:
 
O Json padrão do passo (step) era:
 

 {
      "id": "step039",
      "type": "sendChatActivity"
      ,
      "contents": [
        {
          "type": "text/plain",
          "payload": {
            "text": "[Entrar conteúdo da mensagem de acordo com a seguinte condição: 1]"
          }
        }
      ],
      "properties": {
        "from": "#{session['chatFrom']}"
      }
    }
 
Incluindo a variável manualmente, ficou:
 

 {
      "id": "step039",
      "type": "sendChatActivity",
      "variables": {
        "perfil": "aluno"
      },
      "contents": [
        {
          "type": "text/plain",
          "payload": {
            "text": "[Entrar conteúdo da mensagem de acordo com a seguinte condição: 1]"
          }
        }
      ],
      "properties": {
        "from": "#{session['chatFrom']}"
      }
    }
💡 Dica: Sempre declare a variável após o type, no Json. Além disso, não esqueça da indentação e também das vírgulas, chaves e aspas duplas.
Este artigo resolveu sua dúvida?
Últimos artigos visitados