> ## Documentation Index
> Fetch the complete documentation index at: https://botmesh.afaya.com.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Ejemplos

Bots completos para copiar, ejecutar y adaptar. Casi todos los ejemplos son un único
archivo `bot.js` que muestra un conjunto de funciones de botmesh, con una
transcripción capturada de una ejecución real y enlaces a la guía de cada
función que usa. Un test ejecuta el código de cada ejemplo y comprueba su
transcripción, así que lo que lees es lo que obtienes.

## Ejecutar cualquier ejemplo

1. Prepara un proyecto una vez, como en
   [Inicio rápido](https://botmesh.afaya.com.co/es/guide/getting-started.md#requisitos) (Node.js 22.12+,
   `"type": "module"`, `npm install @botmesh/core @botmesh/baileys`).

2. Guarda el código del ejemplo como `bot.js`.

3. Chatea con él en la terminal, sin teléfono:

   ```bash theme={null}
   npx botmesh dev bot.js
   ```

4. Conéctalo de verdad con `node bot.js` (un QR para WhatsApp), o cambia el
   provider para [Telegram](https://botmesh.afaya.com.co/es/guide/getting-started.md#o-conectar-telegram). El código
   del bot no cambia entre canales.

## Principiante

| Ejemplo | Nivel | Etiquetas | Funciones | Qué vas a construir |
| - | - | - | - | - |
| [Bot de saludo](https://botmesh.afaya.com.co/es/examples/greeting-bot.md) | Principiante | Comandos | `WELCOME`, triggers de texto y regex, `ctx.pass()`, comandos slash, catch-all | Un bot que da la bienvenida una vez, saluda, repite y lista sus comandos |
| [Bot de FAQ](https://botmesh.afaya.com.co/es/examples/faq-bot.md) | Principiante | Triggers | Coincidencia normalizada, listas, `contains`, regex, precedencia | Respuestas por palabra clave a preguntas frecuentes, con fallback |
| [Enviar mensajes](https://botmesh.afaya.com.co/es/examples/messages.md) | Principiante | Triggers | Formas de trigger, `ctx.quote()`, `ctx.react()`, datos del remitente | Todas las formas de responder a un texto |
| [Bot de menú](https://botmesh.afaya.com.co/es/examples/menu-bot.md) | Principiante | Flujos, Botones | `flow().choose()`, sub-flujos `then`, `bot.conversation()`, botones por canal | El menú de una pizzería que funciona en todos los canales |
| [Bot de encuestas](https://botmesh.afaya.com.co/es/examples/poll-bot.md) | Principiante | Encuestas, Reacciones | `ctx.poll()`, `bot.on('poll')`, `bot.send()`, `ctx.react()` | Encuestas nativas respondidas con el recuento en vivo |
| [Respuestas con media](https://botmesh.afaya.com.co/es/examples/media.md) | Principiante | Media | Foto, archivo, video, voz, sticker, ubicación, contacto; `bot.onType()`, `loadMediaOf()` | Un bot que envía cada tipo de media y reacciona a imágenes |
| [Bot de recordatorios](https://botmesh.afaya.com.co/es/examples/reminders.md) | Principiante | Scheduler | `bot.delay()`, `bot.schedule()` con zona horaria, `task.cancel()`, `bot.send()` | Recordatorios puntuales y un consejo diario a las 9:00 |
| [Flujo de registro](https://botmesh.afaya.com.co/es/examples/registration-flow.md) | Principiante | Flujos, Formularios | `.ask()` con `validate`, `.do()`, `c.state`, `.timeout()`, `/cancel` | Un alta validada que guarda al usuario |

## Intermedio

| Ejemplo | Nivel | Etiquetas | Funciones | Qué vas a construir |
| - | - | - | - | - |
| [Flujo de compra](https://botmesh.afaya.com.co/es/examples/shopping-flow.md) | Intermedio | Flujos | `.choose()`, sub-flujos `then`, `goto`, estado calculado, timeouts | Una tienda pequeña con cantidad, confirmación y dirección |
| [Soporte con timeout](https://botmesh.afaya.com.co/es/examples/support-flow.md) | Intermedio | Conversaciones | `bot.conversation()`, `c.waitText()`, `c.choose()`, `ConversationTimeout`, `ConversationCancelled` | Un servicio de soporte que abre tickets y maneja sesiones abandonadas |
| [Plugin: rate limiter](https://botmesh.afaya.com.co/es/examples/rate-limiter.md) | Intermedio | Plugins, Hooks | `definePlugin()`, `before('message')`, `abort()`, `onDispose()` | Un plugin reutilizable que limita los mensajes por usuario |
| [Reserva de citas](https://botmesh.afaya.com.co/es/examples/appointment-booking.md) | Intermedio | WhatsApp, Formularios, SQLite | `.persistent()`, `.form()`, `validate` + `maxAttempts`, `SQLiteStore`, `ctx.user` | Un flujo de reservas que valida, confirma y se retoma tras un reinicio |
| [Seguimiento de pedidos](https://botmesh.afaya.com.co/es/examples/order-tracking.md) | Intermedio | WhatsApp, Datos de usuario | namespaces de `ctx.user`, `bot.conversation()`, `MemoryStore` con archivo | Consultas de pedidos que recuerdan lo que sigue cada usuario |
| [Handoff humano](https://botmesh.afaya.com.co/es/examples/human-handoff.md) | Intermedio | WhatsApp, Soporte | `ctx.handoff()`, `bot.resume()`, eventos de handoff, comandos de agente, `bot.delay()` | Un bot de soporte que pasa chats a agentes y los recupera |
| [Bot multi-idioma](https://botmesh.afaya.com.co/es/examples/multi-language.md) | Intermedio | WhatsApp, Telegram, i18n | `bot.locale()`, `ctx.t()`, `detect`, `ctx.setLang()`, plurales | Un bot que responde a cada usuario en español o en inglés |
| [Bot de grupo](https://botmesh.afaya.com.co/es/examples/group-bot.md) | Intermedio | WhatsApp, Telegram, Grupos | conversaciones por participante, `scope`, menciones, `groupMode`, comandos solo para admins | Un quiz de grupo con marcador y comandos de administración |
| [WhatsApp y Telegram a la vez](https://botmesh.afaya.com.co/es/examples/whatsapp-and-telegram.md) | Intermedio | WhatsApp, Telegram, SQLite | `defineBot`, dos providers, espacios de nombres del store, ids estables | Un archivo de bot que atiende dos canales desde un proceso |

## IA

Usan [`@botmesh/ai`](https://botmesh.afaya.com.co/es/guide/ai) con Anthropic por defecto; cada página muestra cómo cambiar a OpenAI, Gemini o un modelo local de Ollama. La API key siempre sale de una variable de entorno.

| Ejemplo | Nivel | Etiquetas | Funcionalidades | Qué hace |
| - | - | - | - | - |
| [Asistente de preguntas frecuentes con IA](https://botmesh.afaya.com.co/es/examples/ai-faq.md) | Principiante | IA, Límites | autoresponder, persona, triggers de función, `/reset` | Responde dudas de una tienda con un LLM, rechaza lo que no es del tema y deja las respuestas fijas fuera del modelo. |
| [Asistente de citas con IA](https://botmesh.afaya.com.co/es/examples/ai-tools-booking.md) | Intermedio | IA, Herramientas | tool calling, `confirm: true`, `confirmLines`, `dedupe`, `enum` | Reserva, lista y cancela citas con tus funciones, con una confirmación antes de cada cambio. |
| [IA con tus preguntas frecuentes](https://botmesh.afaya.com.co/es/examples/ai-rag.md) | Intermedio | IA, RAG | retriever de `rag`, `appendSources`, `warmup()` | Responde a partir de un FAQ en Markdown, cita la sección que usó y admite lo que no sabe. |
| [Respuestas de IA en streaming](https://botmesh.afaya.com.co/es/examples/ai-streaming.md) | Intermedio | IA, Streaming, Telegram | `stream`, borradores / ediciones / trozos, coste y latencia | Muestra la respuesta mientras el modelo la escribe, ajustada para coste y latencia. |
| [Enrutador con IA](https://botmesh.afaya.com.co/es/examples/ai-router.md) | Avanzado | IA, Flujos | `generate()`, `replyInChat()`, flujos, `bot.trigger()` | Clasifica el texto libre con el modelo, lleva los pagos a flujos deterministas y deja la charla a la IA. |
| [IA con escalado a humano](https://botmesh.afaya.com.co/es/examples/ai-handoff.md) | Avanzado | IA, Herramientas, Handoff | tool calling, `ctx.handoff()`, `bot.resume()`, comandos de escape | Pasa el chat a una persona con un resumen para el agente y lo recupera con `/bot`. |

## Avanzado

| Ejemplo | Nivel | Etiquetas | Funcionalidades | Qué construyes |
| - | - | - | - | - |
| [Servidor de webhooks para la Cloud API](https://botmesh.afaya.com.co/es/examples/cloud-api-webhook.md) | Avanzado | WhatsApp, Cloud API, Webhooks, Seguridad | Webhooks de `@botmesh/meta`, firmas sobre el body crudo, ventana de 24 h, plantillas | Un servidor `node:http` para la Cloud API oficial, con plantilla de respaldo |
| [Bot listo para producción](https://botmesh.afaya.com.co/es/examples/production-bot.md) | Avanzado | Producción, Docker, SQLite, Durabilidad | `SQLiteStore`, durabilidad, flujos persistentes, salud y métricas, apagado ordenado, logs | Un bot de soporte empaquetado como proyecto pequeño con Dockerfile |
| [Resumen diario programado](https://botmesh.afaya.com.co/es/examples/daily-digest.md) | Avanzado | Scheduler, Broadcast, Zonas horarias | Scheduler durable, zonas horarias, `bot.broadcast`, altas y bajas con `ctx.user` | Un resumen a las 08:00 en la zona horaria del bot, una vez al día aunque haya reinicios |
| [Probar tu bot](https://botmesh.afaya.com.co/es/examples/testing-your-bot.md) | Avanzado | Testing, Vitest, Transcripciones doradas | `createTestBot`, `expectReply`, transcripciones doradas, reproducción | Un archivo de Vitest completo que graba y reproduce una conversación |
| [Crear un plugin: FAQ con herramientas](https://botmesh.afaya.com.co/es/examples/faq-plugin.md) | Avanzado | Plugins, Inyección de dependencias | `definePlugin`, `install`/`uninstall`, `ctx.onDispose`, `provide` | Un plugin de FAQ reutilizable que comparte sus contadores como herramienta |

## Cobertura de funcionalidades

Qué ejemplos muestran cada funcionalidad principal. Todos los ejemplos corren
también en el [simulador de la terminal](https://botmesh.afaya.com.co/es/guide/dev-simulator.md) y, salvo el
servidor de webhooks de la Cloud API, en WhatsApp (Baileys) y Telegram con el
mismo código del bot.

| Funcionalidad | Ejemplos |
| - | - |
| Flujos (DSL `flow()`) | [Flujo de registro](https://botmesh.afaya.com.co/es/examples/registration-flow.md), [Bot de menú](https://botmesh.afaya.com.co/es/examples/menu-bot.md), [Flujo de compra](https://botmesh.afaya.com.co/es/examples/shopping-flow.md), [Reserva de citas](https://botmesh.afaya.com.co/es/examples/appointment-booking.md), [Enrutador con IA](https://botmesh.afaya.com.co/es/examples/ai-router.md), [Probar tu bot](https://botmesh.afaya.com.co/es/examples/testing-your-bot.md), [Webhooks de la Cloud API](https://botmesh.afaya.com.co/es/examples/cloud-api-webhook.md) |
| Preguntas, menús y formularios (`ask`, `choose`, `form`) | [Flujo de registro](https://botmesh.afaya.com.co/es/examples/registration-flow.md), [Bot de menú](https://botmesh.afaya.com.co/es/examples/menu-bot.md), [Flujo de compra](https://botmesh.afaya.com.co/es/examples/shopping-flow.md), [Soporte con timeout](https://botmesh.afaya.com.co/es/examples/support-flow.md), [Reserva de citas](https://botmesh.afaya.com.co/es/examples/appointment-booking.md), [Seguimiento de pedidos](https://botmesh.afaya.com.co/es/examples/order-tracking.md) |
| Triggers y comandos | [Bot de saludo](https://botmesh.afaya.com.co/es/examples/greeting-bot.md), [Bot de FAQ](https://botmesh.afaya.com.co/es/examples/faq-bot.md), [Enviar mensajes](https://botmesh.afaya.com.co/es/examples/messages.md), [Bot de grupo](https://botmesh.afaya.com.co/es/examples/group-bot.md), [Plugin de FAQ](https://botmesh.afaya.com.co/es/examples/faq-plugin.md) |
| Media (enviar y recibir) | [Respuestas con media](https://botmesh.afaya.com.co/es/examples/media.md) |
| Encuestas | [Bot de encuestas](https://botmesh.afaya.com.co/es/examples/poll-bot.md) |
| Botones | [Bot de menú](https://botmesh.afaya.com.co/es/examples/menu-bot.md), [Asistente de citas con IA](https://botmesh.afaya.com.co/es/examples/ai-tools-booking.md) |
| Hooks | [Rate limiter](https://botmesh.afaya.com.co/es/examples/rate-limiter.md), [Bot multi-idioma](https://botmesh.afaya.com.co/es/examples/multi-language.md) |
| Plugins | [Rate limiter](https://botmesh.afaya.com.co/es/examples/rate-limiter.md), [Plugin de FAQ](https://botmesh.afaya.com.co/es/examples/faq-plugin.md) |
| i18n | [Bot multi-idioma](https://botmesh.afaya.com.co/es/examples/multi-language.md) |
| Datos de usuario (`ctx.user`) | [Seguimiento de pedidos](https://botmesh.afaya.com.co/es/examples/order-tracking.md), [Reserva de citas](https://botmesh.afaya.com.co/es/examples/appointment-booking.md), [Resumen diario](https://botmesh.afaya.com.co/es/examples/daily-digest.md), [WhatsApp y Telegram](https://botmesh.afaya.com.co/es/examples/whatsapp-and-telegram.md) |
| Handoff humano | [Handoff humano](https://botmesh.afaya.com.co/es/examples/human-handoff.md), [IA con escalado a humano](https://botmesh.afaya.com.co/es/examples/ai-handoff.md) |
| Grupos | [Bot de grupo](https://botmesh.afaya.com.co/es/examples/group-bot.md) |
| Scheduler | [Bot de recordatorios](https://botmesh.afaya.com.co/es/examples/reminders.md), [Resumen diario](https://botmesh.afaya.com.co/es/examples/daily-digest.md), [Handoff humano](https://botmesh.afaya.com.co/es/examples/human-handoff.md) |
| Broadcast | [Resumen diario](https://botmesh.afaya.com.co/es/examples/daily-digest.md) |
| Stores | [Reserva de citas](https://botmesh.afaya.com.co/es/examples/appointment-booking.md), [Seguimiento de pedidos](https://botmesh.afaya.com.co/es/examples/order-tracking.md), [WhatsApp y Telegram](https://botmesh.afaya.com.co/es/examples/whatsapp-and-telegram.md), [Bot listo para producción](https://botmesh.afaya.com.co/es/examples/production-bot.md), [Resumen diario](https://botmesh.afaya.com.co/es/examples/daily-digest.md) |
| Durabilidad | [Bot listo para producción](https://botmesh.afaya.com.co/es/examples/production-bot.md) |
| Multicanal (un bot, varios providers) | [WhatsApp y Telegram](https://botmesh.afaya.com.co/es/examples/whatsapp-and-telegram.md) |
| Webhooks y WhatsApp Cloud API | [Webhooks de la Cloud API](https://botmesh.afaya.com.co/es/examples/cloud-api-webhook.md) |
| Telegram | [WhatsApp y Telegram](https://botmesh.afaya.com.co/es/examples/whatsapp-and-telegram.md), [IA en streaming](https://botmesh.afaya.com.co/es/examples/ai-streaming.md), [Bot de grupo](https://botmesh.afaya.com.co/es/examples/group-bot.md), [Bot multi-idioma](https://botmesh.afaya.com.co/es/examples/multi-language.md) |
| Chat con IA | [Asistente de FAQ con IA](https://botmesh.afaya.com.co/es/examples/ai-faq.md), [IA con tus preguntas frecuentes](https://botmesh.afaya.com.co/es/examples/ai-rag.md), [Enrutador con IA](https://botmesh.afaya.com.co/es/examples/ai-router.md) |
| Herramientas de IA con confirmación | [Asistente de citas con IA](https://botmesh.afaya.com.co/es/examples/ai-tools-booking.md), [IA con escalado a humano](https://botmesh.afaya.com.co/es/examples/ai-handoff.md) |
| Historial de IA y RAG | [IA con tus preguntas frecuentes](https://botmesh.afaya.com.co/es/examples/ai-rag.md), [Asistente de FAQ con IA](https://botmesh.afaya.com.co/es/examples/ai-faq.md), [Enrutador con IA](https://botmesh.afaya.com.co/es/examples/ai-router.md) |
| Streaming de IA | [IA en streaming](https://botmesh.afaya.com.co/es/examples/ai-streaming.md) |
| Testing | [Probar tu bot](https://botmesh.afaya.com.co/es/examples/testing-your-bot.md), [IA en streaming](https://botmesh.afaya.com.co/es/examples/ai-streaming.md) |
| Simulador en la terminal (`npx botmesh dev`) | [Bot de saludo](https://botmesh.afaya.com.co/es/examples/greeting-bot.md), [Bot de encuestas](https://botmesh.afaya.com.co/es/examples/poll-bot.md), [Probar tu bot](https://botmesh.afaya.com.co/es/examples/testing-your-bot.md) |

Salvo el servidor de webhooks de la Cloud API, el código de cada ejemplo es
el mismo en WhatsApp (Baileys) y Telegram: solo cambia el provider. Cuando un canal muestra algo distinto (botones,
stickers), la página del ejemplo lo dice, y la
[matriz de capacidades](https://botmesh.afaya.com.co/es/guide/channels.md#matriz-de-capacidades) da los
detalles.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.