Como Automatizar Convites de Casamento com WhatsApp Business API e QR Codes em Python
O gerenciamento de listas de convidados e confirmações de presença (RSVP) em eventos de médio e grande porte, como casamentos, frequentemente se torna um gargalo operacional. Mensagens manuais geram retrabalho, inconsistência de dados e atrasos na contagem final. A integração direta com a WhatsApp Business Cloud API associada à geração dinâmica de QR Codes em Python resolve esse desafio com confiabilidade e rastreabilidade.
Neste artigo, você entenderá como estruturar a arquitetura técnica dessa automação, desde a emissão de ingressos individuais com QR Code até a captura de respostas em tempo real via webhooks.
Arquitetura da Solução
O fluxo técnico é composto por quatro etapas principais:
- Base de Convidados e Tokens Únicos: Armazenamento dos dados do convidado (nome, telefone, quantidade de acompanhantes) com um identificador único (UUID).
- Geração de QR Code e Mídia: Criação do QR Code em Python contendo o token para check-in no dia do evento.
- Envio via WhatsApp Cloud API: Disparo de templates homologados pela Meta contendo botões interativos (ex: “Confirmar”, “Recusar”) e imagem personalizada.
- Recepção de Webhooks: Endpoint FastAPI/Flask para processar as interações e atualizar a base de dados instantaneamente.
1. Geração do QR Code Dinâmico em Python
Para garantir que cada convidado tenha um passe único para leitura na entrada do evento, utilizamos a biblioteca qrcode em conjunto com o Pillow:
python
import qrcode
from PIL import Image
import uuid
def gerarqrconvite(guestid: str, nome: str) -> str:
# Payload seguro para validação no dia
payload = f”EVENTO-2025:{guestid}”
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=10,
border=4,
)
qr.add_data(payload)
qr.make(fit=True)
img = qr.make_image(fill_color="#1A1A1A", back_color="#FFFFFF")
caminho_arquivo = f"convites/{guest_id}.png"
img.save(caminho_arquivo)
return caminho_arquivo
2. Disparo do Template Interativo via WhatsApp Cloud API
A Meta exige o uso de templates pré-aprovados para mensagens ativas. O template configurado deve possuir botões de resposta rápida (Quick Reply) para registrar o status do convidado.
python
import requests
import os
WHATSAPPTOKEN = os.getenv(“WHATSAPPTOKEN”)
PHONENUMBERID = os.getenv(“PHONENUMBERID”)
def enviarconvite(telefone: str, nome: str, mediaid: str):
url = f”https://graph.facebook.com/v19.0/{PHONENUMBERID}/messages”
headers = {
“Authorization”: f”Bearer {WHATSAPP_TOKEN}”,
“Content-Type”: “application/json”
}
payload = {
"messaging_product": "whatsapp",
"to": telefone,
"type": "template",
"template": {
"name": "convite_casamento_interativo",
"language": {"code": "pt_BR"},
"components": [
{
"type": "header",
"parameters": [
{"type": "image", "image": {"id": media_id}}
]
},
{
"type": "body",
"parameters": [
{"type": "text", "text": nome}
]
}
]
}
}
response = requests.post(url, headers=headers, json=payload)
return response.json()
3. Captura de Resposta via Webhook
Como especialista em automação e Inteligência Artificial, recomendo construir listeners assíncronos usando FastAPI. Isso garante baixa latência ao responder às requisições da Meta e processar dados em segundo plano.
python
from fastapi import FastAPI, Request, Response, BackgroundTasks
app = FastAPI()
async def processarrespostaconvidado(dados: dict):
try:
mensagem = dados[“entry”][0][“changes”][0][“value”][“messages”][0]
telefone = mensagem[“from”]
if mensagem.get("type") == "button":
resposta = mensagem["button"]["text"]
# Atualiza status no banco (Confirmado / Recusado)
print(f"Convidado {telefone} respondeu: {resposta}")
except KeyError:
pass
@app.post(“/webhook”)
async def webhook(request: Request, backgroundtasks: BackgroundTasks):
body = await request.json()
backgroundtasks.addtask(processarrespostaconvidado, body)
return Response(statuscode=200)
Benefícios da Abordagem Automatizada
- Controle Preciso: O painel de confirmações é atualizado em tempo real sem intervenção humana.
- Check-in Ágil: No dia do evento, a leitura do QR Code valida o convidado e evita duplicações.
- Escalabilidade: O mesmo pipeline pode processar dezenas ou milhares de convidados sem perda de performance.
Conclusão e Próximos Passos
A automação de eventos por meio da WhatsApp Business API e Python profissionaliza a experiência dos convidados e elimina erros na organização.
Se você precisa de uma arquitetura personalizada de automação com WhatsApp API, integração de fluxos inteligentes ou inteligência artificial para o seu projeto, entre em contato para avaliar uma consultoria técnica sob medida.


