De WordPress a Attentti: Desarrollo Django Personalizado

Juan Pablo Mora 5 min read

De WordPress a una Plataforma Escalable: Cómo el Desarrollo Django Personalizado Dio Vida a Attentti

TL;DR: Attentti operaba sobre WordPress, enterrado bajo años de plugins, temas parcheados y personalizaciones de reportes por cliente. Las páginas eran lentas, cada cambio era riesgoso y agregar nuevos clientes significaba más trabajo de desarrollo solo para mantener todo funcional. Reconstruimos Attentti sobre un stack Django personalizado con formularios de tickets configurables, seguimiento automatizado de SLA y un portal de marca blanca para cada empresa que atienden. El equipo ahora gestiona su propia configuración sin involucrar a un desarrollador.


Los plugins se acumulan. Los temas se parchean. Un sitio WordPress que comenzó como una solución razonable se convierte silenciosamente en algo que nadie entiende del todo, cargando más lento con cada nueva personalización, rompiendo en lugares inesperados cada vez que algo necesita cambiar.

Eso fue lo que le pasó a Attentti. Cada nuevo cliente necesitaba reportes con un formato ligeramente diferente. Cada reporte se convertía en otro plugin, otra plantilla sobreescrita, otro bloque de lógica condicional enterrado en el tema. Los tiempos de carga aumentaban. El equipo de desarrollo pasaba la mayor parte de su tiempo evitando que las cosas se rompieran en lugar de construir algo nuevo.

Cuando llegaron a nosotros, el código era difícil de entender y costoso de cambiar. El negocio estaba creciendo. La plataforma no estaba al ritmo.

Así que reconstruimos Attentti sobre un stack adecuado.

Por Qué WordPress Se Había Convertido en el Problema

La configuración no había sido mal construida. Había sido construida de forma incremental durante varios años, lo que produce el mismo resultado. Nadie tomó una sola decisión mala, pero después de suficientes capas de personalización, la estructura original quedó enterrada bajo adiciones que nadie tuvo tiempo de limpiar.

Los problemas específicos cuando nos involucramos:

  • Rendimiento. Docenas de plugins activos y una base de datos que había crecido sin estructura producían tiempos de carga lentos para clientes y personal interno.
  • Reportes. Cada cliente tenía un layout de reporte ligeramente diferente, cada uno construido personalizando las mismas plantillas de WordPress. Cambiar uno arriesgaba romper otro. Agregar uno nuevo requería un desarrollador cada vez.
  • Gestión de tickets. La plataforma nunca fue diseñada para tickets. Las solicitudes llegaban a través de formularios de contacto, se ordenaban manualmente y se rastreaban en hojas de cálculo junto al panel de WordPress.
  • Control de acceso. Los roles de usuario de WordPress no podían representar la estructura real del equipo del cliente. Las personas veían demasiado o demasiado poco.
  • Capacidad. Cada nuevo cliente añadía carga a un sistema ya al límite. La arquitectura había sido diseñada para publicar páginas, no para gestionar operaciones.

Seguir parcheando no tenía un final claro. La decisión correcta era una reconstrucción limpia usando desarrollo Django personalizado, partiendo de lo que el negocio realmente necesitaba.

Construyendo Attentti: Lo Que Entregamos

Attentti es una plataforma multitenancy de gestión de tickets y flujos de trabajo. El equipo del cliente la usa para recibir, clasificar, asignar, rastrear y cerrar tickets en toda su operación.

Formularios de entrada configurables. Cada tipo de ticket tiene su propio formulario. Los tipos de campo, reglas de validación e información requerida se gestionan a través de un constructor en el panel de administración. Cuando el proceso del cliente cambia, ellos mismos actualizan el formulario.

Seguimiento de SLA. Cada ticket se mide contra los compromisos definidos por el cliente. Attentti calcula el tiempo invertido en cada etapa, señala los tickets que se acercan a sus plazos y da a los líderes de equipo una vista actualizada de la cola.

Un portal público por empresa. Cada empresa obtiene un portal de envío de marca blanca. Los clientes envían y rastrean tickets sin acceder a ninguna herramienta interna.

Permisos basados en roles. Los gerentes ven reportes. Los agentes ven su cola. Los clientes ven su estado. El modelo de permisos fue construido para reflejar cómo están estructurados los equipos del cliente.

Actualizaciones en tiempo real. Los cambios de estado, mensajes internos, tareas de seguimiento y notas del equipo se actualizan en tiempo real.

El Impacto

El principal punto de impacto fue que el equipo finalmente pudo ver el panorama completo: dónde estaba cada ticket, quién era responsable del siguiente paso y cuánto tiempo quedaba. Esa información siempre había existido. Solo que vivía en demasiados lugares antes.

La incorporación también se volvió más rápida. Los nuevos agentes podían sentarse con Attentti y entenderlo sin mucha explicación, porque el sistema refleja cómo el equipo ya trabaja.

El cliente también ganó control directo sobre su configuración. Nuevas categorías de tickets, objetivos de SLA actualizados, cambios en formularios — todo eso lo manejan ellos mismos, sin un desarrollador involucrado.

Por Qué Django

La plataforma necesitaba separación de datos multitenancy, actualizaciones en tiempo real, procesamiento de tareas en segundo plano y una API documentada. Django manejó todo eso sin introducir riesgo. Ha estado en producción el tiempo suficiente como para que los casos límite difíciles estén bien entendidos.

Esa estabilidad importaba aquí. Estábamos resolviendo un conjunto específico de problemas para un negocio que ya había pasado demasiado tiempo con infraestructura frágil.

Qué Significa Esto para Tu Negocio

Si tu equipo ha acumulado años de soluciones provisionales en una plataforma que nunca fue del todo la correcta, el costo aparece gradualmente: despliegues más lentos, dudas antes de hacer cambios, funcionalidades que no pueden construirse porque la base no lo soporta. Si todavía estás decidiendo si construir a medida o contratar internamente, esa decisión tiene sus propias consideraciones que vale la pena leer.

El desarrollo Django personalizado significa construir para tus requisitos reales. Si eso suena como la dirección correcta, nos gustaría escucharte.


¿Construyendo algo complejo en Django? Contáctanos.