GG.chatbot
FluxoBlocosLógica

Variável

O bloco "Variável" atribui um valor específico a uma variável.

Bloco Variável

Personalizado

Com Personalizado, você define a variável com qualquer valor. Pode ser texto simples ou também código JavaScript.

Expressões com variáveis existentes

Ou seja, dá para aplicar operações sobre variáveis já existentes.

Somar um valor à variável:

{{Score}} + 5

Somar duas variáveis:

{{Score}} + {{Answer}}

Multiplicar variáveis:

{{Score}} * {{Multiplier}}

Calcular uma porcentagem:

{{Score}} * 100 / {{Max Score}}

Extrair o primeiro nome de um nome completo:

{{Full name}}.split(' ')[0]

Converter uma variável para maiúsculas ou minúsculas:

{{Name}}.toUpperCase()
{{Name}}.toLowerCase()

Também pode ser código JavaScript. O valor retornado pelo código é o que será atribuído à variável.

const name = 'John' + 'Smith'
return name

Se você não usar a palavra-chave return, ela é adicionada automaticamente no início do código.

'John' + 'Smith'

é o mesmo que

return 'John' + 'Smith'

Dentro de scripts, as variáveis não são interpoladas: elas são avaliadas. Trate-as como se fossem variáveis JavaScript de verdade.

Assim, se você escrever "{{Minha variável}}", o resultado será o ID da variável (algo como vclfqgqkdf000008mh3r6xakty). Remova as aspas duplas para obter o conteúdo.

Por exemplo:

  • "{{URL base}}/path" => vclfqgqkdf000008mh3r6xakty/path
  • {{URL base}} + '/path' => https://domain.com/path
  • `${{{URL base}}}/path` => https://domain.com/path

O conteúdo de uma variável pode ser um texto ou uma lista de textos. Veja Tipos de valor válidos para mais detalhes.

Vazio

Zera a variável, como se ela nunca tivesse sido inicializada.

Adicionar valor(es)

Um valor prático que transforma automaticamente a variável em uma lista de textos, acrescentando o valor ou os valores informados.

São três situações possíveis:

  • Se a variável estiver vazia, cria uma nova lista com o valor informado.
  • Se a variável não for uma lista, cria uma nova lista com o valor existente seguido do valor informado.
  • Se a variável já for uma lista, concatena o valor informado ao que já existe.

Nome do ambiente

Define a variável como web ou whatsapp, conforme o ambiente.

Tipo de dispositivo

Define a variável como desktop, tablet ou mobile, conforme o dispositivo. Nos bastidores, a detecção combina largura da tela, user agent e suporte a toque. O código está aqui.

Transcrição

Este valor predefinido salva a transcrição completa da conversa em uma variável. É muito útil para dar contexto a um bloco de IA ou para enviar um resumo com o bloco Enviar e-mail.

ID do resultado

Define a variável com o ID do resultado atual. Esse ID corresponde a uma linha da sua tabela de Resultados e pode ser entendido como um identificador do usuário que está conversando no momento.

Ontem, Agora, Amanhã

Define a variável com a data e a hora indicadas, em formato ISO. Você pode informar um fuso horário para converter a data.

ID aleatório

Define a variável com um ID aleatório, gerado pelo algoritmo CUID.

Momento do dia

Define a variável com um destes valores, conforme o horário do usuário: morning, afternoon, evening ou night.

Depois, você pode usar essa variável para exibir conteúdo condicionalmente:

Condição por momento do dia

Mapear item de mesmo índice

Um valor prático para pegar, de uma lista, o item que está na mesma posição de um item de outra lista.

Ao buscar dados de outro serviço, é comum receber duas listas: Labels e Ids. Os rótulos são o que se mostra ao usuário; os IDs são o que se usa nas próximas requisições àquele serviço.

Este valor encontra o Id em Ids que está na mesma posição do Label em Labels.

Variável: mapear item de mesmo índice

Número de telefone

Disponível apenas no WhatsApp. Define a variável com o telefone do usuário.

Nome do contato

Disponível apenas no WhatsApp. Define a variável com o nome do usuário.

Pop / Shift

O Pop remove o último item da lista informada e guarda o item removido na variável "Item removido". O Shift faz o mesmo com o primeiro item. São especialmente úteis quando você precisa criar um laço que processa cada item de uma lista.

Salvar nos resultados

Por padrão, variáveis novas não são gravadas na tabela de Resultados — ficam apenas na sessão de conversa do usuário. Ative esta opção para salvar a variável na tabela Resultados.

Executar no cliente

Esta opção é útil quando você precisa executar o código personalizado no lado do cliente. Só é necessária quando o código precisa de informações do navegador do usuário. Ou seja, se você usa window, document, navigator e afins, ative-a.

Obter a localização do usuário

Para isso, use o seguinte código personalizado:

function getLocation() {
  return new Promise((resolve) => {
    navigator.geolocation.getCurrentPosition(
      (position) =>
        resolve(`${position.coords.latitude}, ${position.coords.longitude}`),
      (error) => resolve('error'),
      { enableHighAccuracy: true, timeout: 5000 }
    )
  })
}

const coords = await getLocation()

// Check for error
if (coords === 'error') {
  return 'Unable to get location'
}

return coords

Esta função só funciona quando executada no navegador do usuário, então lembre-se de ativar a opção "Executar no cliente".

On this page