Manual de usuario · Atención al cliente
Bandeja Omnicanal para Odoo 19
WhatsApp, Instagram, Messenger y TikTok en una sola bandeja compartida, con el cliente, su cotización, su factura y su ticket al lado del chat; agentes de inteligencia artificial que contestan con datos reales de Odoo y un constructor visual de flujos para todo lo que se puede automatizar.
1. Cómo usar este manual
Está escrito para dos personas distintas: quien va a contestar los chats y quien va a dejar el sistema configurado. Puedes leer solo tu parte.
Los capítulos 1 al 14 son de configuración: instalar la suite, conectar cada canal y dejar los equipos, las etapas y las automatizaciones listas. Eso lo hace una sola vez el administrador.
Los capítulos 15 al 26 son el día a día del agente: la bandeja, responder, mandar productos, armar una cotización, abrir un ticket y cerrar la conversación. Si te acaban de dar acceso para atender clientes, empieza ahí.
Los capítulos 27 al 37 son automatización e inteligencia artificial: reglas, flujos visuales, agentes que contestan solos, el copiloto y el puente con n8n. Y los capítulos 38 al 43 cierran con permisos, uso en el teléfono, mantenimiento y una lista de verificación para el día del arranque.
Todas las pantallas de este manual salieron de una instalación real de Odoo 19 con la suite completa. La empresa que aparece, Tecno Quetzal, S.A., es una tienda de tecnología ficticia en la ciudad de Guatemala, con sus productos, sus clientes y sus conversaciones. Los números de teléfono, credenciales e identificadores que se ven son de demostración.
Lo que aparece en negrita es un botón, una pestaña o un campo tal como se lee en
pantalla. Lo que aparece en monoespaciado es un valor técnico: un nombre de campo,
una URL o un fragmento de configuración. Las rutas de menú se escriben así:
Omnicanal → Configuración → Canales.
2. Qué resuelve la suite
Un cliente escribe por WhatsApp, otro por Instagram y un tercero comenta una publicación de Facebook. Sin esto, son tres teléfonos, tres personas y ninguna trazabilidad.
La bandeja omnicanal mete todos esos mensajes en una sola pantalla compartida por el equipo, los asigna a alguien, y pone al lado del chat lo que hace falta para contestar bien: quién es el cliente, qué compró, cuánto debe, qué ticket tiene abierto y qué anuncio lo trajo. Todo dentro de Odoo, sin cambiar de aplicación y sin exportar nada.
Lo que hace, en una lista
Una bandeja, cuatro canales
WhatsApp, Instagram Direct, Facebook Messenger y TikTok, con el mismo hilo, las mismas etiquetas y el mismo historial.
Un contacto, muchas identidades
El mismo cliente puede escribir hoy por WhatsApp y mañana por Instagram: la suite lo reconoce y muestra sus otros chats.
Ruteo y equipos
Las conversaciones se reparten por turnos o por carga entre los agentes disponibles, con horario laboral y saturación por agente.
Negocio dentro del chat
Cotizar, mandar el PDF, abrir una oportunidad, levantar un ticket o mandar la factura con su link de pago, sin salir de la conversación.
Automatizaciones y flujos
Desde una regla simple ("si dice garantía, mándalo a soporte") hasta un flujo visual de varios pasos con ramas de IA.
Inteligencia artificial
Agentes que contestan solos con datos reales del catálogo, y un copiloto que le sugiere respuestas al agente humano.
El recorrido de un mensaje
El proveedor (Meta, Evolution, TikTok) llama a una URL pública de tu Odoo, el mensaje se guarda en una cola y se procesa en segundo plano, y el agente lo ve aparecer en su pantalla sin refrescar. Todo lo demás —crear el contacto, asignar el equipo, etiquetar, contestar el saludo— pasa en ese camino.
3. Los módulos y qué instala cada uno
La suite son 20 módulos. Se instala el núcleo más los conectores de los canales que se van a usar; el resto se instala solo cuando detecta la aplicación que necesita.
| Módulo | Qué agrega | Se instala |
|---|---|---|
mrdc_omnichannel | El núcleo: canales, conversaciones, mensajes, identidades, equipos, ruteo, etapas, etiquetas, respuestas rápidas, plantillas, automatizaciones, la cola de trabajos y la bandeja. | A mano |
mrdc_omnichannel_whatsapp_evolution | WhatsApp por Evolution API: se vincula escaneando un QR, sin cuenta de Meta. | A mano |
mrdc_omnichannel_meta | Capa técnica compartida de la Graph API de Meta: firma de webhooks, medios y versión de la API. | Con el conector |
mrdc_omnichannel_whatsapp_meta | WhatsApp Cloud API oficial, con catálogo de plantillas y calidad del número. | A mano |
mrdc_omnichannel_messenger | Mensajes de la página de Facebook y comentarios de publicaciones. | A mano |
mrdc_omnichannel_instagram | Instagram Direct, respuestas a historias y comentarios. | A mano |
mrdc_omnichannel_tiktok | TikTok Business Messaging y comentarios. | A mano |
mrdc_omnichannel_ai | Agentes de IA autónomos con herramientas, y el copiloto del agente humano. | A mano |
mrdc_omnichannel_flow | El constructor visual de flujos: lienzo, pasos, ramas de IA, esperas y ejecuciones. | A mano |
mrdc_omnichannel_n8n | Puente hacia un workflow de n8n como chatbot. | A mano |
mrdc_omnichannel_ads | Qué anuncio trajo cada conversación, con su creativo y sus métricas. | A mano |
mrdc_omnichannel_sale | Cotizaciones armadas en el chat, envío del PDF y envío de productos con foto y precio. | Sola, con Ventas |
mrdc_omnichannel_crm | Oportunidades desde el chat, con etapas, ganada/perdida y próxima actividad. | Sola, con CRM |
mrdc_omnichannel_helpdesk | Tickets de soporte desde el chat, con SLA y aviso del número al cliente. | Sola, con Soporte |
mrdc_omnichannel_account | Facturas, saldo pendiente y envío de la factura con su link de pago. | Sola, con Facturación |
mrdc_omnichannel_chatter | El botón Chat en el chatter de cualquier registro que tenga cliente. | Sola |
mrdc_omnichannel_ai_business | Le da poderes de negocio a la IA: cotizar, facturar, calificar y agendar. | Sola, con IA y Ventas |
mrdc_omnichannel_ai_helpdesk | La IA abre tickets, consulta su estado y les agrega notas. | Sola, con IA y Soporte |
mrdc_omnichannel_meta_ads | Lee el anuncio de Click to WhatsApp, Messenger e Instagram. | Sola |
mrdc_omnichannel_tiktok_ads | Lee la referencia de anuncio de TikTok, con rutas configurables. | Sola |
Si mañana instalas la aplicación Ventas de Odoo, mrdc_omnichannel_sale se instala
solo y aparecen los botones de cotización en el chat. No hay que volver a la lista de
aplicaciones. Lo mismo con CRM, Soporte y Facturación.
4. Instalación
Instalar el núcleo, el conector del canal y, si se van a usar, la IA y los flujos. Cinco minutos de trabajo.
- Entra a Aplicaciones, quita el filtro de aplicaciones si hace falta y busca
MRDC. - Instala MRDC - Omnichannel Inbox. Ese es el núcleo.
- Instala el conector de tu canal: Evolution o Cloud API para WhatsApp, Messenger, Instagram o TikTok. Puedes instalar varios.
- Si vas a usar inteligencia artificial, instala MRDC - Omnichannel AI y, para los flujos visuales, MRDC - Omnichannel Flow Builder.
Al terminar aparece la aplicación Omnicanal en el menú principal, con cinco entradas: Bandeja, Pipeline, Conversaciones, Contactos y Configuración.
5. Ajustes generales
Un solo dato es obligatorio para que entren mensajes: la URL pública por la que tu Odoo es alcanzable desde internet.
| Ajuste | Para qué sirve |
|---|---|
| URL pública del webhook | La dirección por la que Meta, Evolution o TikTok van a llamar a tu Odoo. Tiene que ser pública y con certificado válido; localhost no recibe nada. Es el valor que toman los canales nuevos para armar su URL de webhook. |
| Equipo predeterminado | A qué equipo caen las conversaciones de un canal que no tenga equipo propio. |
| Mensajes por página | Cuántos mensajes carga el hilo de una vez. Al subir en la conversación se van pidiendo más. |
| Confirmaciones de lectura | Muestra las palomitas de entregado y leído en los mensajes que salen. |
| Indicador de escritura | Avisa al cliente que se le está escribiendo, en los canales que lo soportan. |
| Retención de archivos | Días que se guardan las fotos, audios y documentos del chat. 0 los conserva para siempre. |
| Historial de chat en el chatter | Muestra el historial del cliente dentro del chatter de contactos, oportunidades, cotizaciones y facturas. |
| Responder desde el chatter | Además de ver, deja contestar sin abrir la bandeja completa. |
Un Odoo local no es alcanzable desde internet, así que ningún proveedor le va a poder entregar
mensajes. Para probar de verdad hace falta un túnel (por ejemplo
cloudflared tunnel --url http://127.0.0.1:8069) y poner esa URL temporal aquí.
6. Equipos y agentes
El equipo decide quién atiende, cómo se reparten las conversaciones y qué se contesta cuando la tienda está cerrada.
| Campo | Qué hace |
|---|---|
| Estrategia de ruteo | Por turnos reparte en orden; Agente menos ocupado mira cuántas conversaciones abiertas tiene cada quien; Aleatorio sortea; Manual no asigna nada y deja que los agentes tomen de la cola. |
| Agentes | Quiénes forman el equipo. Solo ellos ven las conversaciones del equipo. |
| Máximo de conversaciones abiertas por agente | Deja de asignarle a quien ya llegó al tope. 0 quita el límite. |
| Asignar a agentes desconectados | Si se apaga, solo reciben asignaciones automáticas los agentes marcados como disponibles. |
| Liberar sin responder después de (minutos) | Una conversación asignada que nadie contestó vuelve a la cola. Es la red que evita que un chat se quede escondido en la bandeja de alguien que salió a almorzar. |
| Cerrar inactivas después de (días) | Cierra solas las conversaciones sin movimiento. |
| Saludo | Lo que se manda en el primer mensaje de una conversación nueva. |
| Respuesta fuera de horario | Lo que se manda cuando escriben fuera del horario laboral del equipo. |
El agente, del lado del usuario
Cada usuario de Odoo que va a atender tiene su propia pestaña Omnicanal en su ficha.
- Disponibilidad: en línea, ocupado, ausente o desconectado. El agente la cambia él mismo desde la bandeja.
- Acepta asignación automática: se apaga para quien entra solo a supervisar.
- Firma en el chat: sustituye el nombre con el que se firman sus mensajes salientes.
- Sonido y notificaciones de escritorio: preferencias personales de aviso.
7. Etapas y etiquetas
Las etapas son el embudo de la conversación; las etiquetas, el vocabulario con el que el equipo la clasifica.
Cada etapa puede llevar un texto en ¿Qué tiene que hacer el agente en esta etapa? que se le muestra como ayuda dentro de la bandeja. Sirve para que el equipo nuevo no tenga que preguntar qué significa "Calificando".
La herramienta con la que el bot avisa al equipo busca la etiqueta por nombre. Si se borran o se renombran las que instala el módulo de IA, el aviso deja de etiquetar la conversación y solo queda la nota interna.
El pipeline
8. El canal: lo que comparten todos
Un canal es una cuenta conectada: un número de WhatsApp, una página de Facebook, una cuenta de Instagram. Todos se configuran igual salvo la pestaña de su proveedor.
| Campo | Qué hace |
|---|---|
| Proveedor | La integración técnica. Es lo que decide qué pestañas aparecen abajo. |
| Identificador público | El número o el @usuario que ve el cliente. Solo es informativo, se muestra en la bandeja. |
| ID de la cuenta | El identificador del lado del proveedor: id del número, id de la página, nombre de la instancia. |
| Equipo | A qué cola caen las conversaciones de este canal. |
| Probar conexión | Pregunta al proveedor si las credenciales sirven, sin mandar nada al cliente. |
La pestaña Comportamiento
| Campo | Qué hace |
|---|---|
| Recibir / Enviar mensajes | Apagar el envío deja el canal en modo espectador: se sigue recibiendo pero no sale nada. Útil mientras se prueba. |
| Crear contactos automáticamente | Crea el contacto en Odoo la primera vez que escribe un desconocido. |
| Asignar agente automáticamente | Aplica la estrategia del equipo al empezar la conversación. |
| Descargar archivos | Guarda fotos, audios y documentos como adjuntos de Odoo en vez de dejar enlaces del proveedor, que caducan. |
| Sincronizar avatares | Baja la foto de perfil del contacto cuando el canal la ofrece. |
| Firma del agente | Sin firma, con el nombre del agente, o con nombre y equipo. Se antepone al mensaje que sale. |
| Ventana gratuita de sesión (horas) | Cuánto tiempo se le puede escribir al cliente sin plantilla de pago. En WhatsApp son 24 horas; ver el capítulo 19. |
| El bot espera antes de responder (segundos) | La gente manda tres mensajes seguidos. Con una espera, el bot aguanta, los deja terminar y contesta una sola vez con todo en contexto. |
La pestaña IA
Todo esto se explica en detalle en los capítulos 31 al 35. Lo que importa aquí es que la IA se enciende por canal: se puede tener un WhatsApp de ventas atendido por un bot y un WhatsApp de soporte donde el bot solo asiste al agente humano.
9. WhatsApp con Evolution API
La vía rápida: se vincula un número escaneando un QR, como WhatsApp Web. No hace falta cuenta de Meta Business ni aprobación de plantillas.
Evolution API es un servidor propio que habla con WhatsApp. Se instala una vez (en tu servidor o en uno contratado) y desde ahí se manejan una o varias instancias, una por número.
- En Endpoint de la API pon la dirección de tu servidor de Evolution, por ejemplo
https://evo.tuempresa.com. - En Token de acceso pega la API key global de Evolution, o la de la instancia si ya existe.
- Presiona Crear la instancia. Si la instancia ya existía, presiona Vincular WhatsApp para pedirle un código nuevo.
- Abre WhatsApp en el teléfono del número que vas a conectar: Dispositivos vinculados → Vincular un dispositivo, y escanea el QR de la pestaña Vinculación.
Los ajustes propios de Evolution
| Campo | Qué hace |
|---|---|
| Nombre de la instancia | Cómo se llama la instancia dentro de Evolution. Si se deja vacío toma el ID de la cuenta. |
| Retraso de escritura (ms) | Simula que alguien está escribiendo antes de que salga cada mensaje. Mil doscientos milisegundos se sienten naturales; cero hace que el bot conteste de golpe. |
| Siempre en línea | Mantiene el número como conectado en WhatsApp. |
| Leer los estados | Marca como vistos los estados que publican tus contactos. Normalmente se deja apagado. |
| Rechazar las llamadas entrantes | WhatsApp Business por API no atiende llamadas. Con esto se rechazan solas y se manda un texto explicándolo. |
Reiniciar levanta la instancia sin desvincular el teléfono. Cerrar sesión sí desvincula: hay que volver a escanear. Sincronizar vuelve a registrar el webhook en Evolution, que es lo primero que hay que intentar cuando dejan de entrar mensajes.
Evolution no es un producto oficial de Meta: usa el protocolo de WhatsApp Web. Es la forma más rápida y barata de conectar un número que ya usas, pero el número queda sujeto a las reglas de WhatsApp para cuentas personales y de negocio, y un uso masivo puede terminar en un bloqueo. Si vas a mandar campañas o volúmenes altos, el camino correcto es la Cloud API del capítulo siguiente.
10. WhatsApp Cloud API de Meta
La vía oficial: número verificado, plantillas aprobadas y calificación de calidad. Más trámite, pero es la que aguanta volumen.
- En el panel de desarrolladores de Meta, en WhatsApp → API Setup, copia el Phone Number ID y el WhatsApp Business Account ID.
- Genera un token permanente de usuario del sistema y pégalo en Token de acceso.
- Llena la pestaña Número de WhatsApp con el ID del número de teléfono, y la pestaña App de Meta con el ID de la aplicación, el ID de la cuenta de negocio y el secreto de la aplicación.
- Copia la URL del webhook y el token de verificación de la pestaña Webhook
y regístralos en la configuración de la app de Meta, suscribiéndote al campo
messages. - Presiona Probar conexión. El estado de la cabecera pasa a Conectado.
Con la Cloud API puedes mandar plantillas aprobadas fuera de la ventana de 24 horas, tienes soporte oficial y el número sale verificado. Con Evolution no hay plantillas ni verificación, pero conectas en cinco minutos. Nada impide tener las dos: un número oficial para campañas y avisos, y otro por Evolution para la atención del día a día.
11. Facebook Messenger
Los mensajes de la página y, si se quiere, los comentarios de las publicaciones, convertidos en conversaciones.
- Genera un token de página de larga duración y pégalo en Token de acceso.
- Escribe el ID de la página numérico.
- Presiona Sincronizar para suscribir la aplicación a la página.
- En la app de Meta, registra la URL del webhook y el token de verificación para los campos
messages,messaging_postbacksymessage_deliveries.
La casilla Atender comentarios de publicaciones convierte cada comentario en una conversación con su propio hilo, marcada como comentario para distinguirla de un mensaje privado.
12. Instagram Direct
Mensajes directos, respuestas a historias, menciones y comentarios de la cuenta profesional.
La cuenta profesional de Instagram tiene que estar enlazada a una página de Facebook. En
Token de acceso va el token de la página, no uno de Instagram, y arriba el id de
la cuenta de Instagram. Suscribe el webhook a messages,
messaging_postbacks y, si vas a atender comentarios, comments.
Dos casillas cambian qué llega a la bandeja:
- Atender comentarios de publicaciones: cada comentario abre una conversación.
- Atender menciones en historias: cuando alguien te menciona en su historia, entra como mensaje con la referencia a la historia.
13. TikTok
Mensajes directos y comentarios de TikTok Business, con una particularidad: su API cambia seguido, así que el conector es configurable.
- Necesitas una aplicación aprobada de TikTok for Business con los permisos de mensajería.
- Llena el ID de la aplicación, el ID de la cuenta de negocio y el token de refresco.
- Pon el secreto de la aplicación para que se verifiquen las firmas de los webhooks.
- Registra la URL del webhook en la consola de desarrollador de TikTok.
Los campos Ruta de envío de mensajes y Ruta del perfil existen porque TikTok mueve sus endpoints entre versiones. Si un día deja de enviar, se corrige la ruta aquí y sigue funcionando sin esperar una versión nueva del módulo.
14. El webhook y la cola de trabajos
Todos los canales entran por el mismo lugar. Entender esta parte es lo que permite diagnosticar en dos minutos por qué no llegan mensajes.
Cómo funciona
El webhook no procesa nada: guarda el payload y contesta al instante. Así el proveedor nunca espera y ningún mensaje se pierde por un tiempo de espera agotado. El procesamiento lo hace la acción planificada Omnicanal: procesar trabajos en segundo plano, que además se dispara sola después de cada webhook.
| Tipo de trabajo | Qué hace |
|---|---|
inbound | Procesa un webhook entrante: crea el contacto, la conversación y el mensaje. |
outbound | Manda un mensaje al proveedor. |
status | Aplica un cambio de estado: entregado, leído, fallido. |
media | Baja el archivo y, si la IA está encendida, lo transcribe o lo describe. Corre con prioridad alta porque el bot espera su resultado. |
bot | El turno del agente de IA. |
flow | Reanuda un flujo que estaba esperando un tiempo. |
sync | Sincronizaciones con el proveedor. |
| Acción planificada | Cada | Qué hace |
|---|---|---|
| Procesar trabajos en segundo plano | 1 min | Vacía la cola. Es la más importante. |
| Liberar conversaciones sin responder | 5 min | Devuelve a la cola lo asignado que nadie contestó. |
| Reglas de automatización sin respuesta | 10 min | Dispara las reglas del tipo "nadie respondió". |
| Cerrar conversaciones inactivas | 6 h | Cierra lo que lleva días sin movimiento. |
| Reanudar flujos en espera | 5 min | Continúa los flujos que esperaban un tiempo. |
| Flujos con disparador sin respuesta | 10 min | Arranca los flujos de seguimiento. |
| Renovar los tokens de TikTok | 12 h | Refresca el token antes de que caduque. |
1) Que la URL base sea pública y con HTTPS válido. 2) Que la URL del webhook esté registrada en el proveedor, con el token de verificación correcto. 3) Que el canal tenga Recibir mensajes encendido. 4) Que la acción planificada de trabajos esté activa. 5) Que no haya trabajos en estado Falló con un mensaje de error que lo explique.
15. La bandeja de un vistazo
Cuatro zonas y ninguna más. Si aprendes dónde está cada cosa en esta pantalla, ya sabes usar el sistema.
1 · La barra de canales
La columna angosta de la izquierda. Un ícono por canal conectado, con el contador de pendientes, y abajo el acceso a la conversación nueva.
2 · La lista
Las conversaciones ordenadas por actividad, con el último mensaje, las etiquetas, el agente asignado y las que están sin leer.
3 · El hilo
La conversación abierta, con el compositor abajo y los botones de transferir, panel y más opciones arriba.
4 · El panel
Todo lo que el agente necesita saber del cliente sin abrir otra pantalla: asignación, etiquetas, facturas, oportunidades, tickets y pedidos.
Cómo leer una tarjeta
- El ícono sobre el avatar dice el canal: WhatsApp, Instagram, Messenger o TikTok.
- El globo verde con un número son los mensajes sin leer.
- La inicial en un círculo a la derecha es el agente asignado.
- La flecha antes del texto significa que el último mensaje salió de nosotros; sin flecha, lo mandó el cliente y está esperando respuesta.
- El alfiler marca las conversaciones fijadas arriba.
16. Filtros, búsqueda y canales
Cuatro filtros y un buscador. Con eso se ordena el día.
El acceso desde cualquier pantalla
17. Responder al cliente
El compositor tiene dos modos y una fila de botones. Nada más.
| Botón | Qué hace |
|---|---|
| Emoji | Abre el selector de emojis. |
| Adjuntar archivo | Manda una foto, un PDF o cualquier documento. |
| Nota de voz | Graba y manda un audio desde el navegador. |
| Enviar un producto | El buscador del catálogo, con foto y precio. Capítulo 20. |
| Armar una cotización | Construye la cotización sin salir del chat. Capítulo 21. |
| Oportunidad | Crea o edita la oportunidad de CRM. Capítulo 22. |
| Ticket de soporte | Abre o actualiza el ticket. Capítulo 23. |
| Mejorar con IA | Reescribe lo que llevas escrito. Capítulo 33. |
Si el canal tiene firma configurada, el nombre del agente se antepone solo al mensaje. El cliente ve *Ana · Ventas Tecno Quetzal* y sabe con quién está hablando aunque el número sea el de la empresa.
18. Respuestas rápidas y notas internas
Lo que se contesta veinte veces al día se escribe una sola vez.
/ en el compositor aparecen las respuestas
rápidas. Se sigue escribiendo para filtrar y se elige con las flechas o con el ratón.
Cada respuesta tiene un atajo (lo que se escribe después de la barra), una
categoría para agruparlas y puede limitarse a ciertos equipos o tipos de canal. El texto
acepta variables como {{contact_first_name}} o {{company_name}}, que se
reemplazan al insertarla.
La nota interna
Para el traspaso. "Ya le cotizamos, quedó de confirmar el viernes; si llama antes, el descuento autorizado es Q200." El siguiente agente que abra la conversación lo lee y no tiene que preguntar nada.
19. Plantillas y la ventana de 24 horas
WhatsApp deja escribirle libremente al cliente durante 24 horas desde su último mensaje. Después solo entran plantillas aprobadas.
Las variables
Cada {{1}}, {{2}} del cuerpo se declara abajo con su origen:
- Campo: una ruta sobre el registro, por ejemplo
partner_id.namesobre un pedido de venta. - Expresión: para casos que no son un campo directo.
- Manual: se escribe al mandarla.
El valor de ejemplo es el que ve Meta al revisar la plantilla, así que conviene que sea realista o la rechazan.
Los botones
Se pueden agregar botones de respuesta rápida (el cliente toca y contesta esa palabra), de URL, de teléfono y de copiar código.
Cuando pasan las 24 horas, el compositor lo dice y ofrece mandar una plantilla en lugar de un mensaje libre. No es un capricho del módulo: es la regla de WhatsApp, y saltársela hace que el mensaje no se entregue.
Un canal por Evolution no tiene ventana de sesión ni catálogo de plantillas: se le puede escribir cuando sea. Por eso el campo Ventana gratuita de sesión del canal se deja en 0 en esos casos.
20. Mandar productos y listas de precio
El botón de la bolsa abre el catálogo dentro del chat. Se arrastra el producto a la conversación y sale con su foto, su referencia y su precio.
Si el cliente tiene una lista de precios asignada, el panel cotiza con esa y muestra tachado el precio de catálogo. Cotizarle el precio de lista a un cliente con descuento es prometer un número que la cotización después no va a respetar.
21. Cotizaciones desde el chat
Armar la cotización mientras se habla, mandarla en PDF y que quede en Ventas como cualquier otra.
- Guardar deja la cotización en borrador, enlazada a la conversación.
- Ventas abre el formulario completo, por si hace falta un descuento de línea o cambiar condiciones.
- Enviar… pregunta si mandarla como texto o adjuntando el PDF, y deja escribir el mensaje que la acompaña.
En cuanto el pedido pasa a confirmado, el constructor deja de editarlo y lo dice: los cambios se hacen en Ventas, donde están las validaciones y la trazabilidad.
22. Oportunidades desde el chat
Cuando la conversación vale seguimiento, se convierte en oportunidad sin cambiar de pantalla.
Desde aquí se puede además marcarla ganada o perdida con su motivo, y agendar la siguiente actividad. Todo queda en el CRM de Odoo, con la transcripción del chat en la descripción de la oportunidad.
El canal tiene una casilla Crear la oportunidad automáticamente: con ella, la primera vez que escribe un contacto nuevo se le abre una oportunidad en el equipo de ventas que elijas. Es útil en un canal puramente comercial y molesto en uno de soporte.
23. Tickets de soporte desde el chat
El cliente reporta una falla; el agente levanta el ticket, le dice el número y sigue la conversación.
El canal puede abrir el ticket solo con la casilla Abrir el ticket automáticamente. Tiene sentido en un WhatsApp de soporte, donde casi todo lo que entra es un problema; no lo tiene en uno de ventas, donde llenaría el helpdesk de preguntas de precio.
24. Facturas y saldo del cliente
Cuánto debe, qué facturas tiene abiertas y cómo mandarle la factura con su link de pago.
Desde la sección de facturas se puede mandar la factura por el chat: sale el PDF adjunto, el monto, lo pendiente, la fecha de vencimiento y el enlace del portal para pagarla.
La sección de facturas la ve cualquier agente omnicanal, tenga o no permisos de contabilidad: se
lee con permisos elevados a propósito, porque el sentido del módulo es que quien contesta pueda
responder "tienes Q1,899 pendientes" sin pedirle ayuda a nadie. Si esa información no debe estar
al alcance del equipo de atención, no instales
mrdc_omnichannel_account.
25. El panel lateral
Es la columna de la derecha. Cada bloque se abre y se cierra, y recuerda cómo lo dejaste.
Las demás secciones aparecen según los módulos instalados: Lista de precios, Facturas, Oportunidades, Cotizaciones y pedidos, Tickets, Publicidad y Otros canales del mismo contacto. Cada una trae los últimos ocho registros y un enlace para ver todos.
Un desarrollador puede sumar una sección al panel desde Python, sin tocar JavaScript: basta devolver un diccionario con el título, el ícono, los registros y los botones. El panel la pinta sola. Está documentado en el README del módulo núcleo.
26. Tomar, transferir, cerrar y reabrir
El ciclo de vida de una conversación, con los cuatro botones que lo mueven.
Tomarla
En una conversación sin asignar aparece Tomarla en la cabecera. Al presionarlo queda a tu nombre y sale de la cola de los demás. Si la conversación la estaba atendiendo un bot, el botón dice Tomar la conversación: además de asignártela, apaga el bot y detiene los flujos que estuvieran corriendo, para que el cliente no reciba dos voces a la vez.
Transferirla
El menú de más opciones
Cerrarla y reabrirla
| Estado | Qué significa |
|---|---|
| Nueva | Entró y todavía no la toma nadie. |
| Abierta | Tiene agente asignado o la atiende un bot. |
| Se está esperando algo: al cliente, a un tercero, a una pieza. | |
| Cerrada | Terminó. Guarda quién la cerró, cuándo y por qué. |
27. Automatizaciones
"Si pasa esto, haz aquello." Para todo lo demás están los flujos del capítulo siguiente.
Cuándo: los disparadores
| Disparador | Se dispara… |
|---|---|
| Inicia una conversación | al crearse, antes de cualquier mensaje. |
| El cliente manda el primer mensaje | solo con el primero de una conversación nueva. |
| El cliente manda un mensaje | con cada mensaje entrante. |
| Se asigna un agente | al cambiar el agente asignado. |
| Cambia el estado / Cambia la etapa | al moverse en el embudo. |
| Ningún agente responde tras un tiempo | a los X minutos sin respuesta. Lo revisa una acción planificada cada diez minutos. |
| Se cierra la conversación | al cerrarla, para encuestas o avisos. |
Solo si: las condiciones
- Palabras clave: contiene, es igual a, empieza con o expresión regular. Separadas por coma y sin distinguir mayúsculas.
- Canales, equipos y tipo de canal: para limitarla a WhatsApp, o a un número concreto.
- Horario laboral: siempre, solo dentro o solo fuera del horario del equipo.
- Solo conversaciones sin asignar: para no pisar el trabajo de un agente que ya está.
- Condición adicional: un filtro libre sobre la conversación, para casos finos.
Entonces haz: las acciones
Una regla puede encadenar varias acciones en orden: rutear al equipo, asignar a un agente o autoasignar con la estrategia, cambiar etapa, estado o prioridad, agregar o quitar etiquetas, mandar un mensaje, una respuesta rápida o una plantilla, dejar una nota interna, activar o detener el bot, cerrar la conversación, llamar a un webhook o ejecutar una acción de servidor.
La casilla Detener el procesamiento hace que, si la regla coincide, ya no se evalúen las siguientes. Es lo que evita que una conversación de garantía reciba además el saludo comercial y la etiqueta de cliente nuevo.
Cuatro reglas que casi siempre valen la pena
- Fuera de horario: primer mensaje + fuera del horario → avisar cuándo se atiende y etiquetar. Evita que el cliente crea que lo están ignorando.
- Rutear por palabra clave: mensaje que contiene garantía, no enciende, falla → mandar a Soporte, etiquetar y autoasignar.
- Cliente nuevo: conversación creada sin asignar → etiquetar y repartir.
- Sin respuesta en 15 minutos → subir la prioridad y dejar nota. El chat deja de estar escondido.
28. Flujos visuales: el constructor
Cuando la automatización deja de ser una regla y se vuelve una conversación de varios pasos, se dibuja en un lienzo.
Se arrastra un paso desde la izquierda, se conecta arrastrando desde un puerto de salida hasta la tarjeta siguiente, y se guarda. Un flujo en borrador no se dispara nunca: solo corren los publicados.
| Ajuste | Qué hace |
|---|---|
| Disparador | Qué hace arrancar el flujo. Los mismos de las reglas, más lo inicia un agente y lo inicia un sistema externo. |
| Reentrada | Solo una vez por conversación para saludos; no mientras ya corre para asistentes; cada vez para recordatorios. |
| Pausar el agente IA | El agente autónomo se queda callado mientras el flujo conduce. |
| Detener los otros flujos | Cuando este coincide, ningún otro arranca. |
| Detenerse cuando responde una persona | Si contesta un humano, el flujo se detiene ahí mismo. |
| Límite de pasos | Red de seguridad contra bucles. |
| Escrito en / Responder en el idioma del cliente | El flujo se escribe una vez y sus mensajes fijos se traducen al idioma en que escriba el cliente. Cada frase se traduce una sola vez y queda guardada. |
Es una salvaguarda del motor, no una casilla: si no existiera, el bot arrancaría de cero y saludaría encima del asesor que ya está atendiendo.
29. Los pasos del constructor
Veinticuatro tipos de paso, agrupados en seis familias. Cada uno trae sus campos y sus salidas.
| Familia | Pasos |
|---|---|
| Flujo | Inicio, Ir a otro flujo, Pasar a una persona, Cerrar la conversación, Fin. |
| Mensajería | Enviar mensaje, Respuesta rápida, Enviar plantilla, Hacer una pregunta, Menú de opciones. |
| Lógica | Esperar, Esperar una respuesta, Condición, Dividir el tráfico. |
| Inteligencia artificial | La IA conduce el chat, La IA responde, La IA detecta la intención, La IA extrae datos. |
| Acciones | Asignar, Actualizar la conversación, Escribir en el contacto, Ejecutar una herramienta de negocio, Pasar al agente IA. |
| Integraciones | Llamar a un webhook. |
Las variables
Cada ejecución guarda un diccionario propio. Lo que responde el cliente, lo que extrae la IA o lo
que devuelve un webhook queda disponible como {{variable}} en cualquier mensaje
posterior. Por eso los pasos que preguntan tienen un campo Guardar la respuesta en.
Esperar sin bloquear
Hay dos formas de esperar. Esperar una respuesta deja el flujo detenido hasta el siguiente mensaje del cliente. Esperar encola un trabajo con la hora en que hay que seguir y lo retoma la acción planificada. Una espera de dos días no consume nada mientras tanto.
Tres capas de inteligencia sobre lo mismo
Menú que entiende
Con Entender texto libre con IA, quien contesta "que venden" en vez de "1" igual cae en la rama de ventas.
Pregunta que interpreta
"mi correo es ana arroba mrdc punto tech" se acepta como ana@mrdc.tech en lugar de
rechazarse.
La IA conduce
Un solo paso con un objetivo en palabras: contesta, recolecta lo que necesita y sale por la rama que corresponde.
Las tres capas degradan solas: sin clave configurada o con el proveedor caído, el flujo continúa por la rama prevista y deja la razón en la traza. La conversación nunca se queda trabada por una falla del modelo.
30. Plantillas de flujo
Cinco flujos ya armados para no empezar de una hoja en blanco.
| Plantilla | Para qué |
|---|---|
| Saludar y rutear | Saluda, ofrece un menú de tres opciones y manda al equipo correcto, con salida a una persona y una rama de IA para quien no elige nada. |
| Calificación con IA | Detecta la intención, recolecta nombre y correo, los guarda en el contacto y deja un resumen para el agente. |
| Asistente de tienda con IA | Un asistente que responde con datos vivos del catálogo, manda fotos y avisa al equipo cuando hace falta una persona. |
| Asistente que nunca se queda callado | Un solo nodo de IA, sin menús ni colas: cuando hace falta una persona avisa al equipo y sigue contestando. |
| Dar seguimiento a un chat mudo | Espera, manda un recordatorio y cierra la conversación si el cliente ya no vuelve. |
Ver qué pasó: las ejecuciones
31. Agentes de inteligencia artificial
Un agente contesta solo, consulta datos reales de Odoo y le pasa el chat a una persona cuando corresponde.
| Campo | Qué hace |
|---|---|
| Proveedor de IA y Modelo | OpenAI, Anthropic, Gemini, Groq, DeepSeek, xAI, Perplexity, Kimi u Ollama. La clave se configura una vez en Ajustes → MRDC AI. |
| Temperatura | Valores bajos mantienen al agente apegado a los hechos; altos, más creativo. Para atención al cliente, entre 0.2 y 0.5. |
| Máximo de respuestas seguidas | Después de esa cantidad de turnos sin resolver, se detiene y pide una persona. 0 lo desactiva. |
| Retraso de respuesta | Una pausa corta para que la respuesta no llegue de golpe. |
| Ejecutar como | El usuario de Odoo con cuyos permisos leen las herramientas. Es el límite real de lo que la IA puede ver. |
| Activo (horario) | Siempre, solo en horario laboral o solo fuera de él. Un bot que solo trabaja de noche es una forma sensata de empezar. |
- Personalidad: el tono. Se agrega al final del prompt.
- Saludo: se manda una sola vez cuando el agente toma una conversación nueva.
- Mensaje de respaldo: lo que dice si el modelo falla o se acaban los turnos.
- Prompt del sistema: las instrucciones. Acepta
{company_name},{contact_name},{channel_kind},{today}y más. - Base de conocimiento: horarios, políticas, envíos, formas de pago. Lo que el agente puede citar tal cual sin inventar.
La herramienta escalate_to_human, el límite de turnos y las palabras clave de
escalamiento. Las tres dejan al cliente esperando si no hay nadie del otro lado. Por eso
existe el modo Nunca dejar al cliente esperando del paso de IA en los flujos: neutraliza
las tres, avisa al equipo y sigue contestando.
32. Las herramientas del agente
Sin herramientas, un bot solo sabe conversar. Con ellas, cotiza, agenda, consulta una factura y abre un ticket.
| Herramienta | Qué hace |
|---|---|
escalate_to_human | Pasa la conversación a una persona. |
tag_conversation | Etiqueta la conversación. |
update_contact | Guarda o corrige datos que el cliente acaba de dar. |
search_knowledge | Busca en la biblioteca de respuestas rápidas. |
send_product_photo | Manda la foto y el precio de un producto desde Odoo. |
send_media_url | Manda una imagen o video ya publicado. |
notify_agent | Avisa al equipo por tipo (venta, mayoreo, soporte, pago) sin cortar la conversación. |
search_products / product_detail | Busca en el catálogo y lee el detalle de un producto. |
create_quotation / send_quotation | Arma y manda una cotización. |
account_balance / send_invoice | Reporta el saldo y manda la factura con su link de pago. |
create_opportunity | Registra una oportunidad para que un vendedor le dé seguimiento. |
get_free_slots / book_appointment | Ofrece horarios libres y agenda la cita. |
open_ticket / get_ticket_status / add_ticket_note | Abre tickets, consulta su estado y les agrega notas. |
Se pueden crear herramientas nuevas sin programar: buscar, leer, crear, actualizar o llamar un método sobre cualquier modelo de Odoo, con un dominio que acota qué puede ver y una lista blanca de campos que puede escribir.
La descripción para el modelo es lo que el modelo lee para decidir si llama a esa herramienta. Una descripción vaga hace que la use cuando no debe o que no la use nunca. Se escribe diciendo cuándo llamarla, no qué hace.
Y para lo delicado está Requiere aprobación humana: la herramienta registra la intención y le pide a un agente que la apruebe, en vez de ejecutarla.
33. El copiloto del agente humano
La otra mitad de la IA: no contesta por el agente, lo ayuda a contestar.
Desde el panel lateral, el copiloto además sugiere respuestas, resume la conversación, detecta el sentimiento y la intención y propone el siguiente paso. Todo se calcula con la conversación real, no con plantillas.
"Cerrar la venta de la laptop HP y conseguir la dirección de entrega." Ese texto entra al prompt antes del contexto del cliente, con la instrucción de perseguirlo sin anunciarlo y sin presionar. Solo aplica a esa conversación: el canal no cambia.
34. El bot que ve y oye
Un cliente que manda una nota de voz o la foto de un producto no es texto. Sin leerlo, el asistente contesta a ciegas.
- Escuchar las notas de voz: se transcriben y el texto queda guardado en el mensaje.
- Ver las imágenes: se describen con un modelo de visión, incluyendo el texto visible y el modelo probable del equipo.
Lo leído entra al historial y al prompt del turno, así que el agente de IA y el copiloto responden
como si el cliente lo hubiera escrito. Se encola como trabajo de tipo media con
prioridad alta y el turno del bot espera a que termine; si falla, la conversación sigue y queda el
motivo en el mensaje.
35. Datos del negocio para tu personal
El mismo asistente puede contestarle a tu equipo con datos del sistema. Hacen falta dos llaves, y esa es toda la seguridad del asunto.
- En el agente: Puede consultar los datos del negocio más una lista blanca de modelos. Vacía significa que no puede leer nada, así que la función nace apagada.
- Que la conversación esté habilitada: o el número está en Números autorizados a preguntar, o se marca a mano Dejar que la IA lea los datos del negocio en esa conversación.
Los números se comparan por dígitos, así que da igual cómo los escribas. Pero
55551234 también habilita a un +501 5555 1234, porque el final
coincide. Con el número completo eso no pasa. La lista Habilitados en este momento, en
esa misma pestaña, muestra exactamente quién quedó autorizado: revísala antes de confiar en
ella.
Las tres herramientas de esta función son de solo lectura: list_data_models dice qué
puede ver, query_data trae registros y build_report agrupa, totaliza y
puede mandar un CSV al chat. Ninguna usa permisos elevados: leen con los del usuario Ejecutar
como, reglas de registro incluidas.
Ver qué hizo la IA
36. El puente con n8n
Si ya tienes un chatbot armado en n8n, no hay que rehacerlo: la conversación se le delega y él contesta.
Odoo hace POST de cada mensaje entrante al webhook con la cabecera X-Mrdc-Secret. El
workflow puede contestar en el acto, en la respuesta del webhook, o después llamando a la URL de
callback con la misma cabecera. La respuesta es una lista de acciones:
{"conversation_id": 42, "actions": [
{"type": "reply", "text": "Hola, ya reviso tu pedido"},
{"type": "tag", "tags": ["Ventas"]},
{"type": "stage", "stage": "Cotizada"},
{"type": "handoff", "reason": "El cliente pide un asesor"}
]}
Las acciones disponibles son reply, note, tag,
stage, assign, state, session,
stop_bot, handoff y close.
37. De qué anuncio vino la conversación
Cuando un cliente escribe después de tocar un anuncio, la plataforma dice cuál era. La suite lo guarda y se lo enseña al agente.
| Decisión de diseño | Por qué |
|---|---|
| El primer anuncio manda | Si el cliente clickea otro después, la conversación sigue atribuida al primero: sobreescribirla reescribiría en silencio de dónde vino el lead. |
| Un anuncio, muchas conversaciones | El registro se comparte, porque la pregunta que importa es cuántos chats trajo un anuncio. |
| Pagado y orgánico se distinguen | Meta manda los dos por el mismo campo; aquí quedan separados. |
| Un payload roto nunca cuesta el mensaje | Si la atribución falla, falla sola y queda en el registro: el mensaje del cliente entra igual. |
En Meta, el dato viene en el mensaje (WhatsApp) o en la entrada, y a veces dentro del
postback cuando el hilo es nuevo, que es justo el caso que más importa. Se guarda
además el identificador del clic para cruzarlo después con el reporte de gasto.
En TikTok la API cambia entre cuentas y versiones, así que el conector lee una lista de rutas candidatas editable por canal. Si tu cuenta manda el anuncio en otro lugar, se copia la ruta desde el payload crudo de un mensaje real y listo, sin esperar código nuevo.
38. El chat dentro de otros registros
El vendedor está viendo la cotización y quiere preguntarle algo al cliente. No tiene por qué abrir la bandeja.
El botón resuelve solo a qué cliente escribirle: en contactos, oportunidades, cotizaciones, facturas, órdenes de compra, tareas, tickets y albaranes usa el campo que corresponde, y en cualquier otro modelo busca el primer enlace a un contacto. Se enciende y apaga desde Ajustes → Omnicanal → Chatter, y respeta los permisos: solo lo ve quien es agente omnicanal y puede leer el registro.
Si la ventana está cerrada, el compositor del chatter lo dice y manda a la bandeja, que es donde están las plantillas.
39. Permisos y roles
Tres niveles, y cada uno ve exactamente lo que necesita.
| Rol | Qué puede |
|---|---|
| Agente | Ve las conversaciones de sus equipos, las suyas y las que sigue. Contesta, etiqueta, transfiere y cierra. |
| Supervisor | Ve todas las conversaciones de sus equipos, las reasigna y administra las respuestas rápidas. |
| Administrador | Configura canales, automatizaciones, plantillas, flujos e inteligencia artificial. Es el único que ve los tokens de los canales. |
Un agente no necesita permisos de Ventas ni de Contabilidad para ver el saldo del cliente o el contador de pedidos en el panel: esas secciones se leen con permisos elevados a propósito. Lo que sí respeta los permisos es abrir el registro completo: si el agente no puede ver una factura en Odoo, tampoco la va a abrir desde aquí.
Y las secciones del panel que corresponden a una aplicación que el usuario no puede leer simplemente no se muestran, en vez de romper la pantalla.
40. La bandeja en el teléfono
La misma bandeja, con la lista y el hilo uno a la vez.
En pantallas medianas (hasta 991 píxeles) el panel pasa a superponerse en vez de quitarle espacio al chat. En la cabecera, Tomarla queda solo con su ícono y Transferir se va al menú de tres puntos: con todos los botones afuera no quedaba espacio para el nombre del contacto.
41. Mantenimiento y diagnóstico
Dónde mirar cuando algo no cuadra, en orden de utilidad.
Una rutina de revisión semanal
- Que ningún canal esté en error o aviso en el kanban.
- Que la cola de trabajos en segundo plano no acumule fallidos.
- Que las acciones planificadas de la suite sigan activas.
- En WhatsApp Cloud, la calificación de calidad del número.
- Los tokens que caducan: el de TikTok se renueva solo, el de Meta no.
42. Problemas frecuentes
| Síntoma | Causa habitual y solución |
|---|---|
| No entra ningún mensaje | La URL base no es pública, o el webhook no quedó registrado en el proveedor. Revisa la pestaña Webhook, vuelve a copiar la URL y presiona Sincronizar. |
| Entran mensajes pero no aparecen en la bandeja | La cola no se está procesando: revisa que la acción planificada Omnicanal: procesar trabajos en segundo plano esté activa y mira si hay trabajos en estado Falló. |
| Los mensajes salen con error | Abre el mensaje: el campo de error trae la respuesta del proveedor. Token vencido, número no habilitado o ventana de 24 horas cerrada son las tres causas más comunes. |
| "La ventana gratuita está cerrada" | Pasaron más de 24 horas desde el último mensaje del cliente. Hay que usar una plantilla aprobada; no es una limitación del módulo. |
| El QR de Evolution no carga | La instancia no existe todavía: presiona Crear la instancia. Si existe y sigue sin cargar, Reiniciar y volver a pedir el código. |
| Nadie recibe conversaciones automáticamente | Los agentes no están marcados como disponibles, o tienen apagado Acepta asignación automática, o el equipo llegó al máximo de conversaciones por agente. |
| El bot no contesta | Revisa que el canal tenga agente asignado y Que la IA responda primero encendido, que el agente esté activo en ese horario y que haya clave del proveedor en Ajustes → MRDC AI. El detalle exacto está en Ejecuciones de IA. |
| El bot contesta cosas que no debería | Casi siempre es la descripción de una herramienta o el prompt del sistema. Mira la ejecución: ahí se ve qué herramienta llamó y con qué argumentos. |
| El flujo no arranca | Está en borrador, o su disparador no coincide, o la conversación ya la tomó una persona (un flujo nunca entra en una conversación que ya atiende un humano), o la reentrada es solo una vez y ya corrió. |
| El bot y el agente contestan a la vez | No debería pasar: al tomar la conversación se apaga el bot y se detienen los flujos. Si ocurre, revisa que el flujo tenga Detenerse cuando responde una persona encendido. |
| Un cliente aparece dos veces | Escribió desde dos identificadores distintos. En Identidades de chat se apunta la segunda identidad al mismo contacto y las dos conversaciones quedan bajo el mismo cliente. |
| El precio del chat no coincide con la cotización | El contacto tiene lista de precios y el panel cotizó con otra. La sección Lista de precios del panel muestra cuál está aplicando. |
43. Lista de verificación de arranque
Lo que hay que tener listo antes de darle el acceso al equipo.
Antes de conectar
- Odoo alcanzable por HTTPS desde internet, con certificado válido.
- La URL pública del webhook cargada en Ajustes → Omnicanal.
- Los equipos creados, con sus agentes y su horario laboral.
- Cada agente marcado como disponible en su ficha.
Por cada canal
- Credenciales cargadas y Probar conexión en verde.
- La URL del webhook registrada en la consola del proveedor.
- Equipo asignado y firma decidida.
- Una prueba real: escribirle desde un teléfono y ver el mensaje llegar a la bandeja.
- Otra prueba al revés: contestar desde la bandeja y ver el mensaje llegar al teléfono.
Antes de abrir el canal al público
- Saludo y respuesta fuera de horario redactados.
- Las respuestas rápidas del día a día cargadas, con su atajo.
- Al menos las reglas de fuera de horario y de ruteo por palabra clave.
- Si se va a usar IA: base de conocimiento escrita, herramientas revisadas y el agente probado en una conversación de prueba antes de encenderlo en el canal.
- Si se van a usar plantillas: enviadas a aprobación con tiempo, porque Meta se tarda.
La primera semana
- Revisar la cola de Sin asignar al final del día.
- Mirar el contador de usos de las respuestas rápidas y agregar las que falten.
- Revisar las Ejecuciones de IA con el equipo: es la mejor forma de afinar el prompt.
- Ajustar el máximo de conversaciones por agente con datos reales, no con una suposición.
Enciende primero un solo canal, con ruteo manual y sin inteligencia artificial. Deja que el equipo se acostumbre una semana. Después agrega las automatizaciones, y solo al final el bot. Al revés —todo encendido el primer día— es imposible saber qué falló cuando algo falla.