Mudanças entre as edições de "Central de Notificações"

De Office System
Ir para navegação Ir para pesquisar
(Criou página com '==Central de Notificações== ==Visão funcional== A Central de Notificações é o módulo responsável pelo envio de mensagens automáticas e manuais aos clientes via Whats...')
 
 
(6 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 2: Linha 2:
  
 
==Visão funcional==
 
==Visão funcional==
−
A Central de Notificações é o módulo responsável pelo envio de mensagens automáticas e manuais aos clientes via WhatsApp e e-mail. O envio pode ocorrer de duas formas: manualmente pelo operador, selecionando destinatários e disparando na hora, ou automaticamente pelo sistema em horário configurado.
+
A Central de Notificações envia mensagens aos clientes por '''WhatsApp''' e '''e-mail'''. O envio pode acontecer de duas formas:
  
−
As categorias de notificação disponíveis são:
+
*'''Manual''' – o operador escolhe a categoria e o período, seleciona os destinatários na lista e dispara na hora, pela aba '''Notificações''';
 +
*'''Automático''' – o próprio Master Key dispara uma vez por dia, no horário configurado, para as categorias marcadas na aba '''Configurações > Automático'''.
  
−
*'''Aniversário''' – clientes que fazem aniversário no período;
+
Tudo na Central é '''separado por loja''': configurações de WhatsApp e e-mail, templates, envio automático e histórico. A loja em uso é escolhida no campo '''Loja''', no topo da tela. Esse campo só aparece quando a empresa tem mais de uma loja, e só fica liberado para usuários que podem trocar de loja.
−
*'''Boleto a Vencer''' – boletos com vencimento próximo;
 
−
*'''Boleto Vencido''' – boletos em atraso;
 
−
*'''Boleto Pago''' – boletos quitados;
 
−
*'''OS Pronta''' – ordens de serviço com status de pronta;
 
−
*'''NF-e''' – notas fiscais eletrônicas emitidas;
 
−
*'''Tipos Personalizados''' – categorias criadas pelo próprio usuário com SQL customizado (ver seção específica).
 
  
−
==Abas da tela==
+
O cliente definido como '''consumidor padrão''' da loja (cliente usado nas vendas de balcão) nunca aparece em nenhuma categoria.
  
−
===Notificações===
+
===Categorias===
−
Aba principal de consulta e envio manual. O operador filtra por categoria, filial e período, seleciona os destinatários na lista e aciona o envio por WhatsApp, e-mail ou ambos. O sistema exibe progresso em tempo real e permite cancelar o envio em andamento.
+
{| class="wikitable"
 +
|-
 +
!Categoria!!O que aparece na busca manual (dentro do período)!!Anexo enviado!!Envio automático
 +
|-
 +
|'''Aniversário'''||Clientes ativos que fazem aniversário (dia e mês) no período. O ano de nascimento é ignorado e o período pode virar o ano (ex.: 20/12 a 10/01)||Nenhum||Sim – aniversariantes do dia
 +
|-
 +
|'''Cobrança a Vencer'''||Títulos do contas a receber em aberto (sem pagamento e com valor maior que zero) com vencimento no período||Boleto, quando o título tem boleto||Sim – títulos que vencem no dia
 +
|-
 +
|'''Cobrança Vencida'''||Títulos em aberto com vencimento no período (use um período já passado)||Boleto, quando o título tem boleto||Sim – títulos que venceram desde a última execução até ontem
 +
|-
 +
|'''Cobrança Paga'''||Títulos com data de pagamento no período||Nenhum||Sim – títulos pagos desde a última execução até hoje
 +
|-
 +
|'''Ordens de Serviço'''||OS com data de abertura no período, exceto orçamentos, filtradas pelos status marcados em '''Status da OS''' (nenhum marcado = todos os status)||Nenhum||'''Não'''
 +
|-
 +
|'''Nota Fiscal'''||Vendas com nota '''autorizada''' (NF-e, NFC-e ou NFS-e) com emissão no período||PDF da nota (DANFE/DANFS-e), boleto da venda (se houver) e XML da nota||Sim – notas emitidas desde a última execução até ontem
 +
|-
 +
|'''Tipos personalizados'''||O que o SQL do tipo retornar (ver seção "Tipos Personalizados")||Nenhum||Sim, se marcado
 +
|}
  
−
===Configurações===
+
'''Controle de envio duplicado:''' tudo o que já foi enviado '''com sucesso''' deixa de aparecer na busca da categoria, a não ser que a opção '''Permitir reenvio''' esteja marcada. O controle é feito:
−
Aba com quatro sub-abas de configuração:
 
  
−
*'''WhatsApp''' – tipo de API, credenciais e intervalo entre envios;
+
*nas Cobranças, por título (ou pelo boleto inteiro, no caso de boleto acumulado);
−
*'''E-mail''' – servidor SMTP, porta, criptografia e credenciais;
+
*na Nota Fiscal, por venda;
−
*'''Templates''' – mensagens por categoria e canal;
+
*nas Ordens de Serviço, por OS;
−
*'''Automático''' – ativação, horário e categorias do envio automático.
+
*no Aniversário, por cliente dentro do ano;
 +
*nos Tipos personalizados, pela coluna REFERENCIA do SQL.
  
−
===Histórico===
+
Envios com erro não contam: o registro continua aparecendo para ser enviado de novo.
−
Exibe registros de todos os envios realizados com filtros por período, tipo (WhatsApp/e-mail), categoria e status (Sucesso/Erro/Reenviado). Permite reenvio de falhas diretamente da tela.
 
  
−
===Tipos Personalizados===
+
==Topo da tela==
−
Gerenciamento das categorias customizadas criadas pelo usuário (ver seção específica). A aba só aparece para usuários com permissão de acesso ao módulo correspondente.
+
*'''Loja''' – loja cujas configurações, templates e histórico estão sendo usados (ver "Visão funcional");
 +
*'''WhatsApp: <situação>''' – aparece só quando a loja usa a '''API Não Oficial (uazapi)'''. Mostra se o WhatsApp da loja está '''Conectado''', '''Desconectado''', '''Conectando...''' etc., com a bolinha verde/vermelha ao lado. É atualizado sozinho a cada 15 segundos enquanto a tela está aberta.
  
−
==Configuração do WhatsApp==
+
==Aba Notificações (envio manual)==
 +
 
 +
===Filtros===
 +
*'''Categoria''' – categoria que será listada;
 +
*'''Permitir reenvio''' – quando marcado, a busca também traz registros que já receberam a notificação com sucesso;
 +
*'''Período''' – combo de atalhos + datas inicial e final + botão '''Buscar''';
 +
*'''Status da OS''' – aparece só na categoria Ordens de Serviço. Marque os status desejados; sem nenhum marcado, todos os status entram.
 +
 
 +
'''Atalhos de período''' – escolher um atalho preenche as datas e já faz a busca. Se as datas forem alteradas manualmente, o combo passa sozinho para '''Personalizado'''. Ao abrir a tela o atalho padrão é '''Próximos 30 dias'''.
 +
 
 +
{| class="wikitable"
 +
|-
 +
!Atalho!!Datas preenchidas
 +
|-
 +
|Hoje / Ontem / Amanhã||O próprio dia
 +
|-
 +
|Últimos 7 dias / Próximos 7 dias||7 dias contando hoje
 +
|-
 +
|Últimos 30 dias / Próximos 30 dias||30 dias contando hoje
 +
|-
 +
|Esta semana / Semana passada / Próxima semana||De segunda a domingo
 +
|-
 +
|Este mês / Mês passado / Próximo mês||Do dia 1 ao último dia do mês
 +
|-
 +
|Personalizado||Datas digitadas pelo operador
 +
|}
  
−
===Tipo de API===
+
Os atalhos servem para os dois sentidos porque cada categoria olha para um lado: Cobrança a Vencer e Aniversário normalmente usam datas futuras; Cobrança Vencida, Cobrança Paga, Nota Fiscal e OS usam datas passadas.
−
Existem duas opções de integração com WhatsApp:
 
  
−
*'''API Oficial (Meta)''' – integração direta com a API oficial da Meta. Exige Phone ID, Token de acesso e versão da API (ex.: v18.0). Não apresenta risco de bloqueio do número;
+
===Lista de destinatários===
−
*'''API Não Oficial (EvolutionGO)''' – emulação web do WhatsApp via EvolutionGO. Exige a criação de uma instância e vinculação do celular por QR Code. Apresenta risco de bloqueio do número em caso de uso inadequado (envio em massa, spam).
+
*Mostra '''Nome''', '''Telefone''', '''E-mail''' e as colunas próprias de cada categoria (ex.: na Nota Fiscal: Nº Nota, Emissão, Valor e Chave; nas Cobranças: vencimento/pagamento, valor e documento; nas OS: número, abertura, status e valor);
 +
*Na '''NFS-e''', a coluna '''Chave''' mostra a chave de acesso da nota de serviço;
 +
*A caixa no cabeçalho da primeira coluna marca ou desmarca todos;
 +
*O contador no canto superior direito mostra quantos estão selecionados ('''x / y selecionado(s)''');
 +
*Depois do envio, cada linha fica '''verde''' (enviado com sucesso) ou '''vermelha''' (erro).
  
−
===Campos da API Oficial===
+
===Canais e envio===
−
'''Onde ficam'''
+
*'''WhatsApp''' e '''E-mail''' – canais usados no envio. Pode marcar um ou os dois;
 +
*'''Clipe''' (ao lado dos canais) – salva os canais marcados como padrão do usuário. Ao abrir a tela, os canais já vêm marcados conforme o que foi salvo;
 +
*'''Enviar Selecionados''' – dispara o envio dos registros marcados.
  
−
Central de Notificações > Configurações > WhatsApp > grupo '''API Oficial Meta'''
+
===Como o envio manual funciona===
 +
#O sistema pede confirmação com a quantidade de destinatários.
 +
#'''Somente uazapi, com 20 ou mais selecionados:''' consulta se o WhatsApp sinalizou restrição para iniciar novas conversas nessa conta. Se houver, avisa e pergunta se deseja enviar mesmo assim (insistir costuma agravar o bloqueio).
 +
#'''Somente uazapi:''' valida de uma vez quais números têm WhatsApp. Os que não têm não recebem a mensagem e ficam no histórico como erro "Número sem WhatsApp".
 +
#'''Somente uazapi, nas categorias sem anexo''' (Aniversário, Cobrança Paga, Ordens de Serviço e Tipos personalizados): as mensagens são entregues de uma vez para a fila da uazapi, que faz os disparos respeitando o intervalo configurado. A mensagem final ("Envio para a fila concluído – Aceitos/Rejeitados") indica só que a fila aceitou as mensagens; a entrega real acontece depois.
 +
#Nos demais casos o envio é '''um por um''':
 +
#*WhatsApp: após cada mensagem o sistema espera um tempo sorteado entre o intervalo configurado e o dobro dele (ex.: intervalo 5 → espera de 5 a 10 segundos), para não parecer disparo automático. Na uazapi, o contato também vê "digitando..." por 1 a 3 segundos antes de cada mensagem;
 +
#*E-mail: espera exatamente o intervalo configurado para e-mail.
 +
#Um cartão de progresso mostra o cliente da vez e o contador ("2 de 10"). O botão '''Cancelar''' interrompe o envio depois da mensagem em andamento.
 +
#Cada envio é gravado no '''Histórico''' com origem '''Manual'''. No final aparece o resumo com sucessos e erros.
  
−
'''Campos'''
+
'''Destinatário usado em cada canal:'''
 +
*'''WhatsApp''': celular do cadastro do cliente; se estiver vazio, usa o telefone; se também estiver vazio, usa o fax. Números brasileiros com 10 ou 11 dígitos sem o 55 recebem o 55 automaticamente;
 +
*'''E-mail''': campo e-mail do cadastro do cliente;
 +
*Cliente sem telefone (ou sem e-mail) simplesmente não recebe por aquele canal. Isso não gera registro de erro no histórico.
  
−
*'''Phone ID''' (NC_WA_PHONE_ID)
+
==Anexos, links e XML==
−
*'''Token''' (NC_WA_TOKEN)
 
−
*'''Versão''' (NC_WA_VERSAO)
 
  
−
===Campos da API Não Oficial (EvolutionGO)===
+
===O que vai em cada canal===
−
'''Onde ficam'''
+
{| class="wikitable"
 +
|-
 +
!Situação!!E-mail!!WhatsApp uazapi!!WhatsApp API Oficial (Meta)
 +
|-
 +
|Cobrança a Vencer / Vencida com boleto||PDF do boleto anexado||PDF do boleto enviado como documento||Link do boleto no texto
 +
|-
 +
|Cobrança a Vencer / Vencida sem boleto||Só o texto||Só o texto||Só o texto
 +
|-
 +
|Nota Fiscal||PDF da nota + PDF do boleto (se a venda tiver) + '''XML sempre'''||PDF da nota + boleto (se houver) como documentos + XML '''se a opção estiver ligada'''||Links da nota, do boleto (se houver) e do XML ('''se a opção estiver ligada''')
 +
|-
 +
|Demais categorias||Só o texto||Só o texto||Só o texto
 +
|}
  
−
Central de Notificações > Configurações > WhatsApp > grupo '''API Não Oficial - EvolutionGO'''
+
*Na uazapi, a mensagem do template vai como legenda do primeiro documento; os demais documentos vão logo em seguida.
 +
*Na API Oficial, os arquivos são enviados para um armazenamento temporário na nuvem e o link entra no lugar da variável correspondente do template ({LINK_BOLETO}, {LINK_NOTA}/{LINK_NFE}, {LINK_XML}). Se o template não tiver a variável, o sistema acrescenta uma linha no fim da mensagem: "Nota Fiscal: <link>", "Boleto para pagamento: <link>" ou "XML da Nota: <link>".
 +
*A opção do XML no WhatsApp fica em '''Configurações > WhatsApp > "Enviar o XML junto no envio de Nota Fiscal"''' (por loja, desmarcada por padrão). No e-mail o XML vai sempre.
  
−
'''Campos'''
+
===De onde vêm o PDF e o XML da nota===
 +
*'''Nota emitida pela API''' (o XML fica gravado no Master Key): o PDF e o XML são gerados pelo próprio Master Key.
 +
*'''Nota emitida pelo Master NF-e''' (NF-e, NFC-e e NFS-e): o Master Key pede o PDF e o XML ao Master NF-e. Para isso:
 +
**o '''Master NF-e precisa estar aberto''' e acessível. O endereço usado é o de '''Parâmetros do Sistema > quadro "Servidor DataSnap Master NF-e (Reimpressão e integração NFC-e)" > IP e Porta''' da loja. Em branco, usa a própria máquina e a porta 211;
 +
**se o Master NF-e estiver fechado, o Master Key tenta abri-lo sozinho, desde que o caminho do executável esteja configurado no Connect.ini do Master Key (seção [NFE], chave PathExe);
 +
**o '''Master NF-e precisa estar atualizado''' na mesma versão do Master Key. Versões antigas não sabem gerar o PDF da NFS-e nem o XML para a Central.
  
−
*'''Instância''' (NC_WA_INSTANCIA) – gerado automaticamente pelo sistema na primeira abertura; não editável pelo usuário;
+
===Quando o PDF ou o XML falham===
−
*'''Intervalo entre envios (seg.)''' (NC_WA_INTERVALO) – tempo de espera entre cada mensagem enviada.
+
*'''Cobranças – boleto não gerado:''' se o título tem boleto e o PDF não pode ser gerado, a mensagem daquele cliente '''não é enviada''' e o histórico registra o motivo.
 +
*'''Nota Fiscal – PDF da nota não gerado:''' a mensagem daquele cliente '''não é enviada''' e o histórico registra o motivo (ex.: "MasterNFe está fechado", "method not found" quando o Master NF-e está desatualizado). Exceção: no e-mail e no WhatsApp pela API Oficial, se o boleto da venda foi gerado, a mensagem segue só com o boleto. Se apenas o boleto da venda falhar, a mensagem segue sem ele.
 +
*'''XML não gerado:''' a mensagem '''é enviada mesmo assim''', só sem o XML. O motivo fica no arquivo de log (ver "Solução de problemas").
 +
*'''Título sem boleto:''' não é erro; a mensagem vai só com o texto.
  
−
'''Ações disponíveis'''
+
==Configurações==
 +
Aba com quatro sub-abas. As alterações são gravadas pelo botão de gravar da aba; ao trocar de aba com alterações pendentes, o sistema pergunta se deseja salvar.
  
−
*'''Criar Instância''' – registra a instância no servidor EvolutionGO;
+
===WhatsApp===
−
*'''Consultar Status''' – verifica se o WhatsApp está conectado;
 
−
*'''Conectar (QR Code)''' – exibe o QR Code para leitura pelo celular;
 
−
*'''Desconectar''' – encerra a sessão do WhatsApp na instância.
 
  
−
O indicador de status (luz vermelha/verde) é atualizado automaticamente a cada 15 segundos enquanto a tela estiver aberta.
+
'''Tipo de API'''
  
−
==Configuração de E-mail==
+
*'''API Oficial (Meta)''' – integração direta com a API oficial do WhatsApp. Não há risco de bloqueio do número. Envia só texto; os arquivos vão como link. Não há validação prévia de número nem consulta de restrição de conta;
 +
*'''API Não Oficial (uazapi)''' – conecta o WhatsApp da loja por QR Code. Envia os arquivos como documento, valida os números antes do envio e mostra a situação da conexão no topo da tela. '''Tem risco de bloqueio do número''' em caso de uso inadequado (envio em massa, spam); por isso a tela exibe o aviso em vermelho.
  
−
'''Onde fica'''
+
'''Campos da API Oficial (Meta)'''
 +
*'''Phone ID''' – identificador do número na conta Meta;
 +
*'''Token''' – token de acesso da conta Meta;
 +
*'''Versão''' – versão da API (padrão v18.0).
  
−
Central de Notificações > Configurações > E-mail
+
'''Campos da API Não Oficial (uazapi)'''
 +
*'''Servidor''' – endereço do servidor uazapi. Já vem preenchido com o servidor padrão;
 +
*'''Instância''' – nome gerado automaticamente pelo sistema, não editável. O formato é '''MK''' + CNPJ da empresa + '''F''' + código da loja (ex.: MK73766255000133F1).
  
−
'''Campos'''
+
'''Botões da uazapi'''
 +
*'''Criar Instância''' – cria a instância no servidor uazapi e grava o token dela na configuração da loja. Exige o '''Admin Token''' da conta uazapi, que não tem campo na tela e precisa ser gravado direto no banco (tabela NOTIF_CONFIG, campo NC_WA_UAZ_ADMTOKEN, na linha da loja). Sem ele o sistema avisa e não cria. Se já existir no servidor uma instância com o mesmo nome, o sistema reaproveita essa instância em vez de criar outra;
 +
*'''Consultar Status''' – consulta na hora se o WhatsApp está conectado;
 +
*'''Conectar (QR Code)''' – mostra o QR Code para ler no celular (WhatsApp > Aparelhos conectados). O QR é renovado a cada 8 segundos até a conexão ser feita. Se já estiver conectado, o sistema avisa;
 +
*'''Desconectar''' – encerra a sessão do WhatsApp na instância (pede confirmação).
  
−
*'''Servidor SMTP''' (NC_EMAIL_SMTP)
+
'''Campos comuns'''
−
*'''Porta''' (NC_EMAIL_PORTA)
+
*'''Intervalo entre envios (segundos)''' – vale para os dois tipos de API. Padrão: 2 segundos. No envio um por um, a espera real é sorteada entre esse valor e o dobro;
−
*'''Criptografia''' (NC_EMAIL_SSL) – opções: TLS, SSL, None
+
*'''Enviar o XML junto no envio de Nota Fiscal''' – quando marcado, o WhatsApp também leva o XML nas notificações da categoria Nota Fiscal (ver "Anexos, links e XML").
−
*'''Usuário''' (NC_EMAIL_USUARIO)
 
−
*'''Senha''' (NC_EMAIL_SENHA)
 
−
*'''Nome exibido''' (NC_EMAIL_NOME)
 
−
*'''E-mail de resposta (Reply-To)''' (NC_EMAIL_REPLY)
 
−
*'''Intervalo entre envios (seg.)''' (NC_EMAIL_INTERVALO)
 
  
−
O botão '''Testar E-mail''' envia uma mensagem de teste para o próprio endereço configurado em Usuário.
+
===E-mail===
 +
*'''Servidor SMTP''', '''Porta''' (padrão 587), '''Criptografia''' (TLS, SSL ou nenhuma; padrão TLS), '''Usuário''', '''Senha''';
 +
*'''Nome exibido''' – nome que aparece como remetente;
 +
*'''E-mail de resposta''' – endereço usado quando o cliente clica em "Responder";
 +
*'''Intervalo entre envios (segundos)''' – espera entre um e-mail e outro. Padrão: 3 segundos.
  
−
==Templates de mensagem==
+
Cada loja envia com a sua própria configuração de e-mail. Se o '''Servidor SMTP''' da loja estiver em branco, os e-mails dessa loja saem com a configuração de e-mail '''completa da loja 1''' (servidor, porta, usuário, senha, nome e e-mail de resposta).
  
−
'''Onde fica'''
+
O botão '''Testar E-mail''' envia um e-mail de teste para o endereço informado em '''Usuário''', usando os valores que estão na tela no momento (mesmo antes de gravar). Numa loja com o servidor SMTP em branco o teste falha, embora o envio real funcione usando a configuração da loja 1.
  
−
Central de Notificações > Configurações > Templates
+
O texto do e-mail é enviado '''sem formatação''' (ver "Templates").
  
−
Cada categoria possui um template separado para WhatsApp e um para E-mail. O template de e-mail inclui campo de assunto. Os templates são salvos por filial.
+
===Templates===
 +
Cada categoria tem um template para '''WhatsApp''' e outro para '''E-mail''', separados por loja. O de e-mail tem também o campo '''Assunto''', que aceita as mesmas variáveis da mensagem.
  
−
===Variáveis disponíveis===
+
*A Central já vem com templates padrão para todas as categorias fixas;
−
Todas as categorias suportam as variáveis base:
+
*'''Inserir variável''' – escolha a variável no combo e clique em '''Inserir na mensagem''' para colocá-la na posição do cursor;
 +
*'''Prévia da mensagem''' – mostra como a mensagem fica, preenchida com dados de exemplo;
 +
*O editor aceita formatação (negrito, cores etc.), mas '''a mensagem é enviada como texto simples''': a formatação não chega ao cliente. Emojis e quebras de linha são mantidos;
 +
*'''Template usado no envio:''' o da própria loja. Se a loja não tiver template preenchido para aquela categoria/canal (ex.: loja nova, que nunca teve o template editado), é usado o template da '''loja 1'''. Se nem a loja 1 tiver, a mensagem enviada é apenas "<nome do cliente>, olá!" e o assunto do e-mail é o nome da categoria.
  
−
*'''{NOME}''' – nome do cliente;
+
'''Variáveis disponíveis'''
−
*'''{TELEFONE}''' – telefone do destinatário;
 
−
*'''{EMAIL}''' – e-mail do destinatário.
 
  
−
Variáveis adicionais por categoria:
+
Todas as categorias aceitam: '''{NOME}''', '''{TELEFONE}''' e '''{EMAIL}'''. Variáveis extras por categoria:
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
−
! Categoria !! Variáveis extras
+
!Categoria!!Variáveis extras
 
|-
 
|-
−
| Aniversário || {DATA_NASC}
+
|Aniversário||{DATA_NASC}
 
|-
 
|-
−
| Boleto a Vencer / Vencido / Pago || {VENCIMENTO} {VALOR} {DOCUMENTO} {LINK_BOLETO}
+
|Cobrança a Vencer / Vencida||{VENCIMENTO} {VALOR} {DOCUMENTO} {LINK_BOLETO}
 
|-
 
|-
−
| OS Pronta || {NUMERO_OS} {DATA_OS} {VALOR_OS} {STATUS_OS}
+
|Cobrança Paga||{VENCIMENTO} {VALOR} {DOCUMENTO}
 
|-
 
|-
−
| NF-e || {NUMERO_NOTA} {EMISSAO} {VALOR_NOTA} {CHAVE} {LINK_NOTA} {LINK_NFE} {LINK_BOLETO}
+
|Ordens de Serviço||{NUMERO_OS} {DATA_OS} {VALOR_OS} {STATUS_OS}
 
|-
 
|-
−
| Tipos Personalizados || {DETALHE1} {DETALHE2} {DETALHE3} {DETALHE4} {REFERENCIA} {REFERENCIA_DOC} + campos retornados pelo SQL
+
|Nota Fiscal||{NUMERO_NOTA} {EMISSAO} {VALOR_NOTA} {CHAVE} {LINK_NOTA} {LINK_NFE} {LINK_BOLETO} {LINK_XML}
 +
|-
 +
|Tipos personalizados||{DETALHE1} {DETALHE2} {DETALHE3} {DETALHE4} {REFERENCIA} {REFERENCIA_DOC}
 
|}
 
|}
  
−
==Envio Automático==
+
*'''{CHAVE}''' – chave de acesso da nota; na NFS-e é a chave de acesso da nota de serviço;
 +
*'''{LINK_NOTA}''' e '''{LINK_NFE}''' são equivalentes (os dois viram o link do PDF da nota);
 +
*Na Cobrança Paga não existe {LINK_BOLETO}: se for colocada no template, o texto "{LINK_BOLETO}" aparece literal na mensagem.
 +
 
 +
'''Sobre as variáveis de link ({LINK_BOLETO}, {LINK_NOTA}, {LINK_NFE}, {LINK_XML})''' – a tela mostra um aviso sobre isso nas categorias que têm links:
 +
*Elas só viram link no '''WhatsApp pela API Oficial (Meta)''';
 +
*No '''e-mail''' e no '''WhatsApp uazapi''' os arquivos vão anexados e a variável é apenas '''apagada''' do texto. Só a variável é apagada, não a frase em volta: um template escrito como "baixe o boleto pelo link: {LINK_BOLETO}" chega como "baixe o boleto pelo link:". Revise os templates pensando no canal que a loja usa;
 +
*Em títulos sem boleto, {LINK_BOLETO} também é apagada.
 +
 
 +
===Automático===
 +
*'''Ativar envio automático diário''' – liga/desliga o automático da loja;
 +
*'''Hora do envio''' – horário (HH:MM) a partir do qual o envio do dia pode acontecer;
 +
*'''Canais''' – WhatsApp e/ou E-mail;
 +
*'''Categorias''' – categorias processadas no automático. '''Ordens de Serviço não aparece nesta lista''', porque não tem envio automático; OS só é enviada manualmente.
 +
 
 +
Detalhes de funcionamento na seção "Envio automático".
 +
 
 +
==Cobrança a Vencer, Vencida e Paga==
 +
Essas três categorias trabalham sobre o contas a receber como um todo. O título entra na lista tendo ou não boleto bancário; o que muda é o que é enviado.
 +
 
 +
===Quando o título tem boleto===
 +
O boleto só é gerado e enviado quando:
 +
*o título tem banco informado;
 +
*esse banco tem layout de boleto configurado;
 +
*o banco tem conta corrente cadastrada para a loja do título.
 +
 
 +
Títulos convertidos de outro sistema (série '''ANT''') nunca geram boleto.
  
−
'''Onde fica'''
+
Se o sistema não conseguir verificar se o título tem boleto (erro de consulta), a mensagem daquele título '''não é enviada''', para não mandar cobrança sem o boleto por engano. O motivo fica no histórico.
  
−
Central de Notificações > Configurações > Automático
+
===Título sem boleto===
 +
A notificação é enviada mesmo assim, só com o texto do template (sem anexo e sem link), em qualquer canal.
  
−
O sistema verifica a cada minuto se chegou o horário de envio e, se sim, dispara o processamento em segundo plano sem intervenção do usuário.
+
===Boleto acumulado (opção "Acumulativo" na impressão de boletos)===
 +
Quando o boleto foi gerado de forma acumulada – várias notas/parcelas agrupadas em um único boleto, pela tela '''Relatórios > Financeiro > Boletos e Duplicatas > Impressão''', marcando '''Acumulativo por Cliente''' ou '''Acumulativo por Cliente/Vencimento''' – a Central reconhece o agrupamento e:
  
−
===Campos de configuração===
+
*mostra '''uma única linha''' na lista, representando o boleto inteiro;
 +
*exibe como '''Valor''' a soma das contas do grupo (em aberto, nas categorias a Vencer/Vencida; pagas, na Cobrança Paga);
 +
*exibe como '''Documento''' o número do boleto acumulado (ex.: AC00033);
 +
*envia um '''único PDF''', com o valor total e o mesmo nosso número da impressão de Boletos e Duplicatas;
 +
*controla o histórico pelo boleto inteiro, então a baixa de uma das contas do grupo não faz a notificação ser enviada de novo.
  
−
*'''Ativo''' (NC_AUTO_ATIVO) – habilita ou desabilita o envio automático da filial;
+
==Envio automático==
−
*'''Hora de envio''' (NC_AUTO_HORA / NC_AUTO_MINUTO) – horário em que o envio deve ocorrer (formato HH:MM);
 
−
*'''Canais''' (NC_AUTO_CANAIS) – WhatsApp e/ou E-mail;
 
−
*'''Categorias''' (NC_AUTO_CATEGORIAS) – quais categorias devem ser processadas automaticamente.
 
  
−
===Regra de execução===
+
===Quando dispara===
 +
*Cada Master Key aberto verifica '''a cada minuto''' se já passou do horário configurado para a '''loja em que está logado''' e se o automático ainda não rodou hoje nessa loja.
 +
*Com vários computadores abertos, '''só um''' executa o envio do dia; os demais percebem que já foi feito. Resultado: '''uma execução por dia por loja'''.
 +
*É preciso que '''algum Master Key esteja aberto e logado na loja''' depois do horário configurado. Se ninguém abrir o sistema naquela loja no dia, o envio não acontece nesse dia.
 +
*O envio roda em segundo plano, sem travar o sistema e sem nenhuma tela.
 +
*'''Base de cliente aberta dentro da rede da Office''' (ex.: base copiada para análise pelo suporte): o automático '''não dispara''', para não mandar mensagens reais aos clientes daquela empresa.
  
−
*O sistema só executa uma vez por dia por filial (controla pela data em NC_AUTO_ULTIMODIA);
+
===Período processado por categoria===
−
*O envio automático processa registros do dia anterior, garantindo que a data de corte seja correta mesmo após a marcação de execução;
+
O sistema guarda o dia da última execução da loja. Na execução seguinte, processa '''desde esse dia''' – normalmente "ontem". Se o automático ficou alguns dias sem rodar (sistema fechado, feriado etc.), ele '''recupera os dias perdidos''' na próxima execução.
−
*Categorias não marcadas são ignoradas;
 
−
*Se nenhum canal estiver habilitado, o envio é abortado.
 
  
−
==Tipos Personalizados==
+
{| class="wikitable"
 +
|-
 +
!Categoria!!O que é processado
 +
|-
 +
|Aniversário||Aniversariantes de '''hoje'''
 +
|-
 +
|Cobrança a Vencer||Títulos em aberto que '''vencem hoje''' (o lembrete chega no dia do vencimento)
 +
|-
 +
|Cobrança Vencida||Títulos em aberto que venceram '''desde a última execução até ontem'''
 +
|-
 +
|Cobrança Paga||Títulos pagos '''desde a última execução até hoje'''
 +
|-
 +
|Nota Fiscal||Notas autorizadas emitidas '''desde a última execução até ontem'''
 +
|-
 +
|Tipos personalizados||O que o SQL retornar, com data inicial = dia da última execução e data final = hoje
 +
|-
 +
|Ordens de Serviço||Não tem envio automático
 +
|}
 +
 
 +
===Regras do envio automático===
 +
*Categorias não marcadas são ignoradas. Sem nenhum canal marcado, nada é enviado.
 +
*A ordem de processamento é: Aniversário, Cobrança a Vencer, Cobrança Vencida, Cobrança Paga, Nota Fiscal e, por último, os Tipos personalizados.
 +
*'''Um cliente recebe no máximo uma categoria automática por dia.''' Se ele já recebeu com sucesso uma notificação automática de outra categoria no dia, as demais categorias dele são puladas. As mensagens puladas '''não são reenviadas depois pelo automático'''. Se necessário, envie pela aba Notificações.
 +
*Antes de cada envio o sistema '''reconfere''' o registro, porque a lista pode ter sido montada momentos antes: título que foi pago, nota que foi cancelada ou pagamento estornado não recebem a mensagem.
 +
*O que já foi enviado com sucesso nunca é enviado de novo pelo automático.
 +
*Os intervalos entre mensagens são os mesmos do envio manual.
 +
*Nos Tipos personalizados vale o '''Limite de envios''' do cadastro (quantidade máxima de mensagens por execução).
 +
*Tudo o que o automático envia fica no Histórico com origem '''Automático'''.
 +
 
 +
==Histórico==
 +
 
 +
===Filtros===
 +
*'''Período''' – mesmo combo de atalhos da aba Notificações. Ao abrir, o padrão é '''Últimos 30 dias''';
 +
*'''Tipo''' – Todos, WhatsApp ou E-mail;
 +
*'''Status''' – Todos, Sucesso, Erro ou Reenviado;
 +
*'''Origem''' – Todos, Manual, Automático ou Reenvio;
 +
*'''Categoria''' – mesmas categorias da aba Notificações, inclusive os tipos personalizados ativos;
 +
*'''Cliente''' – busca por parte do nome ou do destino (telefone/e-mail). '''Enter''' no campo já filtra;
 +
*'''Filtrar''' – aplica os filtros. Escolher um atalho de período também filtra na hora.
  
−
'''Onde fica'''
+
Abaixo dos filtros aparece o total de '''falhas pendentes de reenvio''' da loja (todas as datas) e a data da mais antiga, em vermelho quando existe alguma.
  
−
Central de Notificações > aba '''Tipos Personalizados'''
+
===Grade===
 +
{| class="wikitable"
 +
|-
 +
!Coluna!!Conteúdo
 +
|-
 +
|Data/Hora||Momento do envio (ou do último reenvio, quando o registro foi reenviado)
 +
|-
 +
|Tipo||WhatsApp ou E-mail
 +
|-
 +
|Categoria||Nome da categoria
 +
|-
 +
|Nome / Destino||Cliente e número/e-mail usado
 +
|-
 +
|Status||'''Sucesso''', '''Erro''' ou '''Reenviado''' (ver abaixo)
 +
|-
 +
|Origem||'''Manual''' (aba Notificações), '''Automático''' ou '''Reenvio'''
 +
|-
 +
|Anexos||Arquivos que foram junto: DANFE, DANFS-e, Boleto, XML. Só é preenchido nos envios com sucesso; no WhatsApp pela API Oficial fica vazio, porque lá os arquivos vão como link no texto
 +
|-
 +
|Detalhes||Motivo do erro ou retorno do envio
 +
|}
  
−
Permite criar categorias de notificação próprias, com SQL personalizado definido pelo usuário. Cada tipo personalizado aparece automaticamente nas abas de Notificações (envio manual), Templates e nas categorias do Envio Automático.
+
*Linhas com '''Erro''' aparecem destacadas.
 +
*'''Duplo clique''' em qualquer linha abre a janela '''Detalhes do envio''', com todos os dados do registro, os detalhes completos e a '''mensagem completa''' que foi enviada. O texto pode ser selecionado e copiado.
  
−
===Campos do cadastro===
+
'''Significado do Status'''
 +
*'''Sucesso''' – o envio foi aceito pelo WhatsApp/servidor de e-mail;
 +
*'''Erro''' – o envio falhou; o motivo está em Detalhes;
 +
*'''Reenviado''' – usado em dois casos:
 +
**registros antigos que já foram reenviados;
 +
**falhas que o sistema decidiu '''não''' reenviar. Nesse caso, Detalhes mostra "Não reenviado: título já quitado" (vale também para nota cancelada) ou "Não reenviado: categoria não reconhecida".
  
−
*'''Descrição''' (NTP_DESCRICAO) – nome da categoria exibido na interface;
+
===Reenviar Falhas===
−
*'''Ativo''' (NTP_ATIVO) – somente tipos ativos aparecem nas listas;
+
Reenvia, de uma vez, os registros com status '''Erro''':
−
*'''Limite de envios''' (NTP_LIMIT) – quantidade máxima de registros processados por execução; 0 = sem limite;
+
*considera '''apenas o período e o filtro de Tipo'''. Os filtros de Status, Origem, Categoria e Cliente '''não''' limitam o Reenviar Falhas;
−
*'''SQL''' (NTP_SQL) – consulta SQL que retorna os destinatários;
+
*antes de reenviar, confere se o documento continua válido: título ainda em aberto, nota ainda autorizada, pagamento não estornado. Se não estiver, a falha é marcada como "Não reenviado" e não é enviada;
−
*'''Col 1 a Col 4''' (NTP_COL1 a NTP_COL4) – rótulos das colunas extras exibidas na listagem de envio manual.
+
*gera de novo os anexos (boleto, PDF e XML da nota), porque os arquivos do envio original não existem mais;
 +
*o reenvio '''atualiza o próprio registro''' do erro (data, status, detalhes e anexos) em vez de criar uma linha nova;
 +
*um documento que já tem '''5 ou mais falhas''' no período é considerado falha persistente e é '''ignorado''' pelo Reenviar Falhas (normalmente é problema de cadastro ou de configuração). Esses casos devem ser corrigidos e reenviados um a um pelo '''Reenviar Este''';
 +
*respeita os intervalos entre mensagens e mostra o cartão de progresso com '''Cancelar'''.
  
−
===Colunas obrigatórias no SQL===
+
Ao terminar, o resumo mostra só as linhas que aconteceram:
 +
*enviadas com sucesso;
 +
*com erro novamente (motivo na coluna Detalhes);
 +
*não reenviadas porque o título já foi quitado ou o documento cancelado;
 +
*ignoradas por já terem falhado 5 vezes.
  
−
O SQL deve retornar obrigatoriamente as seguintes colunas:
+
===Reenviar Este===
 +
Reenvia o registro selecionado na grade, '''qualquer que seja o status''':
 +
*'''Registro com Erro:''' o reenvio atualiza o próprio registro, como no Reenviar Falhas;
 +
*'''Registro com Sucesso''' (ou Reenviado): o sistema avisa que será criado um '''novo registro''' no histórico. O registro original fica intacto e o novo aparece com origem '''Reenvio''';
 +
*também confere se o documento ainda é válido e gera os anexos de novo;
 +
*se falhar, a mensagem orienta a ver o motivo na coluna Detalhes.
  
−
*'''CLIENTE_ID''' – código do cliente;
+
==Tipos Personalizados==
−
*'''NOME''' – nome do destinatário;
 
−
*'''FONE''' – número de WhatsApp;
 
−
*'''EMAIL''' – endereço de e-mail;
 
−
*'''REFERENCIA''' – identificador único do registro (usado para controle de reenvio).
 
  
−
Colunas opcionais que alimentam os placeholders do template:
+
'''Onde fica'''
  
−
*'''DETALHE1''' a '''DETALHE4''' – informações extras usadas via {DETALHE1}…{DETALHE4};
+
Central de Notificações > aba '''Tipos Personalizados''' (só aparece para quem tem a permissão 324 – ver "Permissões").
−
*'''REFERENCIA_DOC''' – número de documento para exibição no histórico.
 
  
−
===Parâmetros disponíveis no SQL===
+
Permite criar categorias próprias a partir de um SQL. Cada tipo ativo aparece automaticamente na aba Notificações, nos Templates, na lista do Automático e no filtro do Histórico. A lista de categorias é atualizada ao gravar ou excluir um tipo, sem precisar reabrir a tela.
  
−
*''':FILIAL''' – código da filial atual;
+
===Campos do cadastro===
−
*''':DATA_DE''' ou ''':DE''' – data de início do período;
+
*'''Descrição''' – nome da categoria na tela;
−
*''':DATA_ATE''' ou ''':ATE''' – data de fim do período;
+
*'''Ativo''' – só tipos ativos aparecem nas listas;
−
*''':REENVIO''' – ''S'' ou ''N''; indica se o modo de reenvio está ativo (uso manual).
+
*'''Limite de envios''' – máximo de mensagens por execução do '''automático'''; 0 = sem limite. Não limita o envio manual;
 +
*'''SQL''' – consulta que retorna os destinatários;
 +
*'''Col 1 a Col 4''' – títulos das colunas DETALHE1 a DETALHE4 na lista de envio manual;
 +
*Botão '''Testar SQL''' – executa o SQL com parâmetros de teste e informa se há erro ou se não retornou registros.
  
−
===Regra de controle de reenvio===
+
===Colunas que o SQL deve retornar===
 +
*'''CLIENTE_ID''' – código do cliente (usado no histórico e na regra de "uma categoria automática por dia");
 +
*'''NOME''' – nome do destinatário;
 +
*'''FONE''' – número de WhatsApp (sem essa coluna não há envio por WhatsApp);
 +
*'''EMAIL''' – e-mail (sem essa coluna não há envio por e-mail);
 +
*'''REFERENCIA''' – '''número inteiro e único''' por registro. É o que impede o mesmo registro de ser enviado duas vezes. Se vier vazio ou repetido, o controle não funciona: depois do primeiro envio com sucesso, os demais registros com a mesma referência deixam de aparecer.
  
−
O sistema filtra automaticamente registros que já foram enviados com sucesso, comparando REFERENCIA e categoria na tabela NOTIF_HISTORICO. Assim, o mesmo registro não é enviado duas vezes no automático nem no manual (quando a opção de reenvio não está marcada).
+
Colunas opcionais:
 +
*'''DETALHE1''' a '''DETALHE4''' – informações extras, usadas nas variáveis {DETALHE1}…{DETALHE4} e nas colunas da lista. O '''DETALHE3''' também é usado como '''documento''' do registro no histórico e na variável {REFERENCIA_DOC}.
  
−
===Validação de placeholders===
+
===Parâmetros que podem ser usados no SQL===
 +
*''':FILIAL''' – código da loja;
 +
*''':DATA_DE''' ou ''':DE''' – data inicial. No manual é a data inicial da tela; no automático é o dia da última execução;
 +
*''':DATA_ATE''' ou ''':ATE''' – data final. No manual é a data final da tela; no automático é hoje;
 +
*''':REENVIO''' – 'S' ou 'N'. No manual reflete a opção '''Permitir reenvio'''; no automático é sempre 'N'.
  
−
Ao salvar o template de um tipo personalizado, o sistema valida se todas as variáveis usadas no texto ({...}) são campos efetivamente retornados pelo SQL cadastrado. Se um placeholder não existir no SQL, a gravação é bloqueada com mensagem indicando os campos disponíveis.
+
===Validação das variáveis===
 +
Ao gravar o template de um tipo personalizado, o sistema confere se todas as variáveis usadas ({...}) são colunas que o SQL realmente retorna. Se alguma não existir, a gravação é bloqueada e a mensagem lista as colunas disponíveis.
  
 
==Permissões==
 
==Permissões==
−
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
−
! Módulo !! Descrição
+
!Permissão!!Efeito
 
|-
 
|-
−
| '''Central de Notificações – Tipos Personalizados''' (324) || Habilita a aba de Tipos Personalizados na Central de Notificações. Sem esta permissão, a aba fica oculta.
+
|Item de menu '''Central de Notificações'''||Acesso à tela
 +
|-
 +
|'''Central de Notificações – Tipos Personalizados''' (324)||Mostra a aba Tipos Personalizados. Sem ela, a aba fica oculta
 
|}
 
|}
  
−
==Comportamentos importantes==
+
==Solução de problemas==
  
−
===Botões Gravar/Cancelar nas Configurações ficam desabilitados===
+
===Onde ver o que aconteceu===
−
É o comportamento correto. Os botões ficam habilitados somente quando há alteração efetiva nos campos de configuração ou no template. Ao abrir a aba sem modificar nada, os botões permanecem desabilitados.
+
*'''Histórico''' – status e motivo de cada envio; o duplo clique mostra a mensagem completa.
 +
*'''Arquivo de log''' – na pasta do Master Key, em '''Logs\Central Notificacoes\NotifAPI_DDMMAA.log''' (um arquivo por dia). Registra a geração do PDF e do XML das notas (inclusive por que falhou), as respostas da uazapi e o resumo de cada categoria do envio automático (quantos registros, quantos enviados, quantos pulados).
  
 
===Mensagem não chega por WhatsApp===
 
===Mensagem não chega por WhatsApp===
−
Conferir, nesta ordem:
+
#Situação no topo da tela / '''Consultar Status''' (uazapi) deve estar '''Conectado'''.
 +
#O canal WhatsApp estava marcado no envio (e, no automático, em Configurações > Automático > Canais).
 +
#O cliente tem celular/telefone no cadastro.
 +
#Se o histórico mostra "Número sem WhatsApp", o número não tem WhatsApp ativo – corrigir o cadastro.
 +
#O template de WhatsApp da categoria está preenchido.
 +
#Envio em fila (uazapi, categorias sem anexo): "aceito" na fila não é garantia de entrega.
 +
#Se o WhatsApp sinalizou restrição da conta, parar os envios em massa por um tempo.
  
−
1. Se a instância está conectada (botão '''Consultar Status''' deve mostrar "Conectado").
+
===Mensagem não chega por e-mail===
−
2. Se o número do cliente possui WhatsApp ativo – o sistema valida antes do envio.
+
#Testar as configurações com '''Testar E-mail''' na loja em questão. Se o servidor SMTP da loja estiver em branco, o envio usa a configuração da loja 1: testar lá.
−
3. Se o template de WhatsApp da categoria está preenchido.
+
#O cliente tem e-mail no cadastro.
−
4. Se o canal WhatsApp está habilitado nos canais selecionados no momento do envio.
+
#O template de e-mail da categoria está preenchido.
 +
#Verificar a caixa de spam do cliente.
  
−
===Mensagem não chega por e-mail===
+
===Nota Fiscal não é enviada (erro ao gerar o PDF)===
−
Conferir:
+
*"MasterNFe está fechado" – abrir o Master NF-e (ou configurar o caminho dele no Connect.ini para o Master Key abrir sozinho) e conferir IP/Porta do DataSnap nos Parâmetros do Sistema da loja.
 +
*"method not found" / "not found in the server method list" – o Master NF-e aberto é de versão antiga. Atualizar o Master NF-e (e conferir se o executável aberto é o da pasta certa).
 +
*"Error writing data to the connection" – o Master NF-e perdeu a conexão com o banco (ex.: o Firebird foi reiniciado depois que ele foi aberto). Fechar e abrir o Master NF-e.
  
−
1. Configurações de SMTP (servidor, porta, criptografia, usuário e senha) usando o botão '''Testar E-mail'''.
+
===Nota enviada sem o XML===
−
2. Se o cliente possui e-mail cadastrado.
+
Ver o arquivo de log do dia (linhas "GerarXMLNFe"). Normalmente é o Master NF-e fechado, desatualizado ou sem acesso. No WhatsApp, conferir também se a opção "Enviar o XML junto no envio de Nota Fiscal" está marcada.
−
3. Se o template de e-mail da categoria está preenchido.
 
  
−
===Tipo personalizado não aparece nas categorias===
+
===Mensagem com frase incompleta ("...pelo link:")===
−
Conferir:
+
O template usa uma variável de link e a loja envia por e-mail ou uazapi, onde a variável é apagada. Ajustar o texto do template (ver "Templates").
  
−
1. Se o campo '''Ativo''' do tipo personalizado está marcado.
+
===Registro não aparece na lista para envio===
−
2. Se o SQL está salvo corretamente (sem erros de sintaxe).
+
*Já foi enviado com sucesso – marcar '''Permitir reenvio''' ou usar o '''Reenviar Este''' no Histórico.
−
3. Fechar e reabrir a Central de Notificações para recarregar as categorias.
+
*É o consumidor padrão da loja.
 +
*Aniversário: cliente inativo, ou já recebeu com sucesso neste ano.
 +
*Cobranças: título já pago, com valor zero ou fora do período.
 +
*Nota Fiscal: nota não autorizada (cancelada, rejeitada etc.).
 +
*OS: é orçamento, ou o status não está marcado em "Status da OS".
  
 
===Envio automático não disparou===
 
===Envio automático não disparou===
−
Conferir, nesta ordem:
+
#O automático está ativo na loja (Configurações > Automático).
−
 
+
#O horário configurado já passou.
−
1. Se NC_AUTO_ATIVO = 'S' para a filial.
+
#Algum Master Key foi aberto e logado '''nessa loja''' depois do horário.
−
2. Se o horário configurado já passou no dia corrente.
+
#Ao menos um canal e uma categoria estão marcados.
−
3. Se NC_AUTO_ULTIMODIA já está preenchido com a data de hoje (indica que já executou).
+
#Ainda não rodou hoje: o campo NC_AUTO_ULTIMODIA da loja (tabela NOTIF_CONFIG) com a data de hoje indica que já executou.
−
4. Se ao menos um canal (WA ou e-mail) está marcado.
+
#Não é uma base de cliente aberta na rede da Office (nesse caso o automático é bloqueado de propósito).
−
5. Se ao menos uma categoria está marcada.
+
#Conferir no arquivo de log as linhas "Envio automático concluído" de cada categoria.
  
−
===Registro aparece na consulta mas não é enviado no automático===
+
===Registro aparece na busca manual mas não foi enviado pelo automático===
−
O envio automático processa registros do '''dia anterior'''. Se o registro é do dia atual, ele será enviado no próximo ciclo (no dia seguinte). Isso é intencional para evitar inconsistência no controle de execução diária.
+
*É '''Ordens de Serviço''' – não tem automático.
 +
*O período do automático é diferente do da tela (ver tabela em "Envio automático"). Exemplo: Cobrança a Vencer no automático só pega o que vence '''no dia'''.
 +
*O cliente já tinha recebido outra categoria automática no dia (regra de uma categoria por dia).
 +
*O título foi pago, a nota cancelada ou o pagamento estornado antes do envio.
 +
*Tipos personalizados: o Limite de envios foi atingido.
  
−
==Atualização de banco (estrutura criada pelo módulo)==
+
===Falha que o Reenviar Falhas não reenvia===
 +
*O documento já falhou 5 ou mais vezes no período – corrigir a causa e usar '''Reenviar Este'''.
 +
*A falha está fora do período ou do Tipo filtrados.
 +
*O título foi quitado / a nota foi cancelada – aparece como "Não reenviado" em Detalhes.
  
−
Tabelas criadas:
+
==Referência de banco de dados==
 +
Tabelas usadas pela Central:
  
−
*'''NOTIF_CONFIG''' – configuração de WhatsApp e e-mail por filial;
+
*'''NOTIF_CONFIG''' – configuração por loja (uma linha por loja, campo NC_FILIAL). Criada automaticamente ao abrir a Central na loja pela primeira vez;
−
*'''NOTIF_TEMPLATE''' – templates de mensagem por categoria, tipo e filial;
+
*'''NOTIF_TEMPLATE''' – templates por categoria, tipo (W = WhatsApp, E = E-mail) e loja;
−
*'''NOTIF_HISTORICO''' – histórico de todos os envios realizados;
+
*'''NOTIF_HISTORICO''' – histórico de todos os envios;
−
*'''NOTIF_TIPO_PERS''' – cadastro dos tipos de notificação personalizados.
+
*'''NOTIF_TIPO_PERS''' – cadastro dos tipos personalizados.
  
−
Campos relevantes de NOTIF_CONFIG:
+
Campos úteis de NOTIF_CONFIG:
 +
*NC_WA_TIPO – tipo de API do WhatsApp (O = Oficial/Meta, U = uazapi);
 +
*NC_WA_UAZ_ADMTOKEN – Admin Token da conta uazapi (não tem campo na tela);
 +
*NC_WA_UAZ_TOKEN / NC_WA_UAZ_INSTANCIA – token e nome da instância uazapi;
 +
*NC_WA_ENVIA_XML – envia o XML da nota pelo WhatsApp (S/N);
 +
*NC_AUTO_ATIVO, NC_AUTO_HORA, NC_AUTO_MINUTO, NC_AUTO_CANAIS, NC_AUTO_CATEGORIAS – configuração do envio automático;
 +
*NC_AUTO_ULTIMODIA – último dia em que o automático executou na loja.
  
−
*NC_AUTO_ATIVO, NC_AUTO_HORA, NC_AUTO_MINUTO, NC_AUTO_CANAIS, NC_AUTO_CATEGORIAS, NC_AUTO_ULTIMODIA – controle do envio automático.
+
Campos úteis de NOTIF_HISTORICO:
 +
*NH_STATUS – S (Sucesso), E (Erro), R (Reenviado);
 +
*NH_ORIGEM – M (Manual), A (Automático), R (Reenvio);
 +
*NH_CATEGORIA – código da categoria (ANIVERSARIO, BOLETO_VENCER, BOLETO_VENCIDO, BOLETO_PAGO, OS_PRONTA para Ordens de Serviço, NFE para Nota Fiscal, PERS_<n> para os tipos personalizados);
 +
*NH_REFERENCIA / NH_REFERENCIA_DOC – documento notificado (título, venda, OS...);
 +
*NH_ERRO – detalhes/motivo;
 +
*NH_ANEXOS – anexos enviados;
 +
*NH_MENSAGEM / NH_ASSUNTO – mensagem e assunto enviados;
 +
*NH_STATUS_ENTREGA – situação de entrega no WhatsApp (uazapi), atualizada ao filtrar o histórico.

Edição atual tal como às 12h59min de 24 de setembro de 2026

Central de Notificações

Visão funcional

A Central de Notificações envia mensagens aos clientes por WhatsApp e e-mail. O envio pode acontecer de duas formas:

  • Manual – o operador escolhe a categoria e o período, seleciona os destinatários na lista e dispara na hora, pela aba Notificações;
  • Automático – o próprio Master Key dispara uma vez por dia, no horário configurado, para as categorias marcadas na aba Configurações > Automático.

Tudo na Central é separado por loja: configurações de WhatsApp e e-mail, templates, envio automático e histórico. A loja em uso é escolhida no campo Loja, no topo da tela. Esse campo só aparece quando a empresa tem mais de uma loja, e só fica liberado para usuários que podem trocar de loja.

O cliente definido como consumidor padrão da loja (cliente usado nas vendas de balcão) nunca aparece em nenhuma categoria.

Categorias

Categoria O que aparece na busca manual (dentro do período) Anexo enviado Envio automático
Aniversário Clientes ativos que fazem aniversário (dia e mês) no período. O ano de nascimento é ignorado e o período pode virar o ano (ex.: 20/12 a 10/01) Nenhum Sim – aniversariantes do dia
Cobrança a Vencer Títulos do contas a receber em aberto (sem pagamento e com valor maior que zero) com vencimento no período Boleto, quando o título tem boleto Sim – títulos que vencem no dia
Cobrança Vencida Títulos em aberto com vencimento no período (use um período já passado) Boleto, quando o título tem boleto Sim – títulos que venceram desde a última execução até ontem
Cobrança Paga Títulos com data de pagamento no período Nenhum Sim – títulos pagos desde a última execução até hoje
Ordens de Serviço OS com data de abertura no período, exceto orçamentos, filtradas pelos status marcados em Status da OS (nenhum marcado = todos os status) Nenhum Não
Nota Fiscal Vendas com nota autorizada (NF-e, NFC-e ou NFS-e) com emissão no período PDF da nota (DANFE/DANFS-e), boleto da venda (se houver) e XML da nota Sim – notas emitidas desde a última execução até ontem
Tipos personalizados O que o SQL do tipo retornar (ver seção "Tipos Personalizados") Nenhum Sim, se marcado

Controle de envio duplicado: tudo o que já foi enviado com sucesso deixa de aparecer na busca da categoria, a não ser que a opção Permitir reenvio esteja marcada. O controle é feito:

  • nas Cobranças, por título (ou pelo boleto inteiro, no caso de boleto acumulado);
  • na Nota Fiscal, por venda;
  • nas Ordens de Serviço, por OS;
  • no Aniversário, por cliente dentro do ano;
  • nos Tipos personalizados, pela coluna REFERENCIA do SQL.

Envios com erro não contam: o registro continua aparecendo para ser enviado de novo.

Topo da tela

  • Loja – loja cujas configurações, templates e histórico estão sendo usados (ver "Visão funcional");
  • WhatsApp: <situação> – aparece só quando a loja usa a API Não Oficial (uazapi). Mostra se o WhatsApp da loja está Conectado, Desconectado, Conectando... etc., com a bolinha verde/vermelha ao lado. É atualizado sozinho a cada 15 segundos enquanto a tela está aberta.

Aba Notificações (envio manual)

Filtros

  • Categoria – categoria que será listada;
  • Permitir reenvio – quando marcado, a busca também traz registros que já receberam a notificação com sucesso;
  • Período – combo de atalhos + datas inicial e final + botão Buscar;
  • Status da OS – aparece só na categoria Ordens de Serviço. Marque os status desejados; sem nenhum marcado, todos os status entram.

Atalhos de período – escolher um atalho preenche as datas e já faz a busca. Se as datas forem alteradas manualmente, o combo passa sozinho para Personalizado. Ao abrir a tela o atalho padrão é Próximos 30 dias.

Atalho Datas preenchidas
Hoje / Ontem / Amanhã O próprio dia
Últimos 7 dias / Próximos 7 dias 7 dias contando hoje
Últimos 30 dias / Próximos 30 dias 30 dias contando hoje
Esta semana / Semana passada / Próxima semana De segunda a domingo
Este mês / Mês passado / Próximo mês Do dia 1 ao último dia do mês
Personalizado Datas digitadas pelo operador

Os atalhos servem para os dois sentidos porque cada categoria olha para um lado: Cobrança a Vencer e Aniversário normalmente usam datas futuras; Cobrança Vencida, Cobrança Paga, Nota Fiscal e OS usam datas passadas.

Lista de destinatários

  • Mostra Nome, Telefone, E-mail e as colunas próprias de cada categoria (ex.: na Nota Fiscal: Nº Nota, Emissão, Valor e Chave; nas Cobranças: vencimento/pagamento, valor e documento; nas OS: número, abertura, status e valor);
  • Na NFS-e, a coluna Chave mostra a chave de acesso da nota de serviço;
  • A caixa no cabeçalho da primeira coluna marca ou desmarca todos;
  • O contador no canto superior direito mostra quantos estão selecionados (x / y selecionado(s));
  • Depois do envio, cada linha fica verde (enviado com sucesso) ou vermelha (erro).

Canais e envio

  • WhatsApp e E-mail – canais usados no envio. Pode marcar um ou os dois;
  • Clipe (ao lado dos canais) – salva os canais marcados como padrão do usuário. Ao abrir a tela, os canais já vêm marcados conforme o que foi salvo;
  • Enviar Selecionados – dispara o envio dos registros marcados.

Como o envio manual funciona

  1. O sistema pede confirmação com a quantidade de destinatários.
  2. Somente uazapi, com 20 ou mais selecionados: consulta se o WhatsApp sinalizou restrição para iniciar novas conversas nessa conta. Se houver, avisa e pergunta se deseja enviar mesmo assim (insistir costuma agravar o bloqueio).
  3. Somente uazapi: valida de uma vez quais números têm WhatsApp. Os que não têm não recebem a mensagem e ficam no histórico como erro "Número sem WhatsApp".
  4. Somente uazapi, nas categorias sem anexo (Aniversário, Cobrança Paga, Ordens de Serviço e Tipos personalizados): as mensagens são entregues de uma vez para a fila da uazapi, que faz os disparos respeitando o intervalo configurado. A mensagem final ("Envio para a fila concluído – Aceitos/Rejeitados") indica só que a fila aceitou as mensagens; a entrega real acontece depois.
  5. Nos demais casos o envio é um por um:
    • WhatsApp: após cada mensagem o sistema espera um tempo sorteado entre o intervalo configurado e o dobro dele (ex.: intervalo 5 → espera de 5 a 10 segundos), para não parecer disparo automático. Na uazapi, o contato também vê "digitando..." por 1 a 3 segundos antes de cada mensagem;
    • E-mail: espera exatamente o intervalo configurado para e-mail.
  6. Um cartão de progresso mostra o cliente da vez e o contador ("2 de 10"). O botão Cancelar interrompe o envio depois da mensagem em andamento.
  7. Cada envio é gravado no Histórico com origem Manual. No final aparece o resumo com sucessos e erros.

Destinatário usado em cada canal:

  • WhatsApp: celular do cadastro do cliente; se estiver vazio, usa o telefone; se também estiver vazio, usa o fax. Números brasileiros com 10 ou 11 dígitos sem o 55 recebem o 55 automaticamente;
  • E-mail: campo e-mail do cadastro do cliente;
  • Cliente sem telefone (ou sem e-mail) simplesmente não recebe por aquele canal. Isso não gera registro de erro no histórico.

Anexos, links e XML

O que vai em cada canal

Situação E-mail WhatsApp uazapi WhatsApp API Oficial (Meta)
Cobrança a Vencer / Vencida com boleto PDF do boleto anexado PDF do boleto enviado como documento Link do boleto no texto
Cobrança a Vencer / Vencida sem boleto Só o texto Só o texto Só o texto
Nota Fiscal PDF da nota + PDF do boleto (se a venda tiver) + XML sempre PDF da nota + boleto (se houver) como documentos + XML se a opção estiver ligada Links da nota, do boleto (se houver) e do XML (se a opção estiver ligada)
Demais categorias Só o texto Só o texto Só o texto
  • Na uazapi, a mensagem do template vai como legenda do primeiro documento; os demais documentos vão logo em seguida.
  • Na API Oficial, os arquivos são enviados para um armazenamento temporário na nuvem e o link entra no lugar da variável correspondente do template ({LINK_BOLETO}, {LINK_NOTA}/{LINK_NFE}, {LINK_XML}). Se o template não tiver a variável, o sistema acrescenta uma linha no fim da mensagem: "Nota Fiscal: <link>", "Boleto para pagamento: <link>" ou "XML da Nota: <link>".
  • A opção do XML no WhatsApp fica em Configurações > WhatsApp > "Enviar o XML junto no envio de Nota Fiscal" (por loja, desmarcada por padrão). No e-mail o XML vai sempre.

De onde vêm o PDF e o XML da nota

  • Nota emitida pela API (o XML fica gravado no Master Key): o PDF e o XML são gerados pelo próprio Master Key.
  • Nota emitida pelo Master NF-e (NF-e, NFC-e e NFS-e): o Master Key pede o PDF e o XML ao Master NF-e. Para isso:
    • o Master NF-e precisa estar aberto e acessível. O endereço usado é o de Parâmetros do Sistema > quadro "Servidor DataSnap Master NF-e (Reimpressão e integração NFC-e)" > IP e Porta da loja. Em branco, usa a própria máquina e a porta 211;
    • se o Master NF-e estiver fechado, o Master Key tenta abri-lo sozinho, desde que o caminho do executável esteja configurado no Connect.ini do Master Key (seção [NFE], chave PathExe);
    • o Master NF-e precisa estar atualizado na mesma versão do Master Key. Versões antigas não sabem gerar o PDF da NFS-e nem o XML para a Central.

Quando o PDF ou o XML falham

  • Cobranças – boleto não gerado: se o título tem boleto e o PDF não pode ser gerado, a mensagem daquele cliente não é enviada e o histórico registra o motivo.
  • Nota Fiscal – PDF da nota não gerado: a mensagem daquele cliente não é enviada e o histórico registra o motivo (ex.: "MasterNFe está fechado", "method not found" quando o Master NF-e está desatualizado). Exceção: no e-mail e no WhatsApp pela API Oficial, se o boleto da venda foi gerado, a mensagem segue só com o boleto. Se apenas o boleto da venda falhar, a mensagem segue sem ele.
  • XML não gerado: a mensagem é enviada mesmo assim, só sem o XML. O motivo fica no arquivo de log (ver "Solução de problemas").
  • Título sem boleto: não é erro; a mensagem vai só com o texto.

Configurações

Aba com quatro sub-abas. As alterações são gravadas pelo botão de gravar da aba; ao trocar de aba com alterações pendentes, o sistema pergunta se deseja salvar.

WhatsApp

Tipo de API

  • API Oficial (Meta) – integração direta com a API oficial do WhatsApp. Não há risco de bloqueio do número. Envia só texto; os arquivos vão como link. Não há validação prévia de número nem consulta de restrição de conta;
  • API Não Oficial (uazapi) – conecta o WhatsApp da loja por QR Code. Envia os arquivos como documento, valida os números antes do envio e mostra a situação da conexão no topo da tela. Tem risco de bloqueio do número em caso de uso inadequado (envio em massa, spam); por isso a tela exibe o aviso em vermelho.

Campos da API Oficial (Meta)

  • Phone ID – identificador do número na conta Meta;
  • Token – token de acesso da conta Meta;
  • Versão – versão da API (padrão v18.0).

Campos da API Não Oficial (uazapi)

  • Servidor – endereço do servidor uazapi. Já vem preenchido com o servidor padrão;
  • Instância – nome gerado automaticamente pelo sistema, não editável. O formato é MK + CNPJ da empresa + F + código da loja (ex.: MK73766255000133F1).

Botões da uazapi

  • Criar Instância – cria a instância no servidor uazapi e grava o token dela na configuração da loja. Exige o Admin Token da conta uazapi, que não tem campo na tela e precisa ser gravado direto no banco (tabela NOTIF_CONFIG, campo NC_WA_UAZ_ADMTOKEN, na linha da loja). Sem ele o sistema avisa e não cria. Se já existir no servidor uma instância com o mesmo nome, o sistema reaproveita essa instância em vez de criar outra;
  • Consultar Status – consulta na hora se o WhatsApp está conectado;
  • Conectar (QR Code) – mostra o QR Code para ler no celular (WhatsApp > Aparelhos conectados). O QR é renovado a cada 8 segundos até a conexão ser feita. Se já estiver conectado, o sistema avisa;
  • Desconectar – encerra a sessão do WhatsApp na instância (pede confirmação).

Campos comuns

  • Intervalo entre envios (segundos) – vale para os dois tipos de API. Padrão: 2 segundos. No envio um por um, a espera real é sorteada entre esse valor e o dobro;
  • Enviar o XML junto no envio de Nota Fiscal – quando marcado, o WhatsApp também leva o XML nas notificações da categoria Nota Fiscal (ver "Anexos, links e XML").

E-mail

  • Servidor SMTP, Porta (padrão 587), Criptografia (TLS, SSL ou nenhuma; padrão TLS), Usuário, Senha;
  • Nome exibido – nome que aparece como remetente;
  • E-mail de resposta – endereço usado quando o cliente clica em "Responder";
  • Intervalo entre envios (segundos) – espera entre um e-mail e outro. Padrão: 3 segundos.

Cada loja envia com a sua própria configuração de e-mail. Se o Servidor SMTP da loja estiver em branco, os e-mails dessa loja saem com a configuração de e-mail completa da loja 1 (servidor, porta, usuário, senha, nome e e-mail de resposta).

O botão Testar E-mail envia um e-mail de teste para o endereço informado em Usuário, usando os valores que estão na tela no momento (mesmo antes de gravar). Numa loja com o servidor SMTP em branco o teste falha, embora o envio real funcione usando a configuração da loja 1.

O texto do e-mail é enviado sem formatação (ver "Templates").

Templates

Cada categoria tem um template para WhatsApp e outro para E-mail, separados por loja. O de e-mail tem também o campo Assunto, que aceita as mesmas variáveis da mensagem.

  • A Central já vem com templates padrão para todas as categorias fixas;
  • Inserir variável – escolha a variável no combo e clique em Inserir na mensagem para colocá-la na posição do cursor;
  • Prévia da mensagem – mostra como a mensagem fica, preenchida com dados de exemplo;
  • O editor aceita formatação (negrito, cores etc.), mas a mensagem é enviada como texto simples: a formatação não chega ao cliente. Emojis e quebras de linha são mantidos;
  • Template usado no envio: o da própria loja. Se a loja não tiver template preenchido para aquela categoria/canal (ex.: loja nova, que nunca teve o template editado), é usado o template da loja 1. Se nem a loja 1 tiver, a mensagem enviada é apenas "<nome do cliente>, olá!" e o assunto do e-mail é o nome da categoria.

Variáveis disponíveis

Todas as categorias aceitam: {NOME}, {TELEFONE} e {EMAIL}. Variáveis extras por categoria:

Categoria Variáveis extras
Aniversário {DATA_NASC}
Cobrança a Vencer / Vencida {VENCIMENTO} {VALOR} {DOCUMENTO} {LINK_BOLETO}
Cobrança Paga {VENCIMENTO} {VALOR} {DOCUMENTO}
Ordens de Serviço {NUMERO_OS} {DATA_OS} {VALOR_OS} {STATUS_OS}
Nota Fiscal {NUMERO_NOTA} {EMISSAO} {VALOR_NOTA} {CHAVE} {LINK_NOTA} {LINK_NFE} {LINK_BOLETO} {LINK_XML}
Tipos personalizados {DETALHE1} {DETALHE2} {DETALHE3} {DETALHE4} {REFERENCIA} {REFERENCIA_DOC}
  • {CHAVE} – chave de acesso da nota; na NFS-e é a chave de acesso da nota de serviço;
  • {LINK_NOTA} e {LINK_NFE} são equivalentes (os dois viram o link do PDF da nota);
  • Na Cobrança Paga não existe {LINK_BOLETO}: se for colocada no template, o texto "{LINK_BOLETO}" aparece literal na mensagem.

Sobre as variáveis de link ({LINK_BOLETO}, {LINK_NOTA}, {LINK_NFE}, {LINK_XML}) – a tela mostra um aviso sobre isso nas categorias que têm links:

  • Elas só viram link no WhatsApp pela API Oficial (Meta);
  • No e-mail e no WhatsApp uazapi os arquivos vão anexados e a variável é apenas apagada do texto. Só a variável é apagada, não a frase em volta: um template escrito como "baixe o boleto pelo link: {LINK_BOLETO}" chega como "baixe o boleto pelo link:". Revise os templates pensando no canal que a loja usa;
  • Em títulos sem boleto, {LINK_BOLETO} também é apagada.

Automático

  • Ativar envio automático diário – liga/desliga o automático da loja;
  • Hora do envio – horário (HH:MM) a partir do qual o envio do dia pode acontecer;
  • Canais – WhatsApp e/ou E-mail;
  • Categorias – categorias processadas no automático. Ordens de Serviço não aparece nesta lista, porque não tem envio automático; OS só é enviada manualmente.

Detalhes de funcionamento na seção "Envio automático".

Cobrança a Vencer, Vencida e Paga

Essas três categorias trabalham sobre o contas a receber como um todo. O título entra na lista tendo ou não boleto bancário; o que muda é o que é enviado.

Quando o título tem boleto

O boleto só é gerado e enviado quando:

  • o título tem banco informado;
  • esse banco tem layout de boleto configurado;
  • o banco tem conta corrente cadastrada para a loja do título.

Títulos convertidos de outro sistema (série ANT) nunca geram boleto.

Se o sistema não conseguir verificar se o título tem boleto (erro de consulta), a mensagem daquele título não é enviada, para não mandar cobrança sem o boleto por engano. O motivo fica no histórico.

Título sem boleto

A notificação é enviada mesmo assim, só com o texto do template (sem anexo e sem link), em qualquer canal.

Boleto acumulado (opção "Acumulativo" na impressão de boletos)

Quando o boleto foi gerado de forma acumulada – várias notas/parcelas agrupadas em um único boleto, pela tela Relatórios > Financeiro > Boletos e Duplicatas > Impressão, marcando Acumulativo por Cliente ou Acumulativo por Cliente/Vencimento – a Central reconhece o agrupamento e:

  • mostra uma única linha na lista, representando o boleto inteiro;
  • exibe como Valor a soma das contas do grupo (em aberto, nas categorias a Vencer/Vencida; pagas, na Cobrança Paga);
  • exibe como Documento o número do boleto acumulado (ex.: AC00033);
  • envia um único PDF, com o valor total e o mesmo nosso número da impressão de Boletos e Duplicatas;
  • controla o histórico pelo boleto inteiro, então a baixa de uma das contas do grupo não faz a notificação ser enviada de novo.

Envio automático

Quando dispara

  • Cada Master Key aberto verifica a cada minuto se já passou do horário configurado para a loja em que está logado e se o automático ainda não rodou hoje nessa loja.
  • Com vários computadores abertos, só um executa o envio do dia; os demais percebem que já foi feito. Resultado: uma execução por dia por loja.
  • É preciso que algum Master Key esteja aberto e logado na loja depois do horário configurado. Se ninguém abrir o sistema naquela loja no dia, o envio não acontece nesse dia.
  • O envio roda em segundo plano, sem travar o sistema e sem nenhuma tela.
  • Base de cliente aberta dentro da rede da Office (ex.: base copiada para análise pelo suporte): o automático não dispara, para não mandar mensagens reais aos clientes daquela empresa.

Período processado por categoria

O sistema guarda o dia da última execução da loja. Na execução seguinte, processa desde esse dia – normalmente "ontem". Se o automático ficou alguns dias sem rodar (sistema fechado, feriado etc.), ele recupera os dias perdidos na próxima execução.

Categoria O que é processado
Aniversário Aniversariantes de hoje
Cobrança a Vencer Títulos em aberto que vencem hoje (o lembrete chega no dia do vencimento)
Cobrança Vencida Títulos em aberto que venceram desde a última execução até ontem
Cobrança Paga Títulos pagos desde a última execução até hoje
Nota Fiscal Notas autorizadas emitidas desde a última execução até ontem
Tipos personalizados O que o SQL retornar, com data inicial = dia da última execução e data final = hoje
Ordens de Serviço Não tem envio automático

Regras do envio automático

  • Categorias não marcadas são ignoradas. Sem nenhum canal marcado, nada é enviado.
  • A ordem de processamento é: Aniversário, Cobrança a Vencer, Cobrança Vencida, Cobrança Paga, Nota Fiscal e, por último, os Tipos personalizados.
  • Um cliente recebe no máximo uma categoria automática por dia. Se ele já recebeu com sucesso uma notificação automática de outra categoria no dia, as demais categorias dele são puladas. As mensagens puladas não são reenviadas depois pelo automático. Se necessário, envie pela aba Notificações.
  • Antes de cada envio o sistema reconfere o registro, porque a lista pode ter sido montada momentos antes: título que foi pago, nota que foi cancelada ou pagamento estornado não recebem a mensagem.
  • O que já foi enviado com sucesso nunca é enviado de novo pelo automático.
  • Os intervalos entre mensagens são os mesmos do envio manual.
  • Nos Tipos personalizados vale o Limite de envios do cadastro (quantidade máxima de mensagens por execução).
  • Tudo o que o automático envia fica no Histórico com origem Automático.

Histórico

Filtros

  • Período – mesmo combo de atalhos da aba Notificações. Ao abrir, o padrão é Últimos 30 dias;
  • Tipo – Todos, WhatsApp ou E-mail;
  • Status – Todos, Sucesso, Erro ou Reenviado;
  • Origem – Todos, Manual, Automático ou Reenvio;
  • Categoria – mesmas categorias da aba Notificações, inclusive os tipos personalizados ativos;
  • Cliente – busca por parte do nome ou do destino (telefone/e-mail). Enter no campo já filtra;
  • Filtrar – aplica os filtros. Escolher um atalho de período também filtra na hora.

Abaixo dos filtros aparece o total de falhas pendentes de reenvio da loja (todas as datas) e a data da mais antiga, em vermelho quando existe alguma.

Grade

Coluna Conteúdo
Data/Hora Momento do envio (ou do último reenvio, quando o registro foi reenviado)
Tipo WhatsApp ou E-mail
Categoria Nome da categoria
Nome / Destino Cliente e número/e-mail usado
Status Sucesso, Erro ou Reenviado (ver abaixo)
Origem Manual (aba Notificações), Automático ou Reenvio
Anexos Arquivos que foram junto: DANFE, DANFS-e, Boleto, XML. Só é preenchido nos envios com sucesso; no WhatsApp pela API Oficial fica vazio, porque lá os arquivos vão como link no texto
Detalhes Motivo do erro ou retorno do envio
  • Linhas com Erro aparecem destacadas.
  • Duplo clique em qualquer linha abre a janela Detalhes do envio, com todos os dados do registro, os detalhes completos e a mensagem completa que foi enviada. O texto pode ser selecionado e copiado.

Significado do Status

  • Sucesso – o envio foi aceito pelo WhatsApp/servidor de e-mail;
  • Erro – o envio falhou; o motivo está em Detalhes;
  • Reenviado – usado em dois casos:
    • registros antigos que já foram reenviados;
    • falhas que o sistema decidiu não reenviar. Nesse caso, Detalhes mostra "Não reenviado: título já quitado" (vale também para nota cancelada) ou "Não reenviado: categoria não reconhecida".

Reenviar Falhas

Reenvia, de uma vez, os registros com status Erro:

  • considera apenas o período e o filtro de Tipo. Os filtros de Status, Origem, Categoria e Cliente não limitam o Reenviar Falhas;
  • antes de reenviar, confere se o documento continua válido: título ainda em aberto, nota ainda autorizada, pagamento não estornado. Se não estiver, a falha é marcada como "Não reenviado" e não é enviada;
  • gera de novo os anexos (boleto, PDF e XML da nota), porque os arquivos do envio original não existem mais;
  • o reenvio atualiza o próprio registro do erro (data, status, detalhes e anexos) em vez de criar uma linha nova;
  • um documento que já tem 5 ou mais falhas no período é considerado falha persistente e é ignorado pelo Reenviar Falhas (normalmente é problema de cadastro ou de configuração). Esses casos devem ser corrigidos e reenviados um a um pelo Reenviar Este;
  • respeita os intervalos entre mensagens e mostra o cartão de progresso com Cancelar.

Ao terminar, o resumo mostra só as linhas que aconteceram:

  • enviadas com sucesso;
  • com erro novamente (motivo na coluna Detalhes);
  • não reenviadas porque o título já foi quitado ou o documento cancelado;
  • ignoradas por já terem falhado 5 vezes.

Reenviar Este

Reenvia o registro selecionado na grade, qualquer que seja o status:

  • Registro com Erro: o reenvio atualiza o próprio registro, como no Reenviar Falhas;
  • Registro com Sucesso (ou Reenviado): o sistema avisa que será criado um novo registro no histórico. O registro original fica intacto e o novo aparece com origem Reenvio;
  • também confere se o documento ainda é válido e gera os anexos de novo;
  • se falhar, a mensagem orienta a ver o motivo na coluna Detalhes.

Tipos Personalizados

Onde fica

Central de Notificações > aba Tipos Personalizados (só aparece para quem tem a permissão 324 – ver "Permissões").

Permite criar categorias próprias a partir de um SQL. Cada tipo ativo aparece automaticamente na aba Notificações, nos Templates, na lista do Automático e no filtro do Histórico. A lista de categorias é atualizada ao gravar ou excluir um tipo, sem precisar reabrir a tela.

Campos do cadastro

  • Descrição – nome da categoria na tela;
  • Ativo – só tipos ativos aparecem nas listas;
  • Limite de envios – máximo de mensagens por execução do automático; 0 = sem limite. Não limita o envio manual;
  • SQL – consulta que retorna os destinatários;
  • Col 1 a Col 4 – títulos das colunas DETALHE1 a DETALHE4 na lista de envio manual;
  • Botão Testar SQL – executa o SQL com parâmetros de teste e informa se há erro ou se não retornou registros.

Colunas que o SQL deve retornar

  • CLIENTE_ID – código do cliente (usado no histórico e na regra de "uma categoria automática por dia");
  • NOME – nome do destinatário;
  • FONE – número de WhatsApp (sem essa coluna não há envio por WhatsApp);
  • EMAIL – e-mail (sem essa coluna não há envio por e-mail);
  • REFERENCIA – número inteiro e único por registro. É o que impede o mesmo registro de ser enviado duas vezes. Se vier vazio ou repetido, o controle não funciona: depois do primeiro envio com sucesso, os demais registros com a mesma referência deixam de aparecer.

Colunas opcionais:

  • DETALHE1 a DETALHE4 – informações extras, usadas nas variáveis {DETALHE1}…{DETALHE4} e nas colunas da lista. O DETALHE3 também é usado como documento do registro no histórico e na variável {REFERENCIA_DOC}.

Parâmetros que podem ser usados no SQL

  • :FILIAL – código da loja;
  • :DATA_DE ou :DE – data inicial. No manual é a data inicial da tela; no automático é o dia da última execução;
  • :DATA_ATE ou :ATE – data final. No manual é a data final da tela; no automático é hoje;
  • :REENVIO – 'S' ou 'N'. No manual reflete a opção Permitir reenvio; no automático é sempre 'N'.

Validação das variáveis

Ao gravar o template de um tipo personalizado, o sistema confere se todas as variáveis usadas ({...}) são colunas que o SQL realmente retorna. Se alguma não existir, a gravação é bloqueada e a mensagem lista as colunas disponíveis.

Permissões

Permissão Efeito
Item de menu Central de Notificações Acesso à tela
Central de Notificações – Tipos Personalizados (324) Mostra a aba Tipos Personalizados. Sem ela, a aba fica oculta

Solução de problemas

Onde ver o que aconteceu

  • Histórico – status e motivo de cada envio; o duplo clique mostra a mensagem completa.
  • Arquivo de log – na pasta do Master Key, em Logs\Central Notificacoes\NotifAPI_DDMMAA.log (um arquivo por dia). Registra a geração do PDF e do XML das notas (inclusive por que falhou), as respostas da uazapi e o resumo de cada categoria do envio automático (quantos registros, quantos enviados, quantos pulados).

Mensagem não chega por WhatsApp

  1. Situação no topo da tela / Consultar Status (uazapi) deve estar Conectado.
  2. O canal WhatsApp estava marcado no envio (e, no automático, em Configurações > Automático > Canais).
  3. O cliente tem celular/telefone no cadastro.
  4. Se o histórico mostra "Número sem WhatsApp", o número não tem WhatsApp ativo – corrigir o cadastro.
  5. O template de WhatsApp da categoria está preenchido.
  6. Envio em fila (uazapi, categorias sem anexo): "aceito" na fila não é garantia de entrega.
  7. Se o WhatsApp sinalizou restrição da conta, parar os envios em massa por um tempo.

Mensagem não chega por e-mail

  1. Testar as configurações com Testar E-mail na loja em questão. Se o servidor SMTP da loja estiver em branco, o envio usa a configuração da loja 1: testar lá.
  2. O cliente tem e-mail no cadastro.
  3. O template de e-mail da categoria está preenchido.
  4. Verificar a caixa de spam do cliente.

Nota Fiscal não é enviada (erro ao gerar o PDF)

  • "MasterNFe está fechado" – abrir o Master NF-e (ou configurar o caminho dele no Connect.ini para o Master Key abrir sozinho) e conferir IP/Porta do DataSnap nos Parâmetros do Sistema da loja.
  • "method not found" / "not found in the server method list" – o Master NF-e aberto é de versão antiga. Atualizar o Master NF-e (e conferir se o executável aberto é o da pasta certa).
  • "Error writing data to the connection" – o Master NF-e perdeu a conexão com o banco (ex.: o Firebird foi reiniciado depois que ele foi aberto). Fechar e abrir o Master NF-e.

Nota enviada sem o XML

Ver o arquivo de log do dia (linhas "GerarXMLNFe"). Normalmente é o Master NF-e fechado, desatualizado ou sem acesso. No WhatsApp, conferir também se a opção "Enviar o XML junto no envio de Nota Fiscal" está marcada.

Mensagem com frase incompleta ("...pelo link:")

O template usa uma variável de link e a loja envia por e-mail ou uazapi, onde a variável é apagada. Ajustar o texto do template (ver "Templates").

Registro não aparece na lista para envio

  • Já foi enviado com sucesso – marcar Permitir reenvio ou usar o Reenviar Este no Histórico.
  • É o consumidor padrão da loja.
  • Aniversário: cliente inativo, ou já recebeu com sucesso neste ano.
  • Cobranças: título já pago, com valor zero ou fora do período.
  • Nota Fiscal: nota não autorizada (cancelada, rejeitada etc.).
  • OS: é orçamento, ou o status não está marcado em "Status da OS".

Envio automático não disparou

  1. O automático está ativo na loja (Configurações > Automático).
  2. O horário configurado já passou.
  3. Algum Master Key foi aberto e logado nessa loja depois do horário.
  4. Ao menos um canal e uma categoria estão marcados.
  5. Ainda não rodou hoje: o campo NC_AUTO_ULTIMODIA da loja (tabela NOTIF_CONFIG) com a data de hoje indica que já executou.
  6. Não é uma base de cliente aberta na rede da Office (nesse caso o automático é bloqueado de propósito).
  7. Conferir no arquivo de log as linhas "Envio automático concluído" de cada categoria.

Registro aparece na busca manual mas não foi enviado pelo automático

  • É Ordens de Serviço – não tem automático.
  • O período do automático é diferente do da tela (ver tabela em "Envio automático"). Exemplo: Cobrança a Vencer no automático só pega o que vence no dia.
  • O cliente já tinha recebido outra categoria automática no dia (regra de uma categoria por dia).
  • O título foi pago, a nota cancelada ou o pagamento estornado antes do envio.
  • Tipos personalizados: o Limite de envios foi atingido.

Falha que o Reenviar Falhas não reenvia

  • O documento já falhou 5 ou mais vezes no período – corrigir a causa e usar Reenviar Este.
  • A falha está fora do período ou do Tipo filtrados.
  • O título foi quitado / a nota foi cancelada – aparece como "Não reenviado" em Detalhes.

Referência de banco de dados

Tabelas usadas pela Central:

  • NOTIF_CONFIG – configuração por loja (uma linha por loja, campo NC_FILIAL). Criada automaticamente ao abrir a Central na loja pela primeira vez;
  • NOTIF_TEMPLATE – templates por categoria, tipo (W = WhatsApp, E = E-mail) e loja;
  • NOTIF_HISTORICO – histórico de todos os envios;
  • NOTIF_TIPO_PERS – cadastro dos tipos personalizados.

Campos úteis de NOTIF_CONFIG:

  • NC_WA_TIPO – tipo de API do WhatsApp (O = Oficial/Meta, U = uazapi);
  • NC_WA_UAZ_ADMTOKEN – Admin Token da conta uazapi (não tem campo na tela);
  • NC_WA_UAZ_TOKEN / NC_WA_UAZ_INSTANCIA – token e nome da instância uazapi;
  • NC_WA_ENVIA_XML – envia o XML da nota pelo WhatsApp (S/N);
  • NC_AUTO_ATIVO, NC_AUTO_HORA, NC_AUTO_MINUTO, NC_AUTO_CANAIS, NC_AUTO_CATEGORIAS – configuração do envio automático;
  • NC_AUTO_ULTIMODIA – último dia em que o automático executou na loja.

Campos úteis de NOTIF_HISTORICO:

  • NH_STATUS – S (Sucesso), E (Erro), R (Reenviado);
  • NH_ORIGEM – M (Manual), A (Automático), R (Reenvio);
  • NH_CATEGORIA – código da categoria (ANIVERSARIO, BOLETO_VENCER, BOLETO_VENCIDO, BOLETO_PAGO, OS_PRONTA para Ordens de Serviço, NFE para Nota Fiscal, PERS_<n> para os tipos personalizados);
  • NH_REFERENCIA / NH_REFERENCIA_DOC – documento notificado (título, venda, OS...);
  • NH_ERRO – detalhes/motivo;
  • NH_ANEXOS – anexos enviados;
  • NH_MENSAGEM / NH_ASSUNTO – mensagem e assunto enviados;
  • NH_STATUS_ENTREGA – situação de entrega no WhatsApp (uazapi), atualizada ao filtrar o histórico.