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:

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:

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:

(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:

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}})=}}