Guía para atender por WhatsApp
¿Cómo no perder clientes por demora en la respuesta de WhatsApp?
Reduce la demora con una bandeja única, debounce para agrupar mensajes, reglas de elegibilidad y toma humana; Bia organiza y registra la conversación, pero no promete respuesta instantánea ni disponibilidad continua del proveedor.
Una clienta que pregunta precio, horario o condición de un tratamiento no ve la cola, el proveedor ni el panel de la clínica. Solo nota si alguien entendió el mensaje y respondió con seguridad. Bia reúne la conversación real de WhatsApp, espera una secuencia corta de mensajes antes de llamar a la IA, revisa si la respuesta todavía puede enviarse y deja que el equipo tome el control cuando hace falta criterio. Esta guía convierte esos comportamientos reales en una rutina. No inventa SLA, no garantiza que el proveedor esté disponible y no convierte la demora en un número de conversión sin datos.
- Una bandeja para conversaciones, archivos, contactos y estados de entrega
- Debounce por conversación para agrupar mensajes antes de responder con IA
- Cola Redis/BullMQ o fallback en memoria cuando Redis no está disponible
- Gates de conversación abierta, opt-out, bloqueo y modo de IA antes del envío
- Toma humana auditada y devolución explícita a la IA
- Estados de envío y fallo visibles sin promesa de respuesta instantánea
1. Mide la espera que la clienta realmente siente
Empieza separando tres momentos: el mensaje llega a WhatsApp, la conversación entra en la bandeja y el proveedor acepta una respuesta. Pueden ocurrir en momentos diferentes. La pantalla muestra la hora del último mensaje y actualiza la lista por polling y eventos en tiempo real, pero ese reloj no es una promesa de atención. Antes de comparar semanas, elige intervalo, zona horaria y qué cuenta como primera respuesta.
Una pregunta de precio, una confirmación de cita y una queja no tienen el mismo riesgo. La secretaria con IA puede tratar mensajes repetitivos, mientras el código reconoce pedidos de atención humana y crea un aviso persistente cuando alguien debe intervenir. La demora aceptable es una regla operativa de la clínica, no una frase de marketing copiada de otro sistema.
Crea una línea de base con conversaciones reales: cuándo llegó el mensaje, cuándo respondió la IA, cuándo tomó el control el equipo y cuándo se cerró. No cuentes que alguien está conectado como respuesta entregada. El producto conserva historial y estados; no ofrece un porcentaje universal de satisfacción ni prueba que la clienta leyó.
- Define primera respuesta, período, zona y denominador.
- Separa demora del proveedor de demora de la decisión humana.
- Usa datos de la clínica antes de elegir una meta.
2. Haz de la bandeja la fuente única de la conversación
La bandeja lista hasta cincuenta conversaciones ordenadas por el mensaje más reciente y muestra nombre, teléfono, vista previa, no leídos y modo actual de la IA. Al abrir un chat carga los últimos mensajes, limpia el contador de no leídos y mantiene la selección mientras llegan actualizaciones. Así recepción no busca a la misma clienta en el teléfono personal, una hoja de cálculo y otra pestaña.
Los mensajes de texto, audio, imagen, vídeo, documento, ubicación, reacción y contacto tienen su propia visualización. El historial distingue clienta, IA, equipo y mensajes enviados desde el teléfono de la propietaria, además de los estados de entrega. Un archivo que no se puede cargar aparece como error localizado; no debe sustituirse por una respuesta inventada para que la lista parezca completa.
La bandeja es un área autenticada y muestra conversaciones reales cuando WhatsApp está conectado. En modo demo queda desactivada, y una cuenta sin chats muestra un estado vacío. No confundas una pantalla de prueba con una cola comercial ni prometas que una página pública hará triage sin una conexión autorizada.
- Abre la conversación en la bandeja antes de responder fuera.
- Usa vista previa, no leídos, archivos y entrega para reconstruir contexto.
- El modo demo sin WhatsApp no es una cola de clientes.
3. Deja que el debounce agrupe mensajes de la misma persona
Las clientas suelen enviar varios mensajes cortos: nombre del tratamiento, foto, hora y pregunta. El motor no dispara una respuesta aislada por cada burbuja. Después de recibir un mensaje, `scheduleAiReply` lee la configuración de debounce y programa el procesamiento; el valor predeterminado es treinta segundos y el techo configurable es de trescientos. Un mensaje nuevo en la misma conversación elimina el trabajo anterior y reinicia la ventana.
En producción, la cola `nl-ai-reply` usa BullMQ sobre Redis cuando la conexión está disponible. El worker procesa hasta cinco trabajos en paralelo y los jobs tienen un identificador determinista por conversación. Si Redis no está disponible, el servicio avisa y usa un temporizador en memoria. Ese fallback ayuda en desarrollo y continuidad controlada, pero no promete durabilidad después de reiniciar el proceso.
Elige una ventana que la clínica pueda vigilar. Un debounce corto puede responder antes de que la clienta termine de explicar; uno largo puede parecer silencio. Compáralo con horario, volumen de mensajes y capacidad de takeover. No llames instantánea a una rutina que espera contexto de forma deliberada.
- Los mensajes nuevos reinician el debounce de esa conversación.
- El valor predeterminado es 30 segundos; el techo del código es 300.
- Redis y el fallback en memoria tienen garantías distintas.
4. Configura la IA desde una fuente que el equipo pueda revisar
La respuesta nace de la configuración publicada de la secretaria y del historial reciente. La clínica puede probar una versión, publicarla después de revisarla, pausarla y volver a una configuración anterior. Idioma, catálogo, reglas de agenda e instrucciones de seguridad forman el contexto del agente; si falta un dato, la respuesta debe pedir confirmación y no rellenar el hueco con precio o disponibilidad.
El agente puede responder, no responder, cerrar o pedir atención humana. Si una herramienta de agenda falla o un cambio no se confirma, el flujo usa un fallback y deja la decisión a la responsable. Quejas y señales adversas también generan un aviso persistente. La velocidad no debe comprarse con una promesa clínica o comercial sin revisar.
Revisa lo que sabe la IA antes de diagnosticar un problema de tiempo. Catálogo activo, políticas, zona horaria e instancia conectada tienen que reflejar la operación de hoy. Publicar una versión no hace más rápido al proveedor, y una instrucción larga no sustituye un gate de envío. La mejor configuración permite reconocer un límite y tomar el control sin empezar de nuevo.
- Publica solo una configuración revisada por la clínica.
- Un dato ausente debe pedir confirmación, no inventar precio.
- Fallback y handoff conservan el contexto para el equipo.
5. Comprueba los gates antes de que salga una respuesta
El worker hace una comprobación inicial: la conversación debe existir, estar abierta y tener la IA activa; la clienta debe existir y no tener opt-out ni bloqueo. Justo antes de cada burbuja, `finalSendEligibility` consulta de nuevo el estado, la lista de supresión y los mismos criterios. Si el equipo tomó el control mientras la IA preparaba el texto, el envío se bloquea con `human_takeover`.
El gate de plataforma también puede detener la respuesta por clínica suspendida, kill switch o límite de presupuesto. Una instancia ausente, proveedor desconectado o fallo de salud no debe esconderse con un mensaje optimista. El camino seguro registra el estado, avisa al equipo y no reintenta a ciegas un envío ambiguo.
Estas comprobaciones pueden parecer lentas frente a un envío directo, pero protegen a la clienta y a la clínica. Opt-out, bloqueo y conversación cerrada tienen prioridad sobre la velocidad. La automatización de marketing usa la misma disciplina de colas, horarios y límites: la bandeja no es una herramienta de envíos masivos.
- Una conversación abierta y la IA activa son requisitos de cada respuesta.
- Opt-out, bloqueo y supresión impiden enviar.
- Una respuesta preparada puede descartarse si cambia el estado.
6. Toma el control cuando la situación necesita una persona
El equipo no debe esperar a que termine la IA. El control de takeover cambia la conversación a `paused_takeover`, registra quién la tomó, escribe auditoría y emite un evento de inicio. La lista muestra que la IA está pausada y, cuando es posible, quién atiende. Otra persona no debe competir sin saberlo: el servidor aplica el vínculo e informa de que ya existe un takeover.
El handoff también puede originarse en el agente. Una queja, reacción adversa, pregunta sensible o tarea incompleta crea un aviso humano ligado a la conversación. Recepción abre el historial, lee el motivo y responde en contexto. En ese momento, la velocidad útil es evitar que la clienta repita todo, no mantener al bot hablando mientras alguien decide.
El takeover no borra mensajes ni cierra la conversación. Pausa la IA y conserva historial, archivos, contacto y estados de entrega. La responsable puede escribir, registrar la decisión y devolver el chat cuando esté listo para la automatización. Si la clínica no quiere que la IA vuelva, deja la conversación pausada y la trata como trabajo humano.
- Takeover pausa la IA e identifica a la persona responsable.
- Handoff crea un aviso persistente sin borrar el historial.
- El equipo no debe responder encima de quien ya tomó el control.
7. Responde y devuelve la conversación sin duplicar mensajes
Cuando el equipo usa el compositor de la bandeja, el servidor envía texto ligado a la conversación y al tenant. Reserva el envío antes de contactar con WhatsApp, usa `clientMessageId` cuando existe y una clave de intención para impedir dos inserciones si se repite la acción. Si el proveedor falla o el recibo queda ambiguo, el mensaje recibe su estado y el sistema no envía una segunda copia a ciegas.
Una respuesta humana también mueve automáticamente la conversación a `paused_takeover`, para que la IA no escriba encima. El texto de ayuda avisa de que responder pausa la IA y el control de devolución exige una acción explícita. Después, un nuevo mensaje entrante puede volver a programar debounce; el historial anterior sigue siendo contexto y no una conversación nueva.
Escribe el siguiente paso con lo confirmado: precio del catálogo, horario guardado u orientación para que la responsable responda. No uses una respuesta rápida para prometer stock, reembolso, resultado clínico o una cita que no pasó por el servidor. Velocidad sin idempotencia, elegibilidad y autorización convierte espera en retrabajo y riesgo.
- La reserva y la clave de intención evitan envíos duplicados.
- Responder como equipo pausa la IA automáticamente.
- Devolver a la IA es explícito y conserva el historial.
8. Revisa estados, fallos y límites cada semana
La rutina termina leyendo estados, no pulsando enviar. Revisa conversaciones abiertas, pausadas, no leídas y con aviso humano. Para cada respuesta distingue pendiente, enviada, entregada, leída, fallida y desconocida. Un fallo de actualización puede dejar visibles los últimos datos; no debe interpretarse como bandeja vacía ni como permiso para repetir el mensaje.
La cola expone métricas de modo, trabajos activos, en espera, atrasados y fallidos. Úsalas para investigar Redis no disponible, proveedor inestable, debounce excesivo o una configuración que produce demasiados handoffs. El sistema audita takeover, devolución y envíos del equipo, pero no calcula el valor de cada venta recuperada ni demuestra que una demora concreta perdió una clienta.
Termina la semana con una muestra de conversaciones leídas de principio a fin. Apunta cuándo la respuesta fue adecuada, cuándo faltó información y cuándo intervino el equipo. Si la clínica necesita SLA, reparto por equipo, confirmación de lectura comercial o disponibilidad garantizada del proveedor, regístralo como oportunidad de producto. Por ahora Bia organiza respuesta y fallback; la operación verifica.
- Un estado desconocido pide investigación, no reenvío automático.
- Las métricas de cola muestran salud técnica, no ingresos recuperados.
- SLA y disponibilidad del proveedor no son promesas actuales.
Lo que hace esta guía — y lo que no promete
Describe la bandeja, debounce, cola, gates, takeover y envío existentes. No promete respuesta instantánea, proveedor siempre disponible, SLA, ventas recuperadas ni entrega garantizada por WhatsApp.
- La respuesta depende de debounce, configuración publicada, elegibilidad, cola, plataforma y proveedor; no es una respuesta instantánea garantizada.
- Redis puede usar BullMQ; cuando no está disponible, el proceso usa fallback en memoria sin durabilidad tras reinicio.
- Takeover pausa la IA y devolverla es explícito; no existe un equipo automático que resuelva toda conversación sin supervisión.
- Un estado de envío desconocido no prueba entrega ni autoriza reenviar sin confirmación.
- La página no ofrece SLA, disponibilidad universal de WhatsApp, porcentaje de conversión ni garantía de no perder clientes.
Preguntas frecuentes
Dudas sobre demoras y atención por WhatsApp
¿Bia responde instantáneamente?
No existe garantía de respuesta instantánea. El sistema usa debounce, cola, gates de elegibilidad, configuración de IA y un proveedor conectado; el valor predeterminado es 30 segundos y puede llegar a 300.
¿Qué pasa si una clienta envía varios mensajes?
Los mensajes nuevos de la misma conversación eliminan el job pendiente y reinician el debounce para que la IA reciba más contexto. Eso no significa que cada mensaje obtenga respuesta.
¿Puede el equipo tomar una conversación?
Sí. El takeover cambia la conversación a `paused_takeover`, registra a la responsable y crea auditoría. El equipo responde en la bandeja y la devuelve a la IA con una acción explícita.
¿Responder desde la bandeja mantiene callada a la IA?
Sí. Un mensaje del equipo pausa automáticamente la IA en esa conversación para evitar dos respuestas. El historial y los estados de entrega siguen visibles.
¿Bia garantiza que el mensaje se entregó?
No. El sistema muestra estados de envío y puede registrar recibo ambiguo o fallo. Opt-out, bloqueo, takeover, proveedor y gates de plataforma pueden impedir el envío.
Prueba la atención con conversaciones reales de tu rutina
Crea la cuenta, conecta el canal y revisa la configuración antes de publicar la secretaria. Empieza con una conversación de prueba y deja que el equipo tome el control cuando el contexto lo exija.
Crear mi cuenta