Saltar al contenido
Chatbots de WhatsApp desde cero
Temario

Ejercicio: Proyecto final: el bot del minimarket

  • ⏱ 180 minutos
  • 📶 Nivel: avanzado

Objetivo

Entregar el bot completo de Minimarket La Esquina, funcionando en consola, probado con pruebas automáticas, desplegado en Cloudflare y comprobado con tu teléfono, con la lista de entrega y la rúbrica del proyecto.

Cómo se trabaja

Este ejercicio no tiene comprobaciones automáticas en la página: tu evidencia son los resultados de npm test, los logs de wrangler tail y tu README. Avanza en el orden de la lección y haz un commit pequeño por paso. Usa solo datos ficticios.

💡 Reto extra

Haz que el mensaje de fuera de horario diga exactamente cuándo atenderán («hoy a las 17:00» o «mañana a las 9:00») con una función proximaApertura, y cúbrela con pruebas para viernes por la noche y sábado.

Pasos

Marca cada paso a medida que lo completes. Tu avance se guarda en este navegador.

💡 Pista 1: Si una prueba nueva falla

Lee el mensaje con calma antes de tocar el código: muchas veces el bot tiene razón. Mi escenario de delivery falló porque el subtotal quedaba bajo el mínimo de S/ 25.00; había que corregir la prueba, no el bot.

💡 Pista 2: Dos módulos que se importan entre sí

worker.js importa humano.js y humano.js importa procesarMensaje de worker.js. Funciona porque ambos solo exportan funciones que se llaman después de cargar los módulos. Si ves un error de inicialización, comprueba que no ejecutas nada en el nivel superior del archivo.

💡 Pista 3: Si el bot no responde en WhatsApp

Revisa en este orden: que el webhook esté verificado, que el campo messages esté suscrito, que tu teléfono esté en la lista de destinatarios permitidos (131030), que WA_TOKEN no haya vencido y qué dicen los logs de wrangler tail.

💡 Pista 4: Plantillas sin aprobar

No es un fallo de tu código. Declara el pendiente en el README y verifica que el cron registre el error sin tumbar el Worker.