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:
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:
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:
Observação
Os números em que não foram possíveis enviar a mensagem apareceram em um arquivo criado automaticamente chamado "erros.csv"