Seis portales sin API. Un solo resultado.
Un agente de viajes consultaba el mismo alojamiento en seis mayoristas distintos, cada uno con su sesión, su interfaz y su nomenclatura. Ninguno expone una API: todo esto se opera por navegador.
Sin la correlación el agente compara 839 líneas sin saber cuáles son el mismo hotel. Con ella, 409 decisiones reales.
Con ofertas, sin resultados, error, omitido, detenido y detenido con parcial. Ninguno se confunde con otro en el reporte.
Masiva sin cabeza para comparar, individual con navegador visible, y mosaico persistente para el traspaso de reserva.
Qué portales ve cada operador sale del país de su cuenta: es configuración, no código.
El catálogo se declara, no se adivina
La pantalla de búsqueda decide contra qué se va a buscar y con qué filtros. Cuatro decisiones que ahorran trabajo más adelante.
El servicio manda sobre el catálogo
Al elegir «estancia» el sistema ya sabe qué portales saben responder eso. Nadie tiene que acordarse de cuáles sirven, y un portal sin estrategia para ese servicio no se intenta ni se cuenta como ausencia.
Los filtros viajan al portal, no a la lista
Estrellas y régimen se traducen a los controles de cada sitio antes de extraer. Traer 800 filas para descartar 700 en local es pagar seis veces por datos que se tiran.
La conversión es del comparador, no del precio
La tasa de cambio viene del dato oficial del gobierno y la propia interfaz declara que no toca el precio del portal. Cuando el agente cotiza, sabe qué número es del proveedor y cuál es una equivalencia para poder comparar.
El catálogo se declara al arrancar
«6 portales cargados» sale de configuración, y qué ve cada operador depende del país de su cuenta. Añadir un portal no es recompilar, y el operador nunca adivina contra qué está buscando.
Seis portales avanzando a distinta velocidad
Una búsqueda tarda minutos y toca seis sitios que no cooperan igual. La pantalla no muestra una barra de progreso: muestra en qué estado está cada portal.
Estado por portal, no una barra global
Una barra de progreso miente cuando seis cosas van a velocidades distintas. Aquí se ve cuál avanza, cuál sigue en niebla y cuál ya cerró: el operador sabe si vale la pena esperar o si le falta justo el portal que le importa.
La metáfora hace legible lo técnico
«En niebla», «abriendo paso» y «ruta cerrada» las entiende un agente de viajes en el primer uso. El vocabulario del dominio del usuario, no el del programador, y sin perder precisión: cada estado corresponde a uno interno.
Cortar sin perder lo recogido
Botón de primera clase, no escondido: convierte una búsqueda a medias en un resultado utilizable, declarado como parcial. Un resultado parcial que se sabe parcial vale más que uno completo que llega tarde.
El reloj también es una decisión: en un proceso que puede tardar minutos, no saber cuánto llevas es lo que hace que la gente cancele y vuelva a lanzar desde cero.
Seis desenlaces, no éxito y fallo
La barra de estado del cierre no dice «funcionó». Dice exactamente qué le pasó a cada portal, y distingue cosas que casi todo el software colapsa en la misma casilla. Que un portal no tenga disponibilidad no es un error. Que una sesión expire no es que no haya hoteles.
Ruta cerrada. Datos en la lista.
Respondió y no hay nada. Es un dato, no un fallo.
Reventó de verdad. Se nombra portal y causa.
Nunca se intentó. No cuenta como ausencia.
El operador cortó antes de terminar.
Cortado, y lo recogido se conserva y se usa.
La implicación es de negocio, no de ingeniería
Si el sistema colapsara «no lo sé» en «no existe», el agente cotizaría de menos y perdería la venta, o cotizaría un precio que ya no está. Un selector que falla no significa que el hotel no esté; una sesión caída no significa que el portal no tenga tarifa. Y «sin disponibilidad» va separado de «atención», porque uno es una respuesta del negocio y el otro es un problema del sistema: sólo el segundo hay que arreglarlo.
839 filas convertidas en 409 decisiones
Aquí es donde el trabajo se paga: el mismo alojamiento aparece bajo tres nombres distintos en tres portales, y hay que verlo como uno solo con tres precios.
El histograma antes que el rango
El deslizador de precio no empieza vacío: enseña dónde está la masa de la oferta. El agente ve de un vistazo que casi todo vive por debajo de cierto precio y ajusta con criterio, en vez de mover el control a ciegas.
Los chips dicen dónde está y dónde no
Cuatro portales, cuatro estados en una fila: encendido, apagado, atenuado. Que un portal esté gris es información — no lo tiene, o no respondió — y es distinto de que no aparezca.
«Mejor» es una comparación auditable
Debajo de cada alojamiento están todas las ofertas con su portal y su página de origen. La etiqueta no pide confianza: el agente puede abrir esa página y comprobarlo antes de cotizarle a su cliente.
El mapa como segundo criterio
Un precio bajo a cuarenta minutos del centro no es una ganga. Agrupar por zona convierte «409 resultados» en tres o cuatro decisiones de barrio, que es como piensa quien arma el viaje.
Por qué son 409 y no 839
Cada portal escribe el nombre a su manera, redondea las coordenadas distinto y a veces se inventa una estrella. Decidir que dos filas son el mismo hotel es el problema difícil, y hacerlo mal significa cotizar dos veces el mismo alojamiento o perder la comparación entera.
Union-Find restringido. El umbral de geo baja la exigencia de nombre sólo cuando las dos filas traen coordenadas reales, no cuando una las redondea al centro de la ciudad.
Degradar en vez de mentir
Operar software ajeno significa que la mitad del trabajo es qué hacer cuando el otro lado cambia, tarda o te echa. Cuando un portal exige un login que la automatización no puede resolver, la aplicación no falla en silencio: se lo pasa a la persona y le da salidas honestas.
Dos salidas que admiten el fracaso
«No pude entrar» y «no usar portal» son botones de primera clase, del mismo tamaño que el de éxito. Ninguna finge que la sesión quedó buena, y las dos alimentan casillas distintas del reporte: una es un error, la otra es un portal omitido a propósito.
El humano hace lo que el humano sabe hacer
Un desafío de sesión no se resuelve con más selectores. La aplicación ancla el navegador, le pasa el control a la persona y detecta sola cuándo entró, sin pedirle que copie una cookie ni que vuelva a empezar la búsqueda.
Aislamiento
Un portal caído no bloquea a los otros cinco. Cada uno con su cola y su sesión persistida.
Evidencia barata
XHR y JSON antes que recorrer el DOM: más rápido y estable cuando el portal cambia el maquetado.
Credenciales
Cifradas en el equipo del operador, sin telemetría a la nube. Es la sesión comercial de una agencia, no un dataset.
Configuración
Qué portales ve cada operador sale del país de su cuenta. Configuración, no código.
De 409 alojamientos a un documento
Una comparación que no sale de la pantalla no sirve de nada: el agente tiene que mandarle algo al cliente. El resultado se convierte en una propuesta con su mapa y sus fechas, y sale como docx y pdf con la marca de la agencia.
Lo obligatorio se ve antes de intentarlo
El campo del cliente está marcado desde que se abre la pantalla, no al pulsar «generar». Corregir un formulario es barato; descubrir el error después de exportar seis páginas, no.
La vista previa es el documento
Se edita a un lado y se ve al otro, ya paginado. Lo que se ve es lo que se exporta, sin la sorpresa clásica de que el PDF sale distinto del editor.
El inventario de lo que falta
«Assets: 0/9 fotos, logo OK» avisa antes de generar. Cuesta una línea en la barra de estado y ahorra la llamada del cliente preguntando por qué su propuesta no tiene fotos.
Es la misma idea que atraviesa el proyecto entero, aplicada al papel: declarar lo que falta antes de entregar, en vez de entregar y esperar que nadie lo note.
Límites declarados
Se dijeron por escrito en la propuesta antes de firmar, no se descubrieron a mitad del proyecto.
Ningún portal expone una. Es automatización de navegador, y decirlo así fue una corrección explícita a la propuesta comercial.
Compara y hace el traspaso con el navegador abierto en la ficha. La reserva la cierra una persona.
No sincroniza inventario. Cada expedición es una foto del momento, fechada.
Un portal nuevo pide una estrategia escrita a mano, y una lista de viabilidad para decidir si vale la pena antes de empezarla.