¿Necesito escanear el QR cada vez que inicio el bot?
No. La sesión se guarda en./sessions/. Solo escaneas el QR la
primera vez. Si la sesión se invalida (borraste la carpeta o WhatsApp
desvinculó el dispositivo), necesitarás escanear de nuevo.
¿Puedo usar el bot sin escanear el QR?
Sí, con pairing code (transporte Baileys):¿El bot funciona en grupos?
Sí. Los handlerswhen() funcionan en grupos por defecto. Para responder
solo en privado:
conversationScope: 'chat' si
en cambio quieres una única conversación compartida por grupo.
¿Por qué bot.when('hola') no coincide con “hola a todos”?
La estrategia de coincidencia por defecto es igualdad normalizada, no
“contains” — el mensaje debe ser igual al trigger exactamente, después de
convertir a minúsculas, quitar acentos y colapsar espacios. Para
coincidencia por subcadena, usa un TriggerObject:
match también acepta 'startsWith' y 'endsWith'.
¿Puedo enviar botones?
Depende del transporte. Con la Cloud API oficial (@botmesh/meta) y con
Telegram, ctx.buttons(texto, botones) envía botones nativos (ver
Mensajes y media). En Baileys, no: los botones/listas
interactivos nativos están muertos en el protocolo actual de WhatsApp Web.
Usa un menú numerado (.choose() en un flow, c.choose() en una
conversación) o una encuesta real:
¿Los flows/conversaciones sobreviven a un reinicio?
Solo si lo activas explícitamente.flow(...).persistent() hace
checkpoint de la conversación después de cada paso, pero el MemoryStore
por defecto vive en memoria — un reinicio pierde esos checkpoints a menos
que el store tenga un archivo detrás:
¿Puedo enviar mensajes sin que alguien me escriba primero?
Sí, conbot.send:
bot.broadcast()
(por lotes, con reintentos ante rate limits y cancelable); para iniciar un flujo
completo a alguien usa bot.trigger().
En la Cloud API de WhatsApp, los mensajes libres solo salen dentro de la ventana
de 24 horas: ver Ventana de 24 h.
¿Cómo detengo el bot correctamente?
¿Puedo tener varios bots en el mismo proceso?
Sí, con providers/sesiones diferentes:Bot por provider (p. ej. un bot
Baileys y un bot con CloudAPIProvider en el mismo proceso).
¿Funciona con WhatsApp Business?
Sí. El bot funciona tanto con cuentas personales como con cuentas de WhatsApp Business.¿Puedo montar un asistente de IA estilo ChatGPT en WhatsApp?
No en la WhatsApp Business Platform. Desde el 15-01-2026 los términos de Meta prohíben los asistentes de IA de propósito general (chatbots abiertos cuya funcionalidad principal es la propia IA). La IA al servicio de tu negocio — atención al cliente, ventas, reservas — sí está permitida. Con@botmesh/ai, escribe una persona acotada a tu negocio; mira la
guía del plugin de IA.
¿Pueden banear mi cuenta?
WhatsApp puede detectar automatización excesiva. Para minimizar el riesgo:- No envíes spam ni mensajes masivos
- Usa
markOnlineOnConnect: false(opción deBaileysProvider) - Respeta los límites de rate (el limiter integrado del provider)
- No respondas instantáneamente a todo (activa el indicador de escritura con
BotConfig.typing) - Considera la Cloud API oficial (
@botmesh/meta) para bots críticos — sin riesgo de baneo
¿Necesito TypeScript?
No. Todos los ejemplos funcionan en JavaScript plano — solo ten en cuenta que el paquete es solo ESM, así que tu proyecto necesita"type": "module" en el package.json (o un archivo .mjs)
independientemente de si usas TypeScript. TypeScript te da autocompletado y
type-checking, pero es opcional.
¿Por qué me sale ERR_REQUIRE_ESM o “require is not defined”?
Estás intentando hacer require('@botmesh/core') (o un paquete de
transporte) desde un archivo CommonJS. No hay build de CJS: cambia a
import (agrega "type": "module" a tu package.json, o usa la extensión
.mjs). Más errores de instalación (scripts de build de pnpm, módulos
nativos) en Solución de problemas.
¿Dónde está la API reference completa?
En la API Reference, generada con TypeDoc desde el código fuente y agrupada por tema (Bot, Messages & context, Flows, Store, Errors…). Cubre las tres entradas de@botmesh/core con garantía semver: la principal, /spi
(para autores de stores, backends y transportes) y /testing.
@botmesh/core/internal no se documenta a propósito: no tiene garantía semver.
Los paquetes de canal, store y plugins se documentan en su página de guía y en el
README de cada paquete en npm.
¿Sigues teniendo problemas?
- Solución de problemas: los errores frecuentes y cómo resolverlos
- Abre un issue en GitHub
- Revisa los ejemplos