Há três categorias de variáveis que podem ser usadas no builder: variáveis do contato, de contexto e de sistema (especiais). Para utilizar variáveis no editor de código (json), é necessário utilizar a <? ?>
Por exemplo, para exibir o nome do contato em uma mensagem, pode-se usar:
São dados armazenados na sessão do atendimento. Podem ser acessados através da notação $varou pela context.var Exemplo de armazenamento de variável de contexto:
O acesso às variáveis de contexto ocorre pela sintaxe iniciada com $ .Caso você queira usar literalmente esse caractere, é necessário realizar um escape com \\.
Há um conjunto de variáveis especiais (ou de sistema) que podem ser usadas para acessar o input do usuário, intenção reconhecida, entidades, nível de confiança, etc.
Input
A interação do usuário com o assistente fica armazenada na variável inputUma resposta de texto por exemplo fica armazenada na variável input.text.Exemplo de uso:
O score_level pode conter os seguintes valores: low, medium e high. Ele é calculado a partir do confidence e da configuração de intervalo de confiança setada no assistente. Também é possível verificar se uma intenção foi detectada através do prefixo #
Para uma intenção chamada saudacao, ativada pelo "Bom dia!" do usuário, é necessária que exista um nó com o ponto de entrada #saudacaocontendo uma também uma resposta específica para o cenário:
Sempre que a intenção #saudacao for identificada, o fluxo de conversação passará para esse nó.
Importante: Desde que o usuário não esteja em nó em condição obrigatória ou a intent não tenha sido identificada.
A mesma abordagem pode ser utilizada na hora de definir o nó de destino na seção então ir para até mesmo combinando com outras variáveis.
Por exemplo:
Entidades
Assim como para intenções, o NLU pode reconhecer entidades na interação do usuário. Nesse caso a variável entities é preenchida.
Considerando que o usuário digitou a frase "Quero comprar um tênis da Adidas", suponhamos que as entidades @produto e @marca foram reconhecidas. A variável entities teria a seguinte estrutura:
De forma similar a intenções, para verificar se uma entidade foi reconhecida basta utilizar o @. Por exemplo:
@marca
@marca:adidas
@marca:(adidas)
Por exemplo, se você quisesse direcionar o usuário para um nó específico caso ele tenha digitado um produto e uma marca, poderia ser colocada a condição de saída @produto && @marca.
Canais (source)
Uma outra possibilidade é usar a origem do contato como regra para o assistente tomar uma decisão. Lembrando que o valor é baseado na integração, por exemplo:
contact.source == 'debugger'
contact.source == 'liveperson'
contact.source == 'zenvia'
contact.source == 'widget'
contact.source == 'api'
contact.source == 'rcs'
contact.source == 'whatsapp'
Variável base_has_answers
Após o uso de base de conhecimento no Builder, é possível acrescentar uma variável especial chamada base_has_answers que poderá ser utilizada para o direcionamento do fluxo. Como o próprio nome indica, essa variável poderá conter os valores true ou false e determina se foi encontrada uma resposta na base de conhecimento ou não.
Além de poder ser usada nas condições, por exemplo, de saída do nó, pode também ser utilizada no armazenamento de variáveis, conforme exemplo: