IA · Desarrollo · PosicionamientoHablemos

Caso · En producción

Propuestas comerciales siempre con la marca de la empresa

Una web propia donde el comercial entra los datos y sale una propuesta con la marca real de la empresa, en enlace único y en PDF, con seguimiento de lo que pasa después.

Qué problema resuelve

El equipo comercial montaba cada propuesta a mano en una presentación con la plantilla por defecto, copiando la anterior. Cada vez corría el riesgo de que se colara el nombre o las condiciones de otra empresa.

Cómo funciona

  1. 01

    La misma propuesta en enlace y en PDF

    El PDF se genera a partir del mismo documento que ve el cliente en el enlace, así que nunca hay dos versiones que puedan divergir.

  2. 02

    Marca editable sin tocar código

    Colores, tipografía, logo y hasta ocho logos de clientes de referencia se cambian desde el propio panel.

  3. 03

    Plantillas por módulos

    Cada plantilla tiene secciones que se activan, se desactivan y se reordenan, con un texto por defecto que el comercial puede sobrescribir. Un módulo nuevo se puede redactar con IA contestando cuatro preguntas.

  4. 04

    Seguimiento que respeta al lector

    Se guarda que el cliente ha abierto el enlace y cuándo, y nada más: ni dirección de red, ni cookie. Las aperturas se agrupan por media hora para que el histórico no se llene de ruido.

El stack, explicado

«Stack» son las herramientas con las que algo está hecho. El servidor está escrito en Node con TypeScript; los datos viven en PostgreSQL; todo se empaqueta con Docker y sale a internet detrás de un servidor web ligero, en una máquina propia. El PDF lo genera Playwright, que controla un navegador Chromium sin pantalla y lo imprime desde el mismo HTML que ve el cliente en el enlace: así no hay dos maquetaciones que puedan divergir. El módulo redactado con IA se pide a un proveedor de modelos con la clave de la propia empresa y con límites de tamaño y de gasto.

Qué aprendimos

El problema se vio al abrir el documento real que se enviaba, página por página, no al preguntar qué fallaba. Y la propuesta es siempre la de la marca de la empresa que la envía, nunca la de la plantilla por defecto ni la de un cliente anterior. Sobre el seguimiento, se guarda solo que el enlace se abrió y cuándo, sin dirección de red, sin cookie ni nada más, y las aperturas se agrupan por media hora: quien lee y vuelve arriba no son tres visitas, y un histórico lleno de ruido es uno que nadie mira.

Límites

Es una herramienta a medida para un equipo comercial concreto, no un producto general. El texto redactado con IA es un borrador que revisa la persona que firma la propuesta.

Con qué está hecho

  • Node
  • TypeScript
  • PostgreSQL
  • Docker
  • Navegador automatizado

Qué hicimos

  • En producción en un servidor propio desde el 4 de septiembre.
  • Estados de cada propuesta: enviada, vista, reunión, ganada o perdida, con notas e histórico.
  • La propuesta que se mandaba antes tenía ocho diapositivas con la tipografía por defecto de la herramienta de ofimática, una paleta que no era la de la marca, páginas con media hoja en blanco y el nombre y las condiciones de la primera empresa a la que se hizo, todavía dentro del texto.
  • El fallo más serio no lo encontró ninguna prueba automática sino la revisión de seguridad hecha a propósito: el motor de plantillas volvía a leer lo que él mismo acababa de insertar, así que un dato escrito en un campo normal podía fabricar un marcador nuevo y colarse sin protección. Se cerró antes de tocar producción.
  • El PDF cortaba contenido en silencio cuando un módulo era largo. En lugar de poner un tope de caracteres a ciegas, se mide contra el propio navegador, se avisa, y decide quien escribe si recortar o repartir en dos láminas.
  • 531 pruebas automáticas y una revisión de seguridad completa antes de desplegar: inyección en las plantillas, ediciones simultáneas y límites de tamaño y de gasto en la IA.

¿Tienes un proyecto parecido?

Cuéntanos qué necesitas y te decimos cómo lo haríamos y si te sale a cuenta.

Hablemos

Más en el LAB