import json from pathlib import Path import plotly.offline as po # Datos normalizados del archivo corregido. records = [ {"platform":"Respond.io","market":"General","seller":"Heydi","conversations":138,"closures":3,"currency":"Sin identificar","amount":2955}, {"platform":"Respond.io","market":"General","seller":"Joss","conversations":45,"closures":1,"currency":"Sin identificar","amount":195}, {"platform":"Respond.io","market":"General","seller":"Alex","conversations":10,"closures":0,"currency":"Sin identificar","amount":0}, {"platform":"Respond.io","market":"General","seller":"Lys","conversations":39,"closures":2,"currency":"Sin identificar","amount":2975}, {"platform":"Respond.io","market":"General","seller":"Sin asignar","conversations":1,"closures":0,"currency":"Sin identificar","amount":0}, {"platform":"Whaticket","market":"Honduras","seller":"Heydi","conversations":296,"closures":2,"currency":"HNL","amount":6622}, {"platform":"Whaticket","market":"Honduras","seller":"Joss","conversations":122,"closures":1,"currency":"HNL","amount":1806}, {"platform":"Whaticket","market":"Honduras","seller":"Alex","conversations":75,"closures":0,"currency":"HNL","amount":0}, {"platform":"Whaticket","market":"Honduras","seller":"Lys","conversations":107,"closures":1,"currency":"HNL","amount":3936}, {"platform":"Whaticket","market":"Honduras","seller":"Jacky","conversations":1,"closures":0,"currency":"HNL","amount":0}, {"platform":"Whaticket","market":"Honduras","seller":"Andrea","conversations":8,"closures":0,"currency":"HNL","amount":0}, {"platform":"Whaticket","market":"Honduras","seller":"Nehemias","conversations":60,"closures":0,"currency":"HNL","amount":0}, {"platform":"Whaticket","market":"Guatemala","seller":"Heydi","conversations":0,"closures":1,"currency":"GTQ","amount":700}, {"platform":"Whaticket","market":"Guatemala","seller":"Joss","conversations":0,"closures":3,"currency":"GTQ","amount":16870}, {"platform":"Whaticket","market":"Guatemala","seller":"Alex","conversations":0,"closures":1,"currency":"GTQ","amount":595}, {"platform":"Whaticket","market":"Guatemala","seller":"Lys","conversations":0,"closures":2,"currency":"GTQ","amount":4950}, {"platform":"Whaticket","market":"Guatemala","seller":"Jacky","conversations":0,"closures":0,"currency":"GTQ","amount":0}, {"platform":"Whaticket","market":"Guatemala","seller":"Andrea","conversations":0,"closures":0,"currency":"GTQ","amount":0}, {"platform":"Whaticket","market":"Guatemala","seller":"Nehemias","conversations":0,"closures":0,"currency":"GTQ","amount":0}, {"platform":"Whaticket","market":"El Salvador","seller":"Heydi","conversations":0,"closures":2,"currency":"USD","amount":415.5}, {"platform":"Whaticket","market":"El Salvador","seller":"Joss","conversations":0,"closures":1,"currency":"USD","amount":140}, {"platform":"Whaticket","market":"El Salvador","seller":"Alex","conversations":0,"closures":0,"currency":"USD","amount":0}, {"platform":"Whaticket","market":"El Salvador","seller":"Lys","conversations":0,"closures":1,"currency":"USD","amount":125}, {"platform":"Whaticket","market":"El Salvador","seller":"Jacky","conversations":0,"closures":0,"currency":"USD","amount":0}, {"platform":"Whaticket","market":"El Salvador","seller":"Andrea","conversations":0,"closures":0,"currency":"USD","amount":0}, {"platform":"Whaticket","market":"El Salvador","seller":"Nehemias","conversations":0,"closures":1,"currency":"USD","amount":268}, ] plotly_js = po.get_plotlyjs() data_json = json.dumps(records, ensure_ascii=False) html = f""" Dashboard de ventas — Julio

Dashboard interactivo de ventas

Resultados de julio · actividad, cierres y montos separados por moneda

Conversaciones
0
Cierres
0
Tasa de cierre
0%
Vendedores activos
0
VENTAS HONDURAS · HNLL 0.00
VENTAS GUATEMALA · GTQQ 0.00
VENTAS EL SALVADOR · USD$ 0.00
MONEDA SIN IDENTIFICAR0.00
Los montos nunca se suman entre monedas. Respond.io permanece separado hasta confirmar la moneda de sus operaciones.

Conversaciones y cierres por plataforma

Desempeño por vendedor

Distribución de cierres

Montos por mercado y moneda

Detalle filtrado

PlataformaMercadoVendedorConversacionesCierresTasaMonedaMonto
""" output = Path("/mnt/data/Dashboard_interactivo_ventas_Julio.html") output.write_text(html, encoding="utf-8") print(f"Archivo creado: {output}") print(f"Tamaño: {output.stat().st_size/1024/1024:.2f} MB")