
La visita se convierte en orden de servicio en el patio del cliente — con o sin señal de internet
Reticar Motores rectifica motores de línea pesada en Chapecó desde hace más de 40 años, y su equipo comercial vive en la carretera — transportistas, talleres diésel y cooperativas agrícolas del interior de tres estados del sur de Brasil. La app antigua fallaba justo donde no podía: en la sincronización. Epicora construyó el reemplazo — app móvil offline-first (iOS y Android) y panel web completo —, migró 3.819 clientes y unió lo que estaba suelto: la visita, con check-in georreferenciado, se convierte en orden de servicio con foto de la pieza, en el mismo lugar y en el mismo minuto.
- Cliente
- Reticar Motores (Chapecó, Brasil)
- Lo que hicimos
- Sustitución completa del sistema comercial de campo — app móvil offline-first del vendedor + panel administrativo web, con migración de toda la base
- Plataforma
- App iOS y Android (React Native · Expo) · Web (React 19 · Vite) · API NestJS · MongoDB · AWS
El punto de partida
Reticar no partía de cero — y eso es lo que hace el caso más difícil, no más fácil. Ya tenía una aplicación, hecha a medida años antes, que el equipo comercial usaba todos los días. El problema es que esa app se había quedado congelada en el tiempo: código heredado, sin nadie que lo mantuviera, con errores recurrentes concentrados justo en la parte que un equipo de campo no puede perder — la sincronización de datos. Cuando la sincronización se traba, el vendedor no se queda con una app fea; se queda sin poder trabajar.
Y el trabajo de Reticar es de carretera. El equipo comercial atiende rectificadoras, talleres diésel, transportistas y cooperativas agropecuarias repartidas por el interior de tres estados — lugares donde la señal de celular es una hipótesis, no un hecho. El vendedor llega al cliente, evalúa una culata agrietada en el patio, necesita consultar el historial de esa cuenta, registrar lo que vio y abrir la orden de servicio. Si cualquiera de esas cuatro cosas depende de internet, el proceso se rompe y se convierte en una nota para digitar después — con el retraso y el retrabajo que eso implica.
- Sincronización que trababa la app entera — mientras corría, bloqueaba hasta acciones básicas, y corría cada vez que alguien abría la aplicación.
- Código heredado sin mantenimiento: ninguna funcionalidad nueva entraba sin riesgo, y nadie era dueño de lo que ya existía.
- La visita y la orden de servicio vivían separadas — lo que se veía en el cliente no se convertía en documento en el mismo movimiento.
- El vendedor veía lo que no era suyo: la estructura comercial por región no estaba reflejada en el sistema.
- Ninguna prueba de presencia física en el cliente — ni horario, ni ubicación.
El giro
La decisión de partida fue tratar la app del vendedor como un sistema que funciona solo y solo después conversa con el servidor — no como una pantalla que consulta una API. La aplicación carga una base de datos local en el propio celular y trabaja sobre ella: los 3.819 clientes quedan en el aparato, la búsqueda es local, el mapa es local, el registro es local. Cuando vuelve la señal, la cola sube. Es la diferencia entre "la app tiene modo offline" y "la app es offline por diseño". Eso también cambió cuándo ocurre la sincronización: en la app antigua se disparaba en cada apertura y trababa todo; aquí dejó de ser un peaje en la entrada — cada registro creado sin conexión muestra su propio indicador de sincronizado, y el trabajo continúa mientras la cola drena.
La segunda decisión fue quitar el teclado del camino. Registrar una visita escribiendo, de pie en el patio de una transportadora, no ocurre — y lo que no ocurre se convierte en una nota mental perdida. Entonces la descripción de la visita pasó a ser hablada: el vendedor graba y el reconocimiento de voz del propio aparato transcribe al campo de texto, con límite de duración. No sube audio a ningún servidor ni depende de un servicio externo de transcripción — es el recurso nativo del celular, lo que mantiene la función disponible en campo y el costo en cero.
La tercera fue hacer que el sistema viera la estructura comercial real de Reticar. El territorio se volvió una jerarquía de cuatro niveles — Estado, Macrorregión, Microrregión y Ciudad —, y el vendedor se vincula a regiones, no a una lista de clientes. Quien atiende la macrorregión de Chapecó ve los clientes de Chapecó; quien atiende Passo Fundo ve los de Passo Fundo. Cada concesión y cada revocación de ese vínculo entra en el registro de auditoría como evento propio.
La decisión que lo destrabó
El check-in es lo que concluye la visita — no es un botón de estado más. Cuando el vendedor llega al cliente y hace check-in, la app graba horario y geolocalización, cambia la visita de Agendada a Realizada, e inmediatamente pregunta: "¿Deseas crear una Orden de Servicio para este cliente ahora?". La orden nace con cliente y vendedor ya completados y guarda la referencia de la visita que la originó. Eso cerró el hueco entre "estuve allí" y "vendí esto" — y todo funciona sin conexión, porque es justo en la puerta del cliente donde suele faltar la señal.
Lo que entregamos
La app del vendedor, que trabaja sin internet
iOS y Android, publicadas en ambas tiendas. Agenda del día, mapa con todos los clientes agrupados por proximidad, lista de clientes con búsqueda local sobre toda la base, órdenes de servicio y perfil — todo leyendo de una base local en el aparato. Registro de cliente con documento fiscal validado y dirección por código postal, creación de visita en el momento (para cuando el vendedor llega sin agendamiento) y tema claro, oscuro o del sistema.
La visita con check-in georreferenciado
La visita nace agendada y solo pasa a Realizada por el check-in, que graba horario y ubicación — la prueba de presencia física que antes no existía. La descripción entra por voz transcrita en el aparato. Un check-in por visita, sin repetición; revertirlo es acción restringida al administrador y queda registrada. Y el historial de reprogramaciones y cancelaciones se guarda entero, porque en una operación comercial lo que no ocurrió también es información.
La orden de servicio que nace de la visita
Asistente de seis pasos en el celular: piezas para recolección con foto tomada en el momento — la culata agrietada, el alternador, lo que sea —, servicios del catálogo por categoría, piezas por SKU, medios, y las preguntas que la operación de rectificación realmente hace: ¿devolver las piezas viejas? ¿es bonificación? Además de los datos del vehículo (patente, marca, modelo, año, combustible, kilometraje, número de motor). En el panel web la misma orden abre completa y se exporta en PDF con la identidad de Reticar.
El panel administrativo web completo
Clientes, usuarios, agenda en calendario o lista, piezas y recolecciones, servicios y categorías, regiones en los cuatro niveles y órdenes de servicio — todos con búsqueda, filtros, paginación y exportación. Tres perfiles con alcances distintos — Administrador, Operador y Vendedor —, y la estructura que separa quién es responsable de la cuenta de quién es el vendedor de ella: es lo que permite que la célula interna de preventa abra la orden y el vendedor externo siga siendo dueño del cliente.
Cómo lo garantizamos
Cambiar el sistema de una operación viva, sin detener la operación
La entrega no fue un "sale el lunes". Fue un plan de siete etapas con periodo de uso en paralelo: durante las pruebas, el equipo de Reticar corrió la app nueva junto a la antigua, con capacitación presencial en la sede de Chapecó, apoyo continuo por WhatsApp y una ronda formal de feedback presencial antes del cambio. Solo después se traspasaron los accesos y el sistema antiguo salió. Hoy Reticar opera 100% en el nuevo — y el proyecto siguió con tablero de solicitudes y mantenimiento activo, no entregado-y-abandonado.
Toda la base migrada, con el historial incluido
3.819 clientes fueron migrados del sistema antiguo manteniendo los identificadores originales y las fechas de registro — hay registros de 2019 en la base actual. Eso no es un detalle de infraestructura: es lo que hace que el vendedor abra la app y reconozca su propia cartera, en vez de encontrar un sistema vacío pidiéndole redigitar siete años de relación. Migración validada antes del cambio, y el mapa de clientes prueba la distribución real de la operación — Chapecó concentrando el mayor grupo, y el resto repartido por el interior de tres estados.
Trazabilidad en lugar de confianza
La acción sensible no se borra, se registra. Las eliminaciones son soft delete — cliente, pieza, servicio y región salen de circulación sin desaparecer del historial —, cada transición de estado de orden y de visita queda registrada con autor, estado anterior y nuevo, y conceder o revocar acceso a una región entra como evento propio de auditoría. El check-in no puede rehacerse, y deshacerlo exige perfil de administrador. Sumado al acceso por región, es lo que vuelve auditable una operación que ocurre a 300 km de la matriz.
El resultado
La prueba de que el sistema prendió no es la fecha del lanzamiento: es que las órdenes de servicio siguen entrando todos los días. Entre el 16 de julio y el 4 de agosto de 2026 — las primeras tres semanas en producción —, el equipo abrió 76 órdenes, las más recientes el mismo día de esta verificación. Un sistema que el equipo no adopta deja el contador quieto; este no se detuvo.
Y el cambio fue integral. Reticar no mantiene la app antigua corriendo en paralelo "por seguridad", que es el desenlace más común cuando se sustituye un sistema en uso: los siete vendedores externos, la célula interna de preventa y la administración están todos en el nuevo. Antes de eso, la app nueva convivió a propósito con la antigua durante las pruebas — la confianza se construyó sobre el uso real, no se pidió por adelantado.
Soluciones relacionadas
Casos relacionados
¿Tu equipo de campo depende de un sistema que se traba cuando cae la señal?
Epicora construye apps que funcionan sin conexión por diseño — y sustituye sistemas en uso sin detener la operación: el nuevo corre junto al antiguo hasta que el equipo confíe en él.