Gestión para agencias digitales: tres aplicaciones, una sola fuente de verdad
Tres aplicaciones y un solo backend, para un grupo de agencias: presupuestos y contratos, planificación de la carga, facturas conciliadas, firma electrónica, credenciales cifradas y un asistente que consulta los datos reales.
-
aplicaciones, un solo backend
-
tablas en la base de datos
-
módulos de endpoints
-
commits en cuatro meses
En breve
- Tres aplicaciones que comparten un solo contrato: un backend FastAPI que es la única fuente de verdad, un sistema de gestión de escritorio en React y una aplicación de móvil instalable, con las mismas funciones.
- Multiempresa de verdad: un holding y tres sociedades, con marca, usuarios y permisos propios, y casi toda consulta a la base de datos filtrada por empresa.
- Cubre el ciclo completo: presupuesto, contrato, planificación de la carga, trabajos, facturación conciliada, firma electrónica, viajes, salas de reuniones.
- Dos funciones que normalmente no están: una caja fuerte de credenciales cifrada con Cloud KMS y un asistente que consulta la base de datos con los permisos de quien lo está usando.
- Construido en poco más de cuatro meses, hoy sostiene la jornada de trabajo de la empresa.
El problema no eran las herramientas
El grupo trabajaba como trabajan casi todas las agencias de ese tamaño: los presupuestos en un configurador hecho en casa, las tareas en Trello, los plazos en la cabeza de las personas, la facturación en Fatture in Cloud, los gastos en hojas de cálculo que se rehacían a fin de mes, las credenciales de las webs de los clientes repartidas entre gestores de contraseñas personales y mensajes.
Nada de eso estaba roto. El problema era que ninguna herramienta sabía qué estaban haciendo las demás: el tiempo realmente dedicado a un trabajo nunca llegaba al presupuesto siguiente, una factura emitida no cerraba la línea del contrato, una web caída no generaba un trabajo. El objetivo no era digitalizar, era tener una sola fuente de verdad y construir alrededor todo lo demás.
Tres aplicaciones, una regla de tres palabras
El backend en FastAPI guarda los datos y todas las reglas. El sistema de gestión de escritorio, en React, es para quien se pasa el día delante. La aplicación de móvil no es una reinterpretación del producto: son las mismas funciones, instalable y con notificaciones.
La regla que ha sostenido todo el proyecto cabe en tres palabras: el backend decide. Los dos programas que se ven no tienen base de datos, no guardan una copia de las reglas y no interpretan nada. Cuando un permiso cambia, cambia en un solo sitio. Se vio cuando llegó la tercera aplicación, que pudo seguir a la segunda función por función sin reescribir nada.
La planificación de la carga, que propone y no decide
Es el módulo más grande del backend y la página más compleja de la interfaz: calendario por día, semana y mes, una columna por persona, tareas que se arrastran, intercambio de trabajo entre personas y detección de sobrecarga.
La parte interesante no es el calendario, es el peso. No todas las horas son iguales y cada sociedad del grupo pondera los tipos de trabajo de forma distinta, así que los pesos se configuran por empresa y la capacidad por persona. La primera versión repartía las tareas sola: funcionaba, y se quitó. Ningún algoritmo sabía que ese martes esa persona estaba en casa del cliente. Desde entonces el sistema calcula, señala los excesos y deja la mano a una persona.
Del presupuesto a la factura cobrada
El ciclo comercial está cerrado: catálogo, configurador modular, presupuesto, contrato, plan de facturación a plazos. Ya no hay hojas de cálculo en medio.
La integración con Fatture in Cloud no es una sincronización, es una conciliación: compara el extracto bancario con las facturas emitidas, encuentra los duplicados, tiene en cuenta las notas de crédito y liga cada documento al plazo del contrato que lo generó. Un servicio aparte convierte el pago de una suscripción en factura electrónica hacia el sistema de intercambio de la agencia tributaria italiana.
La caja fuerte de las credenciales
Aquí el modelo de seguridad importa más que la interfaz. Las credenciales están cifradas con Cloud KMS y el código da por sentadas tres reglas: desbloquear no es entrar, porque cada revelación pide un segundo permiso de vida corta, separado de la sesión y que se obtiene con huella o rostro; quien no tiene acceso recibe «no existe» y no «no puedes», porque lo segundo confirmaría que esa credencial está ahí; y no hay una alternativa en claro, así que si la clave no responde la caja fuerte no se abre y no escribe.
Encima están las cosas que de verdad hacen falta en una agencia: pedir una credencial a un cliente con un enlace de un solo uso, compartir varias con un compañero de una vez, los recordatorios de rotación y un registro de accesos legible.
Un asistente que mira los datos reales
No es un programa que responde sobre la documentación y no busca dentro de los documentos: consulta la base de datos real, con los mismos permisos del usuario que lo está usando. Responde mientras escribes, muestra las fichas de la propia aplicación en lugar de describir los datos con palabras, y cuando la pregunta implica una acción, enviar una comunicación o reservar una sala, no la ejecuta: la propone y espera que una persona confirme.
El trabajo menos visible fue sobre la honestidad de las respuestas: no inventar personas, no referir lo que no se ha buscado, explicar por qué una lista está vacía en lugar de responder cero, y usar las palabras de la aplicación con el significado que tienen ahí dentro. Las citas se verifican y hay una serie de pruebas cuyas respuestas esperadas se calculan desde la base de datos, así modelos distintos se comparan con preguntas reales.
Las webs de los clientes, y una ley nueva
Desde el 27 de septiembre de 2026 el decreto legislativo italiano 30/2026 prohíbe en las webs comerciales las afirmaciones ambientales genéricas sin fundamentar. El sistema mantiene el registro de las webs de los clientes, con tiempo de actividad, análisis SEO, puntuaciones de velocidad, vencimientos de dominios y mantenimientos programados, y encima le ha puesto un análisis de conformidad.
El resultado no es una lista de alarmas sino una clasificación en tres niveles: prohibido en sí mismo, así que se quita; depende de las certificaciones del cliente, así que se comprueba; legítimo, así que no se toca. El tercer nivel es el motivo por el que la función existe en esta forma: «biológico» en un producto certificado está protegido por un reglamento europeo, y señalarlo como problema empujaría a borrar una palabra que el cliente tiene todo el derecho de usar. Una herramienta de conformidad que grita «al lobo» no solo hace perder tiempo: hace daño.
La misma aplicación, tres oficios distintos
Quien administra ve los indicadores del mes, la carga, las entregas a tiempo y un escritorio de paneles que se mueven, guardado por usuario. El responsable de proyecto ve el equipo y puede reprogramar, pero no ve los precios. Quien trabaja en los encargos ve su trabajo y nada más: menos entradas en el menú y ninguna decisión que no le corresponda.
Los permisos en la interfaz son un espejo, no un control: esconden lo que no se puede hacer, pero la autorización de verdad está en el backend en tres niveles, rol, empresa y área de trabajo. Al terminar el trabajo, una comprobación sobre 65 rutas comparó la una con la otra.
Las mismas funciones, en el bolsillo
La aplicación de móvil sigue a la de escritorio, no la reinterpreta: mismo comportamiento, interfaz de móvil. Se instala como aplicación web, se distribuye también como paquete Android y es capaz de enviar notificaciones.
El escritorio es personalizable, los trabajos se arrastran de una columna a otra y la caja fuerte se desbloquea con la huella o con el rostro. También la barra inferior se configura por usuario y por empresa, y la configuración vive en el backend: cambias de móvil y encuentras la tuya.
Cómo está hecho por debajo, y qué me llevo
Todo en Google Cloud en la región italiana: el backend en Cloud Run con un segundo servicio para el puente hacia la facturación electrónica, MySQL gestionado, dos almacenes separados para imágenes y para documentos firmados, Cloud KMS para las credenciales, y los trabajos nocturnos programados, desde la toma de indicadores a las 2 hasta el análisis de las webs cada hora. El análisis funciona en grupos de tres para no pasarse del tiempo máximo de una petición: la mitad del trabajo con una nube es adaptarse a sus límites en lugar de pelearse con ellos.
Tres cosas me llevo. Quitar una función es una decisión de producto y no una derrota, porque el planificador automático funcionaba y se quitó igualmente. El valor está en el tercer nivel, es decir, en distinguir «prohibido» de «hay que comprobarlo» de «legítimo, no lo toques». Y la seguridad se diseña al principio o no se diseña: la división por empresa puesta el primer día es el motivo por el que añadir una caja fuerte de credenciales cuatro meses después costó dos semanas en lugar de una reescritura.
Qué se entregó
- Backend FastAPI con 69 módulos de endpoints
- Sistema de gestión de escritorio en React, 44 páginas
- Aplicación de móvil instalable, con notificaciones
- Modelo de permisos por rol, empresa y área de trabajo
- Integraciones con Fatture in Cloud, Google, Trello, Canva, Meta y Stripe
- Firma electrónica con certificado y registro de operaciones
- Caja fuerte de credenciales cifrada con Cloud KMS
- Asistente que consulta la base de datos con los permisos del usuario
- Análisis de conformidad de las webs de los clientes
- Infraestructura en Google Cloud y trabajos nocturnos programados
Ficha técnica
- Plataforma: aplicación web y app de móvil en Google Cloud
- Año: 2026
- Estado: En producción
- Tecnologías: Python, FastAPI, React, TypeScript, MySQL, Google Cloud, PWA, LLM, Web App, Automatización
El cliente no se nombra, por decisión suya. Las pantallas vienen del sistema en producción, pero todo dato que pueda remitir a una persona o a una empresa está sustituido por datos de ficción y las marcas están difuminadas: lo que sigue siendo cierto es la interfaz.
¿Necesitas un software así?
Si tienes un proceso que hoy gestionas a mano y querrías automatizar, cuéntamelo: vemos juntos si tiene sentido construir una herramienta encima.
¿Necesitas algo parecido? Este proyecto es un ejemplo de desarrollo de aplicaciones web y sistemas de gestión a medida. La primera reunión y el presupuesto son gratuitos: escríbeme y lo hablamos.

