Agentes IA en WhatsApp: Guía práctica para crear, lanzar y escalar tu chatbot en 2024
Introducción
En menos de un mes, WhatsApp AI Agents pasó de ser una idea de ciencia‑ficción a una funcionalidad disponible para cualquier desarrollador. Desde que Meta abrió la plataforma a agentes de IA de terceros, las búsquedas de “WhatsApp chatbot OpenAI” y “conectar LLM a WhatsApp Business API” se dispararon un 350 %. Emprendedores, marketers y equipos de soporte ya están usando bots para reservar citas, responder preguntas de clientes, organizar trivias y, en algunos casos, generar ingresos mediante suscripciones o pagos por mensaje.
Este artículo te ofrece una guía paso a paso (≈ 2 500 palabras) para que, sin rodeos, puedas:
- Diseñar la arquitectura de tu agente IA.
- Registrar tu número y obtener credenciales en la Business API.
- Conectar tu bot a un modelo LLM (OpenAI, Anthropic o Falcon).
- Implementar ejemplos de código en Node.js y Python.
- Configurar prompts listos para atención al cliente, reservas y juegos.
- Asegurar el cumplimiento de GDPR y la normativa local.
- Monetizar mediante mensajes iniciados por el negocio (BIM) o suscripciones.
Al final tendrás un checklist de pruebas y un FAQ con enlaces oficiales para pasar de la teoría a la producción sin contratiempos.
1. ¿Por qué lanzar tu agente IA ahora?
| Motivo | Impacto concreto |
|---|---|
| Ventana limitada – Beta pública desde junio 2024 y apertura completa a finales de 2024. | Los primeros adoptantes reportan tiempos de respuesta 4‑5× más rápidos y tasas de conversión > 12 % en e‑commerce. |
| Base de usuarios masiva – 2.9 mil millones de MAU, 85 % de penetración en Latinoamérica. | Cada mensaje es una oportunidad directa, sin algoritmo que lo filtre. |
| LLM maduros – GPT‑4o, Claude 3, Falcon‑180B. | Permiten “few‑shot prompting” y personalización sin entrenar modelos propios. |
| Regulación clara – GDPR y LFPDPPP exigen consentimiento explícito. | Meta ofrece logs y herramientas de auditoría; basta configurarlas correctamente. |
| Monetización inmediata – “Business‑initiated messages” (≈ €0,0085 /msg) y suscripciones vía API de pagos. | Puedes cobrar por reserva, por consulta o por acceso a contenido premium. |
2. Arquitectura básica
Cliente ──► WhatsApp Business API ──► Middleware (Node.js / Python) ──► LLM (OpenAI, Anthropic, Falcon)
│
└─► Base de datos (Mongo / PostgreSQL)
- WhatsApp Business API gestiona la entrega y recepción de mensajes (cifrado E2E garantizado).
- Middleware traduce los eventos de la API a llamadas HTTP a tu LLM y devuelve la respuesta al usuario.
- Base de datos almacena historial, consentimientos y métricas.
3. Registro y credenciales
- Crear cuenta Business Manager → Configuración > Cuentas > WhatsApp > Configuración de la API.
- Solicitar número de teléfono (preferiblemente un número dedicado).
-
Obtener
WABA_ID,PHONE_NUMBER_ID,ACCESS_TOKEN. - Configurar webhook:
curl -X POST https://graph.facebook.com/v19.0/<PHONE_NUMBER_ID>/webhooks \
-d "url=https://miapp.com/webhook" \
-d "fields=messages,errors" \
-d "access_token=<ACCESS_TOKEN>"
-
Verificar el webhook recibiendo el
hub.challengeque Facebook envía.
4. Conexión a un modelo LLM
4.1 OpenAI (GPT‑4o)
import openai, os, json, requests
openai.api_key = os.getenv("OPENAI_API_KEY")
def generar_respuesta(prompt, user_id):
response = openai.ChatCompletion.create(
model="gpt-4o-mini",
messages=[{"role":"system","content":"Eres un asistente de atención al cliente para una tienda de ropa."},
{"role":"user","content":prompt}],
temperature=0.6,
max_tokens=500,
)
return response.choices[0].message.content
4.2 Anthropic (Claude 3)
const fetch = require('node-fetch');
async function generarRespuesta(prompt) {
const resp = await fetch('https://api.anthropic.com/v1/messages', {
method: 'POST',
headers: {
'x-api-key': process.env.ANTHROPIC_API_KEY,
'content-type': 'application/json',
},
body: JSON.stringify({
model: 'claude-3-opus-20240229',
max_tokens: 500,
temperature: 0.7,
messages: [{ role: 'user', content: prompt }],
}),
});
const data = await resp.json();
return data.content[0].text;
}
4.3 Falcon‑180B (via API de Hugging Face)
curl -X POST https://api-inference.huggingface.co/models/tiiuae/falcon-180b \
-H "Authorization: Bearer $HF_TOKEN" \
-H "Content-Type: application/json" \
-d '{"inputs":"<prompt>", "parameters":{"max_new_tokens":300}}'
5. Implementación del webhook (Node.js)
const express = require('express');
const bodyParser = require('body-parser');
const { generarRespuesta } = require('./llm'); // función del punto 4
const app = express();
app.use(bodyParser.json());
app.post('/webhook', async (req, res) => {
const entry = req.body.entry?.[0];
const changes = entry?.changes?.[0];
const message = changes?.value?.messages?.[0];
if (message && message.type === 'text') {
const userMsg = message.text.body;
const reply = await generarRespuesta(userMsg, message.from);
await fetch(`https://graph.facebook.com/v19.0/${process.env.PHONE_NUMBER_ID}/messages`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
messaging_product: 'whatsapp',
to: message.from,
text: { body: reply },
}),
});
}
res.sendStatus(200);
});
app.listen(3000, () => console.log('Webhook escuchando en puerto 3000'));
6. Prompts listos para usar
| Caso de uso | Prompt base (añade variables entre {{ }}) |
|---|---|
| Atención al cliente | Eres un agente de soporte de {{empresa}}. Responde de forma amable y clara a la siguiente consulta: "{{consulta}}" |
| Reserva de cita | Actúa como asistente de reservas para {{negocio}}. Pregunta la fecha, hora y número de personas, confirma la disponibilidad y devuelve un mensaje de confirmación. |
| Trivia | Eres un moderador de trivia. Formula una pregunta de cultura general de dificultad media y espera la respuesta del usuario. Si acierta, felicita; si falla, da la respuesta correcta. |
| Venta directa | Como vendedor de {{producto}}, describe sus principales beneficios en 2‑3 frases y propone un botón de compra con el enlace {{url}}. |
7. Seguridad y cumplimiento
- Consentimiento explícito – Envía un mensaje de bienvenida solicitando autorización antes de procesar datos personales.
-
Almacenamiento cifrado – Usa campos
encryptedde tu base de datos o servicios como AWS KMS. -
Logs de procesamiento – Habilita
message_logsen la Business API; exporta a un bucket S3 para auditoría GDPR. - Retención de datos – Configura una política de borrado automático (p. ej., 30 días) para cumplir con LFPDPPP.
- Rate limiting – Limita a 20 msg / segundo por número para evitar bloqueos de Meta.
8. Métricas clave y alertas
| Métrica | Herramienta | Umbral de alerta |
|---|---|---|
| Tiempo medio de respuesta (TMR) | CloudWatch / Grafana | > 3 s |
| Tasa de entrega | Dashboard de WhatsApp Business | < 95 % |
| Conversiones (pago/subscripción) | Firebase Analytics | Caída > 20 % en |
Herramienta mencionada: Groq Cloud
Top comments (0)