Cómo un despacho de contabilidad de Puerto Rico pasó de seis sistemas paralelos a un CRM propio, cinco automatizaciones en producción y doce mil documentos de cliente indexados.
Este documento se preparó como memoria profesional. La firma, sus clientes y su personal aparecen sin identificar, y se han retirado identificadores de sistema (URLs de instancia, IDs de aplicación y de archivo). La razón no es cosmética: el diagnóstico contiene un hallazgo de seguridad real y aún sin remediar. Todas las cifras, decisiones, expresiones técnicas y aprendizajes son los del proyecto, sin alterar.
Esta segunda edición amplía la primera con la capa de automatización construida durante las tres semanas siguientes al cierre original y con un inventario verificable de todo lo entregado. Se mantienen sin retocar las secciones de fallos, riesgos y limitaciones: un informe que solo cuenta lo que salió bien no sirve para decidir nada.
Qué se encontró, qué se construyó y qué sigue abierto a la fecha de cierre.
En veinticinco días, una firma de contabilidad de catorce personas pasó de seis sistemas paralelos sin conectar a un CRM propio con modelo relacional, permisos por departamento y tres automatizaciones en producción. Se migraron 2.607 registros maestros e histórico desde un CRM comercial que el equipo había dejado de usar, se levantó por primera vez un pipeline comercial completo de 74 clientes activos, y se cerró el prerrequisito de identidad que bloqueaba cualquier modelo de seguridad.
En las tres semanas siguientes se construyó la capa que faltaba: el comunicado mensual de cumplimiento, que sustituye el trabajo de calendario que Operaciones hacía a mano cada mes —primer envío real, veinticuatro de veinticuatro correos aceptados, veintisiete negocios cubiertos, en 21,9 segundos—, y el sistema documental, que enlazó 605 de 607 carpetas de cliente a su ficha e indexó 4.140 documentos. Las secciones 13 y 21 las detallan; la 22 y la 23 explican qué de todo esto es método reutilizable y qué es específico de esta firma.
También hay una parte incómoda, y este informe la trata con el mismo detalle: el sistema tiene los maestros llenos y las transacciones en cero. Se crearon 76 tareas y ninguna se ha cerrado. Las 1.548 actividades son histórico importado, no registro de trabajo nuevo. El módulo que concentraba el 83 % del valor del proyecto —el cumplimiento contributivo— sigue sin construirse. Y el hallazgo crítico de seguridad detectado el día 5 sigue abierto el día 25.
Se construyó capacidad. La arquitectura, los permisos, la trazabilidad y las automatizaciones de captación están hechos y probados. Lo que falta no es más construcción: es adopción medida y el módulo de cumplimiento. Lo que existe es un sistema listo para usarse.
Qué cubre este informe, con qué evidencia y con qué limitaciones declaradas.
Este documento reconstruye el proyecto completo: diagnóstico, auditoría de datos, diseño, construcción, automatización, pruebas y estado resultante. No es un resumen de entregables; es una memoria con trazabilidad, en la que cada afirmación relevante se puede remontar a una fuente y a una fecha.
Todo el informe usa cuatro marcas, visibles en el margen izquierdo de cada sección y junto a las afirmaciones fuertes:
| Marca | Significado | Ejemplo |
|---|---|---|
| Hecho | Registrado explícitamente en un documento, consulta o configuración de la época. | «El módulo de oportunidades del CRM anterior tenía 2 registros.» |
| Medido | Consultado en vivo contra el sistema el 31 de agosto o el 1 de septiembre de 2026. | «74 tratos, 45 con importe.» |
| Inferencia | Conclusión razonable derivada de varias evidencias, marcada como tal. | «El buzón compartido concede acceso máximo a tres personas.» |
| Sin dato | Aspecto relevante que no puede determinarse con la información disponible. | «No existe medición de adopción.» |
Diecisiete fuentes, de cuatro naturalezas distintas. Las de mayor peso son las tres primeras.
| Fuente | Naturaleza | Fecha | Uso en el informe |
|---|---|---|---|
| Documentos de diagnóstico y diseño | |||
| Especificación técnica del sistema (11 pestañas) | Diagnóstico cuantificado + diseño completo | 11·08 | Secciones 4, 9, 11, 13, 18 |
| Documento maestro de arquitectura | Narrativa de diseño, 10 fases | 11·08 | Secciones 3, 9, 10, 12 |
| Informe de auditoría de gobernanza de datos | Auditoría de 9 etapas sobre el CRM origen | 12·08 | Secciones 5, 6 |
| Diagnóstico general de la base de datos (etapa 1/9) | Volumetría confirmada por consulta | 12·08 | Sección 5 |
| Actas de reunión (transcripción automática) | |||
| Reunión de Operaciones | Decisión de plataforma, prioridades técnicas | 07·08 | Secciones 7, 14 |
| Reunión de Operaciones — expansión | Modelo comercial, capacidad, dominio | 26·08 | Secciones 3, 7 |
| Segunda sesión: pipeline interno de operaciones | Rediseño del onboarding, giro de plataforma | 31·08 | Secciones 7, 14, 19 |
| Sistemas vivos (consultados directamente) | |||
| Libro de datos del CRM (9 pestañas) | Backend en producción | 01·09 | Secciones 1, 10, 11, 16, 17 |
| Aplicación CRM (editor) | Configuración de tablas y permisos | 01·09 | Secciones 10, 12 |
| Instancia de automatización en la nube | 5 workflows, API pública | 01·09 | Sección 13 |
| Registro de trabajo y artefactos | |||
| Bitácora técnica del proyecto (12 archivos, 134 KB) | Decisiones, fallos y verificaciones fechadas | 08·08 – 31·08 | Todo el informe |
| Auditoría de seguridad de la instancia de automatización | 22 hallazgos | 21·08 | Secciones 13, 18 |
| Panel de operaciones interino | Herramienta puente, 7 pestañas | 11–26·08 | Secciones 7, 15 |
| Repositorio de automatizaciones y plantillas | Correo, PDF, respaldos de workflow | 20–31·08 | Sección 13 |
Cinco limitaciones condicionan la lectura y se declaran por adelantado. Ninguna se disimula más adelante.
| Vacío | Consecuencia |
|---|---|
| No existe medición de adopción | Nadie registra cuántos usuarios entran a la aplicación, con qué frecuencia ni cuántos registros crean. Sin ese dato no se puede evaluar el criterio de renovación del CRM anterior, que era precisamente «tres meses de uso sostenido con el 80 % del equipo activo». Sin dato |
| No hay línea base de tiempos | Nunca se midió cuántas horas al mes consumían las tareas manuales antes del proyecto. Por eso este informe no presenta retorno de inversión, ahorro de horas ni reducción de tiempos: serían cifras inventadas. El único ahorro cuantificado es el de licenciamiento, y procede de una estimación de terceros. |
| La auditoría de datos quedó a medias | De nueve etapas planificadas se cerraron dos, una quedó parcialmente resuelta y dos se documentaron sin acción. Las etapas de inconsistencias, estandarización, optimización y recomendaciones finales nunca se iniciaron. |
| No hay dato de conversión comercial verificable | Se declaró en reunión una tasa de conversión «superior al 70 %» por redes sociales. Se recoge como declaración, no como métrica: no existe el cálculo que la respalde. |
| Una pieza documental no fue accesible | Existe un material publicado sobre el pipeline al que no se pudo acceder durante la preparación de este informe. Si contiene un análisis adicional, no está incorporado aquí. |
Las cifras del estado actual y la matriz de permisos completa de las siete tablas se releyeron directamente contra los sistemas el 1 de septiembre de 2026, no se tomaron de notas previas. Donde una nota anterior discrepaba de la medición en vivo —el conteo de clientes activos, por ejemplo— manda la medición y se indica la diferencia.
Qué vende, cómo gana dinero y por qué eso determina el diseño del sistema.
Un despacho de servicios profesionales en Guaynabo, Puerto Rico, que acompaña a pequeñas empresas en tres frentes que se venden juntos pero se ejecutan por separado: constitución y cumplimiento (crear la entidad y mantenerla al día ante Hacienda, el CRIM, el Departamento de Estado y el Fondo del Seguro del Estado), contabilidad y asesoría financiera (reconciliaciones, estados financieros, planillas) y servicios accesorios (gestión de financiamiento y marketing digital).
La firma cobra una iguala mensual recurrente, entre 100 y 700 dólares según el paquete, complementada con tarifas por servicio puntual de 150 a 500 dólares por obligación radicada. Eso la convierte en un negocio de suscripción, con una consecuencia de diseño directa: su salud depende de la retención, y la retención depende de que el cliente perciba que sus obligaciones están al día.
De ahí se sigue el criterio que ordena las prioridades del proyecto. Un CRM que gestione bien el embudo comercial pero no sepa qué le vence a cada cliente no ataca la variable que sostiene el negocio. Esta observación, hecha en el diagnóstico, es la que justificó no empezar por lo comercial.
Catorce personas en siete departamentos. Dirección aprueba y decide. Operaciones coordina el alta de clientes y la asignación de trabajo. Ventas capta. Contaduría ejecuta el cumplimiento contributivo. Auxiliar contable lleva las reconciliaciones, repartidas casi a tercios entre tres personas. Financiamiento gestiona los casos ante instituciones. Marketing produce contenido para unos 74 clientes.
Un dato del diagnóstico que resultó revelador: cuatro de las quince personas de entonces no aparecían en ninguna hoja operativa. O eran incorporaciones recientes, o su trabajo sencillamente no se registraba en ningún sitio. En una firma de este tamaño, eso no es una anécdota administrativa: es un cuarto de la plantilla trabajando fuera de todo registro.
Las actas de reunión describen un embudo concreto: anuncios en redes sociales con llamada a la acción → dos centros de llamadas que agendan una asesoría gratuita → dos cerradores que trabajan el contrato. Tras la firma empieza el onboarding, que exige verificar el estado legal, corporativo y contributivo del cliente, y solicitar credenciales de acceso a los portales gubernamentales y los estados bancarios.
La capacidad declarada en agosto de 2026 era de ocho contratos mensuales en Puerto Rico, con la meta de llegar a veinte mediante expansión a Florida. Esa meta —duplicar y algo más el volumen— es el argumento operativo más fuerte a favor de automatizar: el proceso actual depende de que alguien recuerde cada paso.
Un despacho de suscripción con ocho altas al mes y ambición de veinte no necesita un CRM más potente. Necesita que el alta, el seguimiento contributivo y el recordatorio dejen de depender de la memoria de una persona. Ese fue el criterio de priorización durante todo el proyecto, y explica por qué las primeras automatizaciones construidas fueron de captación y primer contacto, no de reporting.
Seis sistemas paralelos, 33 pestañas y el 83 % del trabajo sin modelar.
El diagnóstico se hizo sobre seis fuentes reales de la operación: el CRM comercial en producción y cinco hojas de cálculo independientes, ninguna conectada con las demás. La conclusión que ordenó el resto del proyecto fue incómoda y clara: el problema no era que faltara un CRM, sino que el grueso del trabajo de la firma no estaba modelado en ninguna parte.
| Hallazgo | Cifra | Consecuencia operativa |
|---|---|---|
| Dispersión de la información | ||
| Sistemas paralelos en uso | 6 | Cada alta de cliente se teclea hasta en 11 lugares distintos. |
| Pestañas en la hoja maestra de seguimiento | 33 | 18 visibles y 15 ocultas, con tres generaciones de la misma tabla de obligaciones (696, 868 y 1.193 filas). Nadie sabe cuál es la buena. |
| Nombres de cliente únicos normalizados | 403 | Para unos 170 clientes reales. 67 aparecen en cuatro o más pestañas. Imposible responder «cuántos clientes tenemos» sin contar a mano. |
| Rastreadores del mismo caso urgente | 3 | Un caso verificado figuraba «Completada» en un archivo y «Pendiente» en otro. |
| Trabajo no modelado | ||
| Registros anuales estimados del sistema | ~24.000 | Volumen proyectado con la operación actual. |
| Porcentaje que ninguna herramienta cubría | 83 % | ~20.000 registros al año de cumplimiento contributivo, cobros, documentos, reconciliaciones, publicidad y visitas. |
| Obligaciones contributivas sin modelar | 16 | Las fechas vivían dentro del nombre de una columna. No existía una sola fecha de vencimiento como campo de fecha. |
| Celdas marcadas a mano al año, solo en obligaciones | 696 | 46 clientes × ~15 obligaciones. Automatizable al 100 %. |
| Calidad y control | ||
| Fórmulas en las 33 pestañas del archivo maestro | 4 | Todo lo demás es digitación manual, incluido el total pagado del año. |
| Leads sin origen registrado | 87 % | No se puede saber qué canal trae clientes. Se invierte en marketing a ciegas. |
| Clientes suspendidos o cancelados | 65 de 135 | Un 48 % de fuga, sin motivo de baja estructurado en ningún lado. Imposible analizar por qué se van. |
| Cumplimiento del SLA de 4 visitas anuales | ~0 % | La columna que lo mide dice «No» en casi todas las filas — y la pestaña está oculta. El incumplimiento estaba escondido, no resuelto. |
Un diagnóstico que solo enumera defectos suele producir un rediseño desde cero, que es la forma más cara de perder lo que ya funciona. El análisis identificó explícitamente cinco cosas que había que conservar, y se conservaron:
El diagnóstico incluyó una observación que resultó más útil que cualquier cifra: describir el trabajo desde el puesto, no desde el sistema.
Esa última frase —«el cumplimiento de 46 clientes vive en la cabeza de una persona»— quedó registrada como riesgo formal de concentración de conocimiento, y es la que mejor explica por qué el proyecto se planteó como externalización de criterio al sistema, no como digitalización de hojas.
Qué aportó, qué no era fiable y por qué el equipo lo había abandonado.
El CRM comercial anterior fue el punto de partida de los datos y, a la vez, la mejor evidencia de qué evitar. Conviene separar las dos cosas, porque es fácil concluir que la herramienta era mala cuando el problema era otro.
La primera etapa de la auditoría midió el contenido completo por consulta directa, no por estimación. El resultado dibuja un sistema con mucho archivo y muy poca gestión.
| Módulo | Registros | Vinculados a cuenta | Huérfanos | Lectura |
|---|---|---|---|---|
| Cuentas | 618 | — | — | El activo real del sistema. |
| Adjuntos | 14.882 | 14.542 | 340 | Se usaba, en la práctica, como repositorio documental. |
| Notas | 4.523 | 4.225 | 298 | Donde vivía de verdad el histórico de relación. |
| Contactos | 789 | 138 | 651 | 82,5 % huérfanos. No es una tabla de contactos: es un volcado de agenda telefónica. |
| Reuniones | 42 | 24 | 18 | Aquí está el diagnóstico. Un CRM con 618 cuentas y 14 tareas no se usa para gestionar: se usa para guardar. |
| Facturas | 39 | 39 | 0 | |
| Llamadas | 22 | 12 | 10 | |
| Tareas | 14 | 14 | 0 | |
| Oportunidades | 2 | 2 | 0 | Dos registros, uno de ellos de prueba. El pipeline comercial no existía. |
Este es el aporte más reutilizable de la auditoría: identificar campos que un plan de migración habría tomado por buenos.
| Campo | Qué parece | Qué es |
|---|---|---|
Account_Number | 100 % lleno — un identificador único listo para usar. | 76,4 % (472 de 618) vale literalmente «0». Solo 146 cuentas tienen un valor distinto, de significado no confirmado. |
Modified_Time | Señal de última actividad con el cliente. | 135 cuentas (21,8 %) comparten el mismo timestamp exacto. Refleja una actualización masiva, no interacción. Cualquier lógica de «cliente inactivo» construida sobre él sería falsa. |
Estado_de_cuenta | Campo con el vocabulario exacto que se necesitaba. | Lleno en 15 de 618 (2,4 %). Inservible como atajo. |
Account_Type | Enumerado limpio de tipo de cliente. | Las etiquetas visibles están remapeadas sobre valores internos que no corresponden. Toda migración debe leer la etiqueta, nunca el valor de API. Además, los indicadores de «campo en uso» del propio sistema mienten. |
| Texto de captura libre | Datos del cliente. | Convención de captura tratada como dato: 106 registros con «no tengo apellido», 88 con «no tengo nombre de empresa», 79 con «no tengo nombre». Hay que convertirlos a vacío o contaminan cualquier métrica de completitud. |
Frente a todo eso, el campo más fiable resultó ser el menos formal: las etiquetas manuales que el propio equipo había ido poniendo —«revisar teléfono contaminado», «revisar email interno», «inactivo», «contrato cancelado»—. La firma ya había hecho parte del trabajo de detección; lo que faltaba era actuar sobre él. Aun así, el 54,5 % de las cuentas no tenía ninguna etiqueta.
La evaluación formal comparó ambas plataformas en costo, ajuste al negocio y riesgo. El resultado no fue unánime: el CRM comercial ganaba con claridad en facturación, reportería y campañas; la alternativa ganaba en calendario contributivo, checklist documental, propiedad del dato y uso móvil.
El desempate no fue funcional sino de adopción. Con una sola licencia comprada para quince personas que necesitaban acceso, el sistema quedó reducido a un archivador al que entraba una persona. Ese es el origen real del 618-contra-14, y explica también por qué en la reunión del 7 de agosto se rechazó comprar más licencias: unos 500 dólares mensuales adicionales por un software que, en palabras de la propia Dirección, se estaba usando solo para almacenar archivos.
El sistema anterior no fracasó por diseño de producto. Fracasó por un modelo de licenciamiento que impedía el acceso del equipo, y por no cubrir el 83 % del trabajo real. Un reemplazo que solucionara solo lo primero habría repetido el resultado. Es la razón por la que el criterio de éxito del proyecto se fijó en actividad registrada por persona y no en funcionalidad entregada.
Nueve etapas, reglas invariantes, y el callejón sin salida que resolvió el pipeline.
La auditoría se planteó con cinco reglas que no se rompieron en ningún momento, y que en retrospectiva fueron lo que hizo el proceso defendible:
| Etapa | Estado | Resultado |
|---|---|---|
| 1 · Diagnóstico general | Cerrada | Volumetría confirmada por consulta directa. 12 cuentas completamente vacías, 3 de ellas con nombre de personal interno. |
| 2 · Problemas críticos | Cerrada | 6 hallazgos resueltos y verificados: registro de prueba, la propia firma mezclada entre clientes, carpetas de ex-personal, dos duplicados exactos. |
| 3 · Duplicados | Resuelta parcialmente | 2 de 5 cerrados en la auditoría; 2 más resueltos por fusión al día siguiente; 1 descartado tras verificación como empresas legítimamente distintas. |
| 4 · Campos innecesarios | Documentada | 5 hallazgos documentados sin acción, por la regla de no tocar el sistema en producción. |
| 5 · Datos obsoletos | Documentada | 4 hallazgos. 116 cuentas (18,8 %) candidatas reales a inactividad, pendientes de confirmación humana. |
| 6 · Inconsistencias | No iniciada | Las cuatro etapas finales nunca se abrieron. La auditoría se detuvo cuando el proyecto viró hacia la construcción. |
| 7 · Estandarización | No iniciada | |
| 8 · Optimización | No iniciada | |
| 9 · Recomendaciones finales | No iniciada |
Los duplicados no se resuelven con el dato, se resuelven con el contenido. Dos pares marcados como duplicados por coincidencia de identificador fiscal y teléfono resultaron tener, cada carpeta, decenas de documentos genuinos y distintos —56 en un caso, y en otro un expediente legal completo—. Muy por encima de los dos o tres archivos que sugería el hallazgo original. Fusionarlos por el dato habría destruido documentación real. Un tercer par, con nombres casi espejo, resultó ser dos empresas legalmente distintas: registros de comerciante y direcciones diferentes.
Las carpetas de cliente no contienen solo información del negocio. Al fusionar, apareció el patrón: expedientes que mezclan documentos de identidad y financieros personales de terceros —licencias de conducir, informes de crédito— con la documentación corporativa. Se registró como advertencia permanente para cualquier trabajo futuro sobre esos expedientes.
El encargo de Operaciones era concreto: crear un trato por cada cliente activo, leyendo su contrato. El importe del contrato solo existía dentro de un PDF. Se intentó por cuatro vías y las cuatro fallaron:
La salida la dio Operaciones en una frase: cada cliente tiene su carpeta en el repositorio documental, con el contrato dentro. El conector de ese repositorio extrae el texto de los PDF directamente, incluida la capa de OCR de los escaneos legibles. Lo que llevaba dos días bloqueado se resolvió cambiando de fuente, no de técnica.
Se invirtieron dos días en forzar la fuente equivocada. La pregunta que lo habría evitado —«¿dónde está realmente este documento hoy?»— la respondió la persona que hace el trabajo, no el sistema. Antes de automatizar el acceso a un dato, conviene preguntar dónde lo busca quien lo usa a diario.
Una vez accesibles, los contratos resultaron tener estructura predecible y reutilizable: una cláusula de honorarios con el importe mensual y el mes de inicio del débito, una fórmula de otorgamiento con la fecha de firma, y una penúltima página de autorización de débito directo que repite el monto —lo que permitió resolver los casos en que la cláusula era ilegible—. Duración típica de un año. El importe es mensual, no total de contrato: confundirlos habría multiplicado por doce todo el pipeline.
Seis contratos eran escaneos sin capa de texto y hubo que leerlos a pantalla, página a página. Uno resultó firmado pero sin importe pactado en ninguna parte, y otro estaba archivado bajo el cliente equivocado. Ambos casos se registraron como excepción en vez de forzar un número.
El proceso real frente al proceso modelado — y lo que solo aparece en las reuniones.
Esta es la sección que ninguna extracción de datos podía producir. Tres actas de reunión —del 7 y el 26 de agosto y del 31— describen cómo funciona la operación de verdad, y en varios puntos contradicen lo que el sistema modela.
Tras la firma del contrato, y en este orden: reunión de traspaso entre ventas y operaciones —explícitamente, para que el cliente no tenga que repetir lo que ya contó—, entrega de un kit de bienvenida, verificación del estado legal, corporativo y contributivo, evaluación de deudas con Hacienda y, si las hay, asignación de un especialista en planes de pago. Se solicitan credenciales de acceso a los portales gubernamentales y los estados bancarios.
Sobre las credenciales apareció un matiz operativo relevante: ante la reticencia de algunos clientes a compartirlas, se recurre a formularios legales de representación autorizados por las propias agencias, y se explora el uso de plataformas que permitan ver saldos sin acceso directo. Es decir: la firma ya había identificado por su cuenta que acumular contraseñas de clientes es un problema, y estaba buscando alternativas. Ese contexto importa para leer el hallazgo de seguridad de la sección 12 — no es negligencia despreocupada, es una práctica heredada que ya incomodaba internamente.
| Necesidad expresada | Origen | Estado |
|---|---|---|
| Preferencia de contacto del cliente — canal (mensajería, correo, texto) y franja horaria, para que la comunicación se automatice desde una sola plataforma | Sesión del 31·08 | No modelado |
| Inventario y sistemas de negocio del cliente capturados en el alta, para evitar problemas operativos a los seis meses | Sesión del 31·08 | No modelado |
| Perfil del cliente disponible antes del cierre, para que el cerrador no parezca una llamada en frío | Sesión del 31·08 | Parcial — los datos existen, no la vista |
| Evaluación de presencia digital previa a la reunión — web, ficha de negocio, reseñas, teléfono operativo — como material de conversación y venta adicional | Sesión del 31·08 | No modelado |
| Recordatorios automáticos de obligaciones contributivas, para dejar de depender de la memoria y del riesgo de penalización | Sesiones del 26 y 31·08 | No construido — es el módulo pendiente |
| Carpeta compartida donde el cliente suba su información, para desatascar a los contadores | Sesión del 26·08 | No construido |
| Un asesor como punto único de contacto, para que el cliente no se confunda entre departamentos | Sesión del 26·08 | Parcial — el campo de responsable existe y está vacío en las tres tablas principales |
El diagnóstico había mapeado diez procesos y dónde vivía cada uno. Vale la pena mirar esa tabla junto a lo que dicen las actas, porque la diferencia es instructiva: el sistema modelaba el trabajo por objeto —cuenta, trato, tarea— y la operación lo vive por etapa y por persona responsable. Un auxiliar contable no piensa «tabla de reconciliaciones»; piensa «qué clientes me deben estados de cuenta esta semana».
Ese desajuste explica, como hipótesis razonable, parte de la falta de adopción observada: una aplicación organizada por entidades obliga a traducir mentalmente antes de poder usarla. El propio diseño lo había anticipado al proponer «Mi Día» como pantalla de inicio y vistas por defecto distintas para cada rol — pero esas vistas están entre lo que no se construyó.
El compromiso de cinco días máximos en la etapa inicial de onboarding es medible y accionable, y es exactamente el tipo de regla que un sistema puede vigilar solo. Hoy no hay dónde registrarlo. Es el candidato más barato y de mayor efecto visible para la siguiente iteración: dos campos y una columna calculada.
Qué problema resolvía cada decisión, y qué se obtuvo realmente.
Quince decisiones estructurales, cada una trazable a un hallazgo concreto. La última columna es la parte honesta: qué se puede medir hoy del resultado.
| Problema | Decisión tomada | Solución implementada | Resultado medido |
|---|---|---|---|
| Identidad del dato | |||
| 403 nombres para ~170 clientes; identificador de origen inservible en el 76 % | Clave propia con prefijo, secuencial, que nunca cambia | Claves contiguas para las 616 cuentas | 616 cuentas identificables, 0 duplicados, 0 huecos |
| Al migrar se pierde el vínculo con el origen | Marcar el identificador de origen dentro de las notas de cada fila | Marca de trazabilidad en 616 de 616 filas | Reconciliación posible; 0 carpetas huérfanas en el cruce documental |
| El sufijo numérico de las carpetas parecía un identificador | Prohibir su uso como clave | Se usa el identificador completo, nunca el sufijo | 14 sufijos estaban compartidos por 2 cuentas cada uno. Sin esta regla, 28 clientes habrían recibido documentos ajenos |
| Modelo relacional | |||
| El responsable era texto libre en cuatro tablas — «el defecto más grave del diseño» | Convertir a referencia validada contra el maestro de personas | Aplicado en las cuatro tablas, aprovechando que estaban vacías | Estructura correcta y ficha de carga por empleado. Pero 0 filas tienen responsable asignado hoy |
| La relación con la cuenta se guardaba como nombre, no como referencia | Convertir a referencia real | Referencia dura + columnas inversas automáticas | Las actividades aparecen dentro de la ficha de cada cliente |
| Actividad del cliente invisible: 14 tareas contra 618 cuentas | Migrar el histórico de notas del sistema origen | Importación masiva como actividades de tipo nota | 1.548 actividades, 72 de 75 cuentas activas con histórico, rango 2021–2026 |
| Pipeline y trabajo | |||
| No existía pipeline: 2 oportunidades en el sistema origen | Construir un trato por cliente activo desde el contrato | Lectura de contratos + convención de etapa según legibilidad | 74 tratos: 44 cerrados-ganados, 28 en solicitud de documentos, 2 en onboarding |
| El importe solo existía dentro del PDF | Extraer el honorario mensual del contrato | Lectura del texto; excepción registrada donde no era legible | 45 de 74 con importe; suma de importes registrados $14.936,99/mes |
| No se sabía el estado real de cada cliente | Levantamiento censal mediante tarea interna | Una tarea por trato, responsable y fecha límite únicos | 74 tareas creadas. 0 cerradas a la fecha de cierre |
| Tres rastreadores paralelos con estados divergentes | Rastreador único con ámbito cliente/interna | Tabla de tareas con campos condicionados por ámbito | Rastreador único operativo; los tres anteriores no se han retirado |
| Control y captación | |||
| Cualquiera podía borrar cualquier cosa | Permisos por departamento, leídos del maestro de personas | Expresión de permisos en las 7 tablas | Verificado en vivo. Socavado por el buzón compartido (sección 12) |
| Los leads del formulario web se transcribían a mano | Automatizar formulario → CRM | Flujo de 3 nodos con normalización y clave determinista | Activo y probado |
| El lead nuevo no recibía nada | Correo de bienvenida automático con documento adjunto | Flujo de 5 nodos: disparador, validación, descarga, envío | Activo y probado — entrega confirmada |
| Convertir un lead exigía teclear cuenta y contacto | Automatizar la conversión en un paso | Bot con dos acciones encadenadas e idempotentes | Verificado de extremo a extremo |
| Lo que no se resolvió | |||
| Datos personales y credenciales en texto plano | Segregar en tablas con seguridad propia | Redacción aplicada en la migración; las tablas segregadas nunca se construyeron | No resuelto |
| 16 obligaciones sin modelar, 696 celdas manuales al año | Catálogo + perfil fiscal + generación automática de períodos | Nada construido | No resuelto — es el 83 % del valor |
25 tablas diseñadas, 7 construidas. Por qué, y qué implica.
El diseño completo comprendía 25 tablas en 7 módulos, 36 vistas, 24 automatizaciones, 7 roles y 24 indicadores, con una implantación en 5 fases a lo largo de 22 semanas y un prerrequisito no negociable. Lo que se construyó son 7 tablas. Ese recorte fue una decisión explícita del cliente el 15 de agosto, no una desviación, y merece explicarse con precisión porque es el hecho estructural que condiciona todo el estado actual.
| Módulo | Contenido | Fase | Construido |
|---|---|---|---|
| 0 · Sistema | Parámetros, log de auditoría, log de notificaciones | F1–F2 | Nada |
| 1 · Maestros y catálogos | Personas, servicios, obligaciones, documentos, municipios, bancos, actividad económica | F1–F4 | Personas + catálogos base |
| 2 · Comercial | Leads, cuentas, contactos, tratos, actividades | F1 | Completo |
| 3 · Contratación y cobro | Contratos, servicios contratados, cobros mensuales | F3 | Nada |
| 4 · Cumplimiento | Perfil fiscal, obligaciones por cliente, obligación por período | F2 | Nada |
| 5 · Operación | Órdenes de trabajo, checklist documental, reconciliaciones, visitas, publicaciones | F1–F4 | Tareas únicamente |
| 6 · Datos protegidos | Expediente digital, credenciales, datos fiscales sensibles | F2–F3 | Nada |
Al abrir el entorno el 15 de agosto apareció un hecho que reordenó el plan: la aplicación ya existía, con seis tablas cargadas y un libro de datos propio de ocho pestañas. No era el esquema de 25 tablas: era una plantilla de CRM que alguien había desplegado antes. Había dos diseños vivos y distintos.
La decisión del cliente fue cargar contra la plantilla existente. Es una decisión defendible: entregaba un sistema utilizable en días en lugar de semanas, y aprovechaba trabajo ya hecho. Pero tiene un costo que este informe debe nombrar sin rodeos — la plantilla cubre el módulo comercial, que era precisamente el 17 % del trabajo real. El diagnóstico había concluido que migrar primero lo que ya funcionaba, antes de resolver lo que no existía, era invertir el orden del riesgo. El recorte hizo exactamente eso.
El sistema construido resuelve muy bien el problema que la firma no tenía —registrar clientes y oportunidades— y no toca el que sí tiene: saber qué le vence a cada cliente. Esto no invalida lo hecho: los maestros, las claves y la trazabilidad son prerrequisito de cualquier módulo de cumplimiento futuro. Pero explica por qué el sistema puede estar técnicamente completo y operativamente poco usado a la vez.
Las cinco fases eran secuenciales por diseño, con hitos de control que funcionaban como puertas: no se abre una fase sin cerrar la anterior. El hito 1, al final de la semana 4, era «≥80 % de los usuarios registra al menos una actividad semanal durante dos semanas seguidas», con una instrucción explícita: si no se cumple, no avanzar; el problema es de adopción, no de funcionalidad.
A la fecha de cierre no se puede evaluar ese hito porque nadie mide la actividad. Y el proyecto avanzó igualmente hacia automatizaciones de captación, que corresponden a fases posteriores. Es la desviación de proceso más relevante del proyecto y conviene registrarla como tal.
El roadmap arranca el 11 de agosto de 2026 y dura 22 semanas, lo que lleva su cierre a enero de 2027. Sin embargo fija la decisión sobre el sistema anterior en «julio de 2026», una fecha ya pasada en el momento de escribirse. La fecha que manda de verdad es otra: el vencimiento de la suscripción, el 4 de septiembre de 2026 — tres días después del cierre de este informe. Se señala porque un plan cuyo hito de decisión es anterior a su propio inicio no puede ejecutarse tal como está escrito.
Siete tablas, un libro de datos, y las decisiones de modelo que la sostienen.
El sistema es una aplicación no-code sobre un único libro de hojas de cálculo. Siete tablas cargadas, dos pestañas más que existen como catálogo y leyenda pero no están cargadas como tablas — un detalle con consecuencias que se explica más abajo.
| Tabla | Filas | Completitud de campos clave |
|---|---|---|
| Cuentas | 616 | Teléfono 435 (70,6 %) · Email 372 (60,4 %) · Tipo de cuenta 310 (50,3 %) · Identificador fiscal 0 · Responsable 0 · Servicios contratados 1 |
| — con estado asignado | 100 | 74 clientes activos · 26 servicio finalizado · 516 sin estado |
| Contactos | 138 | Integridad referencial íntegra: 0 huérfanos contra el maestro de cuentas |
| Leads | 231 | Teléfono 225 (97,4 %) · Email 63 (27,3 %) · Origen 27 (11,7 %) · Servicio 0 · Responsable 0 |
| — por estado | 42 | 20 contacto inicial · 14 primera reunión programada · 7 nuevo · 1 documentación solicitada · 189 sin estado |
| Tratos | 74 | 44 cerrado-ganado · 28 solicitud de documentos · 2 iniciar onboarding · 45 con importe · Responsable 0 |
| Tareas | 76 | 76 pendientes, 0 cerradas. 74 del levantamiento censal + 2 reales |
| Actividades | 1.548 | 100 % de tipo nota — histórico importado. 0 llamadas, 0 reuniones registradas en uso |
| Usuarios | 14 | 14 con correo del dominio corporativo · 7 departamentos · 1 buzón compartido por 3 personas |
Cambiar el orden de las columnas de una hoja rompe la aplicación en silencio: sigue leyendo por posición según el esquema guardado. Ocurrió de verdad — tras importar 1.547 filas se movió una columna, la clave pasó a leerse de una columna vacía y la aplicación descartó todas las filas. La hoja tenía los datos, el editor no reportaba ningún error, y la aplicación mostraba cero registros. Se arregla regenerando el esquema, pero el diagnóstico costó horas. Corolario aplicado desde entonces: cualquier script mapea por nombre de encabezado leído en vivo, jamás por posición fija.
Veintiséis funcionalidades, con el estado real y no el previsto.
El inventario completo. La distinción entre operativo, parcial y no construido se apoya en medición directa, no en la intención de diseño.
| Funcionalidad | Qué problema resuelve | Estado | Observación |
|---|---|---|---|
| Datos maestros | |||
| Maestro de cuentas | Fuente única de cliente frente a 403 nombres dispersos | Operativo | 616 filas, claves contiguas |
| Vista filtrada de cartera activa | Trabajar sobre los 74 vivos sin perder los 542 históricos | Operativo | Revertir el filtro es un cambio de un campo |
| Maestro de contactos | Separar la persona del negocio, hoy mezclados en una celda | Operativo | 138 filas, 0 referencias rotas |
| Maestro de personas | Base de permisos y de asignación de trabajo | Parcial | 14 filas; un buzón compartido por tres |
| Cadena relacional completa | Trazabilidad cuenta → trato → tarea → actividad | Operativo | Referencias duras con listas inversas automáticas |
| Proceso comercial | |||
| Captación de leads | Embudo con estados normalizados | Parcial | 231 filas pero 189 sin estado: el embudo está sin trabajar |
| Pipeline de tratos | Ver el estado comercial de cada cliente | Parcial | 74 tratos; ninguno con responsable |
| Bitácora de actividades | Histórico de comunicación por cliente | Parcial | 1.548 filas importadas; 0 generadas en uso |
| Gestión de tareas | Rastreador único con ámbito cliente/interno | Parcial | 76 filas, 0 cerradas. Los tres rastreadores previos siguen vivos |
| Servicios multivalor | Un cliente con varios servicios y precios distintos | Parcial | Estructura correcta; una sola cuenta con dato |
| Control de acceso | |||
| Permisos por departamento | Que no todos puedan borrar todo | Operativo | Verificado en vivo en las 7 tablas |
| Ocultar el maestro de personas | Privacidad interna | Parcial | Oculta la sección del menú; las filas siguen sincronizando al dispositivo |
| Permiso de dato fiscal sensible | Que solo unos perfiles vean el identificador fiscal | Parcial | La bandera existe pero está cableada en una sola tabla, no en la principal |
| Filtros de seguridad por fila | Que el dato prohibido no llegue al dispositivo | No construido | Ninguna tabla los tiene. Todos descargan las 1.548 actividades |
| Captación y comunicación | |||
| Formulario de captación web | Alta sin re-tecleo | Operativo | Con normalización y notas compuestas |
| Correo de bienvenida | Primer contacto inmediato con material propio | Operativo | HTML + documento de una página con canal de contacto directo |
| Conversión de lead | Alta de cuenta y contacto en un paso | Operativo | Idempotente; verificado de extremo a extremo |
| Chatbot de agendamiento | Que el cliente reserve su cita solo | No construido | Diseñado y decidido; faltan dos credenciales |
| Lo diseñado que no llegó a existir | |||
| Módulo de cumplimiento contributivo | 16 obligaciones, calendario, alertas de vencimiento | No construido | Era el 83 % del valor del proyecto |
| Contratos, cobros y morosidad | Medir ingreso recurrente, mora y motivo de baja | No construido | Sin esto la fuga del 48 % sigue sin explicación |
| Tablas segregadas de datos protegidos | Contener la exposición de credenciales y datos personales | No construido | Hallazgo crítico abierto |
| Log de auditoría | Saber quién cambió qué y cuándo | No construido | No hay trazabilidad de cambios de ningún tipo |
| Panel ejecutivo | 24 indicadores con semáforo | No construido | Dirección sigue pidiendo números en vez de verlos |
| Expediente digital | Documentos referenciados desde la ficha | No construido | Los contratos se leyeron del repositorio, pero no se enlazaron |
| Instrumentos de apoyo | |||
| Agente configurador | Que Operaciones pida cambios de estructura sin soporte técnico | Construido, sin uso medido | Pipeline de 7 etapas con aprobación explícita antes de aplicar |
| Panel de operaciones interino | Puente manual mientras se decidía la plataforma | Abandonado | Contadores en cero: nunca se usó. Ver sección 15 |
| Etiqueta legible de tareas | Que se muestre el título y no el hash | Pendiente | Defecto conocido, corrección trivial |
Diez funcionalidades operativas, nueve parciales, siete sin construir. Pero el reparto por peso no coincide con el reparto por número: lo operativo es infraestructura y captación; lo no construido es el negocio. Un sistema que registra bien a quién ya se le vendió, y no sabe qué hay que hacer por él este mes, aún no ha cambiado la operación.
El prerrequisito casi resuelto, la matriz que funciona, y el hallazgo que sigue abierto.
Esta sección va aparte y no dentro de arquitectura por una razón de énfasis: contiene el único hallazgo del proyecto con consecuencias legales potenciales, y el mecanismo que más iteraciones consumió.
El diseño lo llamaba «bloqueante absoluto», y con razón: la aplicación identifica a cada persona por su dirección de correo, así que toda la seguridad descansa sobre ese único dato. El punto de partida era malo — 13 de 15 personas con correo personal, dos pares compartiendo buzón y una persona sin correo registrado. En esas condiciones no se puede saber quién tocó un registro, y un empleado que se va conserva el acceso porque la cuenta es suya.
Es el avance más limpio del proyecto y no lo produjo la tecnología, sino la organización:
Los dos pares originales están separados y la persona sin correo ya lo tiene. Pero apareció una configuración nueva que anula parte del avance: un buzón operativo está asignado a tres personas de tres departamentos distintos — Operaciones, Financiamiento y Contaduría. Como los permisos se resuelven por dirección de correo, quien entre por ahí obtiene el nivel de acceso más alto de las tres, independientemente de lo que diga su departamento. Inferencia
Y hay un segundo efecto, más sutil: la bandera de «puede ver el identificador fiscal» está en «No» para el registro de Operaciones y en «Sí» para los otros dos. Con tres filas compartiendo correo, el resultado de la consulta de permiso es indeterminado.
Verificada leyendo directamente la definición de las siete tablas el 1 de septiembre de 2026. El predicado privilegiado es el mismo en todas: pertenecer a Dirección u Operaciones según el maestro de personas.
| Tabla | Dirección / Operaciones | Resto del equipo |
|---|---|---|
| Cuentas | Todo | Solo lectura |
| Contactos | Todo | Solo lectura |
| Usuarios | Todo | Solo lectura + vista oculta |
| Leads | Todo | Ventas: solo alta. Resto: solo lectura |
| Tratos | Todo | Financiamiento: solo alta. Resto: solo lectura |
| Tareas | Todo | Solo alta |
| Actividades | Todo | Solo alta |
IFS(
IN(USEREMAIL(), SELECT(Usuarios[Email_Workspace],
OR(STARTSWITH([Departamento],"Direcci"), [Departamento]="Operaciones"))), "ALL_CHANGES",
IN(USEREMAIL(), SELECT(Usuarios[Email_Workspace], [Departamento]="Ventas")), "ADDS_ONLY",
TRUE, "READ_ONLY")
Dos virtudes de este diseño merecen destacarse. Se administra desde la hoja, no desde el editor: dar permiso a alguien nuevo es escribir su departamento en el maestro de personas; nadie toca una expresión. Y falla en seguro: quien no aparezca en el maestro cae en solo lectura por defecto.
El predicado usa una comparación por prefijo en vez de igualdad exacta para no depender de teclear una tilde correctamente por automatización. Es un detalle menor que evitó una clase entera de fallo silencioso.
El diagnóstico documentó, en archivos alojados bajo una cuenta de correo personal y no del dominio corporativo: ~122 contraseñas de portales gubernamentales en texto plano repartidas en tres archivos, varias reutilizadas y triviales; 9 números de seguridad social completos junto a 59 identificadores fiscales, fechas de nacimiento, direcciones residenciales y números de licencia; 55 cuentas bancarias con su número de ruta sin ningún control de acceso; y referencias a fotografías de tarjetas de crédito.
El informe lo calificó de acción inmediata, anterior a cualquier proyecto de software, y señaló implicaciones bajo la ley federal de protección de información financiera y bajo la publicación del organismo fiscal que exige un plan escrito de seguridad de la información a los preparadores de planillas. No hay evidencia de remediación a la fecha de cierre.
Durante el proyecto se verificó además que la exposición no se limitaba a esos archivos: aparecía también dentro del sistema origen —decenas de notas con credenciales bancarias y de portales, en un tercio de las cuentas activas— y dentro de contratos firmados, cuya página de autorización de débito recoge número de cuenta, ruta e identificador fiscal en claro.
Y ocurrió algo que conviene registrar sin adornos, porque es la lección más incómoda del proyecto: la migración replicó parte del problema. Al construir la primera versión del archivo de carga se copió literalmente un campo de texto libre del origen, y con él llegaron datos personales a una hoja compartida — pese a que la columna explícitamente sensible se había dejado vacía a propósito.
Se añadió al script de carga la redacción por patrón de los formatos de número de seguridad social e identificador fiscal, y los registros afectados se apartaron en un extracto separado que no se sube al repositorio compartido. La regla, aplicable a cualquier migración: sanear el texto libre, no solo omitir los campos etiquetados como sensibles. El dato sensible rara vez está donde el esquema dice que está.
Un residuo de esa replicación sigue en el sistema: en la importación de 1.547 notas históricas se redactaron con éxito todas las credenciales de acceso —se verificó que ninguna sobrevivió—, pero la redacción no cubría otros formatos, y quedaron identificadores personales y fiscales en texto plano en una veintena de filas. Como no hay filtros de seguridad por fila en ninguna tabla, esas filas se descargan al dispositivo de cualquier persona con acceso.
Finalmente, y por decisión explícita del cliente tras advertencia y tres alternativas ofrecidas, el maestro de personas incluye una columna de contraseña de correo en texto plano. La decisión está documentada como tal.
Tres en producción, tres huérfanas y veintitrés diseñadas que no existen.
La automatización se reparte entre dos plataformas por una razón de límites: los bots internos de la aplicación resuelven bien lo que ocurre dentro del CRM, y un orquestador externo resuelve lo que cruza la frontera —formularios web, correo saliente, repositorios documentales—.
| Automatización | Disparador | Proceso | Estado |
|---|---|---|---|
| Formulario → Lead orquestador externo · 3 nodos |
Fila añadida en la hoja del formulario, sondeo por minuto | Descarta filas en blanco si no hay correo, empresa ni nombre. Mapea 14 columnas, normaliza el separador de la selección múltiple, convierte la marca temporal a fecha, compone en las notas las seis preguntas que no tienen columna propia, y genera una clave determinista no numérica. | Activo |
| Bienvenida al lead orquestador externo · 5 nodos |
Fila añadida en la tabla de leads | Prepara el saludo con respaldo si el lead no trae nombre, filtra por expresión regular de correo válido, descarga el documento de bienvenida del repositorio y envía correo HTML con el adjunto. | Activo |
| Conversión de lead bot interno |
El lead pasa a estado «convertido» | Dos acciones encadenadas: crea la cuenta con clave derivada del lead y estado de onboarding, y crea el contacto enlazado a esa cuenta. Ambas con condición de idempotencia. | Activo |
Las tres automatizaciones anteriores cubren la entrada de trabajo. Lo que se construyó entre el 2 y el 18 de septiembre ataca las dos cargas de trabajo repetitivo más grandes de la firma: pedir todos los meses la información contributiva a cada cliente, y encontrar el documento de un cliente entre más de doce mil archivos. Las dos estaban resueltas a mano.
Cada mes, Operaciones escribía uno a uno a los clientes activos pidiéndoles las ventas del mes anterior —totales, exentas y tributables—, las compras y los estados bancarios, para poder radicar su planilla mensual del impuesto sobre ventas. Era trabajo de calendario, idéntico mes tras mes, y el coste de olvidarse lo paga el cliente en forma de recargo.
El flujo entró en producción el 9 de septiembre. La primera corrida real se lanzó a mano —el día 9 caía fuera del calendario y el disparo automático del día 10 habría enviado el texto de recordatorio sin que existiera una petición previa—. El resultado está medido, no estimado: veinticuatro de veinticuatro correos aceptados por el servidor con respuesta 250 OK, cero rechazos, cero errores, veintisiete negocios cubiertos, en 21,9 segundos.
Se desactivó el nodo de envío, se ejecutó en modo manual y se leyó la ejecución por la API, procesándola en local. El orquestador pasa los elementos a través de los nodos desactivados, así que se ve el resultado completo del cruce de datos; que no se envió nada se comprueba porque el elemento de salida no trae acuse ni identificador de mensaje. Es el procedimiento estándar para cualquier automatización que escriba a clientes reales.
El banco de pruebas del flujo simulaba la librería de fechas con una tabla de meses escrita a mano. Pasaba sus 152 comprobaciones —pero estaba probando la imitación, no la librería: un fallo real en el salto de año habría pasado inadvertido. Se sustituyó por la dependencia real, y si falta, el banco de pruebas aborta en vez de dar confianza falsa. La regla quedó adoptada para todo el proyecto: probar contra la librería de verdad, nunca contra un doble escrito a mano.
El repositorio documental de la firma tiene 607 carpetas de cliente con más de 12.492 archivos y unos 12,8 GB. Esa cifra es un piso, no un total: al contar por lotes, once de cuarenta y un lotes se truncaron en el límite de mil de la API, así que el número real es mayor. Las carpetas son un volcado plano —documentos legales y contables mezclados con material de marketing— sin ninguna taxonomía. Encontrar el contrato de un cliente era una búsqueda a ojo.
Las carpetas se llaman Nombre del cliente [416168]. Ese código de seis dígitos no es el número de cuenta —ese campo es el marcador de posición "0" en el 76,4 % de los registros—. Es el final del identificador interno del CRM de origen. Verificado por consulta directa en cuatro casos, no supuesto. Y como cada cuenta del CRM guarda ese identificador en sus notas, el cruce carpeta → cuenta es exacto y determinista: no hubo que emparejar por parecido de nombres.
La trampa: el código de seis dígitos no es único. Dos clientes distintos pueden compartirlo, porque sus identificadores difieren en dígitos intermedios que el nombre de la carpeta no conserva. En la corrida real aparecieron 14 colisiones, que afectaban a 27 carpetas. Se resolvieron con un desempate por similitud de nombre y un umbral declarado de antemano —gana quien supere 0,60 y aventaje al segundo en 0,30; si no, revisión humana—. Las veintisiete dieron coincidencia perfecta.
| Fase | Qué hace | Resultado verificado |
|---|---|---|
| 1 · Enlazar 7 nodos · reejecutable |
Recorre las carpetas del repositorio, extrae el código, lo cruza contra el identificador de origen guardado en cada cuenta y escribe el enlace directo a la carpeta en una columna nueva de la tabla de cuentas. | 605 de 607 carpetas enlazadas — 573 por código, 27 por código más desempate de nombre, 5 por nombre exacto. 0 cuentas recibieron dos carpetas distintas. Las 2 restantes son carpetas sin ficha en el CRM: se reportaron, no se adivinaron. |
| 2 · Indexar 9 nodos · reejecutable |
Para los clientes activos, recorre archivo por archivo y construye un índice consultable desde la ficha del cliente: nombre, tipo, formato, tamaño, fecha y enlace directo. | 4.140 archivos indexados, 0 huérfanos, 0 lotes truncados. El índice aparece dentro de la ficha de cada cliente, no como una pantalla aparte. |
La clasificación automática del tipo de documento a partir del nombre de archivo solo acertó en el 30 %. De 4.140 archivos, 1.860 quedaron sin clasificar y 1.032 como imagen o vídeo. La razón es simple y no tiene arreglo elegante: los nombres reales son Septiembre.pdf o 45.png, y no traen señal suficiente. Lo que sí clasificó está bien clasificado —253 planillas, 243 estados bancarios, 152 contratos, 99 del impuesto sobre ventas, 80 registros de comerciante—, pero el 70 % restante necesita más reglas o corrección manual desde la aplicación. Se reporta como limitación, no como logro parcial.
Dos cautelas quedaron documentadas junto al sistema. La columna nueva se añadió al final de la tabla a propósito: reordenar columnas rompe la aplicación en silencio. Y el flujo de indexado sobrescribe el rango completo al reejecutarse, así que cualquier corrección manual de tipo hecha desde la aplicación se perdería; antes de volver a correrlo hay que convertirlo en sincronización incremental. Está anotado como pendiente, no descubierto tarde.
Los tres flujos huérfanos que la primera edición de este informe señalaba ya no están activos en la instancia: quedaron archivados. Este es el estado consultado directamente, no tomado de notas:
| Flujo | Nodos | Estado | Función |
|---|---|---|---|
| Formulario → Lead en el CRM | 3 | Activo | Captación |
| Bienvenida a lead nuevo (HTML + PDF) | 5 | Activo | Captación |
| Comunicado mensual de cumplimiento | 10 | Activo | Cumplimiento contributivo |
| Documentos · enlazar carpeta a cuenta | 7 | Bajo demanda | Documental · reejecutable |
| Documentos · indexar archivos de clientes activos | 9 | Bajo demanda | Documental · reejecutable |
| Cuatro utilidades de diagnóstico e inventario | 3–5 | Temporales | Solo lectura, ya cumplieron su propósito |
| Cinco versiones anteriores y pruebas | 2–7 | Archivados | Retirados de circulación |
De las veinticuatro automatizaciones que especificaba el diseño original, el comunicado mensual cubre ahora una parte del ciclo de cumplimiento —la petición de información al cliente y la reapertura de la tarea— construida en el orquestador externo en vez de como bot interno. Las de mayor impacto declarado siguen en el papel:
| Bot | Disparador | Qué elimina |
|---|---|---|
| Generación de obligaciones del período | Día 25, 06:00 | Las 696 celdas marcadas a mano cada año |
| Ciclo mensual automático | Día 1, 07:00 | ~600 altas manuales de tarea al año · Cubierto en parte |
| Alerta de vencimiento próximo / vencido | Diario, 07:00 y 07:15 | El riesgo de multa al cliente y la responsabilidad de la firma |
| Vencimiento de registro de comerciante | Semanal | Hay registros vencidos desde agosto de 2025 sin que nadie lo sepa |
| Recordatorio y alerta de tareas | Diario, 07:30 y 07:45 | Tareas que se pierden sin fecha ni seguimiento |
| Log de auditoría | Cambio en tablas críticas | La ausencia total de trazabilidad |
| Alerta de datos incompletos | Semanal | Los 516 clientes sin estado y los 0 con responsable |
El diseño incluía además un criterio de higiene que conviene conservar para cuando se construyan: todas las alertas diarias se agrupan en un único correo por persona, y la escalación a Dirección solo ocurre a los tres días. Un sistema que manda quince correos sueltos entrena al usuario a ignorarlos.
Una auditoría de la instancia de automatización arrojó 22 hallazgos: ninguno crítico, seis medios. Los dos relevantes para el estado actual:
Los disparadores de hoja llevan la cuenta de filas procesadas en un contador interno. Borrar filas a mano no baja ese contador. Al limpiar los registros de prueba se descubrió que el contador de la tabla de leads ya estaba desincronizado en dos unidades desde días antes: los dos siguientes leads reales no habrían disparado el correo de bienvenida, sin error ni aviso. Se corrigió apagando los flujos, ajustando los contadores por API y reactivando con el nodo de envío deshabilitado durante un ciclo de comprobación, para no arriesgar un envío masivo a clientes reales. El procedimiento quedó documentado como rutina obligatoria tras cualquier borrado.
Ninguna de ellas es técnicamente difícil. Lo que las hace fiables es la misma disciplina aplicada cinco veces: se lee el estado real antes de escribir, se prueba con el envío desactivado, las decisiones de negocio se convierten en comprobaciones automáticas en vez de en notas, y el borde de cada flujo escucha la tabla donde el equipo ya trabaja en lugar de exigirle una lista aparte. Eso es lo transferible a otra empresa; el flujo concreto, no.
Cuarenta y dos días, doce etapas y tres cambios de rumbo estratégico.
| Fecha | Actividad | Decisión | Resultado |
|---|---|---|---|
| Punto de partida | |||
| 07·08 | Reunión de Operaciones. Se revisa en vivo la demo de un CRM alternativo | Quedarse en el sistema actual y explotarlo; rechazar licencias adicionales por coste; pausar la búsqueda de alternativas | Se fijan tres prioridades técnicas: correos al CRM, leads de publicidad al CRM, secuencias automáticas. Plazo de 3 meses para dominarlo |
| Diagnóstico y auditoría | |||
| 11·08 | Análisis de seis fuentes reales de la operación | Documentar antes de construir | Especificación de 11 pestañas: 25 tablas, 36 vistas, 24 bots, 7 roles, 24 indicadores, roadmap de 22 semanas, 14 riesgos |
| 11–26·08 | Se construye un panel de operaciones interino | Puente manual mientras se decide la plataforma | 7 pestañas, 71 clientes, calendario de 16 obligaciones. Nunca se adoptó |
| 12·08 | Auditoría de gobernanza de datos, 9 etapas | El sistema en producción no se toca; nada sin aprobación explícita | Etapas 1–2 cerradas, 3 parcial, 4–5 documentadas. Etapas 6–9 nunca iniciadas |
| 13–15·08 | Resolución de duplicados y limpieza documental | Aprobación caso por caso, con revisión del contenido real | Dos fusiones, un descarte por ser empresas distintas, cinco carpetas internas archivadas |
| Giro de alcance | |||
| 15·08 | Se descubre que la aplicación ya existía, con su propio libro de datos | Cargar contra la plantilla existente, no contra el esquema de 25 tablas | El alcance real pasa de 25 tablas a 7. Se abandona de facto el diseño completo |
| 15·08 | Construcción de los archivos de carga | Migrar el histórico completo, no solo los activos | 985 registros maestros con trazabilidad al origen; 0 referencias rotas |
| 15·08 | Incidente: texto libre copiado literalmente lleva datos personales a una hoja compartida | Sanear el texto libre, no solo omitir campos sensibles | Redacción por patrón en el script; registros afectados apartados en extracto separado |
| Construcción del modelo | |||
| 18·08 | El responsable pasa de texto a referencia en cuatro tablas | Seguro: se verificó que las cuatro columnas estaban vacías | Cierra el defecto que el diseño llamaba «el más grave». Ficha de carga por empleado |
| 20·08 | Se monta el entorno de automatización | Centralizar las automatizaciones con criterio de buenas prácticas | Entorno operativo con validación previa al despliegue |
| 21·08 | Auditoría de seguridad de la instancia de automatización | Nada urgente mientras todo esté inactivo; todo bloqueante antes de activar | 22 hallazgos. Instancia diez versiones atrasada; credenciales bajo cuenta personal |
| 21–22·08 | Migración de 1.547 notas históricas como actividades | Preservar el histórico de comunicación | De 0 a 1.547 actividades; 72 de 75 cuentas activas con histórico. Auditado contra el origen: 0 diferencias |
| 22·08 | Permisos por perfil en las seis tablas | Solo lectura por defecto, edición por departamento | Modelo administrable desde la hoja |
| Pipeline comercial | |||
| 26·08 | Intento de construir el pipeline leyendo contratos del sistema origen — falla | Cambiar de fuente: los contratos se leen del repositorio documental | 74 tratos donde había 2. 45 con honorario mensual extraído del contrato |
| 26·08 | Servicios como selección múltiple; Marketing pierde edición | Petición de Operaciones | Un cliente puede llevar varios servicios |
| 26·08 | Reunión sobre expansión a otro mercado | Replicar el modelo; asegurar dominio corporativo nuevo | Meta declarada: de 8 a 20 contratos mensuales |
| Trazabilidad y automatización | |||
| 27·08 | Se enlazan tareas con tratos y actividades con tareas | Referencias sin borrado en cascada | Cadena cuenta → trato → tarea → actividad completa |
| 28·08 | Levantamiento censal: una tarea por trato | Interna, un solo responsable, límite a 30 días | 74 tareas creadas |
| 29·08 | Bot de conversión de lead | Relajar obligatoriedad solo en formulario, no en el bot | Verificado de extremo a extremo |
| 30·08 | Matriz de permisos definitiva; migración a instancia en la nube corporativa | Salir de la máquina local y de la cuenta personal | Verificada tabla por tabla. Credenciales rehechas |
| Producción | |||
| 31·08 | Formulario → CRM y correo de bienvenida: probados y activados | Activar con el nodo de envío deshabilitado un ciclo, para no enviar en masa | Ambos flujos en verde. Entrega de correo confirmada |
| 31·08 | Limpieza de pruebas y corrección de contadores desincronizados | Apagar, borrar, reajustar, encender | Se evita la pérdida silenciosa de los dos siguientes leads reales |
| 31·08 | Sesión de rediseño del pipeline interno de operaciones | CRM propio, sin depender del sistema anterior. Semáforo de salud. SLA de 5 días | Nuevos requisitos operativos, ninguno modelado todavía |
| 01·09 | Cierre de la primera edición de la memoria | — | La suscripción del sistema anterior vence en 3 días, sin criterio de decisión evaluable |
| Fase 2 · La capa de automatización | |||
| 04·09 | Formulario y bienvenida, probados de extremo a extremo con un envío real | Probar con un alta real, no con datos de prueba | Lead creado con todos sus campos y correo con adjunto aceptado por el servidor |
| 07–08·09 | Se levantan las tareas del ciclo mensual de cumplimiento y se construye el comunicado | El flujo reabre las mismas tareas cada mes en vez de crear filas nuevas | Flujo de 10 nodos con dos caminos: reapertura el día 1 y siete envíos entre el 5 y el 15 |
| 08·09 | Dirección pide documentar el proceso de gestión de financiamiento | El objetivo no es el proceso: es que el reporte llegue arriba | Mapa de los seis canales y la cadena de mando, publicado como sitio consultable. Seis puntos abiertos declarados |
| 09·09 | Hallazgo: hay correos que pertenecen a varios negocios del mismo dueño | Agrupar por dueño y nombrar todos sus negocios; nunca deduplicar por correo | Se evita callar obligaciones en silencio. 27 tareas → 27 negocios → 24 correos |
| 09·09 | Comunicado mensual en producción. Primer envío real | Lanzar la petición inicial a mano: el calendario habría enviado recordatorio sin petición previa | 24 de 24 correos aceptados, 0 rechazos, 0 errores, 21,9 s |
| 11·09 | Se consolida la lista maestra de tareas del proyecto | Lo completado se mueve al final con fecha y resultado verificado; no se borra nunca | Documento único de estado, con lo no verificado marcado como tal en vez de darse por hecho |
| 17·09 | Hallazgo: el código de las carpetas documentales es el identificador del CRM de origen, no el número de cuenta | Verificar por consulta directa antes de construir encima. Umbral de desempate declarado de antemano | Cruce exacto y determinista. 14 colisiones resueltas, 605 de 607 carpetas enlazadas, 0 cuentas con dos carpetas |
| 17·09 | Índice documental por cliente, dentro de la ficha | Libro separado del principal, para no engordar lo que la aplicación sincroniza | 4.140 archivos indexados, 0 huérfanos. Solo el 30 % quedó clasificado por tipo: se reporta como limitación |
| 17·09 | Incidente: regenerar el esquema renombra columnas y deja inválido todo lo que las referencia | Reapuntar las referencias, no renombrar de vuelta | La aplicación dejó de cargar y se recuperó el mismo día. Quedó como procedimiento documentado |
| 18·09 | Cierre de esta edición | — | Cinco automatizaciones en producción. El hallazgo de seguridad del día 5 sigue abierto el día 42 |
Merece registro explícito porque es el patrón más instructivo del proyecto:
No son contradictorias en el fondo —las tres reaccionan al mismo problema de coste y adopción— pero sí implican planes de trabajo distintos, y la tercera se tomó sin que existiera medición de la segunda. La posición vigente al cierre es la del 31 de agosto, por ser la más reciente y la de mayor autoridad.
Nueve incidentes con lección durable. Los fallos silenciosos son los caros.
Un patrón atraviesa casi todos: el sistema no dio error. Devolvió éxito, o no dijo nada, y el problema apareció días después en forma de datos que faltaban. Esa es la clase de fallo que la validación automática no detecta y que solo encuentra una verificación deliberada contra el estado real.
Ocho de los nueve incidentes fueron fallos silenciosos: el sistema devolvió éxito y el daño apareció después. Ninguno lo habría detectado una validación previa. Todos se detectaron releyendo el estado real después de actuar. Ese hábito —verificar el resultado, no el mensaje de respuesta— es el aprendizaje más transferible del proyecto.
Comparación por dimensión, con una columna para lo que no se puede medir.
| Dimensión | Antes · 7 de agosto | Ahora · 1 de septiembre | Cómo se mide |
|---|---|---|---|
| Identidad del cliente | 403 nombres para ~170 clientes; identificador de origen inservible en el 76 % | 616 cuentas con clave única contigua y trazabilidad al origen | Verificado |
| Integridad relacional | Relaciones guardadas como texto; se rompen al corregir un nombre | Referencias duras en toda la cadena; 0 huérfanos | Verificado |
| Pipeline comercial | 2 oportunidades en el sistema, una de prueba | 74 tratos con etapa, servicio y, en 45 casos, importe mensual | Verificado |
| Histórico de relación | Disperso en 4.523 notas dentro del sistema origen | 1.548 actividades vinculadas a la ficha del cliente, 2021–2026 | Verificado |
| Rastreo de trabajo | Tres rastreadores paralelos con estados divergentes | Un rastreador único… y los tres anteriores siguen vivos | Verificado |
| Control de acceso | Todos pueden borrar todo | Permisos por departamento en 7 tablas, administrables desde la hoja | Verificado |
| Identidad de usuario | 13 de 15 con correo personal; 2 pares compartiendo buzón | 14 de 14 con dominio corporativo; queda 1 buzón compartido por 3 | Verificado |
| Captación | Transcripción manual del formulario; el lead no recibía nada | Alta automática en un minuto y correo de bienvenida con documento adjunto | Verificado |
| Propiedad de la infraestructura | Automatizaciones en una máquina local, credenciales en cuenta personal | Instancia en la nube corporativa, credenciales a nombre de la empresa | Verificado |
| Donde no hubo cambio, o no se puede afirmar que lo haya | |||
| Cumplimiento contributivo | 16 obligaciones sin modelar; 696 celdas manuales al año | Igual. Nada construido | Sin cambio |
| Motivo de baja | 48 % de fuga sin causa registrada | Igual. El módulo de contratos no existe | Sin cambio |
| Trazabilidad de cambios | No se sabe quién modificó qué | Igual. No hay log de auditoría | Sin cambio |
| Exposición de datos sensibles | ~122 credenciales, 9 identificadores personales, 55 cuentas bancarias en claro | Sin evidencia de remediación. Parcialmente replicada en el sistema nuevo | Sin cambio |
| Origen de los leads | 87 % sin registrar | 88,3 % sin registrar — el campo es obligatorio solo en el formulario nuevo | Sin mejora aún |
| Uso real del sistema | 618 cuentas contra 14 tareas registradas | 616 cuentas contra 0 tareas cerradas | Sin dato de adopción |
| Tiempo de proceso | Nunca medido | Nunca medido | Sin línea base |
| Carga por persona | Imposible responder sin contar a mano | La estructura lo permite; 0 registros tienen responsable, así que sigue sin poder calcularse | Sin dato |
Nueve dimensiones mejoraron de forma verificable y todas son de infraestructura: identidad, integridad, control, propiedad. Seis no cambiaron y son de operación: cumplimiento, retención, trazabilidad, adopción. La transformación construyó los cimientos y aún no el edificio — lo cual es el orden correcto, pero conviene no confundirlo con el resultado.
Separando lo demostrado de lo esperado y de lo meramente posible.
Respaldados por medición directa contra los sistemas.
Razonablemente asociados a lo construido, pero todavía no medidos. Se presentan como expectativa, no como resultado. Inferencia
Oportunidades reales que dependen de trabajo aún no hecho. Enumerarlas como logros sería incorrecto.
No hay retorno de inversión calculable, ni porcentaje de mejora de productividad, ni reducción de tiempos. Nunca se midió cuánto tiempo consumían las tareas manuales antes del proyecto, de modo que cualquier cifra de ahorro sería una invención. Establecer esa línea base es, de hecho, una de las recomendaciones de la sección 19 — y debería haberse hecho el primer día.
Los catorce riesgos originales revisados a fecha de cierre, más los que aparecieron durante la obra.
El registro original identificaba catorce riesgos. Tres semanas después, el mapa ha cambiado menos de lo esperado en lo importante y más de lo esperado en lo estructural.
| Riesgo | Original | Al cierre | Comentario |
|---|---|---|---|
| Exposición de datos sensibles de clientes | Crítico | Vigente | Sin evidencia de remediación. Parcialmente replicado en el sistema nuevo |
| Correos compartidos e identidad de usuario | Crítico | Muy reducido | De 13 correos personales a 0; queda un buzón con tres personas |
| Obligaciones sin fecha límite ni alerta | Crítico | Vigente | El módulo no se construyó. La mitigación provisional era revisión manual semanal |
| El equipo rechaza el sistema, como ya hizo antes | Alto | Materializándose | 0 tareas cerradas, 0 actividades nuevas. Es hoy el riesgo principal |
| Migración desde 403 nombres sin clave única | Alto | Cerrado | Deduplicación asistida con validación humana caso por caso |
| Corrupción del histórico de publicaciones | Ocurriendo | Vigente | Nunca se congeló ni exportó la hoja. Lo perdido es irrecuperable |
| Conocimiento concentrado en personas | Alto | Vigente | El catálogo de obligaciones que lo externalizaba no existe |
| Degradación del backend por volumen | Medio | Latente | 2.607 filas hoy sobre un límite práctico de ~50.000. Sin urgencia |
| Sincronización lenta por descarga completa | Medio | Vigente | No hay filtros de seguridad por fila en ninguna tabla |
| Rotación de personal durante el proyecto | Medio | Ocurrió | Una baja en el maestro durante el proyecto, con fila vacía intercalada |
| Vencimiento de la suscripción del sistema anterior | Cierto | Inminente | Vence en 3 días. Sin criterio de decisión evaluable |
| Alcance excesivo: 6 módulos, 25 tablas | Alto | Se materializó al revés | No se intentó todo a la vez: se recortó al 28 % y se dejó fuera el núcleo |
| Ausencia de correo del cliente | Cierto | Parcial | 60,4 % de las cuentas tienen correo. Suficiente para empezar, insuficiente para automatizar en masa |
| Implicaciones legales de la exposición de datos | Crítico | Vigente | Sin consulta legal documentada |
| Riesgo | Tipo | Descripción |
|---|---|---|
| Buzón compartido por tres departamentos | Actual | Concede el nivel máximo de acceso a tres personas y hace indeterminado el permiso de dato fiscal |
| Contadores de disparador que se desincronizan | Actual, mitigado | Detectado y corregido; el procedimiento está documentado pero depende de que alguien lo recuerde tras cada borrado |
| Ningún flujo tiene manejo de error | Actual | Un fallo detiene el flujo sin alerta ni registro. La corrección es un flujo de error compartido |
| Dos flujos huérfanos activos en la instancia | Potencial | Uno lee de un disco local inexistente. Si alguien lo activa por error, falla en silencio |
| Los catálogos no están conectados a la aplicación | Actual | Editar la hoja de catálogos no cambia nada. Un mantenedor razonable asumirá lo contrario |
| El sistema anterior sigue siendo el repositorio real de adjuntos | Actual | 14.882 adjuntos viven allí. Si la suscripción vence sin plan de extracción, hay riesgo de pérdida de acceso |
| Tres rastreadores previos siguen en uso | Actual | Mientras se sigan editando, la duplicación continúa y el sistema nuevo compite con ellos |
| Requisitos operativos nuevos sin modelar | Potencial | Semáforo de salud, SLA de 5 días y preferencia de contacto se decidieron el día 25 y no tienen sitio en el modelo |
El registro original lo clasificaba como probabilidad alta e impacto alto: «el equipo ya rechazó un CRM; puede repetirse». A fecha de cierre hay 76 tareas creadas y ninguna cerrada, y ni una sola actividad generada desde la aplicación. No es prueba concluyente de rechazo —el sistema lleva días, no meses— pero es exactamente la señal que el hito de control existía para detectar, y nadie la está mirando porque no hay medición.
Cuatro niveles de prioridad. La primera vence en tres días.
| Recomendación | Motivo | Impacto esperado | Complejidad |
|---|---|---|---|
| Prioridad 1 · Crítica — estabilidad, continuidad y exposición legal | |||
| Tratar la exposición de datos sensibles como incidente, no como tarea de proyecto | ~122 credenciales, 9 identificadores personales y 55 cuentas bancarias en claro, bajo una cuenta personal. Implicaciones bajo normativa federal de protección de información financiera y bajo la obligación de plan escrito de seguridad para preparadores de planillas | Es el único hallazgo con consecuencia legal potencial. Lleva 25 días abierto | Media · requiere consulta legal y traslado de archivos |
| Decidir sobre la suscripción del sistema anterior antes de que venza, y documentar el criterio real usado | Vence en 3 días. El criterio previsto —tres meses de uso con el 80 % del equipo activo— no se puede evaluar | Evita una decisión por omisión. Si se deja vencer, hay 14.882 adjuntos en riesgo de perder acceso | Baja · es una decisión, no una obra |
| Extraer los adjuntos del sistema anterior antes de cualquier no renovación | El sistema origen funciona en la práctica como repositorio documental, y buena parte del expediente de cliente vive ahí | Elimina el riesgo de pérdida documental irreversible | Media · volumen alto, pero mecánico |
| Separar el buzón compartido por tres personas | Concede acceso máximo a tres departamentos distintos y hace indeterminado el permiso de dato fiscal. Anula parte del avance de identidad ya conseguido | Cierra el último bloqueante del modelo de seguridad | Baja · tres cuentas de correo |
| Prioridad 2 · Alta — donde está el valor no capturado | |||
| Empezar a medir la adopción esta semana | Sin ese dato no se puede evaluar ningún hito, ni saber si el problema es de diseño o de disciplina | Convierte una opinión en una decisión. Es requisito de todo lo demás | Baja · un contador semanal de registros creados por persona |
| Construir el módulo de cumplimiento contributivo: catálogo de 16 obligaciones, perfil fiscal y generación automática de períodos | Es el 83 % del trabajo real de la firma y la razón por la que se hizo el diagnóstico | Elimina 696 marcados manuales al año y el riesgo de multa al cliente. Es el mayor retorno del proyecto | Alta · es una fase completa |
| Asignar responsable a las cuentas, tratos y tareas | La estructura existe y está vacía en las tres tablas. Sin ella no hay carga por persona, ni filtro de «lo mío», ni escalación posible | Habilita de golpe la vista más pedida por el equipo | Baja · es carga de datos, no desarrollo |
| Añadir manejo de error compartido a los flujos | Hoy un fallo detiene la automatización sin avisar. En un flujo desatendido eso significa leads perdidos en silencio | Mejor relación esfuerzo/beneficio de todo el inventario técnico | Baja · un flujo, referenciado desde los demás |
| Retirar los tres rastreadores anteriores, con fecha anunciada | Mientras se sigan editando, el sistema nuevo compite con ellos y la duplicación continúa | Era el hito 3 del roadmap original: «una sola fuente de verdad» | Baja técnicamente, alta organizativamente |
| Prioridad 3 · Media — deuda conocida y mejoras de uso | |||
| Conectar los catálogos a la aplicación | Hoy editar la hoja de catálogos no cambia nada; el procedimiento existe y está verificado | Mantenimiento sin intervención técnica | Baja |
| Marcar el título como etiqueta en la tabla de tareas | Las referencias muestran un hash en vez del título | Legibilidad inmediata | Trivial |
| Modelar el SLA de 5 días y el semáforo de salud | Requisitos operativos decididos el día 25, medibles y accionables | Da soporte al proceso que Operaciones acaba de definir | Baja · dos campos y una columna calculada |
| Borrar los dos flujos huérfanos | Uno lee de un disco que no existe en la nube | Elimina una trampa latente | Trivial |
| Añadir filtros de seguridad por fila | Hoy todo usuario descarga las 1.548 actividades, incluidas las que conservan datos personales | Seguridad real, y la mayor optimización de sincronización disponible | Media |
| Establecer la línea base de tiempos | Sin ella nunca se podrá demostrar el valor del proyecto | Habilita el cálculo de retorno en la siguiente fase | Baja · una semana de registro |
| Prioridad 4 · Futura — cuando lo anterior esté en uso | |||
| Chatbot de agendamiento de citas | Diseñado y decidido; faltan dos credenciales | Autoservicio en la reserva de la primera visita | Media |
| Módulo de contratos, cobros y morosidad | Permitiría medir ingreso recurrente, mora y motivo de baja | Explica por fin la fuga del 48 % | Alta |
| Log de auditoría | Para una firma que radica planillas en nombre de terceros, saber quién marcó qué no es comodidad | Defendibilidad | Media |
| Panel ejecutivo | Dirección sigue pidiendo números en lugar de verlos | Autonomía de la dirección | Media |
| Nombrar un responsable interno del sistema | Sin dueño con nombre, cualquier sistema a medida se degrada en dos años hasta volverse una caja negra | Sostenibilidad | Organizativa |
Las recomendaciones de prioridad 2 tienen una dependencia entre sí que conviene respetar: medir adopción antes de construir el módulo de cumplimiento. Si el equipo no está usando lo que ya existe, añadir el módulo más grande del sistema multiplica lo que no se usa. El roadmap original decía exactamente esto con su hito 1, y sigue teniendo razón.
En veinticinco días se sustituyó el andamiaje de datos de una firma completa: de 403 nombres dispersos a 616 cuentas con clave única, de dos oportunidades a un pipeline de 74 tratos, de trece correos personales a catorce corporativos, de cero automatizaciones a tres en producción. Todo verificado contra los sistemas, no contra la intención.
Pero la conclusión que más vale la pena conservar es de método, no de resultado. El diagnóstico acertó en lo que importaba y el proyecto se desvió de él en el punto exacto que el propio diagnóstico había señalado como peligroso. El análisis decía que migrar primero el 17 % que ya funcionaba, antes de resolver el 83 % que no existía, era invertir el orden del riesgo. Eso es lo que se hizo, por una razón razonable —había una aplicación ya montada— y con un resultado predecible: un sistema técnicamente sólido que resuelve el problema que la firma no tenía.
El segundo aprendizaje es sobre la naturaleza del fallo en estos entornos. Ocho de los nueve incidentes registrados fueron silenciosos: validaciones que pasaban sobre configuraciones rotas, ejecuciones exitosas que escribían campos vacíos, lecturas truncadas sin aviso, contadores desincronizados que habrían perdido leads reales. Ninguno lo habría detectado una comprobación previa. Todos se encontraron releyendo el estado real después de actuar. En herramientas no-code y de bajo código, el mensaje de respuesta no es evidencia de nada.
El tercero es el que ya sabía el diagnóstico y el proyecto volvió a demostrar en pequeño: el panel interino que se construyó con siete pestañas, tres reglas y una rutina diaria de diez minutos tiene todos sus contadores en cero. Se hizo bien y no se usó. Es el mismo fracaso que el sistema anterior —618 cuentas contra 14 tareas— reproducido a escala reducida y en tres semanas. Construir la herramienta es la parte barata.
Al cierre, la firma tiene cimientos que antes no tenía y una decisión de plataforma que vence en tres días sin el dato que debía sustentarla. Lo primero es un logro real. Lo segundo es el trabajo que sigue.
Todo lo que existe y funciona a fecha de cierre, pieza por pieza, con su estado real.
Las secciones anteriores cuentan el proceso. Esta responde a una pregunta distinta y más simple: ¿qué hay, exactamente, después de cuarenta y dos días? Está ordenado por naturaleza del entregable, no por cronología, y cada línea lleva el estado que se verificó, no el que se esperaba.
| Pieza | Qué es y qué resuelve | Estado |
|---|---|---|
| Modelo relacional de 8 tablas | Leads, Cuentas, Contactos, Tratos, Actividades, Tareas, Usuarios y Documentos, con referencias reales entre ellas. La cadena cliente → trato → tarea → actividad está completa y navegable en los dos sentidos. | En uso |
| Aplicación móvil y de escritorio | Interfaz sobre ese modelo, con vistas por tabla, formularios de alta y fichas de detalle. El índice documental se dibuja dentro de la ficha del cliente, no como pantalla aparte. | Desplegada |
| Matriz de permisos por departamento | Solo lectura por defecto; la edición se concede por departamento mediante una expresión única replicada en las ocho tablas. Dar acceso a alguien nuevo es escribir su departamento en una hoja, sin tocar la aplicación. | Verificada tabla por tabla |
| Catálogos centralizados | Hoja de listas maestras para estados, fuentes, servicios y tipos de gestión, con el patrón de migración de valores ya establecido para sacarlos de donde están escritos a mano. | Patrón iniciado |
| Índice documental por cliente | Libro separado del principal —decisión deliberada, para no engordar el archivo que la aplicación sincroniza en cada apertura— con nombre, tipo, formato, tamaño, fecha y enlace directo de cada documento. | Cargado |
| Conjunto | Volumen | Verificación |
|---|---|---|
| Registros maestros e histórico | 2.607 | 0 referencias rotas, 0 duplicados de clave, 0 diferencias contra el archivo origen |
| Actividades históricas recuperadas | 1.548 | 72 de 75 cuentas activas con histórico; credenciales redactadas por patrón — ninguna sobrevivió |
| Tratos con etapa comercial | 74 | Donde había 2. Leídos de los contratos reales, no estimados |
| Tareas de seguimiento creadas | 76 | Una por trato, con responsable y límite |
| Carpetas de cliente enlazadas | 605 / 607 | 0 cuentas con dos carpetas. Las 2 sin enlazar se reportaron, no se adivinaron |
| Documentos indexados | 4.140 | 0 huérfanos, 0 lotes truncados |
| Inventario documental total medido | 12.492+ | ~12,8 GB. Declarado como piso: el conteo se truncó en 11 de 41 lotes |
Detalladas en la sección 13. En resumen: tres flujos activos en producción —captación, bienvenida y comunicado mensual de cumplimiento—, dos reejecutables bajo demanda para el sistema documental, y un bot interno de conversión de lead a cuenta y contacto. Todos probados de extremo a extremo contra datos reales antes de activarse, y todos con el mismo procedimiento de prueba: envío desactivado, ejecución manual, lectura del resultado por la API.
| Pieza | Detalle | Estado |
|---|---|---|
| Correo de bienvenida | HTML responsivo con documento adjunto en PDF, botón de agenda y enlace directo de mensajería. El número de teléfono va escrito además de enlazado, porque los PDF se imprimen. | En producción |
| Documento de bienvenida | PDF de presentación de la firma que se adjunta automáticamente al alta de cada lead. | En producción |
| Siete plantillas del comunicado mensual | Una petición inicial y seis recordatorios con cuenta atrás, todos con asunto distinto por diseño. El mes se calcula solo: nadie edita nunca el texto. | En producción |
| Identidad de marca aplicada al correo | Los dos colores corporativos se extrajeron del propio logotipo leyendo su paleta de imagen, no se eligieron a ojo. El nombre y el lema van en texto, no en la imagen, para que se lean cuando el cliente de correo bloquea imágenes. | Cerrado |
| Pieza | Detalle | Estado |
|---|---|---|
| Agente configurador de la aplicación | Recibe peticiones en lenguaje natural de la persona de Operaciones —añadir una columna, cambiar un tipo, ampliar un catálogo— y las aplica sobre el modelo de datos. Tiene prohibido tocar vistas, seguridad y automatizaciones, siempre propone y espera un sí explícito, y ante riesgo de pérdida de datos lee primero el contenido real de lo que va a modificar. | v1.0.0 publicado |
| Pipeline de construcción de agentes | El agente anterior no se escribió a mano: lo produjo un pipeline de doce etapas con tres puntos de control, evaluador externo y verificador adversarial en ventanas independientes. Superó 13 de 13 anti-patrones y 5 de 5 pruebas, con una segunda verificación que no heredaba el veredicto de la primera. | Operativo |
| Repositorio central de automatizaciones | Todas las automatizaciones, sus respaldos, sus bancos de prueba y su documentación viven en un solo sitio con control de versiones, en vez de existir únicamente dentro de la plataforma. | En uso |
| Lista maestra de tareas | Documento único de estado del proyecto, con las tareas agrupadas por severidad y prefijo estable para poder citarlas. Regla adoptada: lo completado se mueve al final con su fecha y su resultado verificado, nunca se borra. El histórico es parte del documento. | Vigente |
| Documento | Qué contiene |
|---|---|
| Especificación funcional completa | 25 tablas, 36 vistas, 24 bots, 7 roles, 24 indicadores, roadmap de 22 semanas y 14 riesgos. Es el diseño del que se recortó el alcance construido — y sigue siendo el mapa de lo que falta |
| Auditoría de gobernanza de datos | Nueve etapas, de las que se cerraron las dos primeras. Origen de la mayoría de los hallazgos de calidad de dato de este informe |
| Auditoría de la plataforma de automatización | 22 hallazgos con severidad; los dos que importaban al estado real están tratados en la sección 13 |
| Ruta de financiamiento | Mapa del proceso completo de gestión de financiamiento: los seis canales, quién entrevista, quién recopila documentos y —lo que de verdad pedía Dirección— por dónde tiene que subir el reporte. Publicado como sitio consultable |
| Procedimientos de operación | Rutina obligatoria tras borrar filas de una hoja vigilada, método de prueba sin envío real, reglas de gobierno del dato y convenciones del modelo. Están en los anexos de este informe |
Lo más valioso de la lista no es ninguna de sus filas: es que cada una tiene un estado verificado y ninguna tiene un estado inventado. Un inventario en el que «hecho» significa «comprobado contra el sistema, y aquí está el número» es lo que permite decidir qué construir después. La mayoría de los proyectos entregan software; muy pocos entregan una lista de la que uno se pueda fiar.
Siete fases, cinco reglas y los tres momentos en que hay que parar a decidir.
Nada de lo anterior salió de una metodología elegida de antemano. Salió de un orden de trabajo que se fue imponiendo porque saltárselo costaba caro, y que al mirarlo desde el final resulta bastante estable. Esta sección lo enuncia para que sea auditable y repetible, no para presentarlo como marco propietario.
Hay una sexta que este proyecto no cumplió, y que se recomienda por haberla echado en falta: medir la línea base antes de tocar nada. Nunca se cronometró cuánto tiempo consumían las tareas manuales, de modo que no existe ninguna cifra honesta de ahorro. Es la razón de que la sección 17 no reclame ningún retorno de inversión, y debería haberse hecho el primer día.
Qué transfiere, qué no, qué hace falta del cliente y qué este documento no promete.
Este informe es la memoria de un proyecto en un despacho de contabilidad de catorce personas. Presentarlo como prueba de que lo mismo funcionará en otra empresa sería exactamente el tipo de afirmación que el resto del documento se ha negado a hacer. Lo que sí se puede decir con precisión es qué parte del trabajo es específica de esta firma y qué parte no lo es.
La elección de herramientas de este proyecto no fue ideológica: se optó por plataformas de bajo código sobre infraestructura que la empresa ya pagaba, con la automatización en una instancia propia en la nube. Dos consecuencias que sí son generalizables:
En este caso existe una comparación de precios de lista que apunta a unos 8.500 dólares anuales de ahorro potencial en licenciamiento. No se reclama como resultado: procede de precios publicados por terceros, está sujeto a confirmación con cada proveedor y depende de una decisión que la firma aún no ha tomado. Cualquier propuesta que convierta una cifra así en una promesa está vendiendo algo que no ha medido.
| Condición | Por qué es condición y no preferencia |
|---|---|
| Alguien que decida | El método tiene tres altos que solo puede resolver el cliente: qué se considera cierto, qué entra en el alcance y qué se enciende. En este proyecto, la posición estratégica cambió tres veces en veinticuatro días — y cada cambio implicaba un plan de trabajo distinto. |
| Acceso real a los sistemas | Todo lo medible de este informe se midió consultando los sistemas vivos. Sin acceso, el diagnóstico se convierte en una encuesta de opinión y el resultado es un documento bonito e inútil. |
| Una persona dueña del dato | Alguien de la operación —no de sistemas— que pueda responder «esto es un cliente distinto» o «ese campo no lo rellena nadie». Las 403 filas que resultaron ser 170 clientes no se resuelven con un algoritmo; se resuelven caso por caso con quien conoce el negocio. |
| Voluntad de oír el hallazgo incómodo | El hallazgo de seguridad de este proyecto se reportó el día 5 y sigue abierto el día 42. Un diagnóstico serio va a encontrar cosas que nadie quería encontrar; si la respuesta es archivarlas, el valor del diagnóstico es cero. |
Por orden de lo que más se repite en operaciones parecidas a la de este caso:
Las cinco estaban presentes en este caso. Las cinco son observables en una primera conversación, sin acceso a nada.
Primero se audita la operación y el dato, y se entrega un diagnóstico con cifras verificables aunque después no se construya nada. Si hay que construir, se construye lo mínimo que resuelve el trabajo repetitivo real, sobre infraestructura de la propia empresa, con el mantenimiento en manos de su equipo. Y se informa separando siempre lo medido de lo esperado.
No promete un plazo: veinticinco días fueron posibles aquí por decisiones concretas —recortar de 25 tablas a 7, cargar contra lo que ya existía— que en otra empresa pueden no darse. No promete un retorno de inversión, porque en este proyecto no se midió la línea base y cualquier cifra sería inventada. No promete adopción: al cierre, este sistema tiene los maestros llenos y las transacciones en cero, y eso está escrito en la primera página. Lo que sí se sostiene es el método, el inventario verificable de lo entregado, y la disciplina de no afirmar lo que no se ha medido.
Referencia para quien continúe el trabajo.
| Elemento | Convención | Nota |
|---|---|---|
| Clave de cuenta | CTA-#### secuencial | Contigua, sin huecos, nunca se reutiliza |
| Clave de contacto | CON-#### | Reconstruida con la misma regla de orden que las cuentas |
| Clave de persona | USR-#### | Un hueco por baja durante el proyecto |
| Clave de trato y tarea | Hash de 8 caracteres | Un identificador resultó ser todo dígitos y la hoja lo guarda como número; funciona porque ambos lados coinciden |
| Clave de lead del formulario | Prefijo alfabético + marca temporal en base 36 | Determinista y no numérica a propósito |
| Fechas | Formato local de día/mes/año en la hoja | La importación exige activar la conversión de texto a fechas |
| Selección múltiple | Separada por coma sin espacio | El formulario une con coma y espacio: el flujo normaliza |
| Separador decimal | Coma | Pegar un punto decimal guarda el valor como texto y las consultas lo devuelven vacío |
IFS(
IN(USEREMAIL(), SELECT(Usuarios[Email_Workspace],
OR(STARTSWITH([Departamento],"Direcci"), [Departamento]="Operaciones"))), "ALL_CHANGES",
IN(USEREMAIL(), SELECT(Usuarios[Email_Workspace], [Departamento]="<departamento>")), "ADDS_ONLY",
TRUE, "READ_ONLY")
Valores admitidos: ALL_CHANGES · ADDS_AND_UPDATES · ADDS_ONLY · UPDATES_ONLY · DELETES_ONLY · UPDATES_AND_DELETES · ADDS_AND_DELETES · READ_ONLY. La comparación por prefijo evita depender de teclear tildes correctamente desde automatización.
Required_If: CONTEXT("ViewType") = "Form"
Hace que un campo sea obligatorio solo en el alta manual, permitiendo que un bot escriba sin él. Fue la clave para que la conversión automática de lead funcionara sin degradar la calidad del alta humana.
| Fuente | Estado | Nota |
|---|---|---|
| Especificación técnica (11 pestañas) | Leída íntegra | Fuente principal de las secciones 4, 9, 11, 13 y 18 |
| Documento maestro de arquitectura | Leído íntegro | Fuente de las secciones 3, 9, 10 y 12 |
| Auditoría de gobernanza de datos | Leída íntegra | Secciones 5 y 6 |
| Diagnóstico general de la base (etapa 1/9) | Leído íntegro | Volumetría de la sección 5 |
| Tres actas de reunión | Notas leídas | Transcripciones completas no revisadas en detalle |
| Sistemas vivos (datos, aplicación, automatización) | Medidos 01·09 | Consultados directamente, no tomados de notas |
| Material publicado sobre el pipeline | No accesible | Si contiene análisis adicional, no está incorporado |