Los puntos de terminación de HubDB se utilizan para obtener y administrar datos en tus tablas de datos de HubDB.
draft
y published
. Esto te permite actualizar los datos de la tabla, ya sea para realizar pruebas o para permitir un proceso de aprobación manual, sin que ello afecte a las páginas publicadas. Más información sobre tablas en borrador vs. tablas en vivo.
Si una tabla está configurada para permitir el acceso público, puedes acceder a la versión publicada de la tabla y las filas sin ninguna autenticación especificando el ID de tu cuenta de HubSpot a través del parámetro de consulta portalId
.
Si estás migrando desde la versión 2 de la API de HubDB, obtén más información sobre los cambios en la API actual (v3).
GET
también admiten CORS
, por lo que puedes acceder a los datos de una tabla del lado del cliente usando JavaScript y tu ID de cuenta. Otros métodos y el punto de terminación Obtener todas las tablas requieren autenticación y no son compatibles con CORS
.GET
realizadas que no requieren autentificación (incluidas las solicitudes de JavaScript del lado del cliente) están limitadas a 10 solicitudes por segundo. Estas solicitudes no contarán para el límite diario.GET
al siguiente punto de terminación:
/cms/v3/hubdb/tables/{tableIdOrName}
Y para recuperar cualquier contenido que haya sido redactado pero que aún no haya sido publicado, agregarías /draft
al final de la URL:
/cms/v3/hubdb/tables/{tableIdOrName}/draft
Los datos en borrador se pueden revisar y luego enviar en HubSpot, o con el punto de terminación /push-live
. Los datos en borrador también se pueden descartar a través del punto de terminación /reset
, lo que te permite volver a la versión actual en vivo de los datos sin interrupciones.
POST
a /cms/v3/hubdb/tables
.
En el cuerpo de la solicitud, especifica los siguientes campos obligatorios:
Campo | Tipo | Descripción | Ejemplo |
---|---|---|---|
name | Cadena | El nombre interno de la tabla. Este nombre no se puede cambiar una vez creada la tabla. Los nombres solo pueden incluir letras minúsculas, dígitos y guiones bajos y no pueden comenzar con un número. | "name": "my_table" |
label | Cadena | : La etiqueta de la tabla que ven los usuarios al editar la tabla en HubSpot. | "label":"My table" |
Campo | Tipo | Descripción | Ejemplo |
---|---|---|---|
useForPages | Booleano | Si la tabla se puede utilizar para la creación de páginas dinámicas. | "useForPages": false |
allowPublicAPIAccess | Booleano | Si la tabla se puede leer sin autorización. | "allowPublicApiAccess": false |
allowChildTables | Booleano | Si se pueden crear tablas secundarias para la tabla. | "allowChildTables": false |
enableChildTablePages | Booleano | Si las páginas dinámicas multinivel deben crearse utilizando tablas secundarias. | "enableChildTablePages": false |
columns | Objeto | Las columnas de la tabla. Obtén más información sobre las propiedades de las columnas en las secciones Agregar columnas de tabla . | See "Add table columns" section below |
Campo | Tipo | Descripción | Ejemplo |
---|---|---|---|
name | Cadena | Obligatorio. El nombre interno de la columna. No se puede cambiar después de creada la columna. | "name": "row_name" |
label | Cadena | Opcional. La etiqueta para la columna que verán los usuarios al editar la tabla en HubSpot. | "label": "Row label" |
type | Cadena | El tipo de datos de la columna. Debe ser uno de los siguientes:
| "type": "type" |
options | Objeto | : Una lista de opciones para las columnas de selección y selección múltiple. Cada opción se define con un name junto con un type igual a option . | "option": [{"name":"Option 1", "type":"option"}, {"name": "Option 2", "type": "option"}] |
id
de la columna en el objeto de entrada.
POST
a /cms/v3/hubdb/tables/{tableIdOrName}/rows
.
Para cada fila de la tabla, puedes incluir los siguientes campos:
Campo | Tipo | Descripción | Ejemplo |
---|---|---|---|
values | Objeto | : Una lista de pares clave-valor con el nombre de la columna y el valor que deseas agregarle. Si no deseas establecer un valor específico para una columna, puedes omitir el nombre de la columna de la lista de pares clave-valor. | "values": { "text_column": "sample text", "number_column": 76} |
path | Cadena | : En el caso de las tablas habilitadas para páginas dinámicas, path es el sufijo de la ruta utilizado para la página creada para esta fila. | "path": "example_url_path" |
name | Cadena | : Para las tablas habilitadas para páginas dinámicas, name es el título HTML utilizado para la página creada para esta fila. | "name": "Example Title" |
childTableId | Número | Al crear páginas dinámicas de varios niveles, childTableId especifica el ID de la tabla secundaria. | "childTableId": 123456 |
POST
a /cms/v3/hubdb/tables/{tableIdOrName}/draft/import
.
El punto de terminación de importación acepta una solicitud multipart/form-data
POST
:
config
: un conjunto de opciones con formato JSON para la importación.file
: el archivo CSV que deseas importar.config
, incluye los siguientes campos como cadena JSON:
Campo | Tipo | Descripción | Ejemplo |
---|---|---|---|
skipRows | Número | El número de filas de encabezados que se deben omitir. El valor predeterminado de este campo es 1 , omitiendo la primera fila y tratándola como un título. Establécelo en 0 si todas las filas son datos válidos. | "skipRows": 0 |
separator | Cadena | El delimitador de columna en el archivo CSV. Establecer en "," de forma predeterminada. | "separator": "," |
idSourceColumn | Número | El índice de la columna del archivo de origen que contiene el ID de la fila (hs_id ). Si se especifica esta columna, la importación actualizará las filas existentes en la tabla para los ID de fila coincidentes del archivo CSV. Esto es opcional y puedes ignorarlo la primera vez que importes datos a una tabla. Consulte la sección Opciones de restablecimiento a continuación para obtener información más detallada. | "idSourceColumn": 1 |
resetTable | Booleano | El valor predeterminado es false , lo que significa que las filas de la tabla se actualizarán sin eliminar ninguna fila existente. Si se establece en true , las filas de la hoja de cálculo sobrescribirán los datos de la tabla, lo que significa que se eliminará cualquier fila de la tabla que no esté en la hoja de cálculo. Consulte la sección Opciones de restablecimiento a continuación para obtener información más detallada. | "resetTable": true |
nameSourceColumn | Número | Para las tablas habilitadas para páginas dinámicas, nameSourceColumn especifica la columna del archivo CSV que contiene los name de la fila. Los números de las columnas están en orden ascendente, siendo la primera columna 1 . | "nameSourcecolumn": 5 |
pathSourceColumn | Número | Para las tablas habilitadas para páginas dinámicas, pathSourceColumn especifica la columna del archivo CSV que contiene los path de la fila. Los números de las columnas están en orden ascendente, siendo la primera columna 1 . | "pathSourcecolumn": 6 |
childTableSourceColumn | Número | Especifica la columna del archivo CSV que contiene los childTableId de la fila. Los números de las columnas están en orden ascendente, siendo la primera columna 1 . | "childTableSourcecolumn": 3 |
columnMappings | Matriz | Una lista de asignaciones de las columnas del archivo de origen a las columnas de la tabla de HubDB de destino. Cada asignación debe tener el siguiente formato: {"source":1,"target”:"columnIdOrName"}
hs_id , no deberías incluirla en columnMappings . En cambio, inclúyelo como idSourceColumn para actualizar las filas existentes. | "columnMappings": [{"source":1, "target": 2}, {"source": 2, "target": "column_name"}] |
primaryKeyColumn | Cadena | El nombre de una columna de la tabla de HubDB objetivo que se utilizará para la desduplicación. El ID de la columna no se puede utilizar para este campo. | "primaryKeyColumn": "column_name" |
encoding | Cadena | El tipo de codificación del archivo. Por ejemplo, utf-8 , ascii , iso-8859-2 , iso-8859-5 , iso-2022-jp , windows-1252 . | "encoding": "utf-8" |
format | Cadena | Solo se admiten archivos CSV. | "format": "csv" |
config
JSON podría verse de la siguiente manera:
yyyy/mm/dd
yyyy/mm/dd
mm/dd/yyyy
mm/dd/yy
dd/mm/yy
no se acepta). Los enteros pueden separarse con guiones (-
) o barras diagonales (/
).
Fechas relajadas
También puede importar formatos de fecha que estén menos estandarizados que las fechas basadas en números enteros. Por ejemplo:**
The 1st of March in the year 2022
Fri Mar 4 2022
March 4th '22
next Thursday
Today
tomorrow
3 days from now
resetTable
en true
o false
(por opción predeterminada) para administrar si los datos de la fila de HubDB se sobrescriben.
resetTable
se establece en true
:
hs_id
o el ID de fila se especifica como 0
, esas filas se insertarán con los nuevos ID de fila generados.resetTable
se establece en false
(por opción predeterminada):
0
, esas filas se insertarán con los nuevos ID de fila generados.GET
a /cms/v3/hubdb/tables
.GET
a /cms/v3/hubdb/tables{tableIdOrName}
.GET
a /cms/v3/hubdb/tables{tableIdOrName}/rows
.GET
a /cms/v3/hubdb/tables{tableIdOrName}/rows/{rowId}
.portalId
.
columnName__operator
.
Por ejemplo, si tienes una columna numérica denominada bar, puedes filtrar los resultados para incluir solo las filas en las que bar sea mayor que 10: &bar__gt=10
.
Todos los filtros se suman con Y (actualmente no se admiten filtros O).
Al filtrar, ten en cuenta lo siguiente:
multiselect
, los valores deben estar separados por comas (por ejemplo, multiselect_column__contains=1,2
).datetime
, puedes utilizar fechas relativas en lugar de marcas de tiempo para especificar un valor relativo a la hora actual. Por ejemplo, -3h
correspondería a la marca de tiempo 3 horas antes de ahora, mientras que 10s
correspondería a 10 segundos en el futuro. Las unidades de tiempo admitidas son ms (milisegundos), s (segundos), m (minutos), h (horas), d (días). La hora actual se puede utilizar especificando un valor cero: 0shs_id
es una columna number
, la columna hs_created_at
es un datetime
, y las columnas hs_path
y hs_name
son columnas text
.
A continuación, descubre qué operadores se pueden aplicar a qué tipos de columna:
Operador | Nombre | Descripción |
---|---|---|
eq (or none) | Es igual a | Todos los tipos de columna Este filtro se aplica si no se utiliza ningún operador. Cuando se utiliza con columnas de selección múltiple, devuelve filas que coinciden exactamente con los valores suministrados. |
ne | No es igual a | Todos los tipos de columna. |
contains | Contiene | Texto, texto enriquecido y selección múltiple. Cuando se utiliza con columnas de selección múltiple, devuelve filas que contienen todos los valores proporcionados. Este filtro distingue entre mayúsculas y minúsculas. |
lt | Menor que | Número, fecha y hora. |
lte | Menor que o igual a | Número, fecha y hora. |
gt | Mayor que | Número, fecha y hora. |
gte | Mayor que o igual a | Número, fecha y hora. |
is_null | Nulo | Todos los tipos de columna, excepto booleanos. Este filtro no requiere un valor (por ejemplo, &exampleColumn__is_null= ). |
not_null | No nulo | Todos los tipos de columnas, excepto booleano. Este filtro no requiere un valor (por ejemplo, &exampleColumn__not_null= ). |
like | Como | Texto y texto enriquecido. |
not_like | No como | Texto y texto enriquecido. |
icontains | Contiene | Texto y texto enriquecido. Este filtro no distingue entre mayúsculas y minúsculas. |
startswith | Comienza con | Texto y texto enriquecido. |
in | En | Número, seleccione y multiselección. Devuelve filas en las que la columna incluye al menos una de las opciones pasadas. Cuando no hay otro sort en el parámetro de consulta, los resultados se ordenarán en el orden en que se especifiquen los valores en el operadorin . |
sort
y especifica el nombre de la columna:
&sort=columnName
De forma predeterminada, los datos se devolverán en el orden natural de la columna especificada. Puedes invertir la ordenación agregando un -
al nombre de la columna:
&sort=-columnName
Puedes incluir este parámetro varias veces para ordenar por varias columnas.
Además de ordenar por una columna, hay tres funciones que se pueden utilizar:
geo_distance
devuelve primero los elementos que están más lejos:
sort=-geo_distance(location_column,42.37,-71.07)
useForPage
en true
. Opcionalmente, puedes incluir dynamicMetaTags
para especificar qué columnas usar para los metadatos de cada página.
dynamicMetaTags
, deberás asegurarte de que la página utilice etiquetas HubL page_meta
en lugar de content
. Más información en la guía de páginas dinámicas.Parámetro | Tipo | Descripción |
---|---|---|
useForPages | Booleano | Establecer en true para permitir que la tabla se utilice como fuente de datos para páginas dinámicas. |
dynamicMetaTags | Objeto | Especifica las columnas por ID que se utilizarán para los metadatos de cada página dinámica. Puede contener:
|
DESCRIPTION | Número | El ID numérico de la columna que se utilizará para la metadescripción de cada página. |
FEATURED_IMAGE_URL | Número | El ID numérico de la columna que se utilizará para la URL de la imagen destacada de cada página. |
LINK_REL_CANONICAL_URL | Número | El ID numérico de la columna que se utilizará para la URL canónica de cada página. |
name
como label
. Este nombre no se puede cambiar una vez creada la tabla. Los nombres solo pueden incluir letras minúsculas, dígitos y guiones bajos y no pueden comenzar con un número. Ambos name
y label
deben ser únicos en la cuenta.id
como name
las rutas URL.GET
Los puntos de terminación de fila devuelven la columna name
en lugar de id
en el campovalues
. Además, los puntos de terminación de fila POST
/ PUT
/ PATCH
requieren una columna name
en lugar de id
en el campovalues
.PATCH
ahora aceptan actualizaciones dispersas, lo que significa que solo puedes especificar los valores de columna que necesita actualizar (mientras que tenías que especificar todos los valores de columna en las versiones anteriores). Al actualizar una columna con una lista de valores como multiselect, debes especificar la lista de todos los valores. Para eliminar el valor de una columna, debes especificar la columna con el valor como null
en la solicitud.get
/ update
/ delete
a una celda de fila en favor de los puntos de terminación de actualización de filaPATCH
.idSourceColumn
junto con los campos existentes en las opciones con formato JSON. Puedes utilizar este campo para especificar la columna del archivo csv que contiene los ID de fila. Para importar nuevas filas junto con los nuevos valores de las filas existentes, simplemente puedes especificar 0
como el id de fila para las nuevas filas y los id de fila válidos para las columnas existentes. Ver más detalles a continuación en la sección Importar. También puedes utilizar nombres o identificadores de columnas en el campo de destino de las asignaciones de columnas en las opciones con formato JSON.