Saltar al contenido

Automatización · Operación y reportes

Crear un dashboard interno con IA desde Google Sheets

Crea con IA un dashboard interno desde Google Sheets, con métricas y gráficas acordadas, como una foto privada que puedes volver a generar.

¿Cómo creo un dashboard con IA desde los datos que ya tengo en Google Sheets?

El Met valida el archivo, la pestaña, el rango y los encabezados de Google Sheets. Lee una muestra visible solo para acordar columnas, unidades, métricas y gráficas; después trae el rango completo aprobado, acotado a 5.000 filas, 100 columnas y 50.000 celdas, como valores sin formato y calcula desde esa lectura. Revisa las Páginas de Meteor para detectar nombres o slugs ya presentes y reducir colisiones. Si encuentra una coincidencia, se detiene y pide otro encargo; no actualiza ni sobrescribe la página existente. Si no encuentra una, crea una página privada autocontenida y la relee. El resultado es una foto que no consulta Sheets ni carga scripts externos al abrirse.

Qué la pone en marcha

Cuando alguien lo pide

Arranca cuando una persona indica el spreadsheet, la pestaña y el rango que quiere visualizar. También se corre manualmente para tomar una foto nueva, porque la página no consulta Google Sheets por su cuenta. Para otra foto se abre un encargo nuevo con otro nombre/slug; este flujo no refresca ni sobrescribe la página anterior.

Una tarea de ejecución manual: alguien del equipo la corre con un botón, o se la pide al Met por chat.

Quién la ejecuta

Met de analítica y tableros internos

No tiene nombre propio sembrado. Su trabajo es convertir un rango que el equipo ya entiende en una vista interna legible, sin presentar como hallazgo lo que no está en las celdas ni convertir una copia estática en una supuesta conexión en vivo.

Qué hay que tener conectado

6 pasos · 5 herramientas

El procedimiento, paso a paso

Cada paso muestra la herramienta que se ejecuta. Son las del conector real: si una dejara de existir, esta página no compilaría.

  1. 1

    Verificar el archivo antes de leer datos

    La metadata confirma el título, el locale, las pestañas, sus dimensiones y los rangos con nombre. Después se lee la fila de encabezados con un rango A1 explícito. El número de filas de la metadata es la capacidad de la cuadrícula, no la cantidad de registros: el rango real lo define el usuario y si una pestaña o columna no coincide, el Met se detiene en vez de adivinar.

  2. 2

    Leer una muestra y acordar qué se va a mostrar

    Una lectura mediante un rango A1 finito y explícito —por ejemplo, Ventas!A1:F20, nunca columnas completas— trae encabezados y filas de muestra con el formato visible de la hoja. El Met describe unidades, vacíos y tipos aparentes; luego propone métricas, dimensiones y tipos de gráfica para que el usuario los apruebe. No calcula KPIs desde esa muestra ni desde strings formateados, y no inventa tendencias, metas, períodos ni explicaciones ausentes en las celdas.

  3. 3

    Leer completo el rango aprobado para calcular

    Después del acuerdo, sheets_get vuelve a leer el rango A1 completo y finito con UNFORMATTED_VALUE. Los límites locales son 5.000 filas, 100 columnas y 50.000 celdas: si el rango excede cualquiera, esta receta se detiene y pide acotarlo; no finge haber leído todo ni combina bloques con una regla improvisada. Los KPIs se calculan solo desde esta lectura completa, con columnas y unidades aprobadas. Los números llegan sin formato, las fechas pueden llegar como seriales y las celdas vacías finales pueden omitirse, así que el Met valida tipos, denominadores, nulos y período antes de calcular.

  4. 4

    Listar las páginas y detenerse ante una colisión

    El listado devuelve nombres, slugs, ids y fecha de actualización sin cargar el contenido. Esa comprobación previa reduce el riesgo de crear otra página con el mismo nombre o slug. Si ya existe, la corrida se detiene y pide un encargo nuevo; no llama pages_get ni pages_update para sobrescribirla. pages_list y pages_create no forman una operación atómica ni garantizan unicidad: otra creación concurrente aún podría colisionar.

  5. 5

    Crear una página nueva si el listado no muestra colisión

    La rama de creación guarda una página privada con el HTML de estructura, el CSS de presentación y el JavaScript de gráficas en campos separados. Los datos calculados desde la lectura completa se serializan como una foto dentro del JavaScript, sin identificadores de OAuth, secretos ni información personal innecesaria. La vista usa HTML/CSS, DOM o Canvas 2D local, sin scripts externos. Las cadenas se escapan y se pintan con textContent, no como HTML de confianza. Esta receta no llama pages_update.

  6. 6

    Releer lo que quedó almacenado

    Después de crear, pages_get vuelve a traer la página nueva y permite comparar su id, slug, HTML, CSS y JavaScript con la entrega acordada. Esta lectura verifica almacenamiento, no que el navegador haya renderizado bien ni que el contenido esté libre de XSS; esa revisión visual y de seguridad sigue siendo una comprobación separada antes de confiar en el tablero.

Antes de empezar

Qué necesitas tener listo

Ninguno de estos puntos lo resuelve el Met. Si falta uno, la automatización se detiene ahí.

Los límites

Qué NO resuelve esta automatización

Preferimos decirlo aquí que descubrirlo en la implementación.

Preguntas frecuentes

Preguntas sobre esta automatización

No. Es una foto de los valores leídos durante la corrida. Para reflejar cambios hay que abrir otro encargo, revisar la nueva muestra y crear una página nueva con otro nombre o slug.

No en esta receta. pages_list se usa para detectar la colisión y detenerse antes de escribir. Actualizar una página existente requiere otro encargo y un flujo de edición separado.

La muestra con FORMATTED_VALUE sirve para entender y acordar columnas, no para calcular. Los KPIs salen de una segunda lectura completa pero acotada del rango aprobado con UNFORMATTED_VALUE, para trabajar con números sin separadores o símbolos visibles.

Solo los agregados y columnas necesarios para las métricas acordadas. Tokens, secretos y datos personales sin función en el tablero se excluyen antes de generar el HTML y el JavaScript.

No. pages_get confirma que los tres bloques quedaron almacenados. La revisión en navegador y la comprobación de escaping y XSS son controles distintos que deben hacerse antes de confiar en la vista.

Sigue por aquí

Otras automatizaciones con las mismas herramientas

¿Quieres esta automatización corriendo con tus datos?

Te la mostramos con tus cuentas conectadas, no con una demostración enlatada.