Crea tu primer bot de WhatsApp con Node.js para automatizar tu negocio

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:

Requisitos previos

Antes de arrancar, asegúrate de tener listo lo siguiente:

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

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

¿Tienes un proyecto en mente? Te ayudamos a hacerlo realidad.

Solicitar cotización gratis 🦎