Article image
RAPHAEL SOARES
RAPHAEL SOARES06/04/2025 10:33
Compartilhe

Bot Python para envio de mensagens em massa pelo WhatsApp

    Olá! Imagine que você tem uma empresa e precisa cobrar os clientes que estão com faturas em atraso e para isso você utiliza o WhatsApp. Porém, você tem uma lista extensa de clientes e isso se torna uma tarefa maçante e demorada :(

    Para isso, desenvolvi um Script Python usando o Jupyter Notebook para fazer o envio envio de mensagens em massa pelo WhatsApp.

    Para isso, faça o download dos arquivos no Github:

    https://github.com/phael8919/bot_envio_de_mensagens_whatsapp

    Ou baixe os arquivos:

    Script Python: 

    https://github.com/phael8919/bot_envio_de_mensagens_whatsapp/blob/main/whatsapp.ipynb

    Planilha com os nomes dos clientes:

    https://github.com/phael8919/bot_envio_de_mensagens_whatsapp/blob/main/clientes.xlsx

    Como usar

    Primeiro, baixe a planilha "clientes.xlsx", nela informe o nome do cliente, o telefone no formato 55+DDD+Nº do telefone (tudo junto e sem espaço) e a data de vencimento do boleto, conforme imagem abaixo:

    image

    Feche a planilha.

    Agora, no Script Python Abaixo...

    # Bot de envio de mensagens em massa pelo WhatsApp
    import openpyxl
    from urllib.parse import quote
    import webbrowser
    from time import sleep
    import pyautogui
    import os 
    
    #Abre o navegador
    webbrowser.open('https://web.whatsapp.com/')
    sleep(15)
    
    #Lê a planilha e guarda informações sobre nome, telefone e data de vencimento
    workbook = openpyxl.load_workbook('clientes.xlsx')
    pagina_clientes = workbook['Plan1']
    
    for linha in pagina_clientes.iter_rows(min_row=2):
      try:
          # nome, telefone, vencimento
          nome = linha[0].value
          telefone = linha[1].value
          vencimento = linha[2].value
          
          mensagem = f'Olá, {nome} seu boleto vence no dia {vencimento.strftime("%d/%m/%Y")}. Favor pagar no link https://www.google.com.br'
      
          #Cria links personalizados do whatsapp e envia mensagens para cada cliente
          #com base nos dados da planilha    
          link_mensagem_whatsapp = f'https://web.whatsapp.com/send?phone={telefone}&text={quote(mensagem)}'
          webbrowser.open(link_mensagem_whatsapp)
          sleep(10) 
          
          #pyautogui.click(x=1851, y=971) #Posicione os valores da 1ª célula aqui
          #Envia a mensagem
          pyautogui.press('enter')
          sleep(3)
    
          #Fechaa
          pyautogui.hotkey('ctrl','w') 
          sleep(3)
          
      except:
          #print(f'Não foi possível enviar mensagem para {nome}')
          #Cria um arquivo listando para quem não foi enviado mensagem
          with open('erros.csv','a',newline='',encoding='utf-8') as arquivo:
              arquivo.write(f'{nome},{telefone}{os.linesep}')
    
    # Fecha a planilha do excel
    workbook.close()
    

    ...você pode editar a mensagem a ser enviada para o cliente na linha 24:

    image

    No final da frase, você pode substituir o link "https://www.google.com.br" pelo link do site onde o cliente retira o boleto.

    Se sua intenção for enviar uma mensagem diferente para o cliente, apaga a mensagem original e insira a mensagem que você quiser ( mas dentro de: f' mensagem para o cliente ' )

    Como o script funciona

    Para o script funcionar você tem que estar logado no WhatsApp Web. Então execute o script (de preferência no Jupyter Notebook) e não movimente o mouse e/ou teclado do computador durante a sua execução.

    O script funciona como um bot dentro do computador abrindo abas do WhatsApp Web e enviando as mensagens.

    Após concluir o envio das mensagens, aparecerá a tela abaixo, o que indica que o script foi concluído e você pode usar o computador novamente:

    image

    Observação

    Os números em que não foram possíveis enviar a mensagem apareceram em um arquivo criado automaticamente chamado "erros.csv"

    Compartilhe
    Comentários (3)
    Mario Santos
    Mario Santos - 06/04/2025 11:59

    Ficou show !!!




    Julia Azevedo
    Julia Azevedo - 06/04/2025 11:56

    Muito bacana! vou testar!

    IA

    Isael Araujo - 06/04/2025 11:05

    Parabéns, ficou bem didático.