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

De Office System
Ir para navegação Ir para pesquisar
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.
−
*'''Cobrança a Vencer''' – títulos do contas a receber com vencimento próximo, com ou sem boleto bancário gerado;
 
−
*'''Cobrança Vencida''' – títulos em atraso, com ou sem boleto;
 
−
*'''Cobrança Paga''' – títulos 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).
 
  
−
<small>'''Categorias de OS que existem mas não aparecem na tela:''' o sistema também tem as categorias '''OS Aberta''', '''OS em Andamento''' e '''OS Faturada''' (códigos <code>OS_ABERTA</code>, <code>OS_ANDAMENTO</code>, <code>OS_FATURADA</code>). Só "OS Pronta" fica visível nos combos de categoria, nos templates e no envio automático da tela; as outras três não aparecem em nenhum desses lugares, mas têm rótulo próprio no filtro de '''Histórico''' — ou seja, elas existem para uso via API/integração de outro módulo, e podem aparecer no Histórico sem que o operador tenha configurado nada na Central de Notificações para elas.</small>
+
O cliente definido como '''consumidor padrão''' da loja (cliente usado nas vendas de balcão) nunca aparece em nenhuma categoria.
  
−
==Abas da tela==
+
===Categorias===
 +
{| 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
 +
|}
  
−
===Notificaçõ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 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.
 
  
−
===Configurações===
+
*nas Cobranças, por título (ou pelo boleto inteiro, no caso de boleto acumulado);
−
Aba com quatro sub-abas de configuração:
+
*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.
  
−
*'''WhatsApp''' – tipo de API, credenciais e intervalo entre envios;
+
Envios com erro não contam: o registro continua aparecendo para ser enviado de novo.
−
*'''E-mail''' – servidor SMTP, porta, criptografia e credenciais;
 
−
*'''Templates''' – mensagens por categoria e canal;
 
−
*'''Automático''' – ativação, horário e categorias do envio automático.
 
  
−
===Histórico===
+
==Topo da tela==
−
Exibe registros de todos os envios realizados com filtros por período, tipo (WhatsApp/e-mail) e categoria. O filtro de '''status''' tem apenas as opções '''Todos''', '''Sucesso''' e '''Erro'''; "Reenviado" não é uma opção de filtro — é só um rótulo que aparece na grade para envios que foram reenviados. Permite reenvio de falhas diretamente 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.
  
−
===Tipos Personalizados===
+
==Aba Notificações (envio manual)==
−
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.
 
  
−
==Configuração do WhatsApp==
+
===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.
  
−
===Tipo de API===
+
'''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'''.
−
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;
+
{| class="wikitable"
−
*'''API Não Oficial (uazapi)''' – emulação web do WhatsApp via uazapi. 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).
+
|-
 +
!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
 +
|}
  
−
===Campos da API Oficial===
+
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.
−
'''Onde ficam'''
 
  
−
Central de Notificações > Configurações > WhatsApp > grupo '''API Oficial Meta'''
+
===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).
  
−
'''Campos'''
+
===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.
  
−
*'''Phone ID''' (NC_WA_PHONEID)
+
===Como o envio manual funciona===
−
*'''Token''' (NC_WA_TOKEN)
+
#O sistema pede confirmação com a quantidade de destinatários.
−
*'''Versão''' (NC_WA_VERSAO)
+
#'''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 da API Não Oficial (uazapi)===
+
'''Destinatário usado em cada canal:'''
−
'''Onde ficam'''
+
*'''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.
  
−
Central de Notificações > Configurações > WhatsApp > grupo '''API Não Oficial - uazapi'''
+
==Anexos, links e XML==
  
−
'''Campos'''
+
===O que vai em cada canal===
 +
{| 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
 +
|}
 +
 
 +
*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.
  
−
*'''Servidor''' (NC_WA_UAZ_URL) – endereço do servidor uazapi; em branco, usa o servidor padrão do sistema;
+
===De onde vêm o PDF e o XML da nota===
−
*'''Instância''' (NC_WA_UAZ_INSTANCIA) – gerado automaticamente pelo sistema na primeira abertura; não editável pelo usuário;
+
*'''Nota emitida pela API''' (o XML fica gravado no Master Key): o PDF e o XML são gerados pelo próprio Master Key.
−
*'''Token''' (NC_WA_UAZ_TOKEN) – gerado automaticamente pelo botão '''Criar Instância'''; não aparece como campo editável na tela;
+
*'''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:
−
*'''Intervalo entre envios (seg.)''' (NC_WA_INTERVALO) – tempo de espera entre cada mensagem enviada. Campo compartilhado pelos dois tipos de API.
+
**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.
  
−
'''Ações disponíveis'''
+
===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.
  
−
*'''Criar Instância''' – registra a instância no servidor uazapi. Exige que o Admin Token da conta uazapi já esteja gravado em '''NOTIF_CONFIG.NC_WA_UAZ_ADMTOKEN''' (não há campo na tela para isso; precisa ser gravado direto no banco);
+
==Configurações==
−
*'''Consultar Status''' – verifica se o WhatsApp está conectado;
+
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.
−
*'''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.
+
===WhatsApp===
  
−
==Configuração de E-mail==
+
'''Tipo de API'''
  
−
'''Onde fica'''
+
*'''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.
  
−
Central de Notificações > Configurações > E-mail
+
'''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'''
+
'''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).
  
−
*'''Servidor SMTP''' (NC_EMAIL_SMTP)
+
'''Botões da uazapi'''
−
*'''Porta''' (NC_EMAIL_PORTA)
+
*'''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;
−
*'''Criptografia''' (NC_EMAIL_SSL) – opções: TLS, SSL, None
+
*'''Consultar Status''' – consulta na hora se o WhatsApp está conectado;
−
*'''Usuário''' (NC_EMAIL_USUARIO)
+
*'''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;
−
*'''Senha''' (NC_EMAIL_SENHA)
+
*'''Desconectar''' – encerra a sessão do WhatsApp na instância (pede confirmação).
−
*'''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.
+
'''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").
  
−
==Templates de mensagem==
+
===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.
  
−
'''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).
  
−
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;
 +
*Se não existir template para a categoria/canal, 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"
Linha 119: Linha 195:
 
|Cobrança a Vencer / Vencida||{VENCIMENTO} {VALOR} {DOCUMENTO} {LINK_BOLETO}
 
|Cobrança a Vencer / Vencida||{VENCIMENTO} {VALOR} {DOCUMENTO} {LINK_BOLETO}
 
|-
 
|-
−
|Cobrança Paga||{VENCIMENTO} {VALOR} {DOCUMENTO} <small>(sem {LINK_BOLETO} — ver nota abaixo)</small>
+
|Cobrança Paga||{VENCIMENTO} {VALOR} {DOCUMENTO}
 
|-
 
|-
−
|OS Pronta||{NUMERO_OS} {DATA_OS} {VALOR_OS} {STATUS_OS}
+
|Ordens de Serviço||{NUMERO_OS} {DATA_OS} {VALOR_OS} {STATUS_OS}
 
|-
 
|-
−
|NF-e||{NUMERO_NOTA} {EMISSAO} {VALOR_NOTA} {CHAVE} {LINK_NOTA} {LINK_NFE} {LINK_BOLETO}
+
|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} + campos retornados pelo SQL
+
|Tipos personalizados||{DETALHE1} {DETALHE2} {DETALHE3} {DETALHE4} {REFERENCIA} {REFERENCIA_DOC}
 
|}
 
|}
  
−
'''Sobre {LINK_BOLETO} e {LINK_NOTA}/{LINK_NFE}:''' esses placeholders só são efetivamente substituídos por um link no canal '''WhatsApp via API Oficial (Meta)'''. Nos demais casos o comportamento é:
+
*'''{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.
  
−
*'''WhatsApp uazapi''': o boleto/nota vai anexado como documento (não como link); o placeholder é removido do texto;
+
'''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:
−
*'''E-mail''': o boleto/nota sempre vai anexado em PDF; o placeholder é removido do texto;
+
*Elas só viram link no '''WhatsApp pela API Oficial (Meta)''';
−
*'''Título sem boleto gerado''' (ver seção "Cobrança a Vencer, Vencida e Paga"): não há link nem anexo; o placeholder também é removido.
+
*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.
  
−
Como o placeholder é apenas removido (não a frase inteira em volta dele), um template escrito como "...você pode baixar o boleto pelo link: {LINK_BOLETO}" fica com a frase incompleta ("...pelo link:") sempre que o link não é usado. Vale revisar os templates de Cobrança pensando nesse caso.
+
===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.
  
−
'''{LINK_BOLETO} não existe para Cobrança Paga:''' diferente de "a Vencer"/"Vencida", a categoria Cobrança Paga não gera link nem anexo — nunca gerou. Se {LINK_BOLETO} for colocado no template dela, o texto <code>{LINK_BOLETO}</code> aparece literal na mensagem, sem ser substituído por nada.
+
Detalhes de funcionamento na seção "Envio automático".
  
 
==Cobrança a Vencer, Vencida e Paga==
 
==Cobrança a Vencer, Vencida e Paga==
−
Essas três categorias trabalham em cima do contas a receber (CTARECEB) como um todo. Um título entra na lista independentemente de ter ou não boleto bancário gerado; o que muda é o que é enviado.
+
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.
  
−
===Título sem boleto bancário gerado===
+
===Quando o título tem boleto===
−
Quando o título não tem banco vinculado, ou o banco não tem layout de boleto (NOTACAPA) e conta corrente (CONTACORR) configurados para a filial, a notificação é enviada mesmo assim:
+
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.
  
−
*'''E-mail''': enviado sem anexo, só com o texto do template;
+
Títulos convertidos de outro sistema (série '''ANT''') nunca geram boleto.
−
*'''WhatsApp''' (uazapi ou Meta): enviado só com o texto, sem link e sem documento anexado.
 
  
−
===Boleto acumulado (opção "Acumulativo" na impressão de boletos)===
+
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.
−
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 de Notificações reconhece o agrupamento automaticamente e:
 
  
−
*Mostra '''uma única linha''' na listagem, representando o boleto inteiro (não uma linha por conta a receber);
+
===Título sem boleto===
−
*O '''Valor''' exibido é a soma de todas as contas do grupo (em aberto, para Cobrança a Vencer/Vencida; pagas, para Cobrança Paga);
+
A notificação é enviada mesmo assim, só com o texto do template (sem anexo e sem link), em qualquer canal.
−
*O '''Documento''' exibido é o número do boleto acumulado (ex.: <code>AC00033</code>);
 
−
*O envio — e-mail ou WhatsApp — leva um '''único PDF''', com o valor total e o mesmo nosso número do boleto que seria impresso pela tela de Boletos e Duplicatas;
 
−
*O histórico e o controle de reenvio consideram o boleto acumulado como um todo, então a baixa de uma das contas do grupo não faz a notificação ser enviada de novo por engano.
 
  
−
==Envio Automático==
+
===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:
  
−
'''Onde fica'''
+
*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.
  
−
Central de Notificações > Configurações > Automático
+
==Envio automático==
  
−
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.
+
===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.
  
−
===Campos de configuração===
+
===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.
  
−
*'''Ativo''' (NC_AUTO_ATIVO) – habilita ou desabilita o envio automático da filial;
+
{| class="wikitable"
−
*'''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;
+
!Categoria!!O que é processado
−
*'''Categorias''' (NC_AUTO_CATEGORIAS) – quais categorias devem ser processadas automaticamente.
+
|-
 +
|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
 +
|}
  
−
'''Atenção: "OS Pronta" aparece marcável nesta lista, mas nunca é enviada pelo automático.''' O checklist de categorias mostra toda categoria visível na tela (inclusive OS Pronta), mas o processamento automático só existe, de fato, para: Aniversário, Cobrança a Vencer, Cobrança Vencida, Cobrança Paga, NF-e e Tipos Personalizados. Marcar "OS Pronta" na aba Automático não tem efeito nenhum — essa categoria só é enviada manualmente, pela aba Notificações.
+
===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'''.
  
−
===Regra de execução===
+
==Histórico==
  
−
*O sistema só executa uma vez por dia por filial (controla pela data em NC_AUTO_ULTIMODIA);
+
===Filtros===
−
*Categorias não marcadas são ignoradas;
+
*'''Período''' – mesmo combo de atalhos da aba Notificações. Ao abrir, o padrão é '''Últimos 30 dias''';
−
*Se nenhum canal estiver habilitado, o envio é abortado;
+
*'''Tipo''' – Todos, WhatsApp ou E-mail;
−
*Boleto acumulado é processado como um único envio, mesmo no automático (ver seção "Cobrança a Vencer, Vencida e Paga").
+
*'''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.
  
−
'''O período processado NÃO é "dia anterior" para todas as categorias.''' O sistema sempre calcula a data de corte como "ontem" (<code>Date - 1</code>), mas cada categoria usa esse valor de um jeito diferente:
+
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===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
−
!Categoria!!Período efetivamente processado
+
!Coluna!!Conteúdo
 
|-
 
|-
−
|Aniversário||Ignora a data de corte: sempre processa aniversariantes de '''hoje'''
+
|Data/Hora||Momento do envio (ou do último reenvio, quando o registro foi reenviado)
 
|-
 
|-
−
|Cobrança a Vencer||De ontem até '''hoje''' (inclui vencimentos do dia)
+
|Tipo||WhatsApp ou E-mail
 
|-
 
|-
−
|Cobrança Vencida||Só '''ontem'''
+
|Categoria||Nome da categoria
 
|-
 
|-
−
|Cobrança Paga||De ontem até '''hoje''' (inclui pagamentos do dia)
+
|Nome / Destino||Cliente e número/e-mail usado
 
|-
 
|-
−
|NF-e||Só '''ontem'''
+
|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
 
|}
 
|}
  
−
Na prática: um aniversário, uma cobrança a vencer ou um pagamento de '''hoje''' já entra no próximo ciclo automático (mesmo dia seguinte de manhã); só Cobrança Vencida e NF-e realmente esperam até o dia seguinte ao registro.
+
*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==
 
==Tipos Personalizados==
Linha 203: Linha 358:
 
'''Onde fica'''
 
'''Onde fica'''
  
−
Central de Notificações > aba '''Tipos Personalizados'''
+
Central de Notificações > aba '''Tipos Personalizados''' (só aparece para quem tem a permissão 324 – ver "Permissões").
  
−
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.
+
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===
 
===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.
  
−
*'''Descrição''' (NP_DESCRICAO) – nome da categoria exibido na interface;
+
===Colunas que o SQL deve retornar===
−
*'''Ativo''' (NP_ATIVO) – somente tipos ativos aparecem nas listas;
+
*'''CLIENTE_ID''' – código do cliente (usado no histórico e na regra de "uma categoria automática por dia");
−
*'''Limite de envios''' (NP_LIMIT) – quantidade máxima de registros processados por execução; 0 = sem limite. '''Vale só para o envio automático''' — não restringe disparos manuais pela aba Notificações;
 
−
*'''SQL''' (NP_SQL) – consulta SQL que retorna os destinatários;
 
−
*'''Col 1 a Col 4''' (NP_COL1_CAPTION a NP_COL4_CAPTION) – rótulos das colunas extras exibidas na listagem de envio manual.
 
−
 
 
−
===Colunas obrigatórias no SQL===
 
−
 
 
−
O SQL deve retornar obrigatoriamente as seguintes colunas:
 
−
 
 
−
*'''CLIENTE_ID''' – código do cliente;
 
 
*'''NOME''' – nome do destinatário;
 
*'''NOME''' – nome do destinatário;
−
*'''FONE''' – número de WhatsApp;
+
*'''FONE''' – número de WhatsApp (sem essa coluna não há envio por WhatsApp);
−
*'''EMAIL''' – endereço de e-mail;
+
*'''EMAIL''' – e-mail (sem essa coluna não há envio por e-mail);
−
*'''REFERENCIA''' – identificador único do registro (usado para controle de reenvio).
+
*'''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 que alimentam os placeholders do template:
 
−
 
 
−
*'''DETALHE1''' a '''DETALHE4''' – informações extras usadas via {DETALHE1}…{DETALHE4};
 
−
*'''REFERENCIA_DOC''' – número de documento para exibição no histórico.
 
−
 
 
−
===Parâmetros disponíveis no SQL===
 
−
 
 
−
*''':FILIAL''' – código da filial atual;
 
−
*''':DATA_DE''' ou ''':DE''' – data de início do período;
 
−
*''':DATA_ATE''' ou ''':ATE''' – data de fim do período;
 
−
*''':REENVIO''' – <code>'S'</code> ou <code>'N'</code>. No envio manual reflete a opção "Permitir reenvio" marcada na tela; no envio automático vem sempre <code>'N'</code>. Útil para o SQL decidir se deve ou não repetir registros já enviados.
 
  
−
===Regra de controle de reenvio===
+
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}.
  
−
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).
+
===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 de placeholders===
+
===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.
−
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.
 
  
 
==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==
 +
 
 +
===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===
 
===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).
−
1. Se a instância está conectada (botão '''Consultar Status''' deve mostrar "Conectado").
+
#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.
−
2. Se o número do cliente possui WhatsApp ativo – o sistema valida antes do envio.
+
#O template de WhatsApp da categoria está preenchido.
−
 
+
#Envio em fila (uazapi, categorias sem anexo): "aceito" na fila não é garantia de entrega.
−
3. Se o template de WhatsApp da categoria está preenchido.
+
#Se o WhatsApp sinalizou restrição da conta, parar os envios em massa por um tempo.
−
 
 
−
4. Se o canal WhatsApp está habilitado nos canais selecionados no momento do envio.
 
  
 
===Mensagem não chega por e-mail===
 
===Mensagem não chega por e-mail===
−
Conferir:
+
#Testar as configurações com '''Testar E-mail'''.
−
 
+
#O cliente tem e-mail no cadastro.
−
1. Configurações de SMTP (servidor, porta, criptografia, usuário e senha) usando o botão '''Testar E-mail'''.
+
#O template de e-mail da categoria está preenchido.
 +
#Verificar a caixa de spam do cliente.
  
−
2. Se o cliente possui e-mail cadastrado.
+
===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.
  
−
3. Se o template de e-mail da categoria está preenchido.
+
===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.
  
−
===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===
−
 
+
*Já foi enviado com sucesso – marcar '''Permitir reenvio''' ou usar o '''Reenviar Este''' no Histórico.
−
2. Se o SQL está salvo corretamente (sem erros de sintaxe).
+
*É o consumidor padrão da loja.
−
 
+
*Aniversário: cliente inativo, ou já recebeu com sucesso neste ano.
−
A lista de categorias é recarregada automaticamente ao gravar ou excluir um tipo personalizado — não é preciso fechar e reabrir a tela.
+
*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.
−
 
+
#Ao menos um canal e uma categoria estão marcados.
−
2. Se o horário configurado já passou no dia corrente.
+
#Ainda não rodou hoje: o campo NC_AUTO_ULTIMODIA da loja (tabela NOTIF_CONFIG) com a data de hoje indica que já executou.
−
 
+
#Não é uma base de cliente aberta na rede da Office (nesse caso o automático é bloqueado de propósito).
−
3. Se NC_AUTO_ULTIMODIA já está preenchido com a data de hoje (indica que já executou).
+
#Conferir no arquivo de log as linhas "Envio automático concluído" de cada categoria.
−
 
 
−
4. Se ao menos um canal (WA ou e-mail) está marcado.
 
−
 
 
−
5. Se ao menos uma categoria está marcada.
 
−
 
 
−
===Registro aparece na consulta mas não é enviado no automático===
 
−
Duas causas possíveis:
 
  
−
*'''A categoria é "OS Pronta"''': essa categoria não é processada pelo envio automático, mesmo aparecendo marcável na aba Automático (ver seção "Envio Automático");
+
===Registro aparece na busca manual mas não foi enviado pelo automático===
−
*'''O registro é muito recente''': cada categoria de Cobrança/NF-e/Aniversário tem sua própria regra de corte por data — ver a tabela em "Envio Automático" para saber exatamente quando cada uma passa a ser processada. 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 das 18h44min de 23 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.

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).

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;
  • Se não existir template para a categoria/canal, 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.
  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.