LogoLogo
Zenvia Docs
  • Zenvia NLU
  • Boas Práticas
    • Eventos
      • Dicas para criar eventos
      • Eventos Personalizados
        • menu_principal
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • Autosservico
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de eventos
        • sucess_no_friccion
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • horario_atendimento
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de eventos
        • transbordo
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de eventos
        • pesquisa_satisfacao
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de eventos
        • conseguiu_ajudar
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de eventos
        • nivel_confianca
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de eventos
        • chamada_api
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • falha_api
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • primeiro_acesso
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • encerramento
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • estouro_tentativas_else
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • intents
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • rechamada
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
    • Gestão de NLU
      • Dicas de gestão de NLU
    • Personalizar widget
  • Monitor
    • Dashboard
      • Métricas e indicadores
      • Gráficos
    • Atendimentos
    • Eventos
    • Volumetria
    • Issues
    • Monitoramento de APIs
    • Métricas de avaliação
  • Build
    • Assistentes
      • Edição do Assistente
      • Builder
        • Configurações do nó
        • Componentes
          • Output
            • Texto
            • Texto randômico
            • Texto sequencial
            • Base de conhecimento
            • LivePerson - Conteúdo Estruturado
            • Arquivo
          • Input
            • Pergunta aberta
            • Autocomplete
            • Data
            • Feedback NPS
            • Feedback Custom
            • Lista inline
            • Lista modal
            • Quick Replies
            • Upload de arquivo
            • Upload de arquivo LP
            • Carrossel de Opções
            • Desambiguação
          • Fluxo de Inatividade
          • Variáveis
          • Ações
            • HTTP Request
            • Satisfaction
            • Validar celular
            • Validar CEP
            • Validar CPF
            • Validar CPF/CNPJ
            • Validar CNPJ
            • Validar nome completo
            • Validar e-mail
            • Procurar atendimento
            • Transferência entre skills Liveperson
            • Setar contexto LivePerson
            • Encerrar Atendimento LivePerson
            • Encerrar chat
            • Socket Event
            • Facebook Profile
            • Facebook Transbordo
            • Workplace Profile
            • Iniciar LiveChat
            • Functions
            • Setar NLU
            • Transferência entre assistentes
            • Contact Return
            • Intent Feedback
          • Eventos
    • Functions
    • Atributos
  • CONNECT
    • APIs
      • Agent connector API
      • Outbound
        • Outbound WhatsApp
        • Outbound Zenvia
        • Outbound Wavy
        • Outbound LivePerson
        • Outbound Infobip
        • Outbound RCS
      • Eventos
      • Atendimentos
      • LGPD
    • Canais
      • Capabilities
      • Instagram
      • Google Business Messages
      • Bot API
      • Facebook
        • Integração Messenger via Zenvia NLU
        • Integração Messenger via Liveperson
      • Google RCS
      • Microsoft Teams
      • Whatsapp
        • Zenvia
        • Blip
        • Wavy
        • Infobip
        • Liveperson
      • Widget
      • Workplace
    • Telegram
    • Contingência
    • LiveChat
      • Transbordo ALTU Connector API
        • Transbordo Tech4Humans
      • Transbordo LivePerson
      • Transbordo Zendesk Ticket
      • Transbordo Zendesk Chat
      • Transbordo Salesforce
  • TRAIN
    • Primeiros passos
    • Visão Geral
    • Configuração do NLU
    • Avaliação de Mensagens
    • Análise e ajustes
  • Mais
    • Release
      • Controle de Versão
      • 27/10/2021
      • 06/10/2021
      • 22/09/2021
      • 09/09/2021
      • 11/08/2021
      • 28/07/2021
      • 14/07/2021
      • 30/06/2021
      • 16/06/2021
      • 01/06/2021
      • 18/05/2021
      • 04/05/2021
      • 20/04/2021
      • 06/04/2021
      • 23/03/2021
      • 09/03/2021
      • 23/02/2021
      • 09/02/2021
      • 26/01/2021
      • 12/01/2021
      • 22/12/2020
      • 08/12/2020
      • 24/11/2020
      • 10/11/2020
      • 27/10/2020
      • 13/10/2020
      • 29/09/2020
      • 15/09/2020
      • 01/09/2020
      • 18/08/2020
      • 03/08/2020
      • 21/07/2020
      • 08/07/2020
      • 30/06/2020
      • 04/06/2020
      • 22/05/2020
      • 14/05/2020
      • 29/04/2020
      • 01/04/2020
      • 24/03/2020
      • 16/03/2020
    • Glossário
Powered by GitBook
On this page

Was this helpful?

  1. Build
  2. Assistentes
  3. Builder
  4. Componentes

Variáveis

PreviousFluxo de InatividadeNextAções

Last updated 3 years ago

Was this helpful?

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:

[
    {
        "default": {
            "text": "Seja bem-vindo, <? contact.name ?>",
            "type": "text"
        }
    }
]

Para usar variáveis em pontos de entrada, ou na condicional de nó de destino, não é preciso colocar a notação <? ?>Exemplo de condição de saída:

São dados armazenados na ficha do atendimento. Podem ser acessados através da notação contact.atributoPor exemplo:

  • contact.name

  • contact.email

  • contact.extra.identification_number (atributo extra)

Exemplo de armazenamento de variável do contato:

{
    "contact": {
        "name": "<? input.text ?>",
        "extra": {
            "identification_number": "123456"
        }
    }
}

Exemplo de uso:

[
    {
        "default": {
            "text": "Seja bem-vindo, <? contact.name ?>",
            "type": "text"
        }
    }
]

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:

{
    "context": {
        "status_pagamento": "concluido"
    }
}

Exemplo de uso:

[
    {
        "default": {
            "text": "Status do pagamento: <? $status_pagamento ?>",
            "type": "text"
        }
    }
]

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 \\.

Exemplo:

{
    "context": {
        "valid": "<? (/^[0-9]+\\$/).test(input.text)) ?>"
    }
}

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:

[
    {
        "default": {
            "text": "Você digitou '<? input.text ?>'",
            "type": "text"
        }
    }
]

Intenção

O usuário digita "Bom dia" e a #saudacao é reconhecida, aos valores das variáveis são :

"intent": "saudacao",
"intents": [
    {
        "intent": "saudacao",
        "confidence": 1
    }
],
"confidence": 1,
"score_level": "high",

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:

"entities": [
    {
        "value": "tenis",
        "entity": "produto",
        "location": [
            17,
            22
        ],
        "confidence": 1
    },
    {
        "value": "adidas",
        "entity": "marca",
        "location": [
            26,
            32
        ],
        "confidence": 1
    }
]

Exemplos de como essa variável poderia ser usada:

  • entities.length

  • entities[0].value

  • entities[0].entity

  • entities[1].confidence

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:

[
    {
        "extra1": "<? base_has_answers ? 'tem answers' : 'não tem' ?>",
        "extra2": "extra2",
        "details": {
            "field1": "value1",
            "field2": "value2"
        },
        "event_name": "saudacoes"
    }
]

ou

{
    "contact": {
        "atributo": "valor"
    },
    "context": {
        "var_contexto": "<? base_has_answers ? 'tem answers' : 'não tem' ?>"
    }
}

Para toda interação do usuário que passa pelo , as variáveis intent, intents, confidence e score_level são preenchidas. Exemplo 1:

cognitivo
notação