O cheiro de pizza saindo do forno é bom demais, mas o cheiro de problema no WhatsApp do delivery, esse não rola. Eu já passei por isso muitas vezes. Chega final de semana, o telefone não para, as mensagens pipocam. "Quero uma pizza", "Qual o cardápio?", "Chega em quanto tempo?", "Meu endereço é...". E o pior: "Escrevi o endereço errado!", "Era sem cebola!", "Cancela!".
Quem trabalha com delivery sabe. Cada pedido que entra pelo WhatsApp é uma corrida contra o tempo. Alguém tem que ler, entender, copiar o endereço, os itens, o pagamento, jogar isso numa planilha – que geralmente é um Google Sheets – e depois avisar a cozinha, o motoboy, mandar a confirmação pro cliente. Tudo isso, manual. É um sufoco, a chance de erro é gigante, e a gente perde um tempo precioso que poderia estar usando pra outras coisas, tipo, sei lá, fazer a comida ou organizar a rota.
Eu sou daqueles que vivem com o Google Sheets aberto, o Apps Script rodando umas automações e um terminal Python do lado. Quando a demanda do delivery começou a apertar demais, e os erros de pedido se tornaram frequentes, percebi que precisava de algo mais robusto que só copiar e colar. Precisava de IA, mas não aquela de livro, e sim a IA que resolve problema na prática, no dia a dia, para automatizar o delivery via WhatsApp.
O Começo da Dor: Pedidos Manuais via WhatsApp
No início, era ok. Uma pizzaria pequena, uns poucos pedidos por dia. Um celular, um WhatsApp Business e eu ali, digitando tudo no meu Google Sheets de controle. "Cliente, Endereço, Pedido, Valor, Status". Parecia simples. Mas aí o volume aumentou. De repente, eram 5, 10, 20 mensagens ao mesmo tempo, cada uma com um formato diferente. Um cliente mandava um áudio, outro mandava uma lista, outro só a foto do cardápio e "quero esse!".
O Apps Script já ajudava a criar algumas validações no Sheets e a notificar o motoboy por Telegram depois que eu inseria o pedido. Mas a entrada de dados, o famoso "data entry", ainda era o gargalo. Eu perdia tempo decifrando mensagens, perguntando de novo o endereço porque o cliente esqueceu o número, ou confirmando o sabor da pizza que ele só mencionou por alto.
Pensei: "Preciso de um jeito de pegar essa bagunça de texto do WhatsApp e transformar em dados bonitinhos no Sheets, sem que eu precise ser o tradutor humano". E foi aí que a ideia de jogar uma IA no meio começou a fazer sentido.
A Estrutura Básica: WhatsApp API, Webhooks e Apps Script
Pra começar a brincadeira, o primeiro passo é conectar o WhatsApp. Não dá pra usar o WhatsApp pessoal e ficar lendo tudo na mão. A gente precisa de uma API. Eu usei a API do WhatsApp Business da Meta, mas tem outras opções como Twilio. O importante é que ela permite que você receba e envie mensagens programaticamente.
Quando alguém manda uma mensagem para o número do delivery, a API dispara um "webhook". Pensa num webhook como um aviso automático: "Ei! Chegou uma mensagem nova pra você nesse endereço aqui!". Esse "endereço aqui" é um URL que você configura. No meu caso, esse URL apontava para um script em Apps Script, que estava publicado como um aplicativo web.
O fluxo inicial era mais ou menos assim:
- Cliente envia mensagem no WhatsApp.
- API do WhatsApp recebe e dispara um webhook para o meu Apps Script.
- Apps Script recebe o conteúdo da mensagem.
- Aqui entrava o desafio: o que fazer com a mensagem?
Antes da IA, o Apps Script tentava fazer umas regras simples, tipo "se a mensagem contém 'cardápio', manda o link do cardápio". Mas pra pedido, era impossível. O texto era muito livre.
Integrando a IA: O Poder dos Modelos de Linguagem
A ideia foi simples na teoria, mas deu um trabalhinho pra ajustar na prática: pegar a mensagem do cliente e "jogar" para um modelo de IA que conseguisse entender e estruturar o pedido. Eu escolhi um LLM (Large Language Model) via API, como o da OpenAI ou Gemini, por sua capacidade de entender linguagem natural e extrair informações.
O Apps Script, ao receber a mensagem do WhatsApp, fazia uma requisição para a API do LLM. O segredo aqui é o 'prompt'. Um prompt bem feito é 80% do trabalho. No começo, meus prompts eram ingênuos, tipo "Extraia o pedido dessa mensagem". O resultado era uma bagunça, a IA inventava coisas ou ignorava detalhes importantes.
Depois de muitos testes e frustrações, o prompt virou algo mais robusto:
"Você é um assistente de pedidos de delivery. Sua tarefa é extrair as seguintes informações de um pedido de cliente, formatando-as em JSON. Se uma informação não for encontrada, retorne null. Os itens do cardápio são: Pizza Calabresa P, M, G; Pizza Frango c/ Catupiry P, M, G; Coca-cola lata; Suco de Laranja. Acompanhamentos para pizza: Borda Recheada (Catupiry ou Cheddar). Métodos de pagamento: Pix, Cartão (crédito/débito), Dinheiro. Endereço deve incluir Rua, Número, Complemento, Bairro, Cidade (se mencionado). Exemplo de saída: {'itens': [{'nome': 'Pizza Calabresa G', 'quantidade': 1, 'acompanhamento': 'Borda Recheada Catupiry'}, {'nome': 'Coca-cola lata', 'quantidade': 2}], 'endereco': 'Rua das Palmeiras, 100, Ap. 2, Centro, São Paulo', 'pagamento': 'Pix', 'observacoes': null}. Agora, analise a seguinte mensagem do cliente: [MENSAGEM_DO_CLIENTE]"
Esse prompt, que evoluiu bastante, dava contexto para a IA, listava os itens (sim, no início era melhor listar para evitar alucinações de sabores que não existiam), os tipos de pagamento, e o mais importante: o formato de saída JSON. Isso facilita demais a vida pra processar os dados depois.
Processando a Resposta da IA e Atualizando o Sheets
Quando a IA me retornava o JSON, o Apps Script entrava em ação novamente. Ele parcia o JSON, pegava cada pedacinho (itens, endereço, pagamento, observações) e jogava nas colunas certas da minha planilha "Pedidos" no Google Sheets.
Eu tinha outras abas no Sheets: "Cardápio" (com preços e estoque), "Clientes" (com histórico de endereços). O Apps Script usava as informações extraídas pela IA para consultar essas abas. Por exemplo, ele verificava se os itens pedidos existiam no "Cardápio" e calculava o total. Se o cliente era recorrente, ele tentava preencher o endereço a partir do histórico.
Essa parte foi crucial. Não adiantava a IA ser inteligente se o "robô" não conseguisse agir com base nas informações. Python também entrou em cena para alguns processamentos mais pesados. Por exemplo, eu tinha um script em Python rodando em um servidor simples (ou até um Google Cloud Function, dependendo do volume) que fazia a ponte entre o Apps Script e um sistema de roteamento de entregas, otimizando as rotas dos motoboys com base nos endereços do Sheets. Mas para o core da extração de pedidos, o Apps Script e a API da IA davam conta do recado.
Depois de tudo preenchido e validado no Sheets, o Apps Script gerava uma mensagem de confirmação para o cliente via WhatsApp API. Algo como: "Olá [Nome do Cliente], seu pedido foi confirmado! Pizza Calabresa G (1x), Coca-cola lata (2x). Endereço: Rua das Palmeiras, 100. Total: R$XX,XX. Previsão de entrega: 45 min. Agradecemos a preferência!".
Claro, essa mensagem de confirmação também pode ser gerada pela IA, usando um prompt como: "Com base neste pedido JSON e no valor total X, gere uma mensagem de confirmação amigável e concisa para o cliente.". Isso dá mais flexibilidade e um toque humano que um template fixo talvez não tivesse.
Essa automação toda reduziu drasticamente o tempo de processamento de pedidos e, o mais importante, os erros. O pessoal da cozinha recebia o pedido já estruturado, sem precisar decifrar garranchos ou áudios.
Automação de Delivery no WhatsApp: Jeito Manual vs. Automatizado
Para deixar mais claro o impacto, criei esta tabela comparativa:
| Jeito Manual/Demorado | Jeito Automatizado (com IA, Apps Script, Python, Sheets) |
|---|---|
| Receber mensagem no WhatsApp e ler manualmente. | WhatsApp API recebe a mensagem e dispara um webhook. |
| Copiar nome, endereço, itens, quantidade, forma de pagamento. | Webhook aciona Apps Script que envia a mensagem para a API da IA. |
| Abrir Google Sheets e inserir dados em cada coluna. | IA processa a mensagem e retorna dados estruturados (JSON). |
| Calcular valor total do pedido. | Apps Script parcia JSON e preenche automaticamente o Google Sheets. |
| Verificar manualmente o estoque (se houver). | Apps Script consulta aba "Cardápio" no Sheets para preço e estoque. |
| Digitar mensagem de confirmação para o cliente. | Apps Script (ou IA) gera mensagem de confirmação personalizada. |
| Notificar cozinha/motoboy via chat ou impresso. | Apps Script envia notificação automatizada (e-mail, Telegram, ou integração com sistema). |
| Tempo médio por pedido: 3-5 minutos (se não tiver erro). | Tempo médio por pedido: Segundos. |
| Alta chance de erros de digitação e interpretação. | Minimiza erros, padroniza entradas, aumenta a precisão. |
| Demora na resposta ao cliente, aumentando a frustração. | Resposta instantânea e profissional, melhorando a experiência do cliente. |
O Que Dá Errado: Armadilhas e Detalhes Cabeludos
Ah, se tudo fosse tão simples quanto a gente escreve no papel! Na prática, essa jornada é cheia de tropeços. Eu quebrei a cabeça com muita coisa que parecia boba.
1. Prompts Mal Escritos e Alucinações da IA
No começo, a IA errava demais. Um cliente pedia "uma pizza de frango", e o LLM inventava "Pizza de Frango com Catupiry e Bacon". Sendo que bacon nem tinha no cardápio! Eu precisei ser EXTREMAMENTE específico nos prompts. Listar todos os itens do cardápio, com as opções exatas (P, M, G), e reforçar que a IA só deveria usar o que estava na lista. Se o cliente pedisse algo que não estava, a IA deveria retornar 'null' para aquele item e, no máximo, colocar uma observação para o atendente humano verificar. Isso é um detalhe crucial para evitar vender algo que não existe ou não tem em estoque.
2. Variações na Linguagem do Cliente
O ser humano é criativo. "Pizza grande de mussarela", "Mussa G", "Aquela pizza G de queijo", "Uma coca-cola zero, a da latinha". A IA precisa ser capaz de entender essas variações. Para isso, além de um bom prompt, eu tive que "treinar" a IA com alguns exemplos de entrada e saída dentro do próprio prompt (técnica de "few-shot learning"). Não é um treino formal, mas sim dar alguns pares de exemplo no prompt para que ela aprenda o padrão de extração.
3. Limitações da API do WhatsApp e Custos
A API do WhatsApp Business não é de graça. Tem um custo por conversa, e isso pode aumentar rápido se o volume for alto. Além disso, ela tem algumas regras e limitações sobre o que pode ser enviado. Mensagens muito longas, ou que parecem spam, podem ser bloqueadas. Fora a burocracia para aprovar o número e os templates de mensagem. Não é só sair conectando e usando.
4. Gerenciamento de Estado e Continuidade da Conversa
E se o cliente manda "Quero uma pizza", e depois "Calabresa G"? A IA precisa ter um "contexto" da conversa. No meu sistema, cada mensagem era processada de forma independente. Isso significava que se o cliente dividisse o pedido em várias mensagens, o sistema poderia se perder. A solução foi guardar o histórico da conversa com aquele cliente (no próprio Sheets ou em um banco de dados simples) e, ao enviar a mensagem para a IA, incluir as últimas 2 ou 3 mensagens da conversa para dar mais contexto. É um trade-off: mais tokens na requisição da IA (mais caro), mas maior precisão.
5. Lidando com Endereços e Dados Sensíveis
Endereço é um inferno. "Rua X, nº Y, ap Z, perto da padaria". "Não tem número, é a casa amarela". A IA é boa, mas validar um endereço é outra história. Eu tive que usar um serviço de geocodificação (uma outra API) para tentar padronizar e validar os endereços. Além disso, lidar com dados de clientes exige cuidado com segurança e privacidade. As chaves das APIs, por exemplo, não podem ficar expostas no código.
6. Erros na Integridade dos Dados no Sheets
A IA é ótima, mas não é infalível. Uma vírgula fora do lugar no JSON que ela retorna, ou um campo que vem com tipo de dado errado, pode quebrar o Apps Script. A validação de dados no Apps Script é fundamental. Eu tive que implementar muitos `try-catch` e verificações de tipo antes de tentar gravar qualquer coisa no Sheets, para evitar que dados inconsistentes corrompessem a planilha.
7. A Latência das APIs
Às vezes, a API da IA ou a do WhatsApp demoram um pouco para responder. Isso pode causar uma sensação de lentidão para o cliente, ou até timeouts no Apps Script. É preciso ter um bom tratamento de erros e reenvio em caso de falha temporária.
Esses "pequenos" detalhes consumiram muito tempo, mas cada um deles me ensinou algo importante e deixou a automação mais robusta e confiável.
FAQ: Perguntas Técnicas da Galera
1. Como eu garanto que a IA não vai "alucinar" e inventar itens que não estão no meu cardápio?
A melhor forma é ser explícito no prompt. Crie uma seção no seu prompt com "Itens do Cardápio Disponíveis:" e liste-os exatos. Adicione uma instrução como: "Somente utilize os itens listados. Se um item pedido pelo cliente não estiver nesta lista, retorne 'null' para ele e, se possível, coloque a menção original do cliente em 'observacoes'." Isso força a IA a se ater à sua lista, prevenindo criações fantasiosas.
2. O que fazer se a API do WhatsApp ou da IA derem erro de conexão ou limite de requisições?
No Apps Script ou Python, você precisa implementar um mecanismo de "retry" (tentar novamente). Se a primeira requisição falhar (erro 500, timeout), espere alguns segundos e tente de novo, talvez até 2 ou 3 vezes. Utilize blocos `try-catch` para capturar os erros. Para limites de requisição (rate limit), muitas APIs retornam um cabeçalho `Retry-After`. Se presente, use-o para esperar o tempo recomendado antes de tentar novamente. Se o erro persistir, logue o problema e, talvez, envie uma notificação para um humano intervir.
3. Como eu lido com pedidos complexos ou com modificações ("quero uma pizza de calabresa, mas sem cebola e com borda recheada")?
O segredo está no prompt e na estrutura do JSON de saída que você pede à IA. Inclua campos como `observacoes_por_item` ou `modificacoes`. Por exemplo, no JSON de saída, para um item de pizza, você pode ter um campo `observacoes_personalizadas`. O prompt deve instruir a IA a preencher esse campo com detalhes como "sem cebola" ou "com borda de cheddar". No Apps Script, ao processar esse item, você verifica esse campo para repassar a informação correta à cozinha.
Conclusão
Automatizar o delivery do WhatsApp com IA não é mágica de uma hora para outra. É um projeto com seus desafios, suas dores de cabeça e que exige uma boa dose de experimentação. Mas os resultados, no fim das contas, compensam demais.
A gente consegue tirar a carga repetitiva do time, diminuir erros, acelerar o atendimento e, o mais importante, dar uma experiência muito melhor para o cliente, que recebe uma resposta rápida e um pedido certo. Eu continuo refinando meus prompts, ajustando os scripts no Apps Script e em Python, e sempre de olho nas novidades das APIs. É um trabalho contínuo, mas que me permite focar em problemas mais interessantes do que ficar copiando e colando texto de WhatsApp. E o cheiro de pizza, agora, só me lembra de pizza mesmo, e não de um monte de pedido manual pra processar.
Comentários
Postar um comentário