El caso completo

Cómo funciona por dentro

La misma reserva, vista desde adentro de la máquina.

Un chatbot y un agente se ven igual desde el teléfono del cliente: dos burbujas de texto. La diferencia está atrás, y como no se ve, casi nadie la cobra. Esto es esa parte: los agentes por los que pasa un mensaje, el modelo que se enciende según lo que hay en juego, y las herramientas que escriben en la base de datos de un negocio que está operando.

Léase antes de creer nada

El diálogo está reconstruido: no es la conversación de un cliente real, y no la voy a publicar. Todo lo demás —los agentes, los modelos, los nombres de las 36 herramientas, las tablas donde escribe y las plantillas aprobadas— está leído del código que corre en producción. Si querés verificar la parte que sí se puede verificar, el número de WhatsApp está más abajo.

23:47

01 / 12
ClienteWhatsApp Cloud APIOrquestadorwebhook entranteRecepcionistaDeepSeekToursSonnet 4.6EventosSonnet 4.6TransaccionalHaiku 4.5RR. HH.DeepSeekUna personahandoff36 herramientasagents/tools/Supabasereservas · lealtad

Entra el mensaje

«¿Tienen mesa para 6 mañana a las 8?». Meta dispara el webhook, Chatwoot lo registra en la bandeja y el orquestador recibe el payload ya validado. Nadie del equipo está despierto.

POST /webhook · conversation_id=8841
→ carga los últimos mensajes del historial de Chatwoot

src/lib/agents/orchestrator.ts

El catálogo

36 herramientas, y ninguna es «responder».

Una herramienta es una función que el modelo puede ejecutar contra el negocio de verdad. Es la línea entre informar y operar: un chatbot te dice el horario, un agente te aparta la mesa. Están agrupadas por lo que hacen; el archivo de cada grupo va al lado, porque estos nombres se pueden contrastar contra el repositorio.

Ruteo y traspaso

05

Decidir qué agente atiende, y cuándo dejar de atender.

  • route_to_transaccional
  • route_to_tours_specialist
  • route_to_eventos_specialist
  • back_to_recepcionista
  • handoff_to_human

routing.ts · handoff.ts

Reservas

02

Apartar, mover y cancelar mesas en la base del restaurante.

  • crear_reserva
  • modify_reservation

reserva.ts · modify-reservation.ts

Cobro y tienda

03

Cobrar dentro de la conversación, sin sacar al cliente del chat.

  • generate_payment_link
  • list_store_products
  • create_store_checkout

payment-link.ts · tienda.ts

Lealtad

03

Consultar sellos, emitir la tarjeta y acreditar leyendo el recibo.

  • lealtad_consultar
  • lealtad_crear_tarjeta
  • lealtad_acreditar_recibo

lealtad.ts

Conocimiento

06

Saber qué dice la carta, la sede y el sitio — sin reentrenar nada.

  • search_knowledge
  • get_carta
  • get_sucursal_info
  • list_eventos
  • fetch_ecosystem_page
  • send_photos

search-knowledge.ts · carta.ts · sucursal-info.ts · eventos.ts · fetch-page.ts · send-photos.ts

Memoria del cliente

05

Recordar quién es cada quien — y olvidarlo si lo pide.

  • remember_customer
  • forget_customer
  • get_customer_profile
  • save_sucursal_context
  • get_conversation_context

customer-memory.ts · customer-profile.ts · sucursal-context.ts

Leads

02

Guardar lo que hay que responder mañana con una persona.

  • save_event_lead
  • save_hr_application

event-lead.ts · hr-application.ts

Ecosistema

04

Vender tours de la empresa hermana desde el chat del restaurante.

  • search_atiexg_tours
  • save_atiexg_tour_lead
  • save_atiexg_event_lead
  • create_atiexg_reservation_link

atiexg-tours.ts

Copiloto del equipo

06

Las que usa el personal, no el cliente: buscar, leer y escribir por dentro.

  • buscar_conversacion
  • leer_conversacion
  • enviar_mensaje
  • enfocar_cliente
  • buscar_reservas
  • editar_reserva

staff-copilot.ts

La regla que nadie te cuenta

Después de 24 horas, WhatsApp te cierra la puerta.

Meta solo deja escribir libremente durante 24 horas contadas desde el último mensaje del cliente. Pasado ese plazo, la única forma de tocar ese teléfono es una plantilla redactada y aprobada por Meta con anticipación.

Por eso un recordatorio de reserva, un aviso de pago o un «tu pedido ya está listo» no se improvisan: o estaban escritos y aprobados antes, o el sistema se queda mudo justo cuando más servía. Es tramitación, no código, y es de las cosas que más tiempo cuestan al arrancar.

Estas son las 9 que el agente de Atitlán invoca hoy.

  • 01reserva_confirmadaAl apartar la mesa, con los datos y la sede.
  • 02reserva_confirmada_v2La misma, con el formato nuevo de Meta.
  • 03recordatorio_reservaEl día de la reserva, antes de que se olvide.
  • 04seguimiento_consultaCuando una consulta quedó abierta y nadie volvió.
  • 05pedido_listoEl pedido de tienda está listo para recoger.
  • 06pedido_enviadoEl pedido salió a domicilio.
  • 07pago_confirmadoEntró el pago; el cliente se entera en el chat.
  • 08codigo_verificacionPara verificar identidad en lealtad.
  • 09cumpleanos_clubCumpleaños de un miembro del club.

Atendiendo ahora mismo

No te voy a hacer una demostración. Probá el que está en producción.

Este es el número de mis restaurantes. El mismo agente atiende escribiendo y hablando, con clientes reales de cuatro sedes. Hacele las preguntas difíciles e intentá romperlo antes de contratarme.

Es un negocio operando, no un entorno de prueba: si pedís una mesa, se aparta de verdad. Avisale que venías probando y listo.

+502 2268 1264

Tres que sí resuelve

  • Pedile una mesa para el sábado en la noche
  • Preguntale qué tiene la carta hoy
  • Preguntale a qué hora abren en San Juan