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.
{
"default": {
"type": "text_input",
"payload": {
"mode": "textarea",
"cognitive": true|false,
"mask": "cellphone|cep|cpf|cpf_cnpj|numeric|email|money|vehicle_plate|password|custom"
}
}
}
- 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ó. A configuração padrão do mandatory é
false
. Veja aqui como configurar. - 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). Cada mensagem será exibida após uma tentativa, ou seja não haverá abertura de input após a última mensagem. - 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
- 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".
Payload com
mask
usando o atributo opcional mandatory
:Exemplo 1
Exemplo 2
Exemplo 3
Exemplo 4
Exemplo 5
Exemplo 6
Payload com
mask
:{
"default": {
"type": "text_input",
"payload": {
"cognitive": false,
"mask": "email"
}
}
}js
Payload com
mask
, filter
e placeholder
:{
"default": {
"type": "text_input",
"payload": {
"mask": "cellphone",
"filter": {
"regex": {
"pattern": "\\D",
"replace": ""
}
},
"placeholder": "(##) 9####-####"
}
}
}
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
:{
"default": {
"type": "text_input",
"payload": {
"max": 10,
"min": 5,
"mask": "password",
"cognitive": "false"
}
}
}
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
:{
"default": {
"type": "text_input",
"payload": {
"cognitive": "false",
"mask": "custom",
"maskFormat": "00/00/0000",
"maskOptions": {
"translation": {
"0": {
"pattern": "[0-9]",
"optional": false
}
},
"placeholder": "Digite somente números"
}
}
}
}
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".{
"default": {
"type": "text_input",
"payload": {
"optional": true
}
}
}
{
"default": {
"type": "text_input",
"payload": {
"mask": "cpf",
"tries": 5,
"mandatory": true,
"error_message": [
"string 1",
"string 2"
]
}
}
}
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:{
"default": {
"type": "text_input",
"payload": {
"mask": "cpf",
"tries": 3,
"mandatory": true,
"error_message": [
"Você errou, tente novamente",
"Por favor tente uma última vez",
"Não consegui validar o seu cpf, tente novamente mais tarde"
]
}
}
}
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:
input.valid == true
2 - No caso de o input não atingir a condição da máscara depois de todas as tentativas
tries
usamos:input.valid == false
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.
Last modified 10mo ago