ALTU
Search…
Pergunta aberta
Para realizar uma pergunta ao usuário, você pode utilizar o input pergunta aberta com algumas máscaras, filtros ou apenas um campo para digitar o que deseja.
Para configurar, basta acessar a aba input e em seguida selecionar a opção pergunta aberta no ícone ?. Nesse caso, não há uma pergunta setada, logo o texto da pergunta precisa estar em output.

Estrutura

1
{
2
"default": {
3
"type": "text_input",
4
"payload": {
5
"mode": "textarea",
6
"cognitive": true|false,
7
"mask": "cellphone|cep|cpf|cpf_cnpj|numeric|email|money|vehicle_plate|password|custom"
8
}
9
}
10
}
Copied!

Atributos:

  • type: text_input
  • payload:
    • mode: textarea (opcional): ao utilizar essa informação, o campo de input no widget passa a ter uma quebra de linha automática.
    • cognitive (default: true): determina se a mensagem será enviada para curadoria ou não
    • mandatory (opcional): determina a obrigatoriedade de um nó, sendo utilizado com as máscaras:
1
"mask":"cellphone|cep|cpf|cpf_cnpj|numeric|email|money|vehicle_plate|password"
Copied!
A configuração padrão do mandatory é false.
  • tries: indica quantas tentativas o usuário terá em caso de erro(é preciso utilizar o mandatory: true para que haja a validação das tentativas).
  • error_message: mensagens exibidas de acordo com a sequência de erros. A quantidade de tentativas (tries) deve ser equivalente a quantia de frases cadastradas, caso contrário as fraseologias serão repetidas
O resultado da validação do mandatory virá dentro da variável input.valid , sendo true para quando o valor inserido pelo usuário atenda os requisitos da máscara usada, ou false para quando o usuário passar por todas as tentativas. Veja o exemplo abaixo:
1
{
2
"default": {
3
"type": "text_input",
4
"payload": {
5
"mask": "cpf",
6
"tries": 3,
7
"mandatory": true,
8
"error_message": [
9
"Você errou, tente novamente",
10
"Por favor tente uma última vez",
11
"Não consegui validar o seu cpf, tente novamente mais tarde"
12
]
13
}
14
}
15
}
Copied!
A configuração dos destinos será:
1 - No caso de o input atingir a condição da máscara, ou seja, usuário digitar um cpf, usamos:
1
input.valid == true
Copied!
2 - No caso de o input não atingir a condição da máscara depois de todas as tentativas tries usamos:
1
input.valid == false
Copied!
  • mask (opcional): máscara a ser aplicada no campo de entrada
    • cellphone: máscara para número de celular brasileiro
    • cep: máscara para CEP brasileiro
    • cpf: máscara para CPF
    • cpf_cnpj: máscara dinâmica para CPF ou CNPJ
    • numeric: máscara para aceitar somente dígitos numéricos
    • email: máscara para validação de email
    • money: máscara monetária, aceita somente números
    • vehicle_plate: máscara para placa de veículos antigas(a partir de 1990) e novas(a partir de 2018) segundo Mercosul
    • password: máscara para receber a senha do usuário
    • telefone_fixo: máscara para número de telefone fixo brasileiro
    • fixo_or_cellphone: máscara dinâmica para número de celular ou telefone fixo brasileiros
    • custom: permite customização de diversos tipo de máscaras, baseada na biblioteca jQuery Mask Plugin:
    • maskFormat: string com formato desejado para a máscara. É obrigatório se a máscara for do tipo custom
    • maskOptions(opcional): json com opções adicionais para aplicação avançada no formato. Por exemplo, funções de callback, pattern e placeholder
  • max (opcional): número que limita o máximo de caracteres do input (atributo maxlength)
  • min (opcional): número que limita o mínimo de caracteres do input (atributo minlength)
  • filter (opcional):
    • regex: aplica uma expressão regular na mensagem digitada
      • pattern: expressão regular a ser aplicada
      • replace: o que será substituído nos matches
  • placeholder (opcional): campo aberto que será exibido para que o usuário digite algo
  • optional (default: false): permite que o input aceite uma entrada vazia. Por exemplo, ao teclar apenas "Enter".
  • error_message: mensagem de erro para quando o nó for obrigatório e o input não for válido.
Ao utilizar o tries com mandatory: true os somente serão executados os outputs e o input até que ultrapasse o limite de tries ou o usuário envie a informação válida.

Exemplos

Exemplo 1
Exemplo 2
Exemplo 3
Exemplo 4
Exemplo 5
Exemplo 6
Payload com mask:
1
{
2
"default": {
3
"type": "text_input",
4
"payload": {
5
"cognitive": false,
6
"mask": "email"
7
}
8
}
9
}
Copied!
Payload com mask, filter e placeholder:
1
{
2
"default": {
3
"type": "text_input",
4
"payload": {
5
"mask": "cellphone",
6
"filter": {
7
"regex": {
8
"pattern": "\\D",
9
"replace": ""
10
}
11
},
12
"placeholder": "(##) 9####-####"
13
}
14
}
15
}
Copied!
No exemplo acima, o campo para input do celular será apresentado com uma máscara. Ao enviarmos a resposta para o Watson, será aplicada expressão regular e tudo que o que não for dígito será removido. Ex: ao digitar (35) 99988-7766, o que chegará ao assistente é 35999887766.
Payload com máscara password, usando os atributos opcionais min e max:
1
{
2
"default": {
3
"type": "text_input",
4
"payload": {
5
"max": 10,
6
"min": 5,
7
"mask": "password",
8
"cognitive": "false"
9
}
10
}
11
}
Copied!
No exemplo acima, será apresentado um input de texto com a máscara do tipo password, a entrada do usuário nesse exemplo deve ser uma senha com o tamanho entre o min e o max.
Payload com máscara custom, usando o atributo opcional maskOptions:
1
{
2
"default": {
3
"type": "text_input",
4
"payload": {
5
"cognitive": "false",
6
"mask": "custom",
7
"maskFormat": "00/00/0000",
8
"maskOptions": {
9
"translation": {
10
"0": {
11
"pattern": "[0-9]",
12
"optional": false
13
}
14
},
15
"placeholder": "Digite somente números"
16
}
17
}
18
}
19
}
Copied!
No exemplo acima, será apresentado um input de texto com a máscara do tipo custom e uma formatação que aceita somente números, passada para o maskFormat. Isso é definido pelo atributo maskOptions, que tem um translation, cujo pattern limita dígitos de 0 a 9. Além disso, será apresentado um placeholder no campo input: "Digite somente números".
1
{
2
"default": {
3
"type": "text_input",
4
"payload": {
5
"optional": true
6
}
7
}
8
}
Copied!
Payload com mask usando o atributo opcional mandatory:
1
{
2
"default": {
3
"type": "text_input",
4
"payload": {
5
"mask": "cpf",
6
"tries": 5,
7
"mandatory": true,
8
"error_message": [
9
"string 1",
10
"string 2"
11
]
12
}
13
}
14
}
Copied!
Last modified 13d ago