GG.chatbot
Fluxo

Variáveis

Variáveis são espaços reservados para conteúdo, que você pode reaproveitar em qualquer lugar do GG.chatbot. É um conceito essencial para criar uma experiência de fato personalizada.

Salvar uma resposta em uma variável

Você pode configurar o bloco de entrada para salvar a resposta em uma variável e reutilizá-la depois, em um balão adiante:

Salvando em variável

Usar variáveis

Uma vez declaradas, as variáveis podem ser usadas em qualquer lugar do bot. Para exibir uma em um balão de texto, use esta sintaxe:

{{Minha variável}}, onde "Minha variável" é o nome da variável.

Formatação embutida

Também dá para formatar a variável direto no balão de texto. Por exemplo, para exibir a variável "Primeiro nome" em maiúsculas:

{{={{Minha variável}}.toUpperCase()=}}

Quando você usa {{= ... =}}, o conteúdo entre os sinais é avaliado como JavaScript. Ou seja, você pode usar qualquer função JavaScript ali dentro. O comportamento é o mesmo do valor personalizado no bloco Variável.

Para pegar o primeiro item de uma lista:

{{={{Minha variável}}[0]=}} ou {{={{Minha variável}}.at(0)=}}

E o último:

{{={{Minha variável}}.at(-1)=}}

Painel de variáveis

Você acessa o painel clicando no botão "Variáveis", no canto superior direito do editor:

Painel de variáveis

Nele você vê todas as variáveis declaradas no seu bot, e pode renomeá-las, editá-las e excluí-las.

Por padrão, uma variável não é salva na tabela de resultados. Para mudar isso, ative a opção Salvar nos resultados no painel.

Conceitos avançados

Este vídeo curto mostra conceitos avançados sobre variáveis:

Variáveis preenchidas previamente

Por padrão, qualquer variável declarada no bot pode ser preenchida previamente com valores passados na URL.

Digamos que meu bot tenha estas variáveis:

  • "Email"
  • "First name"

Elas podem ser inicializadas na URL como parâmetros. Se eu abrir o bot com esta URL:

https://ggchatbot.com/my-bot?Email=test@test.com&First%20name=John (note que espaços no nome da variável devem virar %20)

as variáveis chegarão preenchidas assim:

  • Email => test@test.com
  • First name => John

Variáveis preenchidas previamente funcionam como quaisquer outras. Por exemplo, se a primeira pergunta do bot é "Qual é o seu e-mail?", você pode colocar um bloco de Condição antes dela para verificar se o e-mail já veio preenchido e evitar perguntar de novo. Ou, se preferir que o usuário confira o e-mail existente, ative a opção preencher automaticamente o campo nas configurações.

Pela biblioteca de incorporação é ainda mais simples: basta adicionar um objeto chamado prefilledVariables com um dicionário dos seus valores. Por exemplo:

Typebot.initBubble({
  typebot: `my-bot`,
  prefilledVariables: {
    Email: 'test@test.com',
    'First name': 'John',
  },
})

(Se o nome da variável tiver espaços, ele precisa vir entre aspas.)

Variáveis ocultas

As variáveis do bot não precisam ser exibidas ao usuário. Você pode criar variáveis usadas apenas internamente e mostradas nos seus resultados. Isso permite acrescentar contexto a uma sessão — um ID de usuário, um parâmetro utm_source de campanha, ou o que for.

Basta garantir que a variável exista na lista suspensa de variáveis:

Lista suspensa de variáveis

(Essa lista aparece em todo lugar onde é possível adicionar variáveis, e é global para o fluxo do seu bot.)

Os valores então ficam disponíveis na página de Resultados, em colunas específicas:

Variáveis nos resultados

Tipos de valor válidos

O conteúdo de uma variável pode ser um texto (string) ou uma lista de textos (string[]).

// ✅ Good
'Hello', ['item 1', 'item 2']

// ❌ Not good
2, true, { foo: 'bar' }
// Will automatically converted into
'2', 'true', '{ foo: "bar" }'

Se você fornecer um objeto, um número ou um booleano, ele sempre será convertido em texto ou lista de textos antes de a variável ser salva no banco.

Essa limitação é proposital. Variáveis devem ter conteúdo simples: isso força uma estrutura de bot mais limpa e um uso mais consciente do conteúdo.

Em alguns casos, o conteúdo é convertido dinamicamente para o tipo esperado. Por exemplo, um texto que parece um número, usado em um bloco de condição, é convertido em número durante a execução da condição.

Se você realmente precisar salvar um conteúdo complexo, como um objeto, use JSON.stringify para convertê-lo em texto. E, ao usar a variável, converta de volta com JSON.parse em uma formatação embutida:

{{=JSON.parse({{My object variable}})=}}

On this page