LinkNacional / whmcs-whatsapp-api-notifications-open-source

This repository holds the notifications of the module.
https://linknacional.github.io/whmcs-whatsapp-api-notifications-open-source/
GNU General Public License v3.0
10 stars 6 forks source link

Auxilio no desenvolvimento de notificações #42

Closed Kaonashiz closed 8 months ago

Kaonashiz commented 9 months ago

Queria saber como faço para transferir esses templates de whatsapp para templates do chatwoot.

brunoferreiralkn commented 9 months ago

Boa tarde, @Kaonashiz.

Se entendi bem, você deseja que os templates do WhatsApp também funcionem no Chatwoot, correto? Como sabe, o Chatwoot não suporta por completo o envio de message templates com parâmetros para WhatsApp. Portanto, não implementamos as notificações para se comunicar com a API co Chatwoot e este enviar para o WhatsApp.

Podemos auxiliar na realização de uma implementação específica pra você. Do que precisa?

Você pode ver um exemplo de notificação para Chatwoot clicando aqui.

E acessar tutoriais clicando aqui e acessar a documentação geral por aqui.

Kaonashiz commented 9 months ago

Bom dia @brunoferreiralkn, Então, na verdade eu precisava uma forma em que esses templates fossem enviados e a mensagem que foi enviada aparecesse no chatwoot, teria como fazer algo desse tipo? Necessitaria de ver o template que foi enviado através do chatwoot.

brunoferreiralkn commented 9 months ago

@Kaonashiz, compreendo.

O módulo possui uma notificação de Chatwoot chamada Nota privada do WhatsApp, que cria uma nova conversa no Chatwoot para o cliente em questão sempre que uma notificação do WhatsApp é disparada:

image

Observe que o ID em azul é um link direto para a fatura dentro do WHMCS.

É uma nota privada, visível apenas para o atendentes do seu Chatwoot.

Resumindo:

  1. Uma notificação WhatsApp é disparada
  2. A notificação Nota privada do WhatsApp detecta isso e cria uma nota privada no perfil do cliente, no Chatwoot

É necessário ter o WhatsApp e Chatwoot configurado para isso funcionar, bem ter as notificações ativados.

Kaonashiz commented 9 months ago

Bom dia @brunoferreiralkn, era exatamente isso que eu precisava, consegue me ensinar como eu ativo essa opção? Desde já agradeço.

brunoferreiralkn commented 9 months ago

Bom dia, @Kaonashiz.

Caso você já tenha configurado o Chatwoot e o WhatsApp, bem como as notificações do WhatsApp, basta instalar e depois ativar a notificação do Chatwoot Nota privada do WhatsApp.

A notificação pode ser baixada aqui.

Depois, acesse o módulo, como segue na imagem abaixo.

image

Para testar, faça alguma ação que dispare alguma notificação WhatsApp.

Kaonashiz commented 9 months ago

Boa tarde Bruno, tudo bem?, poderia me passar seu Discord, teams, skype ou algo do tipo? para que eu possa esclarecer algumas dúvidas de forma mais clara! Desde já agradeço.

brunoferreiralkn commented 9 months ago

Bom dia, @Kaonashiz.

As dúvidas podem ser esclarecidas por aqui para que outros usuários do módulo possam observar e aprender.

Para que eu resposta seja eficaz, por favor, coloque imagens, vídeos e textos bem descritivos da sua dúvida.

Caso você deseje um treinamento especial, você pode contratar nossa hora técnica, clicando aqui.

Kaonashiz commented 9 months ago

Boa tarde Bruno, estamos tentando uma criação de um novo template e estamos meio que à deriva, sabe onde consigo achar essas variáveis? estamos procurando uma específica "Data de criação da fatura", consegue me dar um norte sobre isso, tem algum lugar onde está documentado essas variáveis? ou eu posso trazê-las de alguma forma?

Desde já agradeço.

Kaonashiz commented 9 months ago

Bom dia Bruno, tudo certo? Consegue me dar uma ajuda? Estamos fazendo um template novo de fatura vencida, porém o mesmo não está rodando, pode dizer o que estamos fazendo de errado? Screenshot_9

image

brunoferreiralkn commented 9 months ago

Boa tarde Bruno, estamos tentando uma criação de um novo template e estamos meio que à deriva, sabe onde consigo achar essas variáveis? estamos procurando uma específica "Data de criação da fatura", consegue me dar um norte sobre isso, tem algum lugar onde está documentado essas variáveis? ou eu posso trazê-las de alguma forma?

Desde já agradeço.

Bom dia, @Kaonashiz.

A criação de novos parâmetros está documentada aqui.

O módulo apenas se utiliza do Capsule e localAPI do WHMCS. Exemplo:

image

Basta criar um método pegarDataDeCriacaoDaFatura na sua notificação e chamá-lo num novo parâmetro.

$this->parameters = [
    'invoice_creation_date' => [
        'label' => $this->lang['Data de criação da fatura'],
        'parser' => fn () => $this->pegarDataDeCriacaoDaFatura($this->hookParams['invoiceid'])
    ]
];
Kaonashiz commented 9 months ago

Bom dia Bruno, tudo certo? Consegue me dar uma ajuda? Estamos fazendo um template novo de fatura vencida, porém o mesmo não está rodando, pode dizer o que estamos fazendo de errado? Screenshot_9

image

Vimos que o problema está quando bate em $notificationCode, onde que podemos declarar este código?

brunoferreiralkn commented 9 months ago

Bom dia Bruno, tudo certo? Consegue me dar uma ajuda? Estamos fazendo um template novo de fatura vencida, porém o mesmo não está rodando, pode dizer o que estamos fazendo de errado? Screenshot_9

image

Você ativou e configurou a notificação a um message template? image

Kaonashiz commented 9 months ago

Bom dia Bruno, tudo certo? Consegue me dar uma ajuda? Estamos fazendo um template novo de fatura vencida, porém o mesmo não está rodando, pode dizer o que estamos fazendo de errado? Screenshot_9 image

Você ativou e configurou a notificação a um message template? image

Quando ativamos a notificação ele puxa outra notificação com ele a "InvoiceReminder" que vocês criaram, que foi a que nós duplicamos. Mudamos as chamadas do use para o path correto e o nome da classe para "FaturaVencida" porém quando alteramos o $notificationCode para qualquer coisa que não seja "InvoiceReminder" ele quebra. image

brunoferreiralkn commented 9 months ago

@Kaonashiz, eu realizei a mesma ação: copiei, colei e alterei o nome de InvoiceReminder para OverdueInvoice e tive o resultado esperado:

image

Já tentou refazer esse processo?

Certifique-se que removeu as outras notificações criadas do WHMCS.

Kaonashiz commented 9 months ago

sim sim, já refizemos este processo, porém ele não vai, essa notificação seria como uma duplicata da InvoiceReminder apenas com algumas alterações, queremos essas duas notificações rodando.

brunoferreiralkn commented 9 months ago

Quando você acessa a página de configuração da notificação, existe algum erro no Log de Módulo do WHMCS? Também, existe algum erro no F12 da página?

Kaonashiz commented 9 months ago

Esses são os logs que retornam quando tentamos aplicar o template.

image

image

Kaonashiz commented 9 months ago

Bom dia Bruno, tudo certo? Como funciona esse $notificationCode? Percebemos que é algo setado e que não há como modificar algo além dos que já tem, há uma lista que mostra todos que podem ser usados?

brunoferreiralkn commented 9 months ago

Bom dia, @Kaonashiz.

$notificationCode está documentada aqui.

Ele deve ser único e pode ser qualquer string.

image

O nome da pasta da notificação deve ser o mesmo nome de $notificationCode.

Portanto, o final do seu namespace ficaria \FaturaVencida; e o nome da pasta da noticação ficaria FaturaVencida.

Acredito que esse seja o problema. Corrija e tente rodar novamente a notificação.

brunoferreiralkn commented 8 months ago

@Kaonashiz.

Você está passando invoiceid e clientid onde deveria estar passando invoiceId e clientId e vice-versa. Verifique novamente os parâmetros!

Kaonashiz commented 8 months ago

Não entendi bruno, onde exatamente estou passando errado?

Kaonashiz commented 8 months ago

Bom dia @brunoferreiralkn, como faço para caso o cliente não queira receber as notificações, existe essa funcionalidade?

brunoferreiralkn commented 8 months ago

Não entendi bruno, onde exatamente estou passando errado?

Bom dia, @Kaonashiz.

Por favor, verifique as suas chamadas a propriedade $this->hookParams, um hora você usa invoiceid e outra usa invoiceId, com o i maiúsculo.

brunoferreiralkn commented 8 months ago

Bom dia @brunoferreiralkn, como faço para caso o cliente não queira receber as notificações, existe essa funcionalidade?

O módulo ainda não possui essa funcionalidade. Podemos implementá-la na próxima versão.

brunoferreiralkn commented 8 months ago

A partir da versão 3.2.0 do módulo a coluna client_id da tabela mod_lkn_hook_notification_reports pode ser null. Consegue verificar se esse coluna a sua instalação está como null?

Kaonashiz commented 8 months ago

Onde eu consigo ver isso @brunoferreiralkn ?

brunoferreiralkn commented 8 months ago

Pelo seu phpmyadmin do seu WHMCS.

Kaonashiz commented 8 months ago

Não entendi @brunoferreiralkn, seta null para todos os clientes?

brunoferreiralkn commented 8 months ago

Apenas a coluna client_id da tabela mod_lkn_hook_notification_reports.

Kaonashiz commented 8 months ago

Apenas a coluna client_id da tabela mod_lkn_hook_notification_reports.

sim mas para todos os registros?

brunoferreiralkn commented 8 months ago

image Verifique se essa linha está realmente retornando o ID de um cliente.

Kaonashiz commented 8 months ago

image Verifique se essa linha está realmente retornando o ID de um cliente.

Bom dia @brunoferreiralkn, isso está retornando "NULL" .

brunoferreiralkn commented 8 months ago

Bom dia, @Kaonashiz.

Por favor, leia a documentação do módulo para tentar corrigi o problema: Report and events.

Você não está passando o ID do cliente, mas sim null e isso está gerando o erro.

O report precisa do ID do cliente para acontecer.

Você precisa desativar o report na sua notificação ou passar o ID do cliente corretamente.

Kaonashiz commented 8 months ago

acho estranho pois esses templates foram feitos por vocês e apenas alterado o nome da class e o code

brunoferreiralkn commented 8 months ago

A notificação que nós criamos (InvoiceReminder):

image

A sua notificação: image

Perceba a diferença sutil entre invoiceId e invoiceId.

Kaonashiz commented 8 months ago

Correto Bruno, porém isso já foi alterado há um tempo e mesmo assim ele continua retornando vazio.

brunoferreiralkn commented 8 months ago

Você tentou desativar os reports.?

Kaonashiz commented 8 months ago

Sim Bruno, os reports foram desativados e continua a mesma coisa.

brunoferreiralkn commented 8 months ago

Consegue me enviar um print e logs do estado atual da notificação em questão?

Kaonashiz commented 8 months ago

Bom dia @brunoferreiralkn, estamos com um problema sobre um novo template, poderia nos dar uma ajuda? Queria saber qual o caminho a ser seguido:

Esse é o log que nos retornou = Error: Class "Lkn\HookNotification\Notifications\WhatsApp\Invoice1DayLate\Invoice1DayFarwayNotification" not found in modules/addons/lknhooknotification/src/Domains/Notifications/Messenger.php:35 Stack trace:

0 /modules/addons/lknhooknotification/src/Notifications/WhatsApp/Invoice1DayFarway/hooks.php(6): Lkn\HookNotification\Domains\Notifications\Messenger::run('Lkn\HookNotific...')

1 /modules/addons/lknhooknotification/notifications_loader.php(29): unknown()

2 /modules/addons/lknhooknotification/hooks.php(3): require_once('/home/gk2/porta...')

3 /vendor/whmcs/whmcs-foundation/lib/Utility/SafeInclude.php(0): unknown()

4 /vendor/whmcs/whmcs-foundation/lib/Module/Module.php(0): WHMCS\Utility\SafeInclude::file('/home/gk2/porta...', Object(Closure))

5 /vendor/whmcs/whmcs-foundation/lib/Hook/Manager.php(0): WHMCS\Module\Module::defineHooks()

6 /vendor/illuminate/support/Facades/Facade.php(261): WHMCS\Hook\Manager->boot()

7 /init.php(0): Illuminate\Support\Facades\Facade::__callStatic('boot', Array)

8 /gk2/invoices.php(0): unknown()

9 {main}

Esse é o código que está rodando = https://dontpad.com/linknacional

brunoferreiralkn commented 8 months ago

Bom dia, @Kaonashiz. Testei o arquivo da sua notificação e a única alteração que precisei fazer para ela adicionar foi adicionar a tradução desse parâmetro: $lang['invoice_id_and_first_item'] = 'Invoice ID + Primeiro item';.

Para conseguir debugar a notificação mais rapidamente, utilize o arquivo tests.php:

image

Depois, acesse o arquivo pela URL da sua instação WHMCS seguido de /modules/addons/lknhooknotification/tests.php.

Kaonashiz commented 8 months ago

Boa tarde @brunoferreiralkn, realmente não está pegando, fiz a reinstalação do módulo, fiz as alterações que disse e sempre retorna aquele log ali de cima, por acaso poderia conectar aqui pra dar uma olhada ou algo do tipo? Grato desde já.

brunoferreiralkn commented 8 months ago

Bom dia, @Kaonashiz.

Nesse caso, por favor, solicite uma hora técnica conosco, clicando aqui.

Kaonashiz commented 8 months ago

Bom dia @brunoferreiralkn, tudo certo?, uma sugestão, seria interessante na página de relatório ter a distinção de notificações, se a mesma foi enviada manualmente ou foi enviada automaticamente.

brunoferreiralkn commented 8 months ago

Fechando issue por inatividade.