Help Center
SuporteLanguage
  • Help Center 🚀
  • Introdução
  • Cadastro
  • Definições
  • BOT BUILDER
    • Criar o Bot
      • Importar bot
      • Criando meu primeiro BOT
      • Configurações do Bot
        • Geral
        • Controle de Versão
        • Compartilhamento
        • Comportamento
    • Fluxo da Conversa
      • Importador de Q&A
      • Mensagem
        • Encerrar Atendimento
        • Tipos de formatação de Texto
        • O que é uma mensagem template ?
      • Filtro
      • Etapa Existente
      • Rest API
        • Exemplo de utilização da etapa Rest API
      • Javascript
        • Manipulação de Objetos
      • E-mail
      • Controle Humano
      • Webview
      • Encaminha a outro bot
      • Testar Bot
      • Ação de Tempo
    • NLP
      • Intenção
      • Entidade
      • Treinamento
      • Como utilizar o DialogFlow?
    • Canais
      • Microsoft Teams
      • Whatsapp
        • Como utilizar um Número de teste da Cosmobots
        • Como posso adquirir o selo de verificação para o meu WhatsApp?
        • Cadastrar templates na plataforma
        • Adicionando botões ao canal whatsapp
        • Provedores
          • Twilio
            • Como comprar e configurar um número na Twilio?
            • Inserir webhook em número Twilio
          • Dialog 360
            • Aprovar templates
      • Instagram
        • Como filtrar menções do Instagram
      • Google Assistant
      • Facebook
        • Como verificar minha empresa no Facebook Business?
        • Não consigo clicar no botão de verificar conta. O que fazer?
      • Workplace
      • Chat Widget
        • Landing
        • Publicando Widget
        • Webhook
    • Broadcast
    • Dados
      • Conversas
      • Campos
      • Objetos
      • Como acessar e exportar os Dados coletados pelo Bot?
      • Layouts
        • Cosmo Desk
        • Pesquisa
    • Dashboard
      • Performance dos Atendentes
      • Indicadores
    • Explorer
      • Códigos
      • Alterações
    • Integrações
      • Pipefy
        • Acessando campos retornados em webhook
      • RD Station
      • Analíticos
  • COSMO DESK
    • Live Chat
      • Download Livechat
      • 🔔Receber notificações em Live Chat
    • Configurações
      • 🔄Filas de Atendimento
      • 🤖Regras de atendimento
      • 🕐SLA
      • 💬Mensagem Rápidas
      • 📑Tags
      • 💨Status de Ausente
  • CONFIGURAÇÕES
    • Perfil
    • Cadastrar Usuários
    • Consumo
    • Feriados
  • API
    • V1 - Records
    • V1 - Index
    • V1 - Send Message
    • V1 - Broadcast Messages
  • Available Languages
  • Outros
    • Saber Mais
      • Utilizando Hyperlink no canal Widget
      • Formatação em negrito e itálico para canais Widget e Whatsapp
      • Erro 403
      • Pesquisa NPS
      • Gerar URL de arquivos
      • Enviar o usuário para um fluxo específico caso ele responda 2 ou mais vezes errado.
      • 🍪Ativar ou Desativar Cookies
      • 🧹Limpeza de Cache
      • 🆗Validar idade
      • 🆗Validar e-mail
      • 🆗Validar CPF
      • 🆗Dialog - Validar mensagens do tipo imagem em Filtro.
      • 🆗Validar CNPJ
      • 🆗Validar arquivos
      • Como visualizar Logs de Atendimento
      • Pular Etapa de Cadastro
    • Exemplos de Códigos JavaScript
      • Envio de Imagens/Anexos/Vídeos/Áudios
      • Adicionar TAGS pelo fluxo
      • Limpar TAGS pelo fluxo
      • Parar o bot por x tempo
      • Validar data digitada pelo usuário
      • Converter arquivos em B64
      • Validador de resposta a templates
      • Validar menção no Instagram
  • FAQ
    • Criar modelos de mensagem para sua conta do WhatsApp Business
    • Como excluir uma mensagem do WhatsApp enviada usando a API?
    • Regra 24 horas do WhatsApp
Powered by GitBook
On this page

Was this helpful?

  1. Outros
  2. Saber Mais

Validar CNPJ

Olá Cosmonauta, nesse tutorial vamos explicar sobre como retornar uma mensagem ao usuário quando ele informar o CNPJ incorreto e permitir que ele preencha novamente com o CNPJ correto.

PreviousDialog - Validar mensagens do tipo imagem em Filtro.NextValidar arquivos

Last updated 2 years ago

Was this helpful?

1- Para isso, crie uma mensagem que pergunte o CNPJ do usuário e salve a resposta como context.cnpj:

Caso não tenha esse campo em sua lista de opções crie um novo campo.

3- Crie uma etapa javaScript e insira o seguinte código:

//
// Verifica se o usuario digitou um CNPJ válido
//
function cnpjValidation(value) {
  if (!value) return false

  // Aceita receber o valor como string, número ou array com todos os dígitos
  const isString = typeof value === 'string'
  const validTypes = isString || Number.isInteger(value) || Array.isArray(value)

  // Elimina valor em formato inválido
  if (!validTypes) return false

  // Filtro inicial para entradas do tipo string
  if (isString) {
    // Limita ao máximo de 18 caracteres, para CNPJ formatado
    if (value.length > 18) return false

    // Teste Regex para veificar se é uma string apenas dígitos válida
    const digitsOnly = /^\d{14}$/.test(value)
    // Teste Regex para verificar se é uma string formatada válida
    const validFormat = /^\d{2}.\d{3}.\d{3}\/\d{4}-\d{2}$/.test(value)

    // Se o formato é válido, usa um truque para seguir o fluxo da validação
    if (digitsOnly || validFormat) true
    // Se não, retorna inválido
    else return false
  }

  // Guarda um array com todos os dígitos do valor
  const match = value.toString().match(/\d/g)
  const numbers = Array.isArray(match) ? match.map(Number) : []

  // Valida a quantidade de dígitos
  if (numbers.length !== 14) return false
  
  // Elimina inválidos com todos os dígitos iguais
  const items = [...new Set(numbers)]
  if (items.length === 1) return false

  // Cálculo validador
  const calc = (x) => {
    const slice = numbers.slice(0, x)
    let factor = x - 7
    let sum = 0

    for (let i = x; i >= 1; i--) {
      const n = slice[x - i]
      sum += n * factor--
      if (factor < 2) factor = 9
    }

    const result = 11 - (sum % 11)

    return result > 9 ? 0 : result
  }

  // Separa os 2 últimos dígitos de verificadores
  const digits = numbers.slice(12)
  
  // Valida 1o. dígito verificador
  const digit0 = calc(12)
  if (digit0 !== digits[0]) return false

  // Valida 2o. dígito verificador
  const digit1 = calc(13)
  return digit1 === digits[1]
}
var cnpj=context.cnpj
console.log(cnpjValidation(cnpj))
if(cnpjValidation(cnpj)===true){
   context.resposta="ok"}
else{
    context.resposta="nok"
}

4- Crie um Filtro, e no filtro coloque a seguinte condição e salve:

5- Do lado não do filtro, insira a mensagem que deve ser enviada ao usuário caso ele informe o CNPJ incorreto:

6- Depois crie uma etapa existente e direcione novamente a etapa que pergunta o CNPJ.

7- Prontinho, se o CNPJ do usuário estiver incorreto ele vai receber a mensagem informando.

🆗