Catálogo y Comercio
Por Conversa Labs
Por Conversa Labs
Catálogo nativo, sincronización y WhatsApp Business Catalog, envío de productos/pedidos en la conversación y ciclo de vida de e-commerce.
Visión general de Catálogo y Comercio
Visión general El módulo Catálogo y Comercio reúne todo lo relacionado con productos y ventas dentro de tus conversaciones. Con él mantienes un catálogo nativo (productos, categorías, imágenes y precios), sincronizas ese catálogo con el WhatsApp Business Catalog de Meta, envías productos y listas de productos directamente en la atención, recibes pedidos del cliente como una tarjeta lista para cobrar y sigues el ciclo de vida de e-commerce de plataformas externas (Kiwify, Hotmart, Nuvemshop, Shopify) sin salir de la plataforma. La idea es convertir la conversación en un mostrador de ventas: el cliente ve el producto, arma el pedido y tú cobras — todo en el mismo lugar, integrado con el CRM, los Pagos y los Follow-ups. Requisitos previos - Una cuenta Conversa Labs activa con el módulo de Catálogo y Comercio habilitado para tu plan y rol de acceso. Si no ves el módulo, habla con un administrador. - Para el WhatsApp Business Catalog: una Bandeja de Entrada de WhatsApp (Cloud API) conectada y vinculable al catálogo de Meta. - Para el ciclo de vida de e-commerce: acceso a la plataforma externa (Kiwify, Hotmart, Nuvemshop o Shopify) para configurar el webhook. - Para cobrar pedidos: el módulo de Pagos configurado (pasarelas como Asaas o Mercado Pago). Paso a paso 1. Crea o importa tu catálogo nativo de productos (con categorías, imágenes y precios). 2. Si atiendes por WhatsApp, vincula y sincroniza el catálogo con el WhatsApp Business Catalog. 3. Durante la atención, envía productos (un producto o una lista) al cliente en la conversación. 4. Cuando el cliente arma un carrito, recibe el pedido como tarjeta y genera el cobro o la suscripción. 5. Conecta plataformas de e-commerce para seguir el ciclo de vida (carrito abandonado, PIX pendiente, compra aprobada, reembolso) y recuperar ventas con Follow-ups. Configuración y opciones - Catálogo nativo: registro de productos, categorías, imágenes, precio y disponibilidad. - Fuentes de sincronización: vinculación al WhatsApp Business Catalog (Meta) y a conectores externos, con intervalo de sincronización configurable. - Envío en la conversación: enviar producto único, lista de productos o abrir el catálogo de WhatsApp. - Pedidos: tarjeta de pedido con ítems, total y atajos para Crear cobro / Crear suscripción. - Comercio (lifecycle): webhooks de plataformas externas con URL y secreto de verificación por fuente. Casos de uso - Tienda que atiende por WhatsApp y quiere mostrar productos nativos sin enviar al cliente a un sitio. - Operación que recibe pedidos por el carrito de WhatsApp y factura al instante con PIX o boleto. - Infoproductor que vende por Kiwify/Hotmart y quiere recuperar carrito abandonado y PIX pendiente. - E-commerce en Nuvemshop/Shopify que centraliza la recuperación de ventas en la atención. Consejos, límites y buenas prácticas - Importes en unidades mayores: el precio 4,97 significa R$4,97 — nunca dividas por 100. El total de un pedido es la suma de precio × cantidad de cada ítem. - Productos y pedidos nativos en WhatsApp (catálogo, lista, tarjeta de pedido) funcionan en la API Cloud; en WhatsApp Web la venta usa la tarjeta de producto enriquecida como alternativa. - Mantén las imágenes de los productos accesibles públicamente para que la sincronización pueda descargarlas. - Empieza por un catálogo nativo bien organizado antes de activar sincronización y conectores externos. Solución de problemas - No veo el módulo: puede no estar habilitado para tu cuenta o rol — habla con un administrador. - Productos sin imagen tras sincronizar: verifica que las imágenes originales estén accesibles y vuelve a sincronizar (cada ejecución reintenta la descarga de imágenes). - El cliente no recibe el producto/pedido nativo: confirma que la bandeja es WhatsApp Cloud API. Ver también - Catálogo nativo: productos, categorías, imágenes y precios - Sincronización y WhatsApp Business Catalog - Enviar producto y recibir pedidos en la conversación - Ciclo de vida de e-commerce
Catálogo nativo: productos, categorías, imágenes y precios
Visión general El catálogo nativo es tu base de productos dentro de Conversa Labs. Es donde registras cada ítem con nombre, descripción, imágenes, precio y disponibilidad, organizas todo en categorías y mantienes los datos que se usarán para sincronizar con WhatsApp y para enviar productos durante la atención. Tenerlo bien organizado es el primer paso: a partir de él sincronizas con Meta, envías productos en la conversación y cobras pedidos. Aunque también uses plataformas externas, el catálogo nativo es la fuente de la verdad dentro de la plataforma. Requisitos previos - El módulo de Catálogo y Comercio habilitado para tu cuenta y rol de acceso. - Permiso para gestionar el catálogo (crear/editar productos y categorías). - Imágenes de los productos en un formato común (por ejemplo, JPG o PNG) y accesibles. Paso a paso 1. Abre el área de Catálogo de la plataforma. 2. Crea tus categorías para agrupar productos (por ejemplo, "Bebidas", "Servicios", "Cursos"). 3. Registra un producto: indica nombre, descripción, categoría y su primera variante. 4. En cada variante, define nombre, SKU, precio y opciones como Color: Azul y Talla: M. 5. Usa las flechas para ordenar las variantes y elige exactamente una como predeterminada. 6. Agrega una o más imágenes al producto. Después puedes asignar una imagen del producto a cada variante; las variantes sin imagen usan la imagen principal. 7. Define disponibilidad e inventario cuando corresponda, guarda y repite para los demás productos. Configuración y opciones - Producto: nombre, descripción, precio, categoría, disponibilidad, imágenes e identificadores (como SKU y enlace externo). - Categorías: agrupación de productos que facilita la búsqueda y el armado de listas. - Imágenes: una o más por producto; la primera suele usarse como destacada. - Variantes: cada combinación vendible tiene nombre, opciones, posición, precio, existencias e imagen opcional. La variante predeterminada es la selección inicial en listas y envíos. - Archivar una variante: el formulario de edición solo descarta variantes que aún no se han guardado. Archiva una variante guardada desde el detalle del producto después de confirmarlo y elige antes otra variante predeterminada. Se conservan el registro archivado y su historial de pedidos y pagos. - Imagen de variante: solo se puede elegir en la galería del mismo producto. Si se elimina, la variante vuelve de forma segura a la imagen principal del producto. - Precio: siempre en unidades mayores de la moneda (consulta la sección de consejos). - Baja automática de existencias: cuando una venta activa queda pagada, se descuenta una sola vez la cantidad de cada variante con control de existencias. El cobro y el pedido de la misma venta comparten una identidad, por lo que los webhooks repetidos o ambos eventos no descuentan dos veces. El saldo se detiene en cero; las variantes sin control de existencias no cambian. Las importaciones y adopciones históricas tampoco modifican el saldo actual. Las existencias controladas usan unidades enteras: una línea fraccionaria falla de forma segura, sin redondear ni descontar parcialmente la venta, y queda visible en el Historial. Las cantidades fraccionarias de variantes sin control no afectan las existencias. - Informes: la vista de informes separa el presupuesto cotizado de los ítems del negocio del valor realizado de los ítems de pedidos pagados. Las dos métricas no se suman y pueden diferir por descuentos, envío o pedidos aún no liquidados. Casos de uso - Menú de un restaurante o cafetería con categorías y fotos. - Catálogo de servicios (consultas, planes, paquetes) con precio por ítem. - Lista de productos físicos de una tienda que vende por WhatsApp. - Catálogo de infoproductos o cursos para enviar directamente al cliente. Consejos, límites y buenas prácticas - Precio en unidades mayores: escribe 4,97 para indicar R$4,97. La plataforma no divide por 100 — el valor que registras es el valor mostrado y cobrado. - El total de un pedido es la suma de precio × cantidad de cada ítem — también sin dividir por 100. - Usa imágenes nítidas y accesibles públicamente: la sincronización con WhatsApp necesita poder descargarlas. Las imágenes alojadas en direcciones que quedan fuera de línea no se importarán. - Mantén nombres y descripciones claros — aparecen para el cliente cuando envías el producto. - En el informe, interpreta Presupuesto como la propuesta registrada en el negocio y Realizado como los ítems de pedidos pagados. Un ítem sin pedido pagado no se incluye en el realizado. Solución de problemas - Precio mostrado incorrecto (ej.: R$0,05 en vez de R$4,97): confirma que escribiste el valor en unidades mayores; no multipliques ni dividas por 100. - La imagen no aparece: verifica que el archivo sea válido y que la dirección de la imagen esté accesible. - No se puede archivar o eliminar una variante: elige primero otra variante activa como predeterminada. - Se muestra una imagen incorrecta para la variante: edita el producto y elige una imagen de su galería para esa variante, o selecciona el uso de la imagen principal. - El producto no desaparece de las listas: márcalo como no disponible en lugar de mantenerlo visible cuando no está a la venta. - Una venta pagada no redujo las existencias: confirma que la línea de venta apunta a una variante con control de existencias activo. Los registros solo importados o adoptados como historial se conservan para consulta y, de forma intencional, no reescriben el saldo actual. - La reducción aparece como fallida después de los reintentos automáticos: un administrador debe abrir Catálogo → Importar y sincronizar → Historial, localizar la ejecución Reducción automática de existencias, abrir el detalle y hacer clic en Reintentar reducción de existencias. La ejecución identifica el cobro o pedido y muestra solo una referencia técnica saneada, sin credenciales ni payload del gateway. El reintento es seguro: el recibo único de la venta impide una segunda reducción si el intento anterior terminó de forma ambigua. Si la ejecución está Pendiente o Procesando, espera al worker en vez de volver a hacer clic. Si el motivo indica una cantidad fraccionaria, corrige la línea de origen a unidades enteras — o desactiva el control solo cuando la variante sea legítimamente fraccionaria — antes de reintentar; la plataforma nunca redondea esa cantidad. Ver también - Visión general de Catálogo y Comercio - Sincronización y WhatsApp Business Catalog - Enviar producto y recibir pedidos en la conversación
Sincronización y WhatsApp Business Catalog
Visión general La sincronización conecta tu catálogo nativo con el WhatsApp Business Catalog de Meta. Una vez vinculado, los productos existen en ambos lugares y pueden mantenerse en dos vías: lo que registras en la plataforma se envía a Meta, y lo que existe en el catálogo de Meta puede importarse a la plataforma. Esto es lo que hace posible enviar productos nativos en WhatsApp, abrir el catálogo dentro de la conversación y recibir pedidos del carrito del cliente — todo a partir de un catálogo único y actualizado. Requisitos previos - Una Bandeja de Entrada de WhatsApp (Cloud API) conectada y funcionando. - Un catálogo configurado en tu cuenta comercial de Meta (Business / Commerce Manager). - El módulo de Catálogo y Comercio habilitado y permiso para gestionar fuentes de sincronización. - Un catálogo nativo con productos registrados (recomendado antes de la primera sincronización). Paso a paso 1. En el área de Catálogo, abre la configuración de fuentes de sincronización. 2. Crea una fuente de tipo WhatsApp Business Catalog (Meta) y selecciona el catálogo de Meta a vincular. 3. Vincula la fuente a la bandeja de WhatsApp Cloud correspondiente — la credencial de acceso se reutiliza automáticamente de esa bandeja, sin necesidad de indicar un token aparte. 4. Define el intervalo de sincronización (cada cuánto la plataforma revisa el catálogo de Meta). 5. Ejecuta la primera sincronización y revisa los productos importados/actualizados. 6. A partir de ahí, los cambios fluyen en ambas vías según el intervalo configurado, y puedes forzar una sincronización manual cuando quieras. Configuración y opciones - Catálogo de Meta vinculado: qué catálogo de la cuenta comercial está conectado a la fuente. - Bandeja de entrada: la bandeja de WhatsApp Cloud usada para la credencial y para enviar productos. - Intervalo de sincronización: frecuencia de las sincronizaciones automáticas. - Sincronización manual: botón para ejecutar la sincronización al instante. - Dos vías: los productos registrados en la plataforma se publican en Meta; los productos de Meta se importan a la plataforma, haciendo coincidir los identificadores de cada lado. Publicar de forma segura y revisar la validación Cada variante vendible se publica como un elemento propio del catálogo Meta. Las variantes del mismo producto quedan agrupadas, pero tienen identificadores independientes para que precio y disponibilidad no se mezclen entre tamaños, colores u otras opciones. Antes de enviar, la plataforma bloquea la variante y muestra el motivo cuando falta un requisito de Meta: nombre, descripción, marca, enlace público HTTPS, precio, moneda o imagen pública HTTPS de al menos 500 × 500 píxeles. Completa los campos en el producto e inténtalo de nuevo: un bloqueo local nunca se trata como producto sincronizado. Después de que Meta acepta un lote, todavía valida el contenido de forma asíncrona. Abre el producto y revisa el estado de cada variante: Esperando validación, Validada, Rechazada, Publicación bloqueada o Validación no concluyente. Considera un elemento disponible en Meta solo después de Validada; el mensaje de rechazo indica el campo que debes corregir. Validación no concluyente significa que Meta respondió sin un resultado reconocido. Los estados transitorios, como “iniciado”, se consultan nuevamente durante un máximo de cuatro minutos; si aparece tiempo de validación agotado, vuelve a publicar el producto y revisa el historial de ejecuciones. Al importar de vuelta, los elementos del mismo grupo regresan al mismo producto, cada uno como su variante. La plataforma reconoce el producto por su grupo y por el identificador de cada variante, así que una reimportación actualiza el producto existente en lugar de crear una copia. Conciliación asistida de elementos remotos Al editar una fuente Meta de salida o de dos vías, Conciliación asistida del catálogo Meta lista los elementos remotos que no tienen una variante local con el mismo retailer_id. Es solo un paso de revisión: 1. Actualiza la lista y verifica el nombre e identificador de cada posible huérfano. 2. Selecciona únicamente los elementos que realmente deben salir del catálogo Meta. 3. Haz clic en Solicitar eliminación seleccionada y confirma en el diálogo. No se elimina nada al abrir o actualizar la lista. La plataforma vuelve a leer el catálogo al enviar la solicitud, rechaza una selección que cambió y también rechaza un lote que supere el límite seguro del 10% del catálogo remoto. Incluso después de aceptar la solicitud, Meta valida el lote: la interfaz muestra “solicitud enviada para validación”, no “eliminado”, hasta recibir la confirmación remota. Casos de uso - Tienda que ya tiene catálogo en Meta y quiere traerlo a la plataforma para atender y cobrar. - Operación que prefiere registrar productos en la plataforma y publicarlos automáticamente en WhatsApp. - Equipo que mantiene un catálogo único y quiere evitar actualizar precios en dos lugares. Consejos, límites y buenas prácticas - Credencial automática: al vincular la fuente a la bandeja de WhatsApp Cloud, la plataforma usa la credencial de esa bandeja — no necesitas registrar un token solo para el catálogo. - Las imágenes deben estar accesibles: la sincronización descarga las imágenes de los productos. Si la imagen original está alojada en una dirección que queda fuera de línea, no se importará. Mantén las imágenes en un lugar público, estable, HTTPS y de al menos 500 × 500 píxeles para publicar. - Importes en unidades mayores: los precios siguen en unidades mayores (4,97 = R$4,97) en ambos lados. - Realiza la primera sincronización fuera del horario pico para revisar el resultado con calma. Solución de problemas - Productos importados sin imágenes: la imagen original puede estar inaccesible; asegura una dirección pública y vuelve a sincronizar (cada ejecución reintenta la descarga de imágenes). - No se sincroniza nada: confirma que la fuente esté vinculada a una bandeja de WhatsApp Cloud válida y que el catálogo de Meta seleccionado sea el correcto. - Un cambio no apareció en el otro lado: espera el intervalo de sincronización o ejecuta una sincronización manual. Para publicar, abre la variante y comprueba si la validación de Meta está esperando, bloqueada o rechazada; una respuesta de lote aceptada todavía no confirma el catálogo. - Tiempo de validación agotado: Meta no entregó un resultado final durante las consultas automáticas. Vuelve a publicar el producto; si el aviso continúa, revisa el elemento en Meta Commerce Manager. - El elemento no aparece en la conciliación: los elementos remotos sin retailer_id no se ofrecen para eliminación automatizada por seguridad. Localízalos directamente en Meta Commerce Manager. Ver también - Catálogo nativo: productos, categorías, imágenes y precios - Enviar producto y recibir pedidos en la conversación - Visión general de Catálogo y Comercio
Catálogo y Escaparate en la bandeja de entrada de WhatsApp
Visión general Tener un catálogo creado y sincronizado en Meta no es lo mismo que tener el escaparate activado en tu número de WhatsApp. Son tres cosas distintas y todas deben estar en orden para que un producto pueda enviarse en la conversación: 1. El catálogo existe en tu cuenta comercial de Meta y tiene ítems publicados. 2. El catálogo está vinculado a tu Cuenta de WhatsApp Business (la WABA). 3. El escaparate está visible en el número — este es el paso que suele pasar desapercibido, porque Meta crea cada número con el escaparate desactivado por defecto. Cuando falta el paso 2 o el 3, el catálogo se ve perfecto en el administrador de Meta, pero el envío de un producto en la conversación falla — normalmente con el error #131008. La pestaña Catálogo y Escaparate existe para hacerlo visible. Está dentro de la configuración de la bandeja de entrada, lee el estado en vivo desde Meta y muestra en filas simples qué está listo y qué falta. Un único botón — Activar escaparate en este número — resuelve el paso 3. La pestaña se encarga del comercio del número. La sincronización de productos (mapeo, programación, historial) sigue en el Sync Studio, dentro del módulo de Catálogo. Requisitos previos - Una Bandeja de Entrada de WhatsApp (Cloud API). La pestaña no aparece en bandejas de WhatsApp Web ni en otros canales — el escaparate es una función de la API Cloud. - Un catálogo en Meta con ítems publicados. Si aún no lo tienes, créalo y sincronízalo primero desde el Sync Studio. - Permiso de administrador en la bandeja de entrada, dentro de la plataforma. - La conexión con Meta necesita permiso sobre el catálogo y sobre la Cuenta de WhatsApp Business. Sin eso, la lectura funciona solo parcialmente y la activación es rechazada por Meta. Paso a paso 1. Abre Configuración → Bandejas de Entrada y selecciona la bandeja de WhatsApp Cloud API. 2. Abre la pestaña Catálogo y Escaparate. 3. Lee el diagnóstico. Cada fila responde una pregunta concreta: qué catálogo está seleccionado, si está vinculado a la Cuenta de WhatsApp Business, si el escaparate está visible en el número, si el carrito está habilitado, cuántos ítems tiene el catálogo y cuándo fue la última sincronización. 4. Si aún no hay un catálogo seleccionado, elige el catálogo que debe usar este número. 5. Si el escaparate está desactivado, haz clic en Activar escaparate en este número y confirma. 6. Recarga el diagnóstico y confirma que el vínculo y el escaparate aparecen como activos. 7. Abre una conversación y envía un producto para validar de punta a punta. Configuración y opciones - Catálogo seleccionado — qué catálogo de Meta usa este número. Es el origen de los productos que envías en la conversación. - Vínculo con la Cuenta de WhatsApp Business — indica si el catálogo está asociado a la WABA. Sin el vínculo, el número no ve los productos, aunque existan. - Escaparate visible en el número — indica si el escaparate está activado en este número específico. Es lo que cambia el botón de activación. - Carrito habilitado — indica si el cliente puede armar un carrito y enviar un pedido. Con el carrito desactivado, el cliente sigue viendo los productos pero no cierra un pedido por WhatsApp. - Ítems en el catálogo — cuántos productos ve Meta hoy. Un conteo en cero casi siempre significa que la sincronización no se completó. - Última sincronización — cuándo se enviaron los productos al catálogo por última vez. - Activar escaparate en este número — el único botón que escribe en tu cuenta de Meta. Nada se modifica allí sin ese clic: abrir la pestaña solo lee el estado actual. Casos de uso - Bandeja nueva: acabas de conectar el número, el catálogo ya está sincronizado y quieres dejar el envío de productos listo antes de la primera conversación. - Envíos que fallan: un agente reporta que "no puede enviar un producto". La pestaña muestra en segundos si el problema es el vínculo, el escaparate o un catálogo vacío. - Varios números: cada número tiene su propio escaparate. Al abrir un número nuevo en la misma cuenta comercial, solo repites la activación — el catálogo sigue siendo el mismo. - Auditoría periódica: antes de una campaña, revisar el conteo de ítems y la última sincronización evita anunciar un producto que Meta no ve. Consejos, límites y buenas prácticas - El escaparate nace desactivado. Es el comportamiento de Meta, no una falla de la plataforma. Cada número nuevo necesita la activación una vez. - La activación es explícita. La plataforma nunca activa el escaparate por su cuenta, ni siquiera durante una sincronización. La escritura ocurre solo cuando haces clic en el botón. - La lectura es en vivo. Los valores vienen de Meta en el momento en que se abre la pestaña, no de una caché. Si alguien cambia algo en el administrador de Meta, recargar la pestaña ya muestra el nuevo estado. - El escaparate es por número; el catálogo es por cuenta comercial. El mismo catálogo puede servir a varios números, pero cada número necesita su propia activación. - Sincronizar no activa. Una sincronización exitosa en el Sync Studio publica productos, pero no activa el escaparate. Son pasos independientes. - Carrito y pedidos: para recibir pedidos estructurados en la conversación, el carrito debe estar habilitado además del escaparate. Solución de problemas - Error #131008 al enviar un producto — Meta indica que falta un parámetro obligatorio para el mensaje de producto. En la práctica, el número no tiene un escaparate utilizable: el catálogo no está vinculado a la Cuenta de WhatsApp Business, o el escaparate está desactivado en el número. Corrección: abre la pestaña Catálogo y Escaparate, selecciona el catálogo y haz clic en Activar escaparate en este número. - Error #131009 al enviar un producto — Meta indica que un valor enviado es inválido. Por lo general el producto no está en el catálogo vinculado: el ítem nunca se sincronizó, fue archivado o pertenece a otro catálogo. Corrección: comprueba en el diagnóstico que el catálogo seleccionado sea el mismo donde se publicó el producto, revisa el conteo de ítems y ejecuta la sincronización en el Sync Studio. - La pestaña no aparece — la bandeja de entrada no es de WhatsApp Cloud API. El escaparate y el catálogo nativo son funciones de la API Cloud. - La activación es rechazada — la conexión con Meta no tiene permiso suficiente sobre el catálogo o sobre la Cuenta de WhatsApp Business. Revisa los permisos en el administrador de Meta e inténtalo de nuevo. - Ítems en el catálogo = 0 — la sincronización no se completó o los productos fueron rechazados por Meta. Revisa el historial de sincronización en el Sync Studio. - Escaparate activo, pero el cliente no cierra el pedido — lo más probable es que el carrito esté deshabilitado. Ver también - Sincronización y WhatsApp Business Catalog - Enviar producto/lista y recibir pedidos en la conversación - Catálogo nativo: productos, categorías, imágenes y precios
Enviar producto/lista y recibir pedidos en la conversación
Visión general Con el catálogo listo y sincronizado, puedes enviar productos al cliente dentro de la conversación y recibir su pedido de vuelta como una tarjeta estructurada. En lugar de describir precios en texto, envías el ítem correcto; cuando el cliente arma un carrito en WhatsApp, el pedido llega organizado, con ítems, cantidades y total — además de atajos para generar el cobro. Hay tres formas de mostrar productos: producto único, lista de productos y abrir el catálogo. Y una forma de recibir: el pedido (order) que se convierte en tarjeta en la conversación. Requisitos previos - Un catálogo nativo con productos y, para las funciones nativas de WhatsApp, la sincronización con el WhatsApp Business Catalog activa. - Una Bandeja de Entrada de WhatsApp (Cloud API) — los formatos nativos de producto, lista y pedido funcionan en la API Cloud. - El escaparate activo en el número, en la pestaña Catálogo y Escaparate de la bandeja de entrada. Meta crea cada número con el escaparate desactivado: sin activarlo, el envío de un producto falla con el error #131008. Consulta Catálogo y Escaparate en la bandeja de entrada de WhatsApp. - Para el envío interactivo de un producto por WhatsApp Web, basta una bandeja Web activa; el carrito y el pedido nativos siguen siendo exclusivos de la API Cloud. - Para cobrar el pedido: el módulo de Pagos configurado. Paso a paso 1. Abre la conversación con el cliente. 2. En el campo de envío, elige enviar producto y selecciona un ítem (producto único) o arma una lista de productos. Cuando exista más de una variante, elige la correcta; cuando esa variante tenga precios en más de una moneda, elige también la moneda. Puedes además abrir el catálogo para que el cliente navegue. 3. En la API Cloud, el cliente puede agregar ítems al carrito. En WhatsApp Web, usa Me interesa o Ver producto en la tarjeta interactiva. 4. Cuando el cliente finaliza el carrito, el pedido llega a la conversación como una tarjeta de pedido con los ítems, las cantidades y el total. 5. En la tarjeta del pedido, usa Crear cobro o Crear suscripción para facturar exactamente lo que se pidió — el importe ya viene precargado con el total del pedido. 6. Sigue el pago desde el módulo de Pagos; una vez confirmado, el cliente recibe la confirmación. Configuración y opciones - Producto único: envía un ítem específico del catálogo. - Variante y moneda: la tarjeta usa la variante elegida y el precio registrado para la moneda elegida; la selección no vuelve silenciosamente a la primera variante. - Lista de productos: envía varios ítems agrupados en un mensaje y conserva la variante y la moneda elegidas para cada producto. - Abrir catálogo: invita al cliente a navegar por el catálogo en WhatsApp. - Tarjeta de pedido: muestra ítems, cantidades, total y observaciones del cliente. - Atajos del pedido: Crear cobro (pago único) y Crear suscripción (recurrente), ya precargados con el importe del pedido. - Producto referenciado: cuando el cliente responde citando un producto, aparece un indicador del ítem citado junto al mensaje. Casos de uso - El cliente pregunta por un ítem específico — envías el producto único con foto y precio. - Atención consultiva — envías una lista con las mejores opciones para que el cliente elija. - El cliente arma el carrito solo — el pedido llega listo y facturas en segundos. - Venta recurrente (suscripción/plan) — el pedido se convierte en una suscripción con el importe acordado. Consejos, límites y buenas prácticas - Cobra lo que se pidió: la tarjeta usa el total del pedido acordado con el cliente; el importe no se recalcula a partir de los precios actuales del catálogo. Facturar el pedido respeta exactamente lo que el cliente armó. - Importes en unidades mayores: el total es la suma de precio × cantidad (4,97 = R$4,97), sin dividir por 100. - API Cloud: el formato nativo se usa solo cuando la variante elegida está publicada con su propio retailer_id y usa la moneda publicada. De lo contrario, la plataforma envía la tarjeta enriquecida con la variante y el precio exactos, sin sustituir el ítem. - WhatsApp Web: un producto único se envía como tarjeta interactiva con el botón Me interesa y, cuando el registro tiene un enlace público, Ver producto. El envío no requiere una licencia adicional. - Revisa el pedido antes de cobrar: ítems, cantidades y total. Solución de problemas - El envío falló con el error #131008: el escaparate no está utilizable en el número — el catálogo no está vinculado a la Cuenta de WhatsApp Business o el escaparate está desactivado. Abre la pestaña Catálogo y Escaparate de la bandeja de entrada, selecciona el catálogo y haz clic en Activar escaparate en este número. Detalles en Catálogo y Escaparate en la bandeja de entrada de WhatsApp. - El cliente no recibió el producto/lista nativos: confirma que la bandeja es WhatsApp Cloud API y que el catálogo está sincronizado. Comprueba también si la variante elegida tiene su propio retailer_id; sin él, recibir la tarjeta enriquecida es el fallback esperado. - El pedido no se convirtió en tarjeta: verifica que el pedido provino del carrito de WhatsApp; los pedidos de fuera de WhatsApp siguen el ciclo de vida de e-commerce. - Importe incorrecto al cobrar: la tarjeta precarga el total del pedido; si lo editas manualmente, recuerda las unidades mayores (no dividas por 100). Ver también - Catálogo y Escaparate en la bandeja de entrada de WhatsApp - Catálogo nativo: productos, categorías, imágenes y precios - Sincronización y WhatsApp Business Catalog - Ciclo de vida de e-commerce
Ciclo de vida de e-commerce: webhooks Kiwify/Hotmart/Nuvemshop/Shopify
Visión general El ciclo de vida de e-commerce conecta plataformas externas — Kiwify, Hotmart, Nuvemshop y Shopify — para que los eventos de venta lleguen dentro de la atención. Cuando algo ocurre en la plataforma externa (carrito abandonado, PIX/boleto generado, compra aprobada, rechazada o reembolsada), Conversa Labs recibe el webhook, normaliza el evento y muestra una tarjeta en la conversación del cliente, con los datos de pago cuando están disponibles. Con esto, recuperas ventas sin cambiar de herramienta: el equipo ve la etapa de la compra en la propia conversación y puede activar Follow-ups automáticos para reconquistar a quien no finalizó. Requisitos previos - El módulo de Catálogo y Comercio habilitado y permiso para configurar fuentes de comercio. - Acceso a la plataforma externa (Kiwify, Hotmart, Nuvemshop o Shopify) para configurar el webhook. - Para la recuperación automática: el módulo de Follow-ups configurado con secuencias por evento. Paso a paso 1. En el área de Catálogo y Comercio, crea una fuente de comercio para la plataforma deseada. 2. Copia la URL de webhook completa generada para esa fuente. Incluye la cuenta y la fuente; no elimines ningún segmento. Configura también el secreto de verificación. En Kiwify, el registro automático puede generar y guardar el token; en Hotmart, indica el Hottok de la aplicación. 3. Pega la URL en el panel de la plataforma externa (o usa el registro automático cuando esté disponible, por ejemplo en Kiwify y Nuvemshop). 4. Realiza una venta de prueba (o un carrito de prueba) para confirmar que el evento llega. 5. Observa la tarjeta del evento aparecer en la conversación del cliente, con ítems, importes y el enlace/datos de pago según la etapa. 6. Configura Follow-ups activados por evento (por ejemplo, "carrito abandonado") para recuperar la venta automáticamente. Configuración y opciones - Fuente de comercio: una por plataforma, con su propia URL de webhook y secreto de verificación. - Registro automático del webhook: disponible en algunas plataformas (ej.: Kiwify y Nuvemshop); en las demás, la configuración es manual en el panel de la propia plataforma. - Tarjeta del evento: muestra la etapa de la compra y, cuando la plataforma lo expone, datos de PIX/boleto y el enlace de checkout. - Variables de comercio: los datos del último evento quedan disponibles para usar en mensajes de Follow-up (enlace de pago, importe, código PIX/boleto, etc.). Elegir qué eventos recibir Al editar la fuente en Catálogo → Fuentes de sincronización → editar la fuente, la sección Eventos lista los eventos que envía esa plataforma y te permite mapear cada uno a una etapa del ciclo de vida — o marcarlo como Apagado (ignorar) para descartarlo por completo. Todo evento habilitado recorre el resto de la plataforma: automatizaciones, flows, webhooks, Follow-up y el CRM. El mapeo es lo que decide en qué etapa entra. Un botón destacado de Recuperación de carrito abandonado enciende y apaga el evento de carrito de la plataforma — es el que alimenta la cadencia de recuperación en Follow-up (disparador commerce.cart_abandoned). Disponible para: | Fuente | Eventos que mapeas | |---|---| | Hotmart | eventos de compra, carrito, suscripción y área de miembros | | Kiwify | sus 10 disparadores reales: compra_aprovada, pix_gerado, boleto_gerado, compra_recusada, compra_reembolsada, chargeback, carrinho_abandonado, subscription_renewed, subscription_late, subscription_canceled | | Nuvemshop | los valores de payment_status del pedido: paid, authorized, pending, refunded, partially_refunded, abandoned — el webhook de Nuvemshop trae solo el ID, así que la etapa viene del estado de pago del pedido | | Fuentes genéricas | los nombres de evento documentados por tu sistema. Tú defines explícitamente el campo del evento, el ID, las rutas de comprador/producto/ítems y la etapa canónica; no se infiere nada por el nombre de una plataforma | Las fuentes administradas sin un contrato verificado de ciclo de venta, como Mercado Libre y OLX, no muestran un selector de eventos. Las fuentes atendidas por el conector genérico — incluida una configuración propia de Shopify/API — muestran la configuración del webhook genérico firmado y reciben solo los eventos que mapees explícitamente. Los valores por defecto ya son sensatos: solo cambia el mapeo si quieres una etapa distinta o si quieres ignorar un evento. Casos de uso - Carrito abandonado: dispara una secuencia de Follow-up recordando al cliente que concluya. - PIX/boleto pendiente: reenvía el código de pago y hace seguimiento hasta confirmar. - Compra aprobada: confirma con el cliente y libera el siguiente paso de la atención. - Reembolso/rechazo: alerta al equipo para tratar el caso en la propia conversación. Consejos, límites y buenas prácticas - Lo que expone cada plataforma varía: algunas envían el código PIX y la línea del boleto en el evento (recuperación completa dentro de la conversación); otras solo proporcionan el enlace de checkout — en esos casos, la tarjeta muestra el enlace para que el cliente concluya. - Los importes y formatos difieren por plataforma: Conversa Labs normaliza cada evento; no necesitas preocuparte por la conversión — la tarjeta ya muestra el importe correcto. - Secreto de verificación: mantenlo configurado para que solo se acepten eventos legítimos de la plataforma. Los webhooks de Hotmart, Kiwify, Nuvemshop y los genéricos se rechazan si no hay un secreto configurado. Un emisor genérico también debe enviar la firma con marca de tiempo y un ID de entrega estable por evento. - Combínalo con Follow-ups para automatizar la recuperación en lugar de depender de la acción manual. Solución de problemas - El evento no aparece: verifica que la URL completa de webhook se pegó correctamente en la plataforma y que el secreto de verificación está configurado y coincide. - No veo PIX/boleto en la tarjeta: no todas las plataformas exponen esos datos; cuando no los hay, la tarjeta trae el enlace de checkout. - Eventos duplicados: las entregas genéricas con el mismo ID se procesan una sola vez. Si algo se ve extraño, confirma que el emisor reutiliza ese ID en los reintentos y que solo hay un webhook configurado para la misma fuente. Ver también - Visión general de Catálogo y Comercio - Enviar producto y recibir pedidos en la conversación - Catálogo nativo: productos, categorías, imágenes y precios
Configurar los mensajes de recuperación de ventas
Visión general Cada etapa producida de la recuperación de ventas (carrito abandonado, pago pendiente, pago rechazado y vencido) envía una tarjeta al cliente. En esta pantalla personalizas el texto de esa tarjeta por etapa y por idioma, sin depender de ninguna automatización de IA. Lo que no personalices sigue usando el mensaje incluido de Conversa Labs — así cambias solo lo que quieras. Por vencer sigue reservado para mantener la compatibilidad con datos históricos, pero todavía no tiene un productor de eventos y no se ofrece para configuración ni automatización. Además del cuerpo, editas las etiquetas auxiliares de la tarjeta y configuras, por etapa y por idioma, la plantilla aprobada de WhatsApp que se usa cuando la ventana de 24 h está cerrada. Requisitos previos - La recuperación de ventas debe estar habilitada en la cuenta. - Permiso de administrador para cambiar la configuración. - Para configurar el envío fuera de la ventana: una bandeja de WhatsApp Cloud con plantillas aprobadas por Meta. Paso a paso 1. Abre Recuperación de ventas → Mensajes. 2. Elige el idioma en el selector superior. Se abre en el idioma de la cuenta y lista todos los idiomas habilitados en la instalación (hasta 40), indicando cuántos ya tienen texto tuyo ("N de M idiomas con contenido"). 3. En cada etapa, escribe el cuerpo en Markdown. Déjalo vacío para usar el mensaje incluido de ese idioma — la etiqueta Predeterminado indica que la etapa hereda el texto integrado. 4. Usa el botón de variables ({x}) para insertar datos como {{contact.name}}, el importe y el enlace de pago del último evento del cliente. El selector ofrece solo las variables que realmente se resuelven en ese mensaje. 5. Abre el bloque Etiquetas auxiliares para ajustar las 6 leyendas y textos de botón de la tarjeta. 6. El bloque Fuera de la ventana de 24 h (WhatsApp Cloud) aparece abierto, justo debajo de cada etapa. Elige la plantilla aprobada de esa etapa en ese idioma, mapea los parámetros {{1}}, {{2}}… y, si la plantilla tiene botón de enlace, informa su valor. Si aún no existe una plantilla, usa Crear a partir de mi texto para generarla desde el cuerpo que escribiste. 7. Revisa la vista previa por canal y, si quieres, usa Enviar prueba para mandar el mensaje a una conversación real. 8. Guardar mensajes — también después de crear una plantilla, porque crear la plantilla no guarda la configuración. Para volver una etapa al predeterminado, usa Restaurar predeterminado — la personalización se elimina en el servidor, no solo en la pantalla. Configuración y opciones Idiomas y respaldo El idioma ya no es un trío fijo de pestañas: es un selector con todos los idiomas que la instalación habilita. Al enviar, Conversa Labs busca el texto en este orden: 1. el idioma del contacto; 2. el mismo idioma base (por ejemplo, pt_BR ↔ pt); 3. el idioma de la cuenta; 4. el mensaje predeterminado incluido. Etiquetas auxiliares La tarjeta es más que el cuerpo: tiene leyendas y textos de botón. Las 6 etiquetas auxiliares están en un bloque plegable debajo del cuerpo y siguen las mismas reglas de idioma y de restauración. Fuera de la ventana de 24 h (WhatsApp Cloud) El bloque aparece abierto e integrado justo debajo de cada tipo de mensaje — no es una sección que tengas que expandir. La plantilla es por tipo de mensaje y por idioma — cada etapa tiene la suya, en lugar de una única plantilla para todo el módulo. Ahí tienes: - Elegir la plantilla aprobada del catálogo. - Sincronizar desde Meta y Crear a partir de mi texto están siempre visibles. Cuando la acción no está disponible, el botón aparece deshabilitado con el motivo escrito al lado: la bandeja no es WhatsApp Cloud, la cuenta no tiene el WhatsApp Inbox Suite, o tu perfil no gestiona bandejas de entrada. - Sincronizar desde Meta actualiza la lista de plantillas aprobadas. - Crear a partir de mi texto genera la plantilla desde el texto de esa etapa en ese idioma, enviándola a Meta como plantilla UTILITY, convirtiendo cada {{ variable }} en {{1}}, {{2}}… y dejando el mapeo listo. Sin texto del que generar, el botón queda deshabilitado y la pantalla pide escribir el texto primero. - Tras el envío, la plantilla todavía no está aprobada: aparece en el selector marcada como esperando aprobación y solo empieza a entregar cuando Meta la aprueba y tú sincronizas. Enviar de nuevo con el mismo nombre reemplaza el borrador pendiente, en lugar de fallar. - Crear la plantilla no guarda la configuración — haz clic en Guardar mensajes para almacenar el mapeo. - El mapeo de los parámetros {{n}} y el campo del botón de enlace, cuando la plantilla lo tenga. - Botones nativos: por defecto el enlace de pago sale como botón en WhatsApp en lugar de una URL suelta en el texto. Puedes desactivarlo por tipo de mensaje en Entrega → Botones nativos. En WhatsApp Cloud, Meta entrega un único botón, así que el código PIX se queda en el cuerpo; en WhatsApp Web salen los dos. - Entrega: elige de qué bandeja de WhatsApp se consulta el catálogo de plantillas aprobadas. Todo lo que depende de esa bandeja — por qué sincronizar/crear no está disponible, cuántas plantillas se filtraron, el enlace para gestionarlas y el botón Sincronizar desde Meta — se indica una vez ahí, no repetido bajo cada mensaje. El envío en sí sigue saliendo por la bandeja de la propia conversación. Las plantillas cuyo encabezado exige medios o una variable no se listan aquí — este envío no puede completar ese encabezado — y la pantalla indica cuántas quedaron fuera. Siguen disponibles desde la pestaña Plantillas de la propia bandeja, con enlace directo desde esta pantalla. Notas importantes: - WhatsApp Web (WazMeow) no tiene ventana de 24 h — en esas bandejas el bloque de plantilla ni aparece. - 360dialog puede seleccionar una plantilla, pero no crearla — la creación es exclusiva de Cloud. - Meta empareja nombre + idioma + aprobada. Una plantilla en el idioma equivocado se señala en pantalla y sería rechazada al enviar. Vista previa y envío de prueba La vista previa se renderiza en el servidor, por canal, y muestra solo los canales que la cuenta realmente tiene. También exhibe la plantilla resuelta para fuera de la ventana, con los valores que cargará cada parámetro. Enviar prueba manda el mensaje a la conversación elegida respetando la ventana de 24 h: si la ventana está cerrada y no hay plantilla configurada, la prueba se omite con el motivo escrito en pantalla. Variables El selector lista solo lo que se resuelve en ese contexto. Los datos de contacto, cuenta, conversación, bandeja, agente, CRM y organización ahora se renderizan de verdad (antes salían en blanco), además de los datos del evento de comercio que originó la tarjeta. Consejos, límites y buenas prácticas - Los cuerpos son Markdown y cada canal muestra lo que admite: los adjuntos se descartan en LINE, TikTok y X; el HTML sin procesar desaparece en el correo y el widget; *negrita* en WhatsApp aparece como un par de asteriscos. La vista previa lo deja claro para que no escribas algo que solo funcione en un canal. - Personaliza primero el idioma principal de tu público y luego los demás — el contador "N de M" ayuda a seguir la cobertura. - Configura la plantilla fuera de la ventana en el mismo idioma del cuerpo: son pares, no una configuración única. - Después de "Crear a partir de mi texto", la plantilla queda esperando aprobación en Meta — usa Sincronizar desde Meta para ver cuándo se aprueba y empieza a entregar. Solución de problemas - El mensaje salió con el texto predeterminado: la etapa tenía la etiqueta Predeterminado (vacía) en ese idioma, o el contacto está en un idioma sin texto y el respaldo cayó en el predeterminado incluido. - Fuera de la ventana no se envió: confirma que haya una plantilla aprobada configurada para esa etapa y ese idioma. - La plantilla aparece señalada: está en un idioma distinto del de la tarjeta — cámbiala por una plantilla aprobada en el idioma correcto. - "Crear a partir de mi texto" está deshabilitado: el motivo aparece escrito al lado del botón — la bandeja no es WhatsApp Cloud (en 360dialog eliges una plantilla ya aprobada), la cuenta no tiene el WhatsApp Inbox Suite, tu perfil no gestiona bandejas de entrada, o no hay texto en esa etapa e idioma para generar la plantilla. - Creé la plantilla, pero no aparece / no se usa: justo tras el envío queda esperando aprobación — solo entrega cuando Meta la aprueba y usas Sincronizar desde Meta. Y confirma que hiciste clic en Guardar mensajes: crear la plantilla no guarda la configuración. - No encuentro una plantilla en la lista: las plantillas con encabezado de medios o con variable en el encabezado no se listan aquí; úsalas desde la pestaña Plantillas de la propia bandeja. - El envío de prueba se omitió: la conversación estaba fuera de la ventana de 24 h y la tarjeta no tenía plantilla configurada — la pantalla informa el motivo. Ver también - Ciclo de vida de e-commerce: webhooks Kiwify/Hotmart/Nuvemshop/Shopify - WhatsApp Inbox Suite: plantillas, flows y llamadas
Recuperación de ventas: entrega de la tarjeta, política de conversación y métricas
Visión general La Recuperación de ventas es la capa que garantiza que un evento de comercio siempre se convierta en una acción visible. Antes, la tarjeta de recuperación podía morir en silencio: si el cliente no tenía una conversación abierta, o si el mensaje caía fuera de la ventana de WhatsApp, no pasaba nada y nadie se enteraba. Ahora todo evento de ciclo de vida — proveniente de Kiwify, Hotmart, Nuvemshop o de la pasarela nativa (Asaas / Mercado Pago) — pasa por tres garantías: 1. Un resolvedor de conversación decide a dónde va la tarjeta, con una política que tú eliges. 2. Una guarda de ventana de envío verifica si el canal acepta el mensaje en ese momento. 3. Un resultado de entrega queda registrado en todos los caminos de salida: enviado, omitido o fallido, siempre con un motivo legible. El resultado práctico: abres la página Recuperación de ventas y ves cuántas oportunidades se alcanzaron, cuántas no y exactamente por qué — en lugar de descubrir semanas después que una cadencia entera nunca salió. Cuándo se dispara cada etapa | Etapa | Se dispara cuando | ¿Accionable? | |---|---|---| | Carrito abandonado | el cliente armó el carrito/checkout y no lo concluyó | Sí | | Pago pendiente | se generó un PIX o boleto y aún no se pagó | Sí | | Pago rechazado | la tarjeta fue rechazada por el emisor o por el antifraude | Sí | | Vencido | la fecha de vencimiento pasó sin pago | Sí | | Pedido creado | el pedido quedó registrado en la plataforma y sigue pendiente | No (no liquida) | | Pago confirmado | el pago fue aprobado | No (liquidación) | | Reembolsado | el importe fue devuelto al cliente | No | | Chargeback | el cliente disputó el cobro ante el emisor | No | | Suscripción atrasada | la renovación de la suscripción falló o está atrasada | No | | Suscripción cancelada | la suscripción fue finalizada | No | Las cuatro etapas accionables son las que entran en el cálculo de la tasa de recuperación. Los reembolsos y los chargebacks nunca cuentan como recuperación — son lo contrario. due_soon sigue siendo un valor almacenado válido por compatibilidad, pero ningún conector o pasarela nativa actual lo produce. Por eso no se ofrece en la recuperación automática ni en el selector de Follow-up. Requisitos previos - La funcionalidad Recuperación de ventas (commerce_recovery) habilitada en la cuenta. Viene desactivada por defecto; solicita la activación a quien administra la instalación. - Perfil de administrador o de agente en la cuenta. Ambos pueden abrir la página de recuperación, cambiar políticas y reenviar tarjetas — aquí no existe un permiso separado por módulo. - Al menos una fuente de comercio conectada (Kiwify, Hotmart, Nuvemshop) o una pasarela nativa configurada (Asaas / Mercado Pago), para que los eventos lleguen. - Para enviar fuera de la ventana de WhatsApp: una plantilla aprobada en la bandeja correspondiente. Con la funcionalidad desactivada, la nueva página, el panel lateral y las métricas quedan ocultos. La entrega en sí (política de conversación, resultado registrado) sigue funcionando en segundo plano — es infraestructura de comportamiento preservado. Paso a paso 1. Abre Recuperación de ventas en el menú del módulo de comercio. 2. Revisa el embudo accionable por etapa: usa las mismas cuatro etapas que las métricas de intentos y recuperaciones; las liquidaciones, reembolsos y cancelaciones no entran en este embudo. 3. Mira el bloque de entrega: enviado, omitido, fallido y no intentado. 4. Abre la lista de motivos — viene ordenada del más frecuente al menos frecuente. Esa es tu lista de corrección, en orden de impacto. 5. Haz clic en un evento para ver la tarjeta, la conversación de destino y el historial de entrega. 6. Si la tarjeta no salió por un motivo ya corregido (canal reconectado, plantilla aprobada), usa Reenviar. Si necesitas saltarte la guarda de duplicidad, marca forzar. 7. Ajusta la política de conversación en la acción de automatización/macro para que el próximo evento del mismo tipo no caiga en el mismo motivo. Configuración y opciones La política de conversación (la elección más importante) Cuando la tarjeta debe entregarse, la plataforma necesita saber en qué conversación escribir. Tienes tres opciones: | Política | Qué hace | Cuándo usarla | |---|---|---| | Usar una conversación existente (por defecto) | Entrega en la conversación más reciente del contacto. Nunca crea una. Si no hay ninguna, la tarjeta se omite con el motivo no_conversation. | El valor por defecto seguro — es exactamente el comportamiento actual. Nada cambia para quien ya lo usa. | | Crear una si es necesario | Usa la conversación existente cuando la hay; crea una nueva cuando no la hay. | Cuando quieres alcance máximo y aceptas que una conversación nueva sea visible para el cliente. | | Solo esta conversación | Entrega estrictamente en la conversación donde se disparó la regla. Nunca busca otra, nunca crea. | Cuando la tarjeta solo tiene sentido en el contexto de esa atención específica. | Por qué "crear una si es necesario" es opt-in: crear una conversación es una acción visible para el cliente y para la cola del equipo. Aparece en la bandeja, cuenta en los informes y puede generar notificaciones. Por eso Conversa Labs nunca lo hace por su cuenta — tienes que elegirlo. La ventana de 24 horas de WhatsApp (sin medias verdades) WhatsApp solo permite mensajes libres dentro de 24 horas desde el último mensaje del cliente. Fuera de esa ventana: - Sin plantilla aprobada → la tarjeta se omite, con el motivo whatsapp_window_closed. No se entrega. Conversa Labs prefiere registrar el motivo antes que encolar un mensaje que WhatsApp va a rechazar. - Con plantilla aprobada → la entrega degrada al mensaje único de la plantilla. Alcanzas al contacto, pero no con la tarjeta rica completa: solo con lo que la plantilla aprobada permite. WhatsApp Web no tiene ventana. Las bandejas de WhatsApp Web entregan normalmente en cualquier momento — la restricción de 24 h pertenece a la API oficial de WhatsApp Business, no a la plataforma. Excepción: par híbrido. Si tienes un par híbrido con Cloud como principal y enrutamiento fuera de la ventana hacia WhatsApp Web, el envío sale completo como mensaje de sesión de Web — no se convierte en plantilla ni se omite. En ese caso no esperes ver whatsapp_window_closed. Otros canales La tarjeta siempre lleva el enlace de pago en el cuerpo del mensaje, nunca solo como adjunto. Esto es deliberado: LINE, TikTok y X (Twitter) descartan o rechazan los adjuntos. Si el enlace viajara solo en el adjunto, el cliente recibiría un mensaje sin lo único que importa. Entrega de las tarjetas y la fila de "no intentados" El panel muestra el desglose de la entrega — enviadas, omitidas, con error y no intentadas. El grupo "no intentadas" es el que nunca tuvo tarjeta: ninguna regla actuó sobre ese evento. Dejó de ser un número suelto: ahora puedes filtrar la línea de tiempo por él y encolar los pendientes en lotes limitados, del más antiguo al más nuevo, hasta 50 por vez. La acción responde aceptado/en cola, no con un total de entregas. El procesamiento ocurre en segundo plano y los resultados reales (enviado, omitido o fallido) aparecen después en la cronología. Nunca abre una conversación nueva: un evento sin destino queda registrado como omitido con su motivo. El historial importado o adoptado desde una pasarela siempre queda fuera de esta fila. Por qué "Recuperaciones intentadas" puede marcar 0 con la lista llena. La cuenta solo considera los eventos accionables cuya tarjeta se registró como enviada. Si no se envió ninguna, el denominador es cero — la página no está rota, te está diciendo que todavía nadie fue contactado. Recuperación automática por etapa (desactivada por defecto) En Mensajes → Recuperación automática por etapa, activa solo las etapas en vivo que quieres que Conversa Labs encole automáticamente. Todos los interruptores empiezan desactivados. El evento inmediato encola la tarjeta y una verificación cada cinco minutos repara una entrega perdida a la cola. Ambos caminos vuelven a comprobar el interruptor, reutilizan una conversación existente, respetan la ventana de 24 horas de WhatsApp y aplazan el envío cuando el límite seguro de la conexión está lleno. Los cobros importados o adoptados son historial: siguen visibles para auditoría e informes con la etiqueta Histórico — envío bloqueado, pero quedan fuera de cualquier envío al cliente. La recuperación automática, el drenaje manual, la verificación, Follow-up, el reenvío forzado, las automatizaciones y Maestro no pueden atravesar esta protección. El orden de los mensajes de la tarjeta La tarjeta es una secuencia: resumen → botón de pago → PIX copiar y pegar → código QR → boleto → línea digitable. Ese orden ahora está garantizado en la entrega — antes cada mensaje salía por su cuenta y podían llegar desordenados (el código PIX crudo llegando antes del mensaje que pide copiarlo). En Mensajes → Entrega defines la pausa entre los mensajes de la tarjeta. Déjala en blanco para usar el valor del canal: en WhatsApp conectado por celular (WazMeow) es 1 segundo, para espaciar la ráfaga y no parecer un envío automático; en los demás canales no hay pausa. Abrir la conversación y reenviar Cada fila activa tiene Abrir conversación (va directo al chat de ese cliente) y Reenviar tarjeta. El reenvío apunta a la conversación por su identificador público — nunca puede caer en el cliente equivocado. Si el evento todavía no tiene conversación, el diálogo lo avisa antes de confirmar que se abrirá una con el cliente. Las filas históricas no muestran el reenvío y la API también lo rechaza, incluso con forzar. Casos de uso - Un PIX pendiente que se enfrió: el cliente generó el PIX ayer y desapareció. La tarjeta reenvía el código en la conversación existente, sin crear ruido nuevo. - Una ola de rechazos de tarjeta: un emisor tumbó varias transacciones. Filtras por payment_declined, ves que todas se omitieron con channel_unavailable, reconectas el canal y reenvías en lote. - Un carrito abandonado de alguien que nunca te habló: contacto nuevo, sin conversación. Con la política "crear una si es necesario", la tarjeta abre la conversación e inicia la atención. - Auditoría de cadencia: la lista de motivos muestra que el 60% de los envíos murió en whatsapp_window_closed — la señal clara de que esa cadencia necesita una plantilla aprobada. Consejos, límites y buenas prácticas Los resultados de entrega y qué hacer con cada uno Todo evento termina en uno de estos estados: enviado, omitido, fallido — o no intentado, cuando ninguna regla actuó sobre él. | Motivo | Qué significa | Qué hacer | |---|---|---| | no_contact | El evento llegó sin un contacto identificable (la plataforma de origen no envió teléfono/correo utilizable). | Revisa el mapeo de identificación en la fuente de comercio. Sin contacto no hay a quién enviar. | | no_conversation | El contacto existe, pero no hay conversación para recibir la tarjeta y la política es "usar una conversación existente". | Si quieres alcanzar esos casos, cambia la política a crear una si es necesario. | | no_channel_inbox | No existe una bandeja del canal que pidió la acción. | Conecta la bandeja de ese canal, o apunta la acción a una bandeja que exista. | | whatsapp_window_closed | Fuera de la ventana de 24 h y sin plantilla aprobada. | Adjunta una plantilla aprobada a la acción. O mueve la cadencia dentro de la ventana. | | throttled | Se alcanzó el límite de envío del canal en ese momento. | Espacia la cadencia. Las ráfagas grandes en WhatsApp también aumentan el riesgo de bloqueo. | | channel_unavailable | El canal está desconectado, expirado o no disponible. | Reconecta la bandeja y reenvía los eventos afectados. | | sequence_not_published | La secuencia de Follow-up sigue en borrador. | Publica la secuencia. Un borrador nunca envía — es intencional. | | already_sent | La guarda de duplicidad lo bloqueó: ese evento ya tuvo una tarjeta registrada como enviada. | Nada, en la mayoría de los casos. Si realmente debes enviar otra vez, usa Reenviar con forzar. | Integración con sistemas externos Cada resultado de entrega — enviado, omitido o fallido — también se emite como el evento de webhook de cuenta commerce_card_delivery, con el motivo canónico incluido. Así es como un sistema externo (n8n, un CRM) reacciona sin sondear: abrir una tarea cuando el motivo sea no_conversation, o intentar otro canal cuando sea whatsapp_window_closed. Actívalo en Configuración → Integraciones → Webhooks. La guarda de duplicidad y el reenvío explícito Un mismo evento crea y despacha localmente la tarjeta una sola vez. Si una automatización y una macro intentan enviar la misma tarjeta, la segunda se omite con already_sent — esa es la guarda local de duplicidad. La entrega final del proveedor todavía debe comprobarse en el estado del mensaje o de la conversación del canal. El reenvío siempre es explícito y humano: abres el evento y haces clic en Reenviar. Conserva el registro del primer envío (fecha y mensaje originales) y solo incrementa el contador de reenvíos — el historial nunca se borra. Para atravesar la guarda a propósito, marca forzar. Cómo leer la tasa de recuperación (con honestidad) La tasa de recuperación es la proporción de intentos accionables registrados como enviados y atribuidos a una liquidación posterior del mismo contacto y del mismo pedido. Con precisión: - Denominador: eventos accionables (carrito abandonado, pendiente, rechazado, vencido) cuya tarjeta se registró como enviada. - Numerador: liquidaciones posteriores con el mismo contacto, origen e identificador externo del pedido/cobro. Pagar otro pedido no recupera el primero. - Una liquidación cuenta una sola vez. Si el mismo pedido recibió varias tarjetas accionables, se atribuye de forma determinista al último intento registrado como enviado antes de liquidar. Pedido creado nunca liquida ingresos: solo payment_confirmed entra en el numerador. - Los eventos cuya tarjeta nunca se registró como enviada quedan fuera de ambos lados. El estado enviado confirma la creación y el despacho local; todavía no es un recibo final del proveedor. - Cuando nada se intentó en el período, la tasa aparece como —, no como 0%. Cero por ciento significaría "lo intentamos y fallamos"; la raya significa "no hubo intento". Esto es correlación, no causalidad. La métrica dice "el cliente pagó después de que lo contactamos", no "el cliente pagó porque lo contactamos". Parte de esas personas habría pagado de todos modos. Usa el número para comparar cadencias entre sí y seguir una tendencia — no lo presentes como ingresos atribuidos a una campaña. Los ingresos recuperados usan el valor y la moneda de la liquidación, no el valor mostrado en la tarjeta. Los totales se muestran separados por moneda: BRL y USD nunca se suman ni se rotulan como si todo fuera BRL. Los valores permanecen en la unidad principal de cada moneda, sin conversión oculta. Si el origen no informó la moneda, la interfaz deja explícita esa ausencia. Solución de problemas - "No intentado" en muchos eventos: ninguna regla está actuando sobre esa etapa. Crea una automatización o una secuencia de Follow-up para la etapa en cuestión. - Todo omitido con no_conversation: tu base son contactos sin conversación abierta y la política es la predeterminada. Cambia a crear una si es necesario — recordando que la conversación nueva es visible para el cliente. - Todo omitido con whatsapp_window_closed: la cadencia se ejecuta fuera de la ventana de 24 h. Aprueba una plantilla y adjúntala a la acción, o adelanta el disparo. - Tarjeta entregada, pero "pobre": estás fuera de la ventana con plantilla. Es el comportamiento correcto — WhatsApp solo acepta la plantilla aprobada en esa situación. - channel_unavailable intermitente: la bandeja se está cayendo. Verifica la conexión del canal antes de reenviar en lote, si no los reenvíos fallarán por el mismo motivo. - El cliente lo recibió dos veces: verifica si hay una automatización y una secuencia de Follow-up cubriendo la misma etapa, o si alguien usó forzar en el reenvío. - La tasa aparece como "—": ninguna tarjeta de recuperación se registró como enviada en el período filtrado. Amplía el período o revisa la lista de motivos. - La página no aparece: la funcionalidad commerce_recovery está desactivada en la cuenta, o tu usuario no es administrador ni agente en ella. Ver también - Ciclo de vida de e-commerce: webhooks Kiwify/Hotmart/Nuvemshop/Shopify - Visión general de Catálogo y Comercio - Enviar producto y recibir pedidos en la conversación
Operar la cola de recuperación: responsable, resultado, notas e ignorados
Visión general La línea de tiempo de Recuperación de ventas separa dos conceptos: - Entrega de la tarjeta indica si el mensaje se envió, se omitió o falló. - Resultado operativo indica si la oportunidad terminó como recuperada o perdida. También puedes asignar un responsable, guardar una nota interna e ignorar una oportunidad que no debe recibir nuevas acciones. Estos campos son operativos: no cambian la etapa de la pasarela, el importe, la liquidación ni el historial de entrega. Requisitos previos - La funcionalidad Recuperación de ventas habilitada en la cuenta. - Permiso para gestionar Comercio en la cuenta. - Al menos un evento de comercio en la línea de tiempo. Paso a paso 1. Abre Comercio → Recuperación de ventas. 2. Busca el evento por los datos mostrados del cliente, correo/teléfono, ID externo, origen, etapa e importe. Este contexto sigue disponible aunque todavía no exista una conversación. 3. Si el cliente falta o es incorrecto, usa Corregir el cliente y los vínculos de la venta. Elige un contacto existente o propón uno nuevo, revisa el cobro y el pedido relacionados y aplica tras la vista previa. 4. Selecciona Gestionar. 5. En Responsable, elige un agente de la misma cuenta o déjalo sin asignar. 6. En Resultado, elige Recuperada, Perdida o déjalo sin resultado mientras el trabajo continúa. 7. Escribe una nota operativa, si es necesario, y guarda. 8. Para retirar el evento de las acciones automáticas, selecciona Ignorar y confirma. 9. Para volver a trabajarlo, ábrelo y selecciona Reabrir oportunidad. 10. Para actuar sobre varias oportunidades a la vez, marca las casillas de las filas — o usa Seleccionar esta página y Seleccionar todas de estos filtros — y elige Sacar de la recuperación, Devolver a la recuperación o Enviar tarjeta en la barra de acciones. Cada acción confirma antes, y lo rechazado se lista con su motivo y sigue seleccionado para que puedas reintentarlo. Configuración y opciones Resultado El resultado es terminal y manual: | Valor | Uso | |---|---| | Sin resultado | la oportunidad sigue abierta o todavía no fue revisada | | Recuperada | el equipo confirmó la recuperación operativa | | Perdida | el equipo finalizó el intento sin recuperación | El resultado no sustituye la métrica financiera, que sigue basada en la liquidación correlacionada. Responsable Solo se pueden seleccionar usuarios que pertenecen a la misma cuenta. Quitar al responsable devuelve el evento a la cola sin asignación. Nota operativa La nota admite hasta 2.000 caracteres, elimina espacios en los extremos y es interna. No escribas contraseñas, tokens, datos de tarjeta ni otros secretos. La auditoría registra que la nota cambió, nunca copia su texto. Cliente y vínculos de la venta La corrección alinea contacto, cobro, pedido y recuperación en una sola transacción. Puede actualizar organización, negocio y conversación, pero nunca etapa, importe, liquidación ni identificador externo. Todo impacto en vendedor o afiliado exige confirmación auditada en la vista previa. Para eventos históricos, crea solo proyecciones internas y no envía tarjeta, mensaje, automatización ni conversión externa. Ignorar y reabrir Ignorar es reversible. Mientras está ignorado, el evento: - sigue visible con su historial intacto; - no entra en la cola de tarjetas pendientes ni en la cadencia automática; - no se usa como la oportunidad accionable más reciente del contacto; - rechaza nuevos envíos y registra el motivo operativo si una integración lo intenta. Reabrir elimina solo el bloqueo. Responsable, resultado, nota, etapa y entregas anteriores se conservan. Casos de uso - Distribuir carritos abandonados entre agentes sin crear negocios artificiales en el CRM. - Marcar como perdido un cobro cuya negociación terminó fuera de la plataforma. - Ignorar un evento de prueba o una oportunidad cuyo cliente pidió no recibir nuevos contactos. - Reabrir un evento ignorado por error sin perder la nota anterior. Consejos, límites y buenas prácticas - Usa el resultado para la decisión humana y la métrica de ingresos para la liquidación observada; no los mezcles. - Escribe notas breves y objetivas. Los datos personales siguen las reglas de exportación y anonimización de la cuenta. - Ignorar no borra el evento ni revierte dinero. Usa Corregir el cliente y los vínculos de la venta para asociaciones y la operación correspondiente de Pagos para hechos financieros. - Antes de ignorar, comprueba si el origen es solo un fallo de canal que puede corregirse y reenviarse. Solución de problemas - El responsable no aparece: confirma que el usuario todavía pertenece a la cuenta. - No puedo guardar la nota: reduce el texto a un máximo de 2.000 caracteres. - La tarjeta no se envía: comprueba si el evento está ignorado; reábrelo antes de intentarlo otra vez. - El evento no tiene cliente o apunta al contacto equivocado: abre Corregir el cliente y los vínculos de la venta, resuelve el contacto y revisa la vista previa completa. Esta corrección no envía nada al cliente. - El resultado no cambió los ingresos recuperados: es lo esperado; los ingresos usan liquidación correlacionada, no el resultado manual. - Recibo un error de permiso: el perfil necesita el permiso de gestión de Comercio. Ver también - Recuperación de ventas: entrega de la tarjeta, política de conversación y métricas - Reconciliación de ventas
Centro de conciliación de ventas
Visión general El Centro de conciliación reúne registros históricos con vínculos ausentes o divergentes entre cobros, pedidos del CRM y eventos de comercio. La verificación automática solo sugiere relaciones con identidad exacta; nombres, importes o fechas parecidos nunca unen ventas. Además de confirmar la contraparte de una venta, Corregir el cliente y los vínculos de la venta alinea el contacto, la organización, el negocio y, cuando se solicita, la conversación, el vendedor y el afiliado en todo el grafo. No importa dinero ni cambia importe, estado, liquidación, fechas o identificadores de la pasarela. Un contacto nuevo solo se propone en la vista previa y se crea tras la confirmación final. Requisitos previos - El módulo Recuperación de ventas debe estar habilitado para la cuenta. - Necesita permiso de gestión de Comercio. - Las integraciones y las importaciones históricas ya deben haber traído los registros a revisar. Paso a paso 1. Abra Recuperación de ventas en el menú comercial y elija Conciliación. 2. Seleccione Ejecutar verificación. El análisis se pone en cola y puede tardar unos instantes en una cuenta con mucho historial. 3. Actualice la lista y filtre por estado, tipo de origen, motivo o ID de origen. Cada fila reúne cliente, correo/teléfono, organización, negocio, responsable o creador, afiliado, conversación y los principales datos disponibles del origen. Los campos protegidos pueden aparecer enmascarados u omitidos según su perfil. 4. Abra un elemento pendiente. Use Vincular solo cuando la sugerencia tenga la misma fuente de gateway y el mismo ID externo. 5. Cuando el cliente falte o sea divergente, elija Corregir el cliente y los vínculos de la venta desde la fila de la cola, el cobro, el pedido o el evento. Seleccione un contacto existente o proponga uno nuevo con nombre y correo, teléfono o documento. Decida también cómo tratar una conversación incompatible. 6. Revise la vista previa completa: registros alcanzados, cambios, conflictos, proyecciones históricas e impacto en crédito/comisión. Confirme el impacto de atribución cuando exista y aplique. Si algún registro cambia entre la vista previa y la confirmación, se rechaza toda la operación y debe revisarla de nuevo. 7. Confirme el vínculo. La cola registra la decisión, el operador y la fecha. 8. Si el registro no es una venta de la cuenta, elija Ignorar y agregue un motivo cuando sea útil. 9. Use Deshacer si debe revertir la decisión. La plataforma solo revierte si el vínculo sigue exactamente como fue registrado, para no sobrescribir un cambio posterior. Configuraciones y opciones - Pendiente: requiere revisión humana. - Vinculado: se confirmó la relación entre registros existentes. - Ignorado: la cuenta decidió que el elemento no debe volver a la cola. Para cobros, también se respeta en importaciones y webhooks futuros. - Duplicado: reservado para consolidar registros equivalentes. - Acciones masivas: puede ignorar o deshacer elementos accionables seleccionados. Seleccionar todos los elementos accionables de estos filtros recorre todas las páginas, omite decisiones que no admiten una acción masiva y respeta el límite de 500 elementos. Se informa cada error; una selección mixta nunca se presenta como éxito total. - Filtros y ordenación: permanecen en la URL de la página para retomar o compartir la misma vista. - Corrección del grafo de venta: se ejecuta en una sola transacción. O cobro, pedido y recuperación quedan alineados, o nada cambia. Las proyecciones históricas ausentes son internas y no envían mensajes, automatizaciones ni conversiones externas. Al finalizar, se cierran todas las filas aún pendientes de los registros alcanzados; una verificación posterior también cierra un aviso que ya fue corregido. Casos de uso - Un cobro importado de Asaas ya tiene un pedido antiguo con el mismo ID de pago. - Un evento histórico de Hotmart o Kiwify llegó antes que su pedido correspondiente. - Un cobro de prueba, de otra empresa o que no representa una venta debe quedar fuera de futuras verificaciones. Consejos, límites y buenas prácticas - Confirme siempre gateway + ID externo. Nombres, correos, fechas o importes parecidos no prueban que dos ventas sean la misma. - La corrección automática nunca asocia contactos u organizaciones por aproximación. Si no existe una coincidencia exacta del cliente, haga una elección manual explícita en la vista previa. - Use Corregir cliente y vínculos para asociaciones. Para importe, estado, liquidación o identidad de la pasarela, corrija la operación financiera o el sistema de origen; esos hechos siguen inmutables aquí. - Revise los elementos pendientes antes de ignorarlos en masa. Los cobros ignorados no vuelven hasta un deshacer explícito. - La conciliación no crea ingresos ni comisiones. Usa las claves canónicas existentes para que los informes y los créditos no se cuenten dos veces. Solución de problemas - La cola está vacía: ejecute una verificación, espere a que termine y revise los filtros activos. - No hay sugerencia para vincular: no existe una contraparte exacta. Mantenga el elemento pendiente o corrija/sincronice su origen. - No puedo deshacer: un operador o una integración modificó el vínculo después de su decisión. Revise el historial en vez de sobrescribir ese cambio posterior. - La corrección fue bloqueada por un conflicto: la misma identidad externa apunta a varios cobros o pedidos, o una conversación es incompatible. Resuelva el duplicado indicado y genere otra vista previa; nada cambió. - La vista previa quedó desactualizada: un registro cambió antes de confirmar. Abra la corrección otra vez y revise el nuevo impacto. - Un cobro ignorado no vuelve: es esperado. Deshaga la decisión en la cola antes de una nueva importación o verificación. - No veo Conciliación: confirme la habilitación del módulo y el permiso de gestión de Comercio. Ver también - Registro de pedidos (Orders Registry) en el CRM - Importar historial de cobros - Recuperación de ventas
Endpoint de ingesta de pedidos
Visión general El registro de Pedidos acepta ventas ocurridas fuera de la plataforma. Recibes una URL de ingesta propia de la cuenta y envías cada pedido por POST — desde tu propio checkout, un ERP, una automatización o cualquier pasarela que Conversa Labs aún no integre de forma nativa. La URL lleva un token opaco que identifica la cuenta. No hay otro encabezado de autenticación: quien tenga la URL puede registrar pedidos en tu cuenta, así que trátala como una contraseña. Requisitos previos - El módulo Pedidos debe estar habilitado en la cuenta. Con él apagado, la URL responde 404. - Perfil de administrador (o permiso de gestión del CRM) para abrir y rotar el token. Paso a paso 1. Abre Pedidos y haz clic en Endpoint de ingesta. 2. Copia la URL de ingesta. El campo Token aparece enmascarado — usa el ojo para mostrarlo y el botón contiguo para copiar solo el token. 3. Pega la URL en tu sistema de origen y envía el pedido como en el ejemplo. 4. Confirma que el pedido aparece en la lista. Reenviar el mismo external_id actualiza el pedido en lugar de crear otro. curl -X POST 'https://TU-INSTALACION/public/api/v1/orders/ingest/TU-TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "gateway": "mi_checkout", "external_id": "PED-10231", "email": "cliente@example.com", "title": "Plan Pro anual", "amount": 149.9, "currency": "USD", "status": "paid", "ordered_at": "2026-08-11T10:00:00-03:00", "line_items": [ { "name": "Plan Pro anual", "quantity": 1, "unit_price": 149.9 } ] }' Campos del cuerpo | Campo | Obligatorio | Qué es | |---|---|---| | gateway | Sí | Identifica el origen del pedido (ej.: mi_checkout, hotmart). | | contact_id / email / phone_number | Sí (uno de ellos) | Referencia para encontrar o crear el contacto. Envía también name para nombrar uno nuevo. | | external_id | No, pero recomendado | El identificador del pedido en tu sistema. Es lo que hace idempotente el reenvío. | | status | No | Uno entre pending, partially_paid, paid, overdue, failed, canceled, refunded. | | amount y currency | No | Importe total en unidades mayores (149.9 = 149,90) y la moneda en ISO-4217. | | ordered_at y paid_at | No | Fechas ISO-8601 con zona horaria. Sin ellas se usa el momento de recepción. | | line_items | No | Ítems con name, quantity, unit_price y, cuando exista, catalog_product_id, catalog_variant_id, discount y metadata. | | title, crm_item_id, affiliate_id, metadata, raw | No | Complementos. El afiliado solo se acredita si pertenece a esta cuenta y está activo. | Respuestas - 201 — {"status": "ok"}. Pedido registrado o actualizado. - 422 — invalid_payload (falta gateway), contact_reference_required (falta la referencia de contacto), invalid_order_status (estado fuera de la lista) o contact_unresolvable (no se pudo encontrar ni crear el contacto). - 404 — token ausente, ya rotado, o módulo de Pedidos desactivado en la cuenta. Consejos, límites y buenas prácticas - Envía siempre external_id. Sin él, un reenvío de tu pasarela se convierte en un pedido duplicado. - El endpoint tiene límite de tasa por token. En cargas grandes, envía en serie y espera de forma progresiva ante un 429. - Rotar el token invalida la URL anterior de inmediato. Hazlo solo con la integración lista para recibir la nueva URL — y actualízala enseguida. - Los importes van en unidades mayores, con punto decimal. No envíes céntimos como entero. Solución de problemas - Todo responde 404: la URL fue rotada o el módulo Pedidos está desactivado en la cuenta. - 422 contact_reference_required: el cuerpo no llevó contact_id, email ni phone_number. - El mismo pedido aparece dos veces: se envió sin external_id, o con un valor distinto en cada intento. - El afiliado no recibió comisión: el affiliate_id no pertenece a esta cuenta o está inactivo. Ver también - Central de reconciliación de ventas - Ciclo de vida del comercio
Sincronizar el catálogo con tiendas y marketplaces (Sync Studio)
Visión general Sync Studio conecta plataformas externas de e-commerce y marketplaces a tu catálogo nativo en Conversa Labs. Con él defines fuentes de sincronización que pueden: - Importar (entrada) — traer los productos de la plataforma externa al catálogo nativo; - Publicar (salida) — enviar productos del catálogo nativo a la plataforma externa; - Mantener las dos vías — combinar importación y publicación en la misma fuente. Sync Studio es distinto de otras dos funciones cercanas: - La Sincronización con el WhatsApp Business Catalog (Meta) vincula el catálogo nativo al catálogo de Meta para enviar productos en WhatsApp — tiene su propio artículo. - El ciclo de vida de e-commerce trata los eventos de venta (carrito abandonado, PIX pendiente, compra aprobada, reembolso) que se convierten en tarjetas en la conversación — también tiene su propio artículo. Sync Studio se ocupa del catálogo de productos: lo que está a la venta, con nombre, precio e imágenes. Requisitos previos - El módulo Catálogo y Comercio habilitado para tu cuenta. - Permiso de administrador para gestionar fuentes de sincronización. - Una cuenta y las credenciales de acceso en la plataforma externa (token, claves de aplicación o autorización, según el conector). - Recomendado: catálogo nativo ya organizado en categorías antes de publicar productos hacia afuera. Paso a paso 1. En el área de Catálogo, abre Sync Studio (fuentes de sincronización) y haz clic para crear una nueva fuente. 2. Elige el conector/preset: fuente Genérica, Shopify, WooCommerce, Magento, PrestaShop, Medusa, Mercado Libre, Nuvemshop, Hotmart, Kiwify u OLX. 3. Define la dirección: Entrada (importar), Salida (publicar) o Dos vías. 4. Autentica la fuente según el conector: - Mercado Libre — haz clic en Autorizar; te lleva a la pantalla de inicio de sesión de la plataforma y, al aprobar, te devuelve a la dirección fija /catalog_oauth/callback. Los tokens se guardan cifrados. - Hotmart / Kiwify — indica client_id y client_secret (además de account_id en Kiwify). El basic_token de Hotmart se acepta para fuentes antiguas, pero se deriva automáticamente cuando no fue informado. Kiwify recibe las credenciales como formulario y genera el token. - Fuente Genérica, Shopify, WooCommerce, Magento, PrestaShop, Medusa — elige autenticación Bearer, encabezado, Basic (usuario y contraseña) o parámetro de URL, y configura el mapeo. - Nuvemshop — pega el token de la tienda y el store_id. 5. Usa Probar conexión para una fuente Hotmart o Kiwify ya guardada. Para una fuente Genérica, usa la vista previa en vivo antes de guardar: realiza la misma llamada que la sincronización y muestra la respuesta, el formato leído, campos detectados, sugerencias de mapeo y el primer registro mapeado. 6. Guarda y haz clic en Sincronizar ahora para ejecutar la primera importación (o Publicar ahora en una fuente de salida). 7. Sigue el historial de ejecuciones paginado y filtrable para ver cada sincronización, con horarios en la zona de la cuenta, dirección y resultado (ítems leídos, creados, actualizados, ignorados o con error). La lista de fuentes también muestra contadores seguros y el último error sin exponer credenciales. Puedes exportar el historial filtrado o las ejecuciones seleccionadas explícitamente como CSV; una exportación parcial mantiene visibles los IDs que no se pudieron exportar. Configuración y opciones - Conector / preset (source_type) — la plataforma de origen/destino. - Dirección — entrada, salida o dos vías. - Credenciales — guardadas cifradas, nunca mostradas de vuelta y nunca registradas en logs. - Intervalo de sincronización — cada cuánto se sincroniza la fuente automáticamente (además de la sincronización manual bajo demanda). - Estado de la fuente — una fuente deshabilitada sigue siendo editable, pero no acepta webhooks ni ejecuta Sincronizar ahora, Publicar ahora o trabajos de lectura, publicación y validación de Meta que ya estaban en cola. Vuelve a habilitarla solo después de revisar dirección, capacidades y credenciales. - Paginación — los catálogos grandes se recorren por páginas automáticamente (Shopify sigue el encabezado Link, WooCommerce avanza por página); las fuentes JSON genéricas pueden configurar el estilo de paginación. Si una ejecución alcanza el límite de seguridad de 200 páginas y todavía hay una página siguiente, termina como parcial/truncada y conserva el cursor; la ejecución siguiente continúa desde ese punto. El cursor solo se limpia cuando la lectura llega realmente al final. - Formato y raíz de productos — la fuente Genérica detecta JSON, NDJSON, XML, CSV o TSV por la respuesta; puedes elegir el formato manualmente. XML usa una raíz XPath (por ejemplo, //products/product); los otros formatos usan ruta con puntos. - Mapeo sugerido — la vista previa propone, sin guardar por sí sola, coincidencias en portugués, inglés y español con confianza. Revísalas antes de aplicar. Además de nombre e ID puedes mapear precio, precio comparativo, moneda, SKU, stock, marca y URL externa; items.0.price elige la primera posición. - Webhook de la fuente — cada fuente tiene su propia dirección de webhook (/webhooks/catalog/:account_id/:source_id). Donde la plataforma lo permite, Conversa Labs lo registra con un clic mediante Registrar webhook (Nuvemshop, Kiwify); en otras, pegas la dirección en el panel de la propia plataforma (Hotmart). - Secreto de sincronización de entrada — usado por los clientes de la API de sincronización masiva y enmascarado en la lista. Rotar secreto de entrada invalida el anterior inmediatamente, registra la operación cuando la auditoría nativa está habilitada y revela el nuevo valor una sola vez; actualiza todos los remitentes. - Secreto del webhook de la plataforma — valor proporcionado por la plataforma para verificar los eventos de comercio. Es write-only y nunca se devuelve. Para sustituirlo, pega el nuevo valor al editar la fuente y actualiza también el panel externo; Conversa Labs no inventa ni rota ese valor en la plataforma. - Fuente Genérica bidireccional — configura el mapa de eventos y las rutas de campos en la propia pantalla. La entrada exige X-Webhook-Signature: t=…,v1=…, rechaza una fuente sin secreto, limita la ventana de replay y deduplica el ID de entrega. Una fuente solo de salida rechaza entregas entrantes. Para salida, informa un destino HTTP(S) sin credenciales, parámetros de consulta ni fragmentos; la autenticación usa el secreto HMAC compartido. Los eventos tienen historial con búsqueda, reintentos automáticos y reenvío manual individual o masivo confirmado. Una entrega que encuentra la fuente deshabilitada, eliminada, modificada o sin secreto falla antes de realizar cualquier solicitud externa y registra el motivo en ese historial. - Producto, variación y artículos del webhook genérico — las rutas de producto y variación parten de la raíz del evento. Indica primero la ruta de la lista de artículos y luego mapea los campos relativos a cada artículo. Los campos vacíos nunca se infieren. Al mapearlos, los valores se conservan en el pedido del CRM y solo se envían a webhooks de cuenta que activaron detalles de comercio. - Protección contra duplicados y bucle — cada ítem importado guarda el identificador de origen (external_id / retailer_id) y la fuente. En sincronizaciones posteriores esto actualiza el mismo producto en lugar de recrearlo e impide devolver a la fuente un cambio que vino de ella. Importar ventas históricas de Hotmart o Kiwify En una fuente Hotmart o Kiwify guardada, abre Gestión → Importar ventas. Selecciona ambas fechas dentro de la ventana del proveedor: hasta 31 días naturales en Hotmart o 90 días en Kiwify. Puedes filtrar por producto y por los valores documentados de estado/pago del proveedor; Kiwify también admite el filtro de afiliado. Sin un filtro de estado de Hotmart, su API devuelve solo APPROVED y COMPLETE; selecciona explícitamente otro estado documentado cuando lo necesites. Haz clic en Previsualizar ventas: esta llamada es de solo lectura, usa la paginación oficial de cada proveedor y no escribe contactos, organizaciones, eventos ni pedidos. Revisa la acción local de cada fila y selecciona explícitamente entre 1 y 500 IDs antes de ponerla en cola. Omitir la selección nunca significa “importar todo”. La importación vincula únicamente contactos existentes de la cuenta mediante campos exactos de ese endpoint de ventas. El historial de Hotmart proporciona el correo del comprador (nombre/ucode no se usan como identidad); Kiwify GET /sales proporciona correo, móvil y CPF. Una organización solo se vincula por la organización principal actual del contacto que coincidió exactamente. Nunca elige entre coincidencias conflictivas ni inventa un campo CNPJ que la lista de Kiwify no documenta. Un comprador sin contacto existente, o un estado sin equivalencia local fiel, se muestra como no importable; la importación histórica nunca crea personas ni empresas. Los eventos de ciclo de vida y Pedidos del CRM importados conservan las fechas de pedido/aprobación del proveedor y llevan la marca histórica. Esto suprime mensajes al cliente, fan-out de automatizaciones, crédito de comisiones y ranking, engagement, CAPI, efectos de stock y webhooks salientes de la cuenta, pero sí llena el registro nativo de pedidos. Usa el Historial de ejecuciones para revisar cantidades seleccionadas, creadas, actualizadas, reparadas, omitidas y fallidas, los IDs exactos omitidos/con fallo y si el recorrido global del proveedor fue truncado. Una solicitud idéntica reutiliza la ejecución activa y el proceso se bloquea por cuenta/fuente. Una ejecución completa o parcial ofrece Deshacer importación solo mientras cada pedido y evento creado localmente siga intacto y sin vínculos; la reversión es atómica, nunca llama a Hotmart/Kiwify y nunca elimina contactos u organizaciones. Casos de uso - Importar una tienda Shopify o WooCommerce al catálogo nativo y atender desde ahí. - Publicar productos nativos en un marketplace (cuando el conector admite salida). - Mantener Mercado Libre o Nuvemshop conectados para alimentar el catálogo nativo. - Importar infoproductos de Hotmart o Kiwify y, además, recibir los eventos de venta en la conversación. Capacidades por plataforma Cada conector declara lo que admite; la interfaz habilita la dirección y los botones según esa capacidad. | Plataforma | Importar (entrada) | Webhook de eventos | Ventas históricas | Autenticación | |---|---|---|---|---| | Fuente Genérica (JSON, NDJSON, XML, CSV o TSV) | Sí | Sí (firma HMAC configurable) | No | Bearer, encabezado, Basic o parámetro de URL | | Shopify | Sí | — | No | Token / encabezado | | WooCommerce | Sí | — | No | Token / encabezado | | Magento, PrestaShop, Medusa | Sí | — | No | Token / encabezado | | Mercado Libre | Sí | — | No | OAuth (Autorizar) | | Nuvemshop | Sí | Sí (auto-registro) | No | Token de la tienda (pegar) | | Hotmart | Sí (productos) | Sí (en el panel de Hotmart) | Sí (vista previa y selección gobernadas) | Client credentials | | Kiwify | Sí (productos) | Sí (auto-registro) | Sí (vista previa y selección gobernadas, hasta 90 días) | Client credentials | | OLX | No (sin API de lectura) | — | No | Solo socios | - La publicación (salida) hacia el WhatsApp Business Catalog tiene su propio artículo; los conectores de tienda/marketplace anteriores se centran en la importación en esta versión. No toda plataforma es bidireccional. - Los webhooks de eventos anteriores entregan eventos de venta (no productos) y alimentan el ciclo de vida de e-commerce — consulta ese artículo. - OLX no ofrece API pública de lectura: la integración existe solo para socios aprobados, que publican un feed de anuncios (autoupload). Por eso el conector OLX viene deshabilitado en Sync Studio hasta que se conceda el acceso de socio. Consejos, límites y buenas prácticas - Las credenciales se quedan en el servidor: están cifradas, nunca vuelven a la pantalla y no aparecen en logs. Los conectores OAuth (Mercado Libre) renuevan el token por sí solos mediante la autorización concedida. - Respeta la paginación y los límites de la plataforma de origen; los catálogos muy grandes se leen en varias páginas y pueden tardar más en la primera importación. - La descripción llega como texto plano: tiendas como Nuvemshop/Tiendanube y Shopify guardan la descripción del producto en HTML. Al importar, la plataforma la convierte a texto, conservando párrafos, saltos de línea y listas — las etiquetas nunca llegan ni a ti ni al cliente, ya que la descripción viaja como texto en el mensaje enviado en la conversación y en el catálogo de Meta. Una descripción que escribas tú se guarda tal como la escribiste. - Valores en unidades mayores: los precios siguen en unidades mayores (4,97 = R$4,97). La plataforma no divide por 100. - Ejecuta la primera importación fuera del horario pico para revisar el resultado con calma. Solución de problemas - La autorización de Mercado Libre falló: confirma que la aplicación de la plataforma usa la dirección de retorno fija /catalog_oauth/callback y rehaz el flujo de Autorizar (el state de la autorización caduca en pocos minutos). - Los productos no se importaron: usa Probar conexión para ver la respuesta real; revisa el token/las claves, el store_id/account_id cuando aplique y si el conector elegido es el correcto. La vista previa genérica muestra el motivo de la plataforma con los secretos ocultos. - El webhook no se dispara: confirma que la fuente fue registrada (Nuvemshop/Kiwify) o que la dirección se pegó en el panel de la plataforma (Hotmart), y que el secreto del webhook está completo. - Ítems duplicados: la duplicación se evita por el identificador de origen (retailer_id / external_id); si aparecen duplicados, comprueba si los ítems llegaron con identificadores distintos a los que ya existían. Ver también - Catálogo nativo: productos, categorías, imágenes y precios - Sincronización y WhatsApp Business Catalog - Ciclo de vida de e-commerce: webhooks Kiwify/Hotmart/Nuvemshop/Shopify