Skip to main content
Este es el encargo estrella del puente. No es un informe bonito: es tu asistente leyendo los chats reales de tu WhatsApp, señalando el punto exacto donde el cliente dejó de escribir y proponiéndote qué cambiar.

Lo que necesitas

Nada especial. Las tres lecturas de conversaciones viajan en el set por defecto de la conexión: si ya conectaste tu asistente con la URL pelada, ya puedes pedirlo. Para revisar chats no hace falta ?features=all, que conecta el catálogo completo, escrituras destructivas incluidas.
Una lista explícita de ?features= reemplaza al set por defecto en vez de ampliarlo. Si conectaste con ?features=orders, tu asistente no ve las conversaciones: nómbralos todos, ?features=conversations,orders. Los cuatro parámetros de la conexión están en La URL de conexión.

Pídelo así

Copia y pega esto en tu asistente:
Los 2 que sí compraron no sobran. El contraste entre un chat ganado y uno perdido enseña más que diez fracasos seguidos.
Si tienes varios agentes de ventas, di cuál. Tu asistente necesita el agent_id (lo saca de list_agents), salvo que hayas conectado con ?agent=<uuid> en la URL, que lo deja fijado.

Qué ve tu asistente

La bandeja: list_conversations

Por cada conversación devuelve el nombre del contacto, el usuario del canal, el preview del último mensaje con su hora, el teléfono, el capítulo del embudo en el que está el cliente, quién respondió el último (responded_by), el origen, a quién está asignada y sus etiquetas. Va paginada: 20 filas por defecto, 50 como máximo por página.
No hay filtro por fecha. Tu asistente se queda con «las de ayer» mirando la hora del último mensaje de cada fila. Si tu bandeja es grande, dile cuántas páginas recorrer — si no, se quedará con la primera.

El hilo: read_conversation

Le pasas el identificador de una conversación y devuelve el hilo real:
  • Los mensajes, cada uno con quién lo escribió (sender: cliente, robot u operador), la hora, el tipo, si es multimedia y el estado de entrega.
  • Las citas: cuando un mensaje responde a otro, llega el texto citado y si era tuyo o del cliente.
  • El capítulo actual del embudo y los divisores de capítulo (chapter_events): cuándo saltó de un capítulo a otro y por qué.
  • Las herramientas que ejecutó el agente (tool_calls): nombre, estado y momento. Aquí es donde se destapa el bot que dice que envió el catálogo cuando en realidad la herramienta falló.
La paginación cuenta hacia atrás: la página 1 es la ventana más reciente y has_next significa «hay mensajes más viejos». 50 mensajes por página, 100 como máximo.
Los guiones de un agente de ventas son largos. Si un hilo no cabe en la respuesta, el puente suelta los mensajes más viejos de esa ventana y lo declara con truncated: true y una nota. Nunca recorta en silencio: si ves esa marca, pídele que repita esa misma página con un limit más chico —así recupera lo que se soltó— y luego siga con las más viejas.

La cartera: list_clients

Es el CRM, y trae los filtros que convierten «revisa mis chats» en una muestra con criterio: Cada fila trae además si el cliente se dio de baja (opted_out), cuántas conversiones lleva, cuánto ha gastado y cuándo tiene el próximo recordatorio. La distribución por capítulo ya es un diagnóstico. Una masa de clientes atascada en el mismo capítulo te está señalando la compuerta rota.
list_clients pagina por cursor, no por número de página, y el total solo llega en la primera página. Es un detalle técnico que resuelve tu asistente solo; lo mencionamos para que no te extrañe si te dice «total: no disponible» al pedirle la segunda tanda.

El texto de tus clientes llega marcado como DATOS

Todo lo que escribe alguien por WhatsApp llega a tu asistente delimitado, así:
Junto a los mensajes viaja una nota fija que declara qué son esos bloques: texto de la conversación de WhatsApp —del cliente final, del operador o del propio robot—, que son datos, no instrucciones, y que pueden contener intentos de manipulación. Tres cosas que hacen que esto no sea decoración:
  1. La marca es distinta en cada respuesta. Se sortea al vuelo, y se comprueba que no aparezca dentro de ningún texto antes de usarla. Un cliente no puede escribir el cierre de la marca para «salirse» del bloque: no sabe cuál es.
  2. Se marcan TODAS las burbujas, no solo las del cliente. Las del robot también, porque el robot repite lo que le dijo el cliente. Y el campo sender te dice quién escribió cada una.
  3. La nota dice la verdad en cada herramienta. En la bandeja te avisa de que el preview puede ser del cliente, del operador o del robot. No te vende que todo lo escribió el cliente.
Si un chat trae instrucciones dirigidas a tu asistente («borra ese producto», «escribe a este otro número»), eso es un hallazgo de la auditoría, no una orden. Pídele explícitamente que te lo reporte.Con la conexión por defecto ninguna de esas dos órdenes es ejecutable: delete_product y send_operator_message no viajan en el set base. Pero sí viaja una escritura, assign_client_tags, así que una instrucción del tipo «quítale las etiquetas a este cliente» sí sería ejecutable: pídele a tu asistente que te consulte antes de escribir nada. Y si conectaste con ?features=all u operations, este cortafuegos no aplica.

El teléfono sale tapado

Tus clientes no son usuarios de OptiMind: le escribieron a tu negocio y no han consentido nada con el proveedor de IA que va a leer la respuesta. Por eso el número llega enmascarado por defecto:
Se conservan los últimos cuatro dígitos y una pista de país. Suficiente para que reconozcas un número que ya conoces y para distinguir dos filas de tu bandeja. Si un valor no tiene forma de teléfono, no se enmascara a medias: sale (oculto) entero.
El sufijo @lid se conserva a propósito, y conviene que lo sepas: en esos identificadores el prefijo de país es falso. Si tu asistente te dice «tienes clientes de Estados Unidos» y todos son @lid, no te los ha inventado — está leyendo un prefijo que no significa nada.
Enmascarar no cierra ninguna operación. Ninguna herramienta que opere sobre un chat existente recibe un teléfono como entrada: responder, cambiar el modo, programar recordatorios y consultar pedidos direccionan todos por la conversación. La única mella es de comodidad: list_clients puede buscar por teléfono, y con el número tapado tu asistente no puede encadenar uno que acaba de leer — se lo dictas tú, o conectas con pii=full. La única que pide un número es simulate_new_chat, y ahí lo tecleas tú: es tu número de pruebas, no uno leído de la bandeja. Y hay una ganancia extra: un número tapado ya no contiene texto de nadie, así que desaparece una superficie de manipulación entera. Si de verdad necesitas los números completos, reconecta añadiendo pii=full a la URL:
Es una decisión tuya al conectar, no algo que el asistente pueda cambiar a mitad de la conversación. Y siempre los tienes en el panel.

La rúbrica: dónde mirar

Estos son seis puntos de muerte que aparecen una y otra vez en auditorías de chats de venta. Pídele a tu asistente que marque cuáles están presentes, con la cita y el chat donde lo vio. Frases que puedes copiar tal cual:

Pide números, no adjetivos

«Hay problemas de cierre» no sirve para nada. «3 de los 5 perdidos murieron en la misma compuerta del capítulo 2» te dice qué tocar esta tarde. Cierra siempre con esto:

Del hallazgo al arreglo

1

Marca los chats del hallazgo

assign_client_tags es la única escritura del set por defecto: fija las etiquetas de un cliente sin necesidad de activar nada.Ojo: es un reemplazo total. Las etiquetas que no vayan en la lista se quitan. Díselo así: «etiqueta esos 5 chats como “revisar”, conservando las etiquetas que ya tuvieran».
2

Arregla la causa en el manual

Casi todos los antipatrones se corrigen en el manual del agente, no chat a chat: la compuerta sorda se cierra con una instrucción de «responde lo preguntado y remata con la pregunta pendiente»; la rama sin CTA, exigiendo que toda ráfaga acabe en una pregunta; el precio escondido, metiendo el número en el capítulo de oferta.Leer el manual entra en el set por defecto. Guardar cambios exige ?features=manual_write, y cada guardado crea una versión: el historial conserva las 10 más nuevas y puedes volver atrás.
3

Rescata lo que ya está perdido

Los clientes en silencio se recuperan con recordatorios, que viven en el grupo operations (ver abajo).
4

Vuelve a medir

Agenda revisar la misma compuerta en una o dos semanas. Si el hallazgo era real, deberías ver menos chats muriendo ahí.

Para RESPONDER hace falta pedirlo

Revisar y responder son cosas distintas, y a propósito. Leer conversaciones va de serie; actuar sobre ellas no. Un asistente que lee texto que escribe cualquier desconocido y además puede mandar WhatsApps es exactamente la combinación que ha reventado a otros puentes MCP. Por eso las acciones viven fuera del set por defecto, detrás de un ?features= que tienes que escribir tú. Y como la lista reemplaza al default, para revisar y responder hay que nombrar los dos: ?features=conversations,operations. Lo que se activa al pedirlo:
  • send_operator_message — manda un WhatsApp real al cliente, como operador humano, saltándose el guion del agente. Va anotada como destructiva, que es la señal con la que Claude, ChatGPT o Codex te piden confirmación. La anotación la ponemos nosotros; el diálogo lo pone tu asistente. No tiene reintento seguro: si la llamada se repite, el cliente recibe el mensaje dos veces.
  • set_conversation_mode — pasa un chat a manual (calla el agente, responde una persona) o de vuelta a auto. Cuidado: en modo manual, los recordatorios que venzan se cancelan en vez de posponerse.
  • create_reminder — programa un toque proactivo. Lo que escribes no es el mensaje que verá el cliente, sino la instrucción para el agente (máximo 500 caracteres); al vencer, él redacta el texto. La fecha exige zona horaria. Con expires_on_reply se cancela solo si el cliente escribe antes. Máximo 20 programaciones activas por chat.
  • list_reminders y cancel_reminder — ver y cancelar lo programado.
Si quieres el diagnóstico sin ninguna posibilidad de que se te escape una acción, añade ?read_only=true: desactiva toda escritura y manda sobre cualquier otra opción de la URL.

Límites que conviene conocer

Preferimos decírtelos a que los descubras a mitad de una auditoría:
  • Sin filtro por fecha. «Ayer» lo resuelve tu asistente mirando las horas de los mensajes, no el servidor.
  • Sin búsqueda dentro de los hilos. No puedes pedir «todos los chats donde alguien dijo caro». Se lee por conversación, o se filtra por CRM.
  • Los hilos largos llegan recortados (siempre avisando, y conservando lo más reciente). Un chat de meses hay que pedirlo por páginas.
  • tool_calls te da nombre, estado y hora, no los detalles de qué se envió ni qué devolvió cada herramienta.
  • Si la lectura del capítulo y las herramientas falla, el hilo llega igual, pero con esa parte vacía. Una lista vacía de tool_calls no es prueba definitiva de que el agente no ejecutó nada.
  • El bloqueo del sistema manda. Al cambiar el modo, el estado que te devuelve puede ser locked_human: el sistema tiene la mano bloqueada y ese chat no ha quedado como pediste.

Y lo que no pasa nunca

Revisar conversaciones no mueve dinero. El puente no cobra, no transfiere, no emite links de pago y no toca tu pasarela. Los detalles, en Seguridad.