La mayoría de los textos técnicos se enfoca en un solo paso — la normalización, la llamada al LLM, el algoritmo de emparejamiento. Pero los usuarios no experimentan pasos. Experimentan un flujo: sueltas un archivo, esperas un momento, revisas el resultado, envías la cotización. Caminemos la importación con IA desde el punto de vista del usuario, incluyendo los detalles que hacen la diferencia entre una herramienta que se siente inteligente y una herramienta que se siente como demo.
Drop Arrastras el documento del proveedor a la página. La zona de drop se enciende con un contorno ámbar — el mismo color usado en todo el importador para señalar 'atención necesaria' o 'IA trabajando.' La validación client-side corre antes de que un solo byte toque el servidor. Revisa la extensión contra el conjunto permitido (PDF, XLSX, XLS, CSV), confirma que el archivo esté bajo 20 MB, y rechaza cualquier otra cosa con un mensaje inline que nombra el problema — 'Los archivos CSV deben tener menos de 20 MB' en vez de 'Archivo inválido.'
La validación client-side no es solo cortesía. Evita que el usuario espere 30 segundos por un upload solo para recibir un rechazo del servidor. También mantiene basura fuera de la cola de procesamiento — nada de binarios corruptos, nada de PDFs con contraseña que gastarían una llamada al LLM antes de fallar. La validación es estricta en la frontera y silenciosa de ahí en adelante: si el archivo pasó la puerta, el pipeline asume que es procesable.
La zona de drop también acepta pegar. Si tienes una hoja de cálculo de proveedor abierta en otra pestaña, puedes copiar las filas relevantes y pegarlas directamente. El handler de pegado detecta datos tabulares, los normaliza al mismo formato interno que un upload de archivo, y los enruta al mismo pipeline de procesamiento. Mismas etapas, misma pantalla de revisión, mismo resultado. El método de entrada no cambia el comportamiento — al pipeline no le importa cómo llegaron los bytes.
Procesamiento Cuando el archivo se sube, una pantalla completa de progreso toma el control. Este es el momento donde la mayoría de las herramientas de importación pierde al usuario. Un spinner con 'Procesando...' es honesto pero inútil — no da ninguna señal de si la cosa está funcionando o está trabada. Una barra de porcentaje es peor — implica precisión que el sistema no tiene, y una barra clavada en 73% por 45 segundos se siente rota incluso cuando todo está bien.
Quotery usa ciclado de etapas por tiempo en vez de porcentaje. Seis etapas rotan en secuencia: 'Leyendo documento,' 'Entendiendo contexto,' 'Detectando grupos,' 'Emparejando códigos de producto,' 'Infiriendo productos por descripción,' 'Armando cotización.' Cada etapa permanece visible por una duración afinada al p50 observado de importaciones reales — aproximadamente 3 a 6 segundos por etapa dependiendo del tamaño y complejidad del archivo. Las etapas no son progreso falso. Corresponden a hitos reales en el pipeline: la capa de normalización lee el documento, el LLM razona sobre la estructura, el paso de agrupamiento identifica secciones, el emparejador corre contra códigos de producto, el paso de inferencia maneja líneas no encontradas, y el ensamblaje final crea los objetos QuoteSection y QuoteLine.
El pacing es honesto pero no literal. Una importación de 14 líneas puede pasar 4 segundos en 'Leyendo documento' cuando el parseo del PDF tomó 1.2 segundos, y 4 segundos en 'Emparejando códigos' cuando el emparejador determinístico corrió en 200ms. El tiempo extra es buffer — suaviza la variabilidad para que el usuario nunca vea una etapa parpadear en 0.3 segundos seguido de una pausa de 15 segundos en la siguiente. La experiencia es consistente incluso cuando el tiempo real por debajo es irregular.
Por detrás, tres llamadas al LLM corren en secuencia durante el procesamiento. La Call A normaliza el documento a JSON estructurado: identifica secciones, agrupa ítems de línea, y extrae el texto crudo que el emparejador necesita. La Call B corre inferencia en líneas que no pudieron ser emparejadas determinísticamente — toma una descripción de producto como 'VENT-450-B 220V INDUSTRIAL' y la mapea al producto conocido más cercano. La Call C genera el banner de resumen (ve el post 14 para el racional completo de diseño). El usuario nunca ve estas llamadas — ve las etapas ciclando y, eventualmente, el resultado.
Si algo sale mal durante el procesamiento — un PDF con contraseña, un archivo que en realidad es un escaneo de imagen sin texto extraíble, un XLSX corrupto — la pantalla de progreso transiciona a un estado de error con un mensaje específico. 'Este PDF está protegido con contraseña y no puede ser procesado' es accionable. 'Fallo en la importación' no lo es. Cada camino de error en el pipeline tiene un mensaje legible que le dice al usuario qué pasó y qué hacer.
Revisión La pantalla de progreso se disuelve y aterrizas en el Quote nuevo. La transición es importante: no aterrizas en una cuadrícula cruda de clasificación ni en un volcado JSON. Aterrizas en la misma vista de detalle de Quote que verías si hubieras armado la cotización manualmente — el mismo layout, los mismos controles, las mismas capacidades de edición. La única diferencia es que los datos ya están poblados, y un banner generado por IA aparece arriba de la tabla de ítems.
El banner (cubierto en profundidad en el post 14) responde la única pregunta que tienes en ese momento: '¿Qué necesito revisar?' Dice algo como 'Importé 14 líneas. 11 coincidieron limpiamente, 2 necesitan tu revisión, y 1 no pudo ser emparejada — por favor revisa la línea 9.' El banner es generado por una llamada al LLM que recibe solo conteos de clasificación y tu locale — sin nombres de producto, sin precios, sin datos de cliente. Está limitado a dos frases como máximo y desaparece al navegar.
Cada línea en la tabla de ítems lleva un chip de clasificación. Chips verdes dicen 'Coincidencia exacta' — el sistema encontró el producto por código, el precio fue capturado del catálogo de productos, y la línea está lista. Chips ámbar dicen 'Decisión de IA — revisa' — el emparejador determinístico no encontró coincidencia, el LLM hizo su mejor intento, y un humano necesita confirmar o corregir. Chips rojos dicen 'No encontrado' — ni el emparejador ni el LLM pudieron mapear esta línea a un producto conocido, y necesita atención manual.
Los colores de los chips crean jerarquía visual inmediata. Puedes escanear 14 líneas en menos de 3 segundos y saber exactamente dónde enfocarte. Las líneas verdes son visualmente recesivas — están confirmadas, están bien, no necesitas pensar en ellas. Las líneas ámbar y rojas jalan el ojo. El diseño dice 'estas son las que te necesitan' sin hacerte leer un solo nombre de producto.
Tocar un chip ámbar abre una comparación inline: la coincidencia sugerida por la IA a la izquierda, el texto original del proveedor a la derecha, y acciones 'Confirmar' o 'Cambiar' abajo. Si la IA acertó — y acierta aproximadamente el 90% de las veces para las líneas que intenta — tocas Confirmar y el chip se vuelve verde. Si se equivocó, buscas el producto correcto, lo seleccionas, y el chip se actualiza. Las líneas rojas requieren la misma búsqueda manual pero sin sugerencia para empezar.
La experiencia de revisión es donde la herramienta se gana o pierde la confianza. Si la IA acierta el 90% del tiempo pero la UI de revisión hace que confirmar ese 90% se sienta como trabajo, la herramienta fracasó. Si confirmar una suposición correcta de la IA es un toque y la UI se quita del camino, la herramienta se paga sola. Cada Confirm ámbar es un toque. Cada búsqueda roja es un lookup typeahead contra el catálogo de productos, scopeado a tu tenant, con emparejamiento fuzzy en nombre y código.
Tiempo total Una importación de 14 líneas con resultados de clasificación típicos — digamos 9 verdes, 3 ámbar, 2 rojas — toma bastante menos de dos minutos del drop al send. Eso incluye el tiempo de procesamiento (aproximadamente 25-40 segundos dependiendo de la complejidad del archivo), el tiempo de revisión (confirmar 3 coincidencias ámbar, emparejar manualmente 2 líneas rojas), y cualquier ajuste pequeño de precio o cantidad. La misma tarea en hoja de cálculo — tipear 14 códigos de producto, buscar precios, calcular totales de línea, formatear la cotización — toma de veinte a cuarenta minutos dependiendo de la familiaridad con el catálogo.
El ahorro de tiempo se acumula con el volumen. Un equipo procesando 5 cotizaciones de proveedor al día ahorra aproximadamente 90 minutos diarios — el equivalente a un día completo de trabajo por semana recuperado de la entrada de datos. Pero el ahorro más importante es cognitivo. El importador maneja el trabajo mecánico de transcripción y emparejamiento. El humano maneja el trabajo de juicio de revisión y ajuste. Esa es la división correcta de trabajo entre una máquina y una persona que conoce a sus clientes.
