En Colombia, si tu negocio no responde por WhatsApp, casi que no existe. Desde la panadería del barrio hasta las startups tecnológicas más innovadoras, todos usamos esta aplicación para vender, negociar y conectar con los clientes. Pero, ¿qué pasa cuando tu emprendimiento empieza a crecer y los mensajes llegan por montones? Ahí es donde la tecnología nos echa la mano.
Automatizar la atención al cliente ya no es un lujo exclusivo de las grandes multinacionales; es una necesidad para escalar sin volver loco a tu equipo. En este tutorial práctico, te voy a mostrar cómo crear un bot básico de WhatsApp usando Node.js y la API de Twilio. No necesitas ser un experto programador, solo ganas de aprender y meterle mano al código.
¿Por qué crear un bot de WhatsApp para tu negocio?
Un chatbot bien diseñado puede saludar a tus clientes, dar información de precios, responder preguntas frecuentes, enviar estados de pedido y hasta cualificar leads mientras tú te tomas un tintico o trabajas en otras áreas de tu empresa. Para los emprendedores en Colombia, esto se traduce en tres beneficios clave:
- Ahorro de tiempo: Dejas de responder las mismas mil veces la pregunta de "¿A qué hora abren?".
- Cero clientes perdidos: Respondes al instante, 24/7, evitando que el cliente se vaya con la competencia por demoras.
- Imagen profesional: Un sistema automatizado proyecta una marca sólida y organizada.
Requisitos previos
Antes de arrancar, asegúrate de tener listo lo siguiente:
- Node.js instalado: Descárgalo desde su página oficial. Recomendamos la versión LTS.
- Un editor de código: Visual Studio Code es gratuito y excelente.
- Una cuenta en Twilio: Twilio es un proveedor de comunicaciones que nos facilita la conexión con la API de WhatsApp. Crea una cuenta gratuita en su sitio web.
- Ngrok: Una herramienta gratuita que nos permite exponer nuestro servidor local a internet para que Twilio pueda comunicarse con él.
Paso 1: Inicializar el proyecto en Node.js
Abre tu terminal o consola de comandos y crea una nueva carpeta para tu proyecto. Navega dentro de ella e inicializa un proyecto de Node.js con el siguiente comando:
mkdir bot-whatsapp-colombia
cd bot-whatsapp-colombia
npm init -y
El comando npm init -y creará un archivo package.json con la configuración por defecto. Ahora, vamos a instalar las librerías que necesitamos: Express para crear el servidor y Twilio para manejar los mensajes.
npm install express twilio dotenv
Paso 2: Escribir el código del servidor
Abre la carpeta del proyecto en Visual Studio Code y crea un archivo llamado index.js. Aquí vamos a escribir la lógica de nuestro bot. Vamos a crear un servidor simple que escuche los mensajes entrantes de WhatsApp y responda automáticamente.
Añade el siguiente código a tu archivo index.js:
require('dotenv').config();
const express = require('express');
const { MessagingResponse } = require('twilio').twiml;
const app = express();
app.use(express.urlencoded({ extended: false }));
app.post('/whatsapp', (req, res) => {
const mensajeRecibido = req.body.Body.toLowerCase();
const twiml = new MessagingResponse();
let respuesta = '';
if (mensajeRecibido.includes('hola')) {
respuesta = '¡Hola, parcero! 👋 Bienvenido a nuestro negocio. ¿En qué te puedo ayudar hoy? Escribe "precios", "horario" o "asesor".';
} else if (mensajeRecibido.includes('precios')) {
respuesta = 'Nuestros precios inician desde $50.000 COP. Te adjunto el catálogo en un momento.';
} else if (mensajeRecibido.includes('horario')) {
respuesta = 'Atendemos de lunes a viernes de 8:00 AM a 6:00 PM. ¡Te esperamos!';
} else {
respuesta = 'No entendí tu mensaje, pero no te preocupes. Escribe "hola" para empezar.';
}
twiml.message(respuesta);
res.writeHead(200, {'Content-Type': 'text/xml'});
res.end(twiml.toString());
});
app.listen(3000, () => {
console.log('El servidor del bot está corriendo en el puerto 3000');
});
Este código crea un endpoint (/whatsapp) que recibe los mensajes, los convierte a minúsculas para facilitar la lectura, y responde según las palabras clave que el usuario escriba. Puedes personalizar las respuestas con el tono de tu marca.
Paso 3: Ejecutar el servidor y exponerlo con Ngrok
En tu terminal, ejecuta el servidor con el comando node index.js. Verás el mensaje de que está corriendo en el puerto 3000. Sin embargo, Twilio necesita una URL pública para enviarle los mensajes a tu servidor. Aquí es donde entra Ngrok.
Abre una nueva ventana de tu terminal, asegúrate de estar en la carpeta donde descargaste Ngrok y ejecuta:
ngrok http 3000
Ngrok te generará una URL con aspecto de https://tupagina.ngrok.io. Copia esa URL, la vamos a necesitar en el siguiente paso.
Paso 4: Configurar el Sandbox de Twilio
Ingresa a tu cuenta de Twilio y ve a la sección de "Messaging" -> "Try it out" -> "WhatsApp". Twilio tiene un entorno de pruebas (Sandbox) muy útil para no incurrir en costos mientras desarrollas.
Allí te pedirán que envíes un código específico (ej. join orange-sun) desde tu teléfono celular a un número de WhatsApp que Twilio te proporciona. Una vez te unas al Sandbox, verás una opción para configurar el webhook "WHEN A MESSAGE COMES IN".
Pega la URL de Ngrok seguida de tu ruta /whatsapp (ej. https://tupagina.ngrok.io/whatsapp) y asegúrate de que el método sea POST. Guarda la configuración.
Consejos prácticos para tu bot en Colombia
- No hagas spam: En Colombia la gente se fastidia rápido si recibe mensajes que no pidió. Asegúrate de que el cliente haya iniciado la conversación o haya aceptado recibir notificaciones.
- Mantén un tono cercano: El usuario sabe que habla con una máquina, pero si le das calidez en las respuestas (sin caer en el exceso de confianza), la experiencia será mucho mejor.
- Ofrece salida a un humano: Siempre incluye una opción como "escribe 'asesor' para hablar con una persona". A veces el bot no entiende la necesidad del cliente y es vital esa transición.
Conclusión y próximos pasos
Crear un bot de WhatsApp con Node.js es más sencillo de lo que parece y es un gran primer paso para digitalizar las operaciones de tu pyme. Con esta base, puedes integrar bases de datos, conectar con APIs de pago, o incluso usar inteligencia artificial para responder preguntas más complejas.
Si