Ir al contenido

Dashboards

Los dashboards son paneles visuales configurables que muestran datos en tiempo real o bajo demanda desde tus workflows, APIs y bases de datos. Cada dashboard está compuesto por widgets dispuestos en una cuadrícula responsive de 12 columnas.

Los dashboards pueden mantenerse privados (visibles solo para tu equipo) o publicarse mediante una URL compartible sin necesidad de autenticación.


Desde la sección Dashboards en el menú lateral:

  1. Haz clic en Nuevo Dashboard
  2. Elige nombre, descripción opcional y una plantilla de inicio
  3. Se abre el Dashboard Builder — agrega widgets, configura fuentes de datos y personaliza el diseño
  4. Haz clic en Guardar en cualquier momento
PlantillaDescripción
En blancoEmpieza desde cero con el lienzo vacío
Sales Overview4 tarjetas KPI + gráfico de barras + gráfico circular + tabla de pedidos
Operations MonitorMétricas de ejecución + línea de tendencia en tiempo real
Customer AnalyticsDonut de segmentación de clientes + tabla de mejores clientes

El builder es un editor visual con arrastrar y soltar para componer layouts de widgets.

  • Cuadrícula de 12 columnas: cada widget ocupa un número configurable de columnas (1–12) y filas
  • Arrastra el widget para reposicionarlo, arrastra los bordes para redimensionarlo
  • El color de fondo del lienzo y el tema general son personalizables

Haz clic en + Agregar widget y elige un tipo del panel:

WidgetTipo internoDescripción
KPIkpiTarjeta de métrica única con indicador delta opcional y sparkline
Gráfico de barrasbarBarras verticales u horizontales con múltiples series
Gráfico de líneaslineSerie temporal o gráfico de tendencia con múltiples series
Gráfico circularpieGráfico de sectores proporcionales
DonutdonutVariante del circular con etiqueta central configurable
TablatableTabla de datos paginada, ordenable y con acciones por fila
TextotextContenido estático enriquecido con variantes tipográficas
ImagenimageIncrustar una imagen por URL, o elegida de la biblioteca de Recursos, con ajuste de contenedor
Menú de enlaceslinkCuadrícula de enlaces de navegación o botones de acción. Variantes: card, button, text, list
Menú de navegaciónmenuBarra de navegación con orientación vertical u horizontal. Variantes: sidebar, buttons, pills
SecciónsectionContenedor agrupador con 1–4 sub-columnas y encabezado opcional

El Dashboard Builder presenta un diseño de tres paneles:

  • Panel izquierdo (Catálogo de widgets): lista los tipos de widgets disponibles agrupados por categoría. Haz clic en el botón ‹ para colapsarlo en modo solo-iconos y liberar espacio horizontal para el lienzo. Pasa el cursor sobre los iconos para ver sus nombres con tooltip.
  • Centro (Lienzo): cuadrícula de arrastrar y soltar donde se colocan y redimensionan los widgets.
  • Panel derecho (Configuración): arrastra el separador vertical en su borde izquierdo para ajustar su ancho (entre 240 y 700 px). Combinar el catálogo colapsado con un panel derecho más estrecho maximiza el espacio del lienzo.

Panel derecho: Config. de widget y ajustes del Dashboard

Sección titulada «Panel derecho: Config. de widget y ajustes del Dashboard»

El panel lateral derecho tiene dos modos, alternados mediante pestañas en la parte superior:

  • Widget — configura el widget seleccionado (fuente de datos, campos específicos del tipo, estilo visual)
  • Dashboard — configura ajustes globales (nombre, descripción, tema, fuentes de datos compartidas, seguridad)

Ambas pestañas están siempre accesibles mientras hay un widget seleccionado. Al seleccionar un widget diferente, el panel vuelve automáticamente al modo Widget.

Selecciona cualquier widget para abrir su panel de configuración a la derecha:

  • Título: se muestra en la parte superior de la tarjeta
  • Posición y tamaño: columna de inicio, ancho en columnas, fila de inicio, alto en filas
  • Fuente de datos (ver Modos de fuente de datos más abajo)
  • Auto-actualización: intervalo en milisegundos para refresco automático (0 = desactivado)
  • Config. específica del tipo: los campos dependen del tipo de widget
CampoDescripción
valueFieldCampo JSON que contiene el valor numérico
unitSufijo (p.ej. €, %, ms)
prefixPrefijo
colorColor de acento de la tarjeta
deltaFieldCampo para el indicador de cambio/delta
iconNombre del ícono Material para referencia visual

Configuración de gráficos (Barras / Líneas / Circular / Donut)

Sección titulada «Configuración de gráficos (Barras / Líneas / Circular / Donut)»
CampoDescripción
xFieldCampo para el eje X (o etiqueta para circular/donut)
yFieldsArray de series: { field, label, color }
horizontalRotar el gráfico de barras a horizontal
legendMostrar u ocultar la leyenda
centerLabelTexto en el hueco central (solo donut)
CampoDescripción
columnsArray de { field, label, width, align, format }
opciones de formattext, number, currency, date, badge
badgeColorsMapa de colores para valores tipo badge
pageSizeFilas por página
sortableActivar ordenación por columna
CampoDescripción
itemsArray de { label, url, icon, description }
variantApariencia: card (tarjetas), button (botones), text (texto plano), list (lista)
columnsNúmero de columnas en la cuadrícula (1–4)

Configuración de Menú de navegación (menu)

Sección titulada «Configuración de Menú de navegación (menu)»
CampoDescripción
itemsArray de { label, url, icon }
orientationvertical u horizontal
variantEstilo visual: sidebar (panel lateral), buttons (botones), pills (pastillas)

Cada widget puede configurarse con una acción que se dispara al hacer clic sobre él. Las acciones se configuran en la pestaña Acción del panel de configuración del widget (disponible para KPIs, gráficos y tablas).

TipoDescripción
urlAbre cualquier URL (relativa o absoluta)
dashboardAbre otro dashboard de Floogos
formAbre un formulario de Floogos publicado
data_drawerLlama a un endpoint y muestra los datos obtenidos
DestinoDescripción
drawerDesliza un panel desde la derecha (por defecto)
new_tabAbre en una nueva pestaña del navegador
same_tabNavega en la pestaña actual

Las URLs, endpoints y parámetros admiten la sintaxis {{campo}}. Al hacer clic, cada token es sustituido con el valor correspondiente tomado de los datos activos del widget, los campos de la fila clicada (para tablas) o los valores de los filtros activos del dashboard.

Ejemplos:

  • /api/pedidos/{{id}} — inserta el campo id de la fila clicada
  • https://crm.ejemplo.com/clientes/{{cliente_id}} — construye una URL dinámica
  • Parámetros: { "region": "{{filtro_region}}" } — pasa el valor del filtro activo

Para widgets de tipo Tabla, define el campo ID de fila (rowIdField) para identificar cada fila de forma única. Al activar rowClickAction, cada fila se vuelve clicable y abre la acción configurada. Aparece automáticamente una columna con icono ↗ al final de la tabla para indicar la interactividad.

Cuando el destino es drawer:

CampoDescripción
Título del drawerTexto de cabecera (admite {{campo}})
Ancho del drawerAncho en píxeles — entre 240 y 700 (por defecto 600)
Tras enviar (solo tipo form)Mostrar el resultado del envío (por defecto) o Volver al formulario: aviso con el resultado encima del formulario y campos en blanco, para encadenar varios envíos sin cerrar el drawer

El drawer tiene un botón para abrir en nueva pestaña cuando el tipo de acción lo permite (url, dashboard, form).

Si la acción abre un formulario en el drawer, al enviarlo el drawer muestra el resultado (o vuelve al formulario, según «Tras enviar») y se recarga solo el widget cuya fila lo abrió (por ejemplo, la tabla de citas tras cambiar el estado de una); el resto del dashboard no se toca y al cerrar el drawer ya no se vuelve a refrescar todo.

Las acciones de clic y los drawers funcionan de forma idéntica en el Dashboard Builder y en la vista pública del dashboard publicado — sin necesidad de autenticación adicional.


Cada widget puede recibir datos en uno de dos modos, seleccionable en la pestaña Datos del panel de configuración.

El widget realiza su propia petición independiente al renderizarse. Configurar:

CampoDescripción
Endpoint URLEndpoint de API llamado por este widget
MétodoGET o POST
dataPathRuta con puntos para extraer datos de la respuesta (p.ej. response.data.items)
Intervalo de refrescoIntervalo de sondeo automático en milisegundos (0 = desactivado)

No hace falta escribir a mano las direcciones ni los nombres de los campos:

  • Usar datos del DataStore (botón sobre Endpoint URL, y también en cada fuente compartida): eliges el grupo del DataStore y qué quieres mostrar —Registros, Contar por categoría, Sumar por categoría, Totales o Evolución diaria— y Floogos construye la URL y la ruta de datos correctas. Antes de aplicarlo muestra la URL resultante y los campos que devolverá.
  • Lupa de campos: junto a los campos del widget (eje X y series de barras y líneas, etiqueta y valor de tarta y donut, valores de KPI y columnas de tabla) hay una lupa que lista los campos reales de los datos del widget, vengan de un webhook, un endpoint externo o el DataStore, con su tipo y un ejemplo. Escribir a mano sigue siendo posible.

Un widget puede vincularse a una fuente de datos compartida a nivel de dashboard en lugar de hacer su propia petición. Este es el enfoque recomendado cuando múltiples widgets muestran datos de la misma llamada a la API.

CampoDescripción
Fuente de datosSelecciona de las fuentes compartidas del dashboard (definidas en Configuración del Dashboard)
RutaRuta con puntos dentro de la respuesta de la fuente para extraer los datos de este widget

¿Por qué usar fuentes compartidas?

  • N widgets → 1 petición (en lugar de N peticiones)
  • Todos los widgets vinculados se actualizan simultáneamente
  • Reduce la carga del servidor y mejora el tiempo de carga en dashboards con muchos KPIs del mismo endpoint

Las fuentes de datos compartidas son conectores de API a nivel de dashboard que se obtienen una vez y se distribuyen a todos los widgets vinculados. Se gestionan en Configuración del Dashboard → Fuentes de Datos.

CampoDescripción
NombreEtiqueta legible (mostrada en el selector de binding del widget)
Endpoint URLEndpoint de API a llamar
MétodoGET o POST
Intervalo de refrescoIntervalo de sondeo automático en milisegundos (0 = desactivado)

Cada fuente tiene un ID generado automáticamente que es utilizado internamente por los bindings de los widgets.

  1. Cuando se carga el dashboard, todas las fuentes compartidas se obtienen en paralelo
  2. Cada widget con binding.sourceId lee del resultado en memoria de esa fuente
  3. Los filtros se aplican a las peticiones de fuentes compartidas igual que a los widgets con endpoint propio
  4. Si una fuente compartida tiene refreshInterval, vuelve a obtener datos en ese ciclo y todos los widgets vinculados se actualizan automáticamente

Un dashboard de ventas con 5 tarjetas KPI (ingresos totales, pedidos, ticket medio, nuevos clientes, tasa de conversión) puede vincularse todas a una única fuente /api/sales/summary. El servidor recibe 1 petición en lugar de 5 al cargar el dashboard o al cambiar un filtro.


Agrega filtros a nivel de dashboard que afectan a uno o todos los widgets simultáneamente:

Tipo de filtroDescripción
selectDesplegable de opción única
multiselectDesplegable de múltiples opciones
dateSelector de fecha única
date_rangeRango de fechas de inicio y fin
textCampo de búsqueda de texto libre

Los filtros pueden configurarse para aplicar a todos los widgets o a un subconjunto específico. Al seleccionar un valor, se envía su paramName como parámetro a cada widget afectado — incluyendo las peticiones de fuentes de datos compartidas.

Opciones dinámicas: un filtro select o multiselect puede cargar sus opciones desde un endpoint de API en tiempo de ejecución, con dependencia padre-hijo opcional (p.ej. país → ciudad).

En el dashboard publicado (enlace público /d/<token>) los filtros también funcionan: aparece una barra sobre el dashboard con un campo por filtro (select y multiselect como desplegable con la opción «Todos», date como selector de fecha, date_range como dos fechas «desde» y «hasta», text como búsqueda que se aplica al pulsar Intro) y un botón Limpiar filtros. Cada valor se envía como parámetro paramName solo a los widgets a los que aplica el filtro.

Un enlace público puede llevar los filtros ya puestos: https://tu-dominio/d/<token>?portal=mitienda.it&from=2026-10-01&to=2026-10-12. El nombre de cada parámetro es el paramName del filtro (en date_range se añade _from y _to). Sirve para guardar una vista concreta en un marcador o en un enlace de un correo.


Abre Configuración del Dashboard → Diseño para cambiar el tema visual del dashboard completo:

TemaLienzoTarjetasAcento
PredeterminadoFondo del sistemaSuperficie del sistemaNaranja
Oscuro profesional#0f1117#1a1d2eMorado
Claro corporativo#f0f2f5#ffffffAzul
Verde naturaleza#0d1f12#132618Verde
Océano azul#071a2e#0d2840Cian
Atardecer#1a0a00#2a1500Naranja intenso

También se puede definir un color de fondo personalizado con el selector de color, que sobrescribe el valor por defecto del tema.


Haz clic en el menú ⋮ → Publicar en cualquier tarjeta de dashboard (o desde el builder):

  • Se genera una URL pública única: https://tu-dominio/d/<token>
  • La URL se copia automáticamente al portapapeles
  • La vista pública renderiza el dashboard sin requerir autenticación
  • Las acciones de clic configuradas en los widgets (abrir URL, abrir dashboard, abrir formulario, mostrar data drawer) funcionan plenamente en la vista pública
  • Las fuentes de datos compartidas se cargan en paralelo igual que en el editor
  • Haz clic en Despublicar para ocultarlo (el token se conserva para republicar con la misma URL)
  • Si añades ?embed=1 al enlace, se oculta la cabecera y el pie de la página: es lo que usan los portales de app para mostrar el dashboard dentro de su cuerpo

En Configuración del Dashboard → Seguridad:

OpciónDescripción
Dashboard públicoActiva o desactiva el acceso a la URL pública
Requiere autenticaciónRestringe el acceso público a usuarios que provean credenciales
Método de autenticaciónpassword (lista de usuario/contraseña) o token (parámetro en la URL)

Organizar dashboards con carpetas y etiquetas

Sección titulada «Organizar dashboards con carpetas y etiquetas»

Los dashboards usan el mismo sistema de carpetas y etiquetas que los Workflows y Formularios.

  • Crea carpetas en el panel lateral con + Nueva carpeta
  • Arrastra tarjetas de dashboard sobre las carpetas para moverlas
  • Selecciona una carpeta para filtrar la lista
  • Asignación automática al crear: crear un nuevo dashboard mientras hay una carpeta seleccionada lo coloca en esa carpeta automáticamente
  • Asigna etiquetas al crear o editar un dashboard
  • Filtra la lista haciendo clic en un chip de etiqueta en el panel lateral
  • Varias etiquetas pueden estar activas a la vez (lógica AND)

Configuración → Organización ofrece una vista centralizada de todas las carpetas y etiquetas en Workflows, Formularios y Dashboards con recuentos de elementos por módulo.


Todas las solicitudes de datos de los widgets se envían a través del backend de Floogos (POST /api/dashboards/widget-data). Esto significa:

  • Se evitan las restricciones CORS del navegador
  • Tus credenciales o tokens de API nunca quedan expuestos al navegador público
  • Los dashboards públicos pueden mostrar datos en vivo de forma segura
  • Las peticiones de fuentes de datos compartidas siguen el mismo camino de proxy

TablaColumnas clave
dashboardsid, client_id, name, description, dashboard_json, is_published, public_token, folder_id, tags, created_at, updated_at

La columna dashboard_json almacena el layout completo como documento JSON, incluyendo:

  • widgets[] — definiciones de widgets con posición, configuración, ajustes de fuente de datos y clickAction
  • filters[] — definiciones de filtros globales
  • dataSources[] — definiciones de fuentes de datos compartidas
  • theme, canvasBg — ajustes visuales
  • is_public, requires_auth, auth_config — ajustes de seguridad

Cada entrada de widgets[] puede incluir:

  • clickAction — acción al hacer clic para KPIs y gráficos (type, target, url, dashboardId, formToken, endpoint, params, drawerTitle, drawerWidth)
  • tableConfig.rowClickAction — acción al hacer clic en fila para tablas
  • tableConfig.rowIdField — campo que identifica cada fila de forma única
  • binding — vinculación a fuente de datos compartida (sourceId, path)