Les points de terminaison HubDB sont utilisés pour obtenir et gérer des données dans vos tableaux de données HubDB.
draft
et published
. Cela vous permet de mettre à jour les données du tableau, soit à des fins de test, soit pour permettre un processus d’approbation manuel, sans affecter les pages en ligne. Découvrez-en davantage sur les tableaux brouillons et les tableaux en ligne.
Si un tableau est défini pour être accessible au public, vous pouvez accéder à la version publiée du tableau et des lignes sans aucune authentification en spécifiant votre ID de compte HubSpot via le paramètre de requête portalId
.
Si vous effectuez une migration à partir de la v2 de l’API HubDB, découvrez les modifications apportées à l’API (v3) actuelle.
GET
prennent également en charge CORS
, afin que vous puissiez accéder aux données d’un tableau côté client à l’aide de JavaScript et de votre ID de compte. D’autres méthodes et le point de terminaison Obtenir tous les tableaux nécessite une authentification et ne prend pas en charge CORS
.GET
effectuées qui ne nécessitent pas d’authentification (dont les requêtes JavaScript côté client) sont limitées à 10 demandes par seconde. Ces demandes ne seront pas comptabilisées dans la limite quotidienne.GET
au point de terminaison suivant :
/cms/v3/hubdb/tables/{tableIdOrName}
Aussi, pour récupérer tout contenu brouillon qui n’a pas encore été publié, vous devez ajouter /draft
à la fin de l’URL :
/cms/v3/hubdb/tables/{tableIdOrName}/draft
Les brouillons de données peuvent être analysés puis envoyés dans HubSpot ou avec le point de terminaison /push-live
. Les données provisoires peuvent également être supprimées via un point de terminaison /reset
, ce qui vous permet de revenir à la version actuelle en ligne des données sans interruption.
POST
à /cms/v3/hubdb/tables
.
Dans le corps de la requête, spécifiez les champs obligatoires suivants :
Champ | Type | Description | Example |
---|---|---|---|
name | Chaîne | : le nom interne du tableau. Ce nom ne peut pas être modifié une fois le tableau créé. Les noms peuvent uniquement contenir des minuscules, des chiffres et des tirets du bas et ne peuvent pas commencer par un chiffre. | "name": "my_table" |
label | Chaîne | : le libellé du tableau que les utilisateurs voient lorsqu’ils modifient le tableau dans HubSpot. | "label":"My table" |
Champ | Type | Description | Example |
---|---|---|---|
useForPages | Booléen | : précise si le tableau peut être utilisé pour créer de pages dynamiques. | "useForPages": false |
allowPublicAPIAccess | Booléen | : précise si le tableau peut être lu sans autorisation. | "allowPublicApiAccess": false |
allowChildTables | Booléen | : précise si des tableaux enfants peuvent être créés pour le tableau. | "allowChildTables": false |
enableChildTablePages | Booléen | : précise si des pages dynamiques à plusieurs niveaux doivent être créées en utilisant des tableaux enfants. | "enableChildTablePages": false |
columns | Objet | : les colonnes du tableau. Découvrez-en davantage sur les propriétés de colonne dans les sections Ajouter des colonnes de tableau. | See "Add table columns" section below |
Champ | Type | Description | Example |
---|---|---|---|
name | Chaîne | : obligatoire. Le nom interne de la colonne. Ne peut pas être modifié après la création de la colonne. | "name": "row_name" |
label | Chaîne | facultative. Le libellé de la colonne que les utilisateurs voient lorsqu’ils modifient le tableau dans HubSpot. | "label": "Row label" |
type | Chaîne | : le type de données de la colonne. Doit être l’un des éléments suivants :
| "type": "type" |
options | Objet | : une liste d’options pour la sélection et la sélection multiple des colonnes. Chaque option est définie par un name avec un type égal à option . | "option": [{"name":"Option 1", "type":"option"}, {"name": "Option 2", "type": "option"}] |
id
de la colonne dans l’objet d’entrée.
POST
à /cms/v3/hubdb/tables/{tableIdOrName}/rows
.
Pour chaque ligne du tableau, vous pouvez inclure les champs suivants :
Champ | Type | Description | Example |
---|---|---|---|
values | Objet | : une liste de paires clé-valeur avec le nom de la colonne et la valeur que vous souhaitez y ajouter. Si vous ne souhaitez pas définir de valeur spécifique pour une colonne, vous pouvez omettre le nom de la colonne dans la liste des paires clé-valeur. | "values": { "text_column": "sample text", "number_column": 76} |
path | Chaîne | : pour les tableaux activés pour les pages dynamiques, path est le suffixe de chemin d’accès utilisé pour la page créée pour cette ligne. | "path": "example_url_path" |
name | Chaîne | : pour les tableaux activés pour les pages dynamiques, name est le titre HTML utilisé pour la page créée pour cette ligne. | "name": "Example Title" |
childTableId | Nombre | : lors de la création de pages dynamiques à plusieurs niveaux, childTableId spécifie l’ID de tableau enfant. | "childTableId": 123456 |
POST
à /cms/v3/hubdb/tables/{tableIdOrName}/draft/import
.
Le point de terminaison d’import accepte une demande multipart/form-data
POST
:
config
** :** un ensemble d’options JSON pour l’import.file
** :** le fichier CSV que vous souhaitez importer.config
, ajoutez les champs suivants en tant que chaîne JSON :
Champ | Type | Description | Example |
---|---|---|---|
skipRows | Nombre | : nombre de lignes d’en-tête à ignorer. La valeur par défaut de ce champ est 1 , en ignorant la première ligne et en la traitant comme un en-tête. Définissez ce paramètre sur 0 si toutes les lignes sont des données valides. | "skipRows": 0 |
separator | Chaîne | : délimiteur de colonne dans le fichier CSV. Défini sur "," par défaut. | "separator": "," |
idSourceColumn | Nombre | : l’index de la colonne dans le fichier source contenant l’ID de la ligne (hs_id ). Si cette colonne est spécifiée, l’import mettra à jour les lignes existantes dans le tableau pour les ID de lignes correspondants à partir du fichier CSV. Il s’agit d’une option facultative que vous pouvez ignorer la première fois que vous importez des données dans un tableau. Consultez la section Options de réinitialisation ci-dessous pour plus d’informations. | "idSourceColumn": 1 |
resetTable | Booléen | : la valeur par défaut de booléen est false , ce qui signifie que les lignes du tableau seront mises à jour sans supprimer de lignes existantes. Si cette valeur est définie sur true , les lignes de la feuille de calcul remplaceront les données du tableau, ce qui signifie que toutes les lignes du tableau qui n’y figurent pas seront supprimées. Consultez la section Options de réinitialisation ci-dessous pour plus d’informations. | "resetTable": true |
nameSourceColumn | Nombre | : pour les tableaux activés pour les pages dynamiques, nameSourceColumn spécifie la colonne du fichier CSV qui contient le name de la ligne. Les numéros de colonne sont dans l’ordre croissant, la première colonne étant 1 . | "nameSourcecolumn": 5 |
pathSourceColumn | Nombre | : pour les tableaux activés pour les pages dynamiques, pathSourceColumn spécifie la colonne du fichier CSV qui contient le path de la ligne. Les numéros de colonne sont dans l’ordre croissant, la première colonne étant 1 . | "pathSourcecolumn": 6 |
childTableSourceColumn | Nombre | : spécifie la colonne du fichier CSV qui contient le childTableId de la ligne. Les numéros de colonne sont dans l’ordre croissant, la première colonne étant 1 . | "childTableSourcecolumn": 3 |
columnMappings | Tableau | : une liste des mappages entre les colonnes du fichier source et les colonnes du tableau HubDB de destination. Chaque mappage doit avoir le format suivant : {"source":1,"target”:"columnIdOrName"}
hs_id , vous ne devez pas l’inclure dans columnMappings . Incluez-le à la place en tant que idSourceColumn mettre à jour les lignes existantes. | "columnMappings": [{"source":1, "target": 2}, {"source": 2, "target": "column_name"}] |
primaryKeyColumn | Chaîne | : le nom d’une colonne dans le tableau HubDB cible qui sera utilisée pour la déduplication. L’ID de la colonne ne peut pas être utilisé pour ce champ. | "primaryKeyColumn": "column_name" |
encoding | Chaîne | : le type d’encodage du fichier. Par exemple : utf-8 , ascii , iso-8859-2 , iso-8859-5 , iso-2022-jp , windows-1252 . | "encoding": "utf-8" |
format | Chaîne | : seul le format CSV est pris en charge. | "format": "csv" |
config
JSON pourrait ressembler à ce qui suit :
yyyy/mm/dd
yyyy/mm/dd
mm/dd/yyyy
mm/dd/yy
dd/mm/yy
n’est pas accepté). Les entiers peuvent être séparés par des traits d’union (-
) ou des barres obliques (/
).
Dates détendues
Vous pouvez également importer des formats de date moins standardisés que les dates basées sur des entiers. Par exemple : **
The 1st of March in the year 2022
Fri Mar 4 2022
March 4th '22
next Thursday
Today
tomorrow
3 days from now
resetTable
sur true
ou false
(par défaut) pour gérer le remplacement des données de ligne HubDB.
resetTable
est défini sur true
:
hs_id
ou l’ID de ligne est spécifié comme 0
, ces lignes seront insérées avec les nouveaux ID de lignes générés.resetTable
est défini sur false
(valeur par défaut) :
0
, ces lignes seront insérées avec les nouveaux ID de lignes générés.GET
à /cms/v3/hubdb/tables
.GET
à /cms/v3/hubdb/tables{tableIdOrName}
.GET
à /cms/v3/hubdb/tables{tableIdOrName}/rows
.GET
à /cms/v3/hubdb/tables{tableIdOrName}/rows/{rowId}
.portalId
.
columnName__operator
.
Par exemple, si vous disposez d’une colonne numérique nommée bar, vous pouvez filtrer les résultats pour n’inclure que les lignes où bar est supérieur à 10 : &bar__gt=10
.
Tous les filtres sont associés sous forme de ET (les filtres OU ne sont pas pris en charge actuellement).
Lors du filtrage, tenez compte des informations suivantes :
multiselect
, les valeurs doivent être séparées par des virgules (par exemple : multiselect_column__contains=1,2
).
datetime
, vous pouvez utiliser des dates relatives à la place des horodatages afin de spécifier une valeur relative à l’heure actuelle. Par exemple, -3h
correspondrait à l’horodatage de 3 heures avant le moment présent, alors que 10s
correspondrait à 10 secondes dans le futur. Les unités de temps prises en charge sont ms (millisecondes), s (secondes), m (minutes), h (heures), j (jours). L’heure actuelle peut être utilisée en spécifiant une valeur zéro : 0 s
hs_id
est une colonne number
, la colonne hs_created_at
est une colonne datetime
, et les colonnes hs_path
et hs_name
sont des colonnes text
.
Opérateur | Nom | Description |
---|---|---|
eq (or none) | Égaux | : tous les types de colonnes. Ce filtre est appliqué si aucun opérateur n’est utilisé. Lorsqu’il est utilisé avec des colonnes à sélection multiple, renvoie des lignes qui correspondent exactement aux valeurs fournies. |
ne | N’est pas égal à | : tous les types de colonnes. |
contains | Contient | : texte, texte enrichi et sélection multiple. Lorsqu’utilisé avec des colonnes à sélection multiple, renvoie les lignes qui contiennent toutes les valeurs fournies. Ce filtre prend en compte la casse. |
lt | Inférieur à | : nombre, date et date et heure. |
lte | Inférieur ou égal à | : nombre, date et date et heure. |
gt | Supérieur à | : nombre, date et date et heure. |
gte | Supérieur ou égal à | : nombre, date et date et heure. |
is_null | Nul | : tous les types de colonnes sauf booléen. Ce filtre ne nécessite pas de valeur (par exemple : &exampleColumn__is_null= ). |
not_null | Non nul | : tous les types de colonnes sauf booléen. Ce filtre ne nécessite pas de valeur (par exemple : &exampleColumn__not_null= ). |
like | Comme | : texte et texte enrichi. |
not_like | Différent de | : texte et texte enrichi. |
icontains | Contient | : texte et texte enrichi. Ce filtre ne prend pas en compte la casse. |
startswith | Commence par | : texte et texte enrichi. |
in | Dans | : nombre, sélection et sélection multiple. Renvoie les lignes où la colonne inclut au moins une des options transmises. S’il n’y a pas d’autre sort dans le paramètre de requête, les résultats sont triés dans l’ordre dans lequel les valeurs sont spécifiées dans l’opérateur in . |
sort
et indiquez le nom de la colonne :
&sort=columnName
Par défaut, les données seront renvoyées dans l’ordre naturel de la colonne spécifiée. Vous pouvez inverser le tri en ajoutant un -
à un nom de colonne :
&sort=-columnName
Vous pouvez inclure ce paramètre plusieurs fois pour trier plusieurs colonnes.
En plus du tri par colonne, trois fonctions peuvent être utilisées :
geo_distance
trie d’abord les éléments les plus éloignés :
sort=-geo_distance(location_column,42.37,-71.07)
useForPage
sur true
. Vous pouvez éventuellement inclure dynamicMetaTags
pour spécifier les colonnes à utiliser pour les métadonnées de chaque page.
dynamicMetaTags
, vous devrez vous assurer que la page utilise des balises HubL page_meta
au lieu de content
. Découvrez-en davantage dans le guide des pages dynamiques.Paramètre | Type | Description |
---|---|---|
useForPages | Booléen | : défini sur true pour permettre au tableau d’être utilisé comme source de données pour les pages dynamiques. |
dynamicMetaTags | Objet | : spécifie les colonnes par ID à utiliser pour les métadonnées sur chaque page dynamique. Peut contenir :
|
DESCRIPTION | Nombre | : l’ID numérique de la colonne à utiliser pour la méta-description de chaque page. |
FEATURED_IMAGE_URL | Nombre | : l’ID numérique de la colonne à utiliser pour l’URL de l’image en vignette de chaque page. |
LINK_REL_CANONICAL_URL | Nombre | : l’ID numérique de la colonne à utiliser pour l’URL canonique de chaque page. |
name
et label
. Ce nom ne peut pas être modifié une fois le tableau créé. Les noms peuvent uniquement contenir des minuscules, des chiffres et des tirets du bas et ne peuvent pas commencer par un chiffre. name
et label
doivent les deux être uniques dans le compte.id
et name
dans les chemins URL.GET
renvoient la colonne name
au lieu de id
dans le champ values
. De plus, les points de terminaison de lignes POST
/ PUT
/ PATCH
nécessitent une colonne name
plutôt que id
dans le champ values
.PATCH
acceptent désormais les mises à jour plus rares, ce qui signifie que vous pouvez spécifier uniquement les valeurs de colonne que vous devez mettre à jour (alors que vous deviez spécifier toutes les valeurs de colonne dans les versions précédentes). Lorsque vous mettez à jour une colonne avec une liste de valeurs telle que la sélection multiple, vous devez spécifier la liste de toutes les valeurs. Pour supprimer la valeur d’une colonne, vous devez spécifier la colonne avec la valeur comme null
dans la demande.get
/ update
/ delete
une cellule de ligne au profit des points de terminaison PATCH
de mise à jour des lignes.idSourceColumn
facultatif avec les champs existants dans les options au format JSON. Vous pouvez utiliser ce champ pour spécifier la colonne du fichier CSV qui contient les ID de ligne. Pour importer de nouvelles lignes avec les nouvelles valeurs pour les lignes existantes, vous pouvez simplement spécifier 0
comme ID de ligne pour les nouvelles lignes et ID de lignes valides pour les colonnes existantes. Pour plus de détails, consultez la section Import ci-dessous. Vous pouvez également utiliser des noms de colonnes ou des identifiants dans le champ cible des mappages de colonnes dans les options au format JSON.