IAGenerado con IA

Cómo construir un bot de WhatsApp con IA para tu negocio en Colombia

Aprende a crear un bot de WhatsApp con IA usando Node.js y TypeScript para automatizar respuestas y mejorar la atención al cliente en tu negocio colombiano. Incluye ejemplos prácticos de código y configuración de WhatsApp Business API.

Edward Díaz — Edwsystem25 de mayo de 202612 min de lectura

Introducción a los bots de WhatsApp con IA

En el mercado colombiano, donde el 92% de los usuarios de internet usan WhatsApp (Statista 2024), automatizar respuestas con IA puede reducir costos operativos hasta un 40%. Este tutorial te guiará en la creación de un bot inteligente usando tecnologías accesibles para desarrolladores latinoamericanos.

Requisitos previos: Node.js 18+, cuenta de WhatsApp Business, conocimientos básicos de TypeScript y API REST.

Configuración inicial del proyecto

Crea un nuevo proyecto Node.js e instala las dependencias clave:

npm init -y
npm install whatsapp-web.js qrcode-terminal openai langchain
npm install --save-dev typescript @types/node
npx tsc --init

Configura tu archivo tsconfig.json con estos parámetros esenciales:

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "commonjs",
    "outDir": "./dist",
    "strict": true,
    "esModuleInterop": true
  }
}

Conexión con WhatsApp Business API

Para Colombia, puedes usar la solución oficial de Meta o servicios locales como Wassenger que cumplen con regulaciones de protección de datos. Implementemos la conexión básica:

import { Client, LocalAuth } from 'whatsapp-web.js';
import qrcode from 'qrcode-terminal';

const client = new Client({
  authStrategy: new LocalAuth(),
  puppeteer: { headless: true }
});

client.on('qr', qr => {
  qrcode.generate(qr, { small: true });
});

client.on('ready', () => {
  console.log('Bot listo para mensajes en Colombia!');
});

client.initialize();

Integración de IA con OpenAI

Vamos a implementar un modelo de lenguaje para respuestas inteligentes. Usaremos GPT-3.5-turbo por su balance costo-rendimiento:

import { OpenAI } from 'langchain/llms/openai';

const llm = new OpenAI({
  openAIApiKey: process.env.OPENAI_KEY,
  temperature: 0.5,
  modelName: 'gpt-3.5-turbo',
  maxTokens: 150
});

async function generarRespuestaIA(mensaje: string) {
  const prompt = `Como asistente virtual de una empresa colombiana, responde de manera profesional y cercana:\n\nCliente: ${mensaje}\nAsistente:`;
  
  return await llm.predict(prompt);
}

Manejo de mensajes entrantes

Implementa lógica para procesar diferentes tipos de mensajes (texto, multimedia, comandos):

client.on('message', async msg => {
  // Ignorar mensajes propios
  if (msg.fromMe) return;

  // Comandos especiales
  if (msg.body.startsWith('!')) {
    await manejarComando(msg);
    return;
  }

  // Respuesta IA para mensajes normales
  const respuesta = await generarRespuestaIA(msg.body);
  await msg.reply(respuesta);
});

async function manejarComando(msg: Message) {
  const comando = msg.body.slice(1).toLowerCase();
  
  switch(comando) {
    case 'horario':
      await msg.reply('Nuestro horario en Bogotá es L-V 8am a 6pm');
      break;
    case 'sucursales':
      await msg.reply('Tenemos locales en Bogotá, Medellín y Cali');
      break;
    default:
      await msg.reply('Comando no reconocido. Prueba con !horario o !sucursales');
  }
}

Despliegue en la nube para Colombia

Para producción, considera servicios locales como AWS Colombia o Google Cloud Santiago por latencia. Ejemplo de Dockerfile:

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
CMD ["node", "dist/index.js"]

Consideraciones legales en Colombia

  • Registra tu bot ante la SIC cumpliendo con la Ley 1581 de Protección de Datos
  • Incluye un opt-out claro según regulaciones de mensajería comercial
  • Almacena conversaciones cifradas si manejas datos sensibles

Optimización para el mercado colombiano

Mejora tu bot con estas adaptaciones regionales:

// Ejemplo de detección de regionalismos
const regionalismos = {
  'parcero': 'amigo',
  'chévere': 'genial',
  'rumbear': 'salir'
};

function normalizarTexto(texto: string) {
  return texto.replace(
    new RegExp(Object.keys(regionalismos).join('|'), 'gi'), 
    match => regionalismos[match.toLowerCase()]
  );
}

Dato clave: Los bots con reconocimiento de regionalismos aumentan la satisfacción del usuario en un 28% según estudio de Fedesoft 2024.

¿Te fue útil este artículo?

Déjame tu email y te aviso cuando publique nuevos artículos técnicos.