Como podemos ajudar?

01. Pergunta aberta
16 min
Criado por LA em 22/03/2023 16:36
Atualizado por Ligia Sarmento em 20/08/2025 14:08

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.

input 1.webp

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 (35) 99988-7766, 
o que chegará ao assistente é 35999887766.

{
      "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 password, a entrada do usuário nesse exemplo deve ser uma senha com o tamanho entre o min e o max

{
      "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 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": {
              "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.

Este artigo resolveu sua dúvida?
Últimos artigos visitados