Agenda PRO: por que o aviso ficou parado ou falhou - a fila, os motivos gravados, a carteira e o estorno
Esta é a explicação da Agenda PRO. A Agenda comum é outro aplicativo, com outro funcionamento de aviso - não misture os dois.
Aqui está o que acontece depois que o aviso nasce: por onde ele passa, por que às vezes ele fica parado em Não enviado, o que exatamente é gravado quando falha, e o que acontece com o saldo do SMS. Quais avisos existem, quando cada um nasce e o que significam as etiquetas de situação são assunto à parte.
DOIS CAMINHOS DIFERENTES: NA HORA E PROGRAMADO
Confirmação, cancelamento e alteração são enviados na hora, direto, no mesmo instante em que a ação é salva no agendamento. Não passam por fila nenhuma. Se falharem, falham na hora e o motivo já fica gravado no registro.
O lembrete (o aviso que sai antes do horário) é diferente: ele é gravado como pendente e programado numa fila externa, para disparar na antecedência configurada na loja. Quando chega a hora, a fila chama o sistema de volta e o envio acontece nesse momento.
É por isso que a queixa mais comum é "a confirmação chegou e o lembrete não". São caminhos distintos: um não prova nada sobre o outro.
POR QUE O LEMBRETE FICA PARADO EM NÃO ENVIADO
Três causas reais, todas no momento da programação:
Primeira: a fila de agendamentos está desligada numa configuração interna do sistema. Nesse caso nada é programado, o registro do lembrete continua existindo como pendente e nunca vai disparar sozinho. Não há erro gravado, e o aplicativo ainda responde como se tivesse agendado - por isso o registro parece normal. Essa configuração é interna do sistema, não é da loja: precisa passar pelo suporte.
Segunda: o texto do lembrete está vazio nas configurações da loja. O sistema recusa a programação e grava no registro o erro "Mensagem vazia - Configure o texto_lembrete nas configurações da loja". Esse aviso nunca sai. A correção seria preencher o texto do lembrete nas configurações da Agenda PRO, mas há um defeito no caminho: ao salvar as configurações gerais o sistema descarta os textos de aviso e o canal do lembrete. Ou seja, você digita e não grava, e repetir não resolve. Esse caso é chamado para o suporte. E mesmo depois de corrigido, preencher o texto não ressuscita o registro antigo: é preciso gerar o aviso de novo.
Terceira: a fila respondeu com erro, ou deu uma exceção. O texto do erro fica gravado no próprio registro do lembrete (às vezes começando com "Exceção:"), e é ele que o suporte precisa ler.
O QUE É CONFERIDO QUANDO A FILA CHAMA DE VOLTA
Na hora de disparar, o sistema só envia se duas coisas baterem: o registro ainda estar pendente e a tarefa que está disparando ser exatamente aquela que foi programada. Se o registro já foi enviado, cancelado ou marcado como falha, nada acontece - e é assim que se evita mensagem duplicada. Não batendo, o sistema apenas anota internamente que não encontrou o lembrete daquela tarefa.
A REGRA DOS 30 MINUTOS: ESTÁ PREVISTA, MAS HOJE NÃO PEGA NINGUÉM
Existe uma regra de prazo prevista no envio: para lembrete (confirmação é isenta), se já passou da data e hora do agendamento mais 30 minutos de tolerância, o envio seria recusado com "O lembrete já passou do prazo de envio (com tolerância de 30min)".
Só que nenhum caminho ativo aplica essa conferência hoje. O disparo que vem da fila manda enviar com a conferência de prazo desligada; os avisos de cancelamento e de alteração também; a confirmação é isenta pelo próprio tipo; e as duas varreduras de atrasados (SMS e e-mail) estão desativadas. Ou seja: se essa mensagem aparecer gravada num aviso, ela é registro antigo - não explica uma falha de hoje.
Duas consequências práticas. Um lembrete que não chegou a ser programado na fila não é recuperado nem enviado com atraso: ele fica parado. E um lembrete que foi programado dispara no horário que a fila guardou, mesmo que esse horário já tenha passado.
MUDAR A DATA OU A HORA NÃO REPROGRAMA O LEMBRETE
Editar o agendamento não mexe no lembrete que já está programado. Ele continua marcado para o horário calculado quando nasceu, e o texto que vai ao cliente continua com a data e a hora antigas. Se a edição gerar aviso de alteração, esse aviso sai na hora - mas ele não substitui nem reprograma o lembrete. Para reprogramar de verdade é preciso gerar um lembrete novo, pelo caminho descrito abaixo.
NÃO EXISTE REENVIO
Não conte com reenvio. A ação de reenviar do aplicativo está quebrada e não reenvia nada. Abrir o detalhe de um aviso tem o mesmo problema e devolve erro - o motivo gravado precisa ser lido na listagem dos avisos. E as rotinas de varredura de atrasados, a de SMS e a de e-mail, estão desativadas.
O que existe de verdade é criar de novo: mudar a situação do agendamento (por exemplo para Confirmado) cancela os pendentes daquele agendamento e gera avisos novos, conforme as opções de e-mail e SMS marcadas na hora de mudar a situação.
OS MOTIVOS DE FALHA GRAVADOS NO REGISTRO
O sistema grava o motivo no próprio registro do aviso, um a um. Esse texto é o ponto de partida de qualquer investigação.
No SMS: "O lembrete não foi encontrado"; "O lembrete já foi enviado"; "O lembrete já passou do prazo de envio (com tolerância de 30min)"; "O destinatário não foi informado" (o agendamento ficou sem telefone); "A mensagem não foi informada"; "Não foi possível debitar da carteira" seguido do motivo devolvido pela carteira; "Erro ao enviar mensagem via SMS. Saldo estornado.".
No e-mail, todos precedidos de "Erro ao enviar e-mail:": "O lembrete não foi encontrado"; "O lembrete já foi enviado por e-mail"; "O lembrete já passou do prazo de envio (com tolerância de 30min)"; "O e-mail do destinatário não foi informado"; "A mensagem do lembrete não foi informada"; "Falha no envio do e-mail".
Duas observações. "O lembrete já foi enviado" também aparece quando o registro já estava cancelado ou já tinha falhado - não é prova de que a mensagem saiu. E se vier um texto fora dessa lista, é erro repassado por outro serviço (carteira ou envio): vale levar ao suporte exatamente como apareceu, sem traduzir.
Quando dá certo, o registro também guarda: "SMS enviado com sucesso. Carteira debitada." ou "E-mail enviado com sucesso (sem cobrança)".
CARTEIRA: DEBITA ANTES, PEDE O ESTORNO SOZINHO
Só o SMS consome saldo. E-mail não consome nada.
A ordem importa. O saldo é debitado da carteira antes do envio. Se o débito não passa, a mensagem nem é tentada e o registro vira falha com o motivo devolvido pela carteira. Se o débito passa e o envio falha, o sistema pede o estorno à carteira automaticamente, informando o número do lembrete no motivo, e grava "Erro ao enviar mensagem via SMS. Saldo estornado.".
Isso responde à queixa "debitou e o cliente não recebeu": se o registro traz essa mensagem, o estorno já foi pedido. Atenção: a frase é gravada assim que o estorno é pedido - ela não prova que a carteira concluiu o estorno. Havendo contestação do valor, a conferência é do lado da carteira. A carteira é um serviço à parte do aplicativo; se ela não responder, o motivo gravado é "Não foi possível realizar o débito da sua carteira." - e aí o problema é a carteira, não a Agenda PRO. Saldo, recarga e extrato se resolvem pela carteira, e valores e condições comerciais não se discutem aqui.
O QUE VAI NO E-MAIL
O e-mail sai com o assunto "Lembrete de agendamento" em todos os tipos, inclusive no de cancelamento. O corpo usa sempre o mesmo modelo do aplicativo, o de confirmação, com o título "Confirmação de Agendamento": ele mostra nome da loja, data e horário; serviço e profissional só aparecem no e-mail de confirmação.
Ou seja: o texto escrito nas configurações da loja é usado no SMS e na validação do envio - no corpo do e-mail o cliente vê o modelo do aplicativo, não esse texto. Isso costuma virar chamado como "mudei o texto e o e-mail continua igual" e também como "o e-mail de cancelamento chegou parecendo confirmação".
O remetente é o SMTP da empresa quando ele está configurado nas configurações do ERP; sem SMTP configurado, sai pelo endereço padrão do aplicativo. Na confirmação, o e-mail leva anexo o arquivo de calendário do compromisso (com alarme de 1 hora antes) e vai com cópia para o e-mail do responsável pelo agendamento. Nos demais tipos não há anexo nem cópia. Se a data ou o horário do agendamento estiverem inválidos, o e-mail sai sem o anexo, sem erro.
ALTERAR A SITUAÇÃO CANCELA OS PENDENTES
Sempre que a situação do agendamento muda, todos os avisos ainda pendentes daquele agendamento passam para cancelado antes de qualquer coisa. Depois disso, se a nova situação for Confirmado, são criados os avisos de confirmação e/ou o lembrete que for marcado; se for Cancelado, é criado o aviso de cancelamento que for marcado. Excluir um aviso também o deixa como cancelado, com o texto "Lembrete excluído com sucesso.".
Consequência prática: mexer na situação do agendamento depois que o lembrete já estava programado descarta aquele lembrete. Se a intenção era só corrigir um dado, marque de novo o envio do lembrete ao confirmar.
O QUE COSTUMA DAR ERRADO
O cliente não recebeu e o registro está em Não enviado, sem erro nenhum: a fila está desligada ou o aviso nem chegou a ser programado. Olhe o erro de programação gravado no registro; sem erro nenhum, é caso de suporte.
Aviso sem telefone ou sem e-mail: o motivo gravado é destinatário não informado. O aviso é montado com o telefone e o e-mail que estavam no agendamento no momento em que ele foi criado. Corrigir o cadastro do cliente depois não corrige um aviso já gravado.
Mudou a data ou a hora e o lembrete veio com a informação antiga: editar o agendamento não reprograma o lembrete já criado.
O cliente confirmou o horário e o lembrete não chegou: veja se a situação do agendamento foi mexida depois - cada mudança de situação cancela os pendentes.
Dois avisos iguais: normalmente são dois canais marcados (e-mail e SMS geram registros separados) ou a situação foi alterada mais de uma vez, gerando avisos novos a cada vez.
Horário do lembrete diferente do esperado: a antecedência e o fuso vêm das configurações da loja na Agenda PRO. Isso se resolve na área de configurações, não aqui.