HubDB

Last updated:
APPLICABLE PRODUCTS
  • Marketing Hub
    • Enterprise
  • CMS Hub
    • Professional or Enterprise

HubDB es una herramienta que permite crear tablas para almacenar datos en filas, columnas y celdas, de forma similar a una hoja de cálculo. Puedes personalizar las columnas, filas y otros ajustes de una tabla de HubDB en función de tus necesidades. Por ejemplo, podrías usar una tabla de HubDB para:

  • almacenar feedback de un mecanismo externo para recuperarla posteriormente.
  • almacenar datos estructurados que puedes usar para crear páginas dinámicas del CMS (CMS Hub Pro y Enterprise únicamente).

hubdb-table-example0Se puede acceder a las tablas de HubDB tanto dentro de HubSpot como a través de la API de HubDB, y puedes recuperar los datos de una tabla de varias maneras, dependiendo del uso. Para obtener datos de una tabla de HubDB, puedes:

  • Consultar los datos externamente a través de la API de HubDB.
  • Utilizar las etiquetas de marcado de HubL de HubSpot para introducir datos en el CMS como contenido estructurado.
  • Utilizar la API de HubDB con funciones sin servidor para ofrecer una experiencia de aplicación web interactiva.

Nota:

Limitaciones técnicas de HubDB

Además de los límites generales de la API de HubSpot, ten en cuenta las siguientes limitaciones técnicas de HubDB:

  • Límites de cuenta
    • 1000 tablas de HubDB por cuenta.
    • 1.000.000 de filas en tablas HubDB por cuenta.
  • Límites de tabla:
    • 250 columnas por tabla.
    • 10000 filas por tabla de HubDB.
    • 700 caracteres por nombre de tabla.
    • 700 caracteres por etiqueta de tabla.
  • Límites de columna:
    • 65.000 caracteres por columna de texto enriquecido.
    • 10.000 caracteres en cada columna de texto.
    • 700 caracteres por nombre de columna.
    • 700 caracteres por etiqueta.
    • 300 caracteres por descripción de columna.
    • 700 caracteres por opción seleccionable dentro de una columna.
  • Límites de página:
    • 10 llamadas a la función hubdb_table_rows de HubL por página CMS.
    • 10 páginas dinámicas usando la misma tabla de HubDB.
    • Los HubDB con páginas dinámicas activadas deben tener rutas en minúsculas para que las URL de estas páginas no distingan mayúsculas de minúsculas.

Crear una tabla de HubDB

Puedes crear tablas de HubDB a través de la interfaz de usuario de HubSpot o a través de la API de HubDB.

Todas las nuevas tablas creadas se establecen con un estado de borrador. No se pueden utilizar para dar salida a los datos a través de HubL o la API hasta que se publique la tabla.

Establece la configuración de la tabla de HubDB (CMS Hub Pro y Enterprise únicamente)

Puedes gestionar la configuración de tus tablas de HubDB haciendo clic en Acciones y luego en Administrar configuración. Están disponibles los siguientes ajustes:

  • Permitir acceso público a la API: de forma predeterminada, los datos de la tabla solo se pueden ver en la aplicación o dentro de las llamadas autentificadas a la API. Activa este valor de configuración para habilitar las llamadas no autentificadas a la API para consultar los datos de la tabla. 
  • Activar la creación de páginas dinámicas utilizando datos de filas: activa este valor de configuración para habilitar la creación de páginas dinámicas usando datos de HubDB. Al activar esta opción, puedes acceder a las siguientes opciones adicionales:
    • Utiliza los menús desplegables para seleccionar qué columnas rellenarán las páginas dinámicas con una metadescripción, una imagen destacada y datos de URL canónica. En las nuevas tablas, deberás crear nuevas columnas para contener estos datos.
      • Metadescripción: debe ser una columna de tipo texto.
      • Imagen destacada: debe ser una columna de tipo imagen.
      • URL canónica: debe ser una columna de tipo URL.
    • Para hacer referencia a otras tablas de HubDB en esta tabla, selecciona la casilla de verificación Permitir el uso de tablas secundarias. También puedes seleccionar el valor de configuración Crea automáticamente páginas de contenido para tablas secundarias para permitir a HubSpot crear automáticamente páginas de contenido intermedias. Más información sobre cómo crear páginas dinámicas de múltiples niveles con HubDB.

manage-hubdb-table-setting

Nota: una tabla principal no puede hacer referencia a una tabla secundaria que también hace referencia a la tabla principal. Esto creará un bucle que da como resultado un error al intentar seleccionar la tabla secundaria dentro de la tabla principal.

Arquitectura de HubDB

Tablas

Una tabla es una disposición bidimensional de filas y columnas. Cuando se crea una tabla, se le asigna un ID único global que puede utilizarse para identificarla. 

Filas

Las filas son cortes horizontales de una tabla. Todos los valores de una fila están relacionados, normalmente con un único identificador primario. En una aplicación de hoja de cálculo, las filas se representan con números, empezando por el 1. Cada fila de la tabla recibe un ID único global en el momento de su creación. 

Columnas

Las columnas son cortes verticales de una tabla. Cada columna tiene un tipo. En una aplicación de hoja de cálculo, se representan mediante columnas alfabéticas como A, B, C, etc. Hay dos tipos de columnas de tabla:

Cada fila de una tabla tiene un par de columnas incorporadas:

Use this table to describe parameters / fields
ColumnaDescription
hs_id

Un ID numérico asignado automáticamente, único en el mundo, para esta fila.

hs_created_at

Una marca de tiempo de cuándo esta fila fue creada.

hs_path

Cuando se utiliza con páginas dinámicas, esta cadena es el último segmento de la ruta de la URL de la página.

hs_name

Cuando se utiliza con páginas dinámicas, es el título de la página.

Nota: las columnas del área de texto enriquecido en HubDB están limitadas a 65.000 caracteres. Para obtener más información, consulta el anuncio de registro de cambios.

Las tablas pueden tener tantas columnas personalizadas como desees. Pueden ser texto, texto enriquecido, números, moneda, fechas, horas, imágenes, videos, selecciones o ubicaciones (latitud y longitud). 

Cuando se crea una columna, se le asigna un ID numérico único en la tabla, empezando por el valor 1. Los ID de las columnas son crecientes, pero no necesariamente secuenciales. Los ID de las columnas no se pueden reutilizar, por lo que si una tabla tiene 2 columnas, 1 y 2, y la segunda columna se elimina, la siguiente columna creada tendrá un ID de 3.

Celdas

Las celdas almacenan los valores donde se cruzan una fila y una columna. Las celdas pueden leerse o actualizarse individualmente o como parte de una fila. Establecer el valor de una celda como nulo equivale a eliminar el valor de la celda.

Acceder a los datos de HubDB mediante HubL

Con HubL, puedes extraer datos de HubDB para usarlos como contenido estructurado en páginas del sitio web. A continuación, obtén más información sobre cómo recuperar datos de tablas, filas y columnas con HubL.

Obtención de filas

Para listar las filas de una tabla, utiliza la función de Hubl Hubdb_table_rows(). Puedes acceder a una tabla por su ID o por su nombre. Se recomienda hacer referencia a una tabla de HubDB por su nombre, ya que esto puede ayudar a la portabilidad del código entre las cuentas de HubSpot. El nombre de la tabla inmutable se establece cuando se crea una nueva tabla y se puede encontrar en cualquier momento seleccionando Acciones > Administrar configuración dentro del editor de tablas. El ID de una tabla se puede encontrar en la barra de direcciones del editor de tablas o en el panel de tablas de HubDB bajo la columna ID

Captura de pantalla del modal de creación de tablas

A continuación se muestra un ejemplo de uso de hubdb_table_rows() para obtener datos.

{% for row in hubdb_table_rows(<tableId or name>, <filterQuery>) %} the value for row {{ row.hs_id }} is {{ row.<column name> }} {% endfor %}

Nota: por opción predeterminada, el número máximo de filas devueltas es 1.000. Para recuperar más filas, especifica un limit en la consulta de función. Por ejemplo:

hudb_table_rows (12345, "random()&limit=1500").

<filterQuery> utiliza la misma sintaxis que la API HTTP. Por ejemplo hubdb_table_rows(123, "employees__gt=10&orderBy=count") devolvería una lista de filas en las que la columna "employees" es mayor que 10, ordenadas por la columna "count". La lista completa de parámetros opcionales <filterQuery> se puede encontrar aquí.

En lugar de utilizar varias consultas de filas con diferentes parámetros <filterQuery>, se debe hacer una consulta y utilizar los filtros selectattr() o rejectattr() para filtrar las filas:

{% set all_cars = hubdb_table_rows(<tableId or name>) %} {% set cars_with_windows = all_cars|selectattr('windows') %} {% set teslas = all_cars|selectattr('make','equalto','tesla') %}

Para obtener una sola fila, utiliza la función de Hubl Hubdb_table_row().

{% set row = hubdb_table_row(<tableId or name>, <rowId>) %} the value for {{ row.hs_id }} is {{ row.<column name> }}

Los nombres de las columnas incorporadas y personalizadas no distinguen entre mayúsculas y minúsculas. HS_ID funcionará igual que hs_id.

Atributos de las filas

Use this table to describe parameters / fields
AtributoDescription
row.hs_id

El identificador único global de esta fila.

row.hs_path

Cuando se utilizan páginas dinámicas, esta cadena es el valor de la columna Page Path y el último segmento de la ruta de la url.

row.hs_name

Cuando se utilizan páginas dinámicas, esta cadena es el valor de la columna Título de la página para la fila.

row.hs_created_at

Marca de tiempo Unix de cuándo la fila fue creada.

row.hs_child_table_id

Cuando se utilizan páginas dinámicas, este es el ID de la otra tabla que está poblando los datos para la fila.

row.column_name

Obtén el valor de la columna personalizada por el nombre de la columna.

row["column name"]

Obtén el valor de la columna personalizada por el nombre de la columna.

Obtener los metadatos de una tabla

Para obtener los metadatos de una tabla, incluyendo su nombre, columnas, última actualización, etc., utiliza la función hubdb_table().

{% set table_info = hubdb_table(<tableId or name>) %}

Atributos de la tabla

Los atributos enumerados a continuación hacen referencia a la variable a la que se asignó hubdb_table() en el código anterior. Tu variable puede ser diferente.
Nota: se recomienda asignar esto a una variable para facilitar su uso. Si no quieres hacerlo, puedes utilizar
{{ hubdb_table(<tableId>).attribute }}

Use this table to describe parameters / fields
AtributoDescription
table_info.id

El ID de la tabla.

table_info.name

El nombre de la tabla.

table_info.columns

Lista de información de las columnas. Puedes utilizar un bucle for para iterar a través de la información disponible en este atributo.

table_info.created_at

Marca de tiempo de cuándo la tabla fue creada por primera vez.

table_info.published_at

Marca de tiempo de cuándo se publicó esta tabla.

table_info.updated_at

Marca de tiempo de cuando esta tabla fue actualizada por última vez.

table_info.row_count

El número de filas de la tabla.

Obtener los metadatos de una columna

{% set table_info = hubdb_table_column(<tableId or name>, <columnId or column name>) %}

Para obtener información sobre una columna de la tabla, como su etiqueta, tipo y opciones, La utiliza la función hubdb_table_column()

Atributos de las columnas

Los atributos enumerados a continuación hacen referencia a la variable que se asignó hubdb_table_column() en el código anterior. Tu variable puede ser diferente.
Nota: se recomienda asignar esto a una variable para facilitar su uso. Si no quieres hacerlo, puedes utilizar
{{ hubdb_table_column(<tableId>,<columnId or column name>).attribute }}

Use this table to describe parameters / fields
AtributoDescription
table_info.id

El ID de la columna.

table_info.name

El nombre de la columna.

table_info.label

La etiqueta que se utilizará para la columna.

table_info.type

Tipo de esta columna.

table_info.options

Para el tipo de columna select, se trata de un mapa de optionId para información de opción .

table_info.foreignIds

Para los tipos de columna foreignId, una lista de foreignIds (con propiedades de id y nombre ).

Métodos de columna

Use this table to describe parameters / fields
MétodoDescription
getOptionByName("<option name")

Para los tipos de columna select, obtén la información de la opción por el nombre de las opciones.

Columnas de texto enriquecido

El tipo de columna richtext funciona de forma similar al campo de texto enriquecido que se ve en los módulos.

Los datos se almacenan como HTML, y la interfaz de usuario de HubDB proporciona una interfaz de edición de texto. Sin embargo, al editar una tabla de HubDB a través de la interfaz de usuario de HubSpot, no puedes editar el código fuente directamente. Esto previene situaciones en las que un usuario no técnico pueda introducir un HTML no válido, evitando problemas involuntarios con la apariencia o funcionalidad de tu sitio. Para situaciones en las que necesites un código de inserción o más HTML personalizado, puedes utilizar la función de inserción en el editor de texto enriquecido para colocar tu código personalizado. 


¿Te resultó útil este artículo?
Con este formulario puedes enviar tu opinión sobre nuestros documentos para desarrolladores. Si tienes comentarios sobre el producto de HubSpot, puedes enviarlos al Foro de ideas.