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.
Basta acessar a aba input para configurar e, em seguida, selecionar a opção pergunta aberta no ícone da interrogação "?".
Nesse caso, não há uma pergunta setada, logo o texto da pergunta precisa estar em output.
Estrutura
{ "default": { "type": "text_input", "payload": { "mode": "textarea", "cognitive": true|false, "mask": "cellphone|cep|cpf|cpf_cnpj|numeric|email|money|vehicle_plate|password|custom" } } }
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ó. 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). 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
- 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
- ddi_mask (opcional): permite definir o código do país (DDI) usado na validação do número de telefone. Se omitida, o valor padrão será +55 (Brasil). Para outro país, basta informar o DDI desejado, por exemplo +54 (Argentina), +1 (Estados Unidos).
- 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
Importante: Os atributos abaixo estão disponíveis apenas para o canal Widget. Não têm suporte em outros canais.
- 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: Payload commask |
{ "default": { "type": "text_input", "payload": { "cognitive": false, "mask": "email" } } }js |
Exemplo 2: Payload com mask, filter e placeholder. |
No exemplo, 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 { "default": { "type": "text_input", "payload": { "mask": "cellphone", "filter": { "regex": { "pattern": "\\D", "replace": "" } }, "placeholder": "(##) 9####-####" } } } |
Exemplo 3:Payload com máscara password, usando os atributos opcionais min e max |
No exemplo, será apresentado um input de texto com a máscara do tipo { "default": { "type": "text_input", "payload": { "max": 10, "min": 5, "mask": "password", "cognitive": "false" } } } |
Importante: As máscaras listadas a partir de agora estão disponíveis apenas para o canal Widget. Não têm suporte em outros canais.
Exemplo 4:Payload com máscara custom, usando o atributo opcional maskOptions |
No exemplo, será apresentado um input de texto com a máscara do tipo { "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" } } } } |
| Exemplo 5 |
{ "default": { "type": "text_input", "payload": { "optional": true } } } |
| Exemplo 6 |
{ "default": { "type": "text_input", "payload": { "mask": "cpf", "tries": 5, "mandatory": true, "error_message": [ "string 1", "string 2" ] } } } |
Configurar mandatory
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á:
- No caso de o input atingir a condição da máscara, ou seja, usuário digitar um cpf, usamos:
input.valid == true
- No caso de o input não atingir a condição da máscara depois de todas as tentativas tries usamos:
input.valid == false
⚠️Atenção: 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.