zymplo
Medido en vivo · 28-jul-2026 · 22:26–22:40Z
Auditoría OPS-R0 · en vivo, no de memoria

¿Qué de esto ya funciona de verdad?

Revisamos los 2 links que mandaste (la galería de documentos y el mockup de paywall) más tu captura real de WhatsApp, contra el código de hoy — no contra lo que veníamos asumiendo de charlas pasadas. Esto es lo que hay, pieza por pieza.

Construido, apagado

Acordo · contrato + firma + Pix + nota fiscal

Todo el código existe. Un interruptor lo tiene apagado en el bot.

A medias

Loop viral · referidos

El link para invitar ya funciona. El premio y la base de datos real, no.

Construido, apagado

Paywall Zy Pro · suscripción

3 formas de cobrar ya programadas. También detrás de un interruptor.

Ya terminado

ZyChat (app) vs WhatsApp

Mismo cerebro. Solo cambia el dibujo en pantalla. No hay nada pendiente.

Bug confirmado

Formato de respuestas largas

Tu captura tiene razón — encontramos la causa exacta.

Parte 1 de 4

Estado real, sistema por sistema

Ninguno de los 2 links es fantasía — atrás de las pantallas lindas hay código de verdad. Pero "existe en el repo" no es lo mismo que "el MEI lo puede usar hoy". Marcamos cada uno.

A · Acordo — contrato, firma digital, cobro Pix, recibo y nota fiscal en un solo chat

Apagado en prod

Es exactamente lo que muestra la galería de Vercel: el MEI y su cliente arman el contrato, lo firman, cobran la seña por Pix directo a la cuenta del MEI, y al final sale el recibo y la nota fiscal — todo sin salir del WhatsApp. El motor completo (8 pasos, de borrador a cerrado) ya está escrito.

Motorzymplo-langgraph/src/acuerdos/{orchestrator,fsm,tools}.py
Firmadocuseal.py (estándar) + zapsign.py (ICP-Brasil real)
Cobro Pix directotools.py:210–278
Reciboorchestrator.py:829
Nota fiscaltools.py:376
Interruptorconfig/settings.py:756 → acuerdos_enabled = False
HistorialPR #1518 mergeado 05-jun-2026
🔧 Para prenderlo: flip del interruptor acuerdos_enabled + confirmar que DocuSeal esté arriba en producción + token guardado en Doppler + luz verde legal de Rolón (LGPD) + confirmar que la migración de base de datos ya corrió en el servidor real. Esto último no lo pudimos ver ahora — no tuvimos acceso por SSH al servidor en esta sesión.

B · Loop viral — "un MEI invita a otro dueño de negocio"

Mitad prendido

Es la sección "efeito Zymplo" de la galería. Un MEI genera su link, lo manda, y cuando el amigo se activa, los dos ganan algo. La generación del link y el premio gratis ya andan. El premio pago y la base de datos real de todo esto recién se subieron hoy — y todavía no a la rama oficial.

Link + tablareferral_tools.py:37 · migrations/018_referrals.sql
Premio gratisautomático al activarse el invitado — funciona
Premio pagosettings.py:598 → referral_reward_enabled = False ("Default OFF, ship safe")
Backend realPR #2840 — mergeado HOY 19:54Z, solo a "develop", todavía no a "main"
Pantalla appprofile/referrals.tsx — ya anda
🔧 Para completarlo: pasar el PR #2840 de "develop" a "main" + desplegarlo + configurar la conexión a la base de datos real (MOBILE_API_DATABASE_URL) + prender el interruptor del premio pago. Sin esto, hoy corre en "modo degradado": no rompe, pero tampoco entrega el premio de verdad.

C · Paywall Zy Pro — Zymplo cobrando su propia suscripción al MEI

Apagado en prod

Es la "Variante B" de la galería y el mockup de paywall que mandaste. Ya existen 3 formas reales de cobrar (Stripe, MercadoPago BR y Asaas como respaldo para Pix), y las pantallas de la app ya abren un checkout de verdad — no un dibujo. Dato importante: el precio del mockup (R$29/mês) no es el precio real que ya definieron.

Cobrostripe_webhook.py · plan_webhook.py (MercadoPago) · billing_tools.py:126–526 (Asaas)
Appprofile/plans.tsx:69–121 · ProPaywallScreen.tsx — checkout real, no mockup
Interruptoressettings.py:877 billing_enabled=False · settings.py:903 stripe_enabled=False
Precio real (regla #147)USD 3.99 / 5.99 / 13.99 · BR R$19,90 / 29,90 / 69,90
Precio del mockupR$29/mês — no coincide con ningún plan real, era solo un placeholder
🔧 Para prenderlo: flip de billing_enabled y stripe_enabled + confirmar en el servidor real que no haya un valor distinto ya cargado (no verificado ahora). Ojo: hoy, sin esto prendido, el candado de "plan vencido" del bot está diseñado para fallar abierto — o sea, si el sistema de cobro no responde, deja pasar al usuario igual, no lo bloquea.

D · ZyChat (dentro de la app) vs bot en WhatsApp real

Ya está resuelto

Buena noticia acá: es el mismo cerebro. La app y WhatsApp llaman a la misma función central del bot — el único diferenciador es una etiqueta interna ("app" o "wa"). Lo que cambia es solo el "dibujo": WhatsApp usa las plantillas de Meta, la app dibuja sus propias burbujas en React Native. No es deuda técnica, es la arquitectura definitiva.

Cerebro comúnai_chat_router.py → reusa process_message(), mismo entry point que WhatsApp
Dibujo WhatsAppbsp.py (plantillas Meta)
Dibujo appChatSection.tsx:148–160 · Card.tsx (componentes nativos propios)
No hay nada pendiente acá — es la base correcta para construir todo lo demás encima.
Parte 2 de 4

Tu captura tenía razón: encontramos la causa exacta

El bot le respondió a un usuario con una pared de texto sin ninguna estructura. Fuimos a ver por qué — y ya existe adentro del código un formato lindo (el mismo que usa el "resumen general" de la cuenta) que esta respuesta puntual simplemente no está usando.

Causa raíz en 2 partes: (1) la herramienta que junta los gastos no arma una "tarjeta" prolija como sí tiene el resumen general de la cuenta — le deja toda la redacción libre a la IA, y esta vez la IA escribió un párrafo corrido. (2) La regla que le dice al bot "usá emojis y secciones si la respuesta es larga" solo cubre explícitamente listas de más de 5 ítems — no cubre un resumen narrativo como este. Los dos huecos se arreglan con cambios chicos y sin riesgo.

Tool gastoserp_api_tools.py:2166–2336 (sin formato de tarjeta)
Regla actualprompts/monolithic.py:110–116 (solo cubre "listas >5 items")
Formato bueno que YA existeerp_ver_dashboard, erp_api_tools.py:832–915 (con emoji-headers 📊📅🎯🏦📋)
App móvilMessageBubble.tsx + RichText.tsx — mismo texto del bot, sin tarjeta propia tampoco
🔧 Arreglo propuesto (chico, bajo riesgo): copiar el mismo patrón del resumen general (emoji-header + negrita nativa de WhatsApp con un solo asterisco + separador) a la herramienta de gastos, y ampliar la regla de formato para que también obligue este estilo en resúmenes narrativos, no solo en listas. No toca cobros ni plata — es 100% seguro de aplicar apenas lo apruebes.
Parte 3 de 4

Cómo lo usa un MEI real, hoy mismo

Esto es lo que un electricista, plomero o peluquera puede hacer YA por WhatsApp, sin que nadie prenda nada más. Marcamos en cada paso si está prendido o si todavía no llega ahí.

Se da de alta solo

Escribe al número de Zymplo, el bot pregunta su oficio, su nombre, pide el consentimiento de datos (LGPD) y le muestra un mini-tutorial. ✅ prendido

Manda una foto del recibo o un audio

El bot lee la foto y anota el gasto solo. Si manda un audio contando lo que gastó, también lo entiende y lo registra. ✅ prendido

Cobra a un cliente por Pix

"Cobrale 500 reales a Juan" → el bot genera el QR y el código copia-y-pega. ✅ prendido

Agenda una cita

"Agendame con Juan mañana a las 3" → si conectó su Google Calendar, queda el evento con link de reunión. ✅ prendido

Emite la nota fiscal (Brasil)

"Emití la nota de Juan por R$800" → sale la NFS-e real de la Prefeitura. ✅ prendido

Pide su resumen del mes

El bot contesta con los números reales — hoy con el formato desprolijo que viste en tu captura (ver Parte 2). ⚠️ funciona, pero con el bug de formato

Invita a un amigo dueño de negocio

Genera su link y lo comparte. Si el amigo se activa, hoy gana el premio gratis. El premio pago todavía no cae. ⚠️ mitad prendido

Le pide al bot un contrato con firma para un cliente

Esta es la parte de la galería que mandaste (contrato + firma + Pix + recibo + nota, todo en un chat). Hoy el bot todavía no llega a ofrecer esto — está el motor completo escrito, pero el interruptor sigue apagado. 🔴 no disponible todavía

Se suscribe a Zy Pro (plan pago)

Hoy nadie paga todavía — el cobro de la suscripción está apagado, y el candado de "plan vencido" deja pasar a todos si el sistema de cobro no responde. 🔴 no disponible todavía

Parte 4 de 4 · propuesta, no ejecutada

Mega-plan: mostrarle al MEI TODO Zymplo, de punta a punta

Esto es una propuesta para que la apruebes. No tocamos ningún interruptor, no mergeamos nada y no le mostramos nada a ningún MEI todavía. Se arma en 4 fases.

0

Decisiones tuyas antes de mostrar nada (dinero y legal)

  • Acordo: prender acuerdos_enabled — necesita luz verde legal de Rolón (LGPD) primero.
  • Viral: mergear PR #2840 a main + conectar la base de datos real + prender el premio pago.
  • Paywall: prender billing_enabled + stripe_enabled — esto es plata real entrando y saliendo, tu aprobación explícita antes de tocarlo.
1

Arreglar el formato del bot (bajo riesgo, alto impacto visual)

  • Portar el formato de tarjeta (emoji-header + negrita + separador) del resumen general a la herramienta de gastos/movimientos.
  • Ampliar la regla de formato para que cubra resúmenes narrativos, no solo listas.
  • Confirmar que la app ZyChat herede el mismo estilo automáticamente (comparte el mismo texto).
2

Armar la "demo completa" categoría por categoría

Un guion de prueba real para cada bloque de funciones, con ejemplos reales tipo "escribile esto al bot y mirá qué pasa":

3

Cerrar 3 huecos conocidos antes de mostrar la demo

  • La pantalla "Contratos" de la app puede estar sin conectar a un backend real — confirmar antes de mostrarla a un MEI.
  • Hay 7 recordatorios automáticos (radar de cobro, aviso de impuesto DAS, empuje motivacional, etc.) escritos pero apagados — decidir cuáles prender para la demo.
  • Confirmar por SSH en el servidor real los valores de todos los interruptores de arriba — esta sesión no tuvo ese acceso.
💸 Cobros y facturación
  • Cobro Pix
  • Nota fiscal NFS-e (Brasil)
  • Facturación en 13 países más (parcial)
📄 Contratos y firma
  • Acordo con cliente (apagado)
  • Firma digital ZapSign
👥 Clientes y agenda
  • Alta/búsqueda de clientes
  • Citas + Google Calendar
📊 Gastos e ingresos
  • Registro de movimientos
  • Resumen financiero (bug de formato)
🔔 Proactividad
  • Radar de cobro moroso (apagado)
  • Aviso de impuesto DAS (apagado)
  • Empuje motivacional (apagado)
📷 Multimedia
  • Foto de recibo → gasto
  • Audio → registro
🚀 Onboarding
  • Alta guiada por oficio
  • Consentimiento LGPD
🎁 Referidos
  • Link de invitación
  • Premio pago (a medias)
🌎 Multi-país / idioma
  • 34 países soportados
  • Trilingüe en/es/pt forzado
💳 Planes
  • Free vs Pro (cobro apagado)
🔗 Integraciones
  • Open Finance / Pluggy (BR)
  • Google Calendar
📱 App ZyChat extra
  • Gamificación (logros/ranking)
  • Reportes visuales
Resumen para vos

Explicado fácil, para actuar ya

  1. Los 2 links que mandaste son reales, no mentira. Atrás de esas pantallas lindas sí hay código de verdad ya construido. Es como tener un auto armado en el garage, con la llave puesta, pero con el freno de mano echado.
  2. Nada de eso lo puede usar un MEI todavía. El contrato con firma y cobro (Acordo) y el cobro de tu propia suscripción (Zy Pro) están apagados a propósito por un interruptor en el código. El programa de invitar amigos anda a medias — el link funciona, el premio en efectivo no.
  3. Tu foto de WhatsApp tenía toda la razón. Encontramos exactamente por qué el bot respondió feo: existe un formato lindo con títulos y separadores (el que usa el resumen general de la cuenta), pero la herramienta de "gastos" no lo está usando. Es un arreglo chico, sin riesgo, listo para aplicar en cuanto digas que sí.
  4. La app del celular y WhatsApp ya están bien conectados — usan el mismo cerebro. Ahí no hay que arreglar nada.
  5. Armamos un plan de 4 pasos (arriba) para: (0) que decidas prender los 3 interruptores grandes — necesita tu OK porque toca plata y legal, (1) arreglar el formato feo del bot — esto sí lo podemos hacer ya, no tiene riesgo, (2) armar una guía de prueba completa para mostrarle a un MEI real cada función, y (3) tapar 3 huecos chicos que encontramos.

Tu próximo paso: decime si aprobás arrancar por el arreglo del formato (Fase 1 — sin riesgo, se puede hacer ya) y si querés que avancemos con Rolón el tema legal para prender Acordo y el cobro de Zy Pro (Fase 0).