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árioA 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.
É possível também selecionar apenas o passo (step) de Mensagem do Usuário para inserir individualmente.
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.

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.
{
"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!
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.
