Skip to main content
Nivel: Principiante · Etiquetas: WhatsApp, Telegram, Triggers Funciones que muestra: triggers de texto con coincidencia normalizada · listas de palabras clave · coincidencia contains · triggers regex · precedencia de triggers · catch-all

Requisitos previos

Node.js 22.12 o superior y una carpeta con "type": "module" (ver Inicio rápido). Después instala:

El bot completo

Transcripción de ejemplo

Capturada con npx botmesh dev bot.js:

Cómo funciona

  • Igualdad normalizada. Un trigger de texto coincide con el mensaje completo tras pasarlo a minúsculas, quitar tildes y colapsar espacios, así que “HORÁRIO” coincide con horario (y “dónde están” con donde estan), pero “horario por favor” no: cae en el catch-all. Así las palabras cortas no se disparan dentro de frases que no tienen que ver.
  • La puntuación cuenta. “¿Dónde están?” no es “donde estan”, así que lo responde el catch-all. Añade la variante a la lista ('¿donde estan?') o usa una regex como /^¿?d[oó]nde est[aá]n\??$/i si tus usuarios la escriben.
  • Listas. bot.when(['horario', 'horarios'], ...) coincide con cualquier entrada; el bucle registra un handler por entrada de la FAQ.
  • contains. { pattern: 'domicilio', match: 'contains' } coincide con la palabra en cualquier parte; también existen startsWith y endsWith.
  • Regex. /#\d{4,}/ encuentra un número de pedido en cualquier frase.
  • Precedencia. Si varios triggers coinciden, gana el más específico: texto exacto, después startsWith, endsWith, regex, contains y, al final, el catch-all.

Ejecutarlo en WhatsApp o Telegram

node bot.js muestra un QR: escanéalo en WhatsApp → Dispositivos vinculados. Para Telegram, instala @botmesh/telegram y cambia el provider como se muestra en O conectar Telegram; la factory no cambia.

Siguientes pasos