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.
Limites de taux
Les requêtes d’API HubDB ont des limites de taux différentes, selon le type de demande :- Les demandes
GETeffectué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. - Toutes les autres demandes utilisant l’authentification suivent les limites standard.
Brouillons de tableaux comparés aux tableaux en ligne
Les tableaux HubDB ont à la fois des brouillons et des versions en ligne, et les versions en ligne peuvent être publiées ou non publiées. Cela vous permettra de mettre à jour les données du tableau, soit pour des aperçus de page ou des tests, soit pour permettre un processus d’approbation manuel, sans affecter les pages en ligne. Dans cette API, des points de terminaison distincts sont désignés pour les brouillons et les versions publiées d’un tableau. Par exemple, vous pouvez récupérer la version publiée d’un tableau en effectuant une demandeGET 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.
Créer un tableau HubDB
Pour créer un tableau HubDB, effectuez une demandePOST à /cms/v3/hubdb/tables.
Dans le corps de la requête, spécifiez les champs obligatoires suivants :
En outre, vous pouvez spécifier les champs facultatifs suivants :
Sans colonnes ajoutées pour le moment, votre demande de création pourrait ressembler à ce qui suit :
Ajouter des colonnes de tableau
Chaque colonne d’un tableau HubDB peut être définie avec les propriétés suivantes :
En utilisant les champs ci-dessus, votre demande de création d’un nouveau tableau HubDB pourrait ressembler à ce qui suit :
id de la colonne dans l’objet d’entrée.
Ajouter des lignes de tableau
Vous pouvez ajouter des lignes manuellement via l’API ou importer des lignes depuis un fichier CSV. Pour ajouter des lignes à un tableau HubDB, effectuez une demandePOST à /cms/v3/hubdb/tables/{tableIdOrName}/rows.
Pour chaque ligne du tableau, vous pouvez inclure les champs suivants :
En utilisant les champs ci-dessus, votre demande pourrait ressembler à ce qui suit :
Importer des lignes depuis CSV
Pour importer des données dans un tableau HubDB à partir d’un fichier CSV, effectuez une demandePOST à /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 :
En utilisant le tableau ci-dessus, votre
config JSON pourrait ressembler à ce qui suit :
Formatage de la date
Plusieurs formats peuvent être utilisés lors de l’import de données dans une colonne de type date. Entiersyyyy/mm/ddyyyy/mm/ddmm/dd/yyyymm/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 2022Fri Mar 4 2022March 4th '22
next ThursdayTodaytomorrow3 days from now
Réinitialiser les options
Lorsque vous importez des données depuis un fichier CSV dans un tableau HubDB, vous pouvez définir le champresetTable sur true ou false (par défaut) pour gérer le remplacement des données de ligne HubDB.
-
Si
resetTableest défini surtrue:- Si les lignes du fichier CSV ne disposent pas d’une colonne ID de ligne (si
hs_idou l’ID de ligne est spécifié comme0, ces lignes seront insérées avec les nouveaux ID de lignes générés. - Si les ID de ligne du fichier CSV existent déjà dans le tableau cible, les lignes existantes du tableau seront mises à jour avec les nouvelles valeurs du fichier d’entrée.
- Si le tableau contient des lignes, mais que le fichier CSV d’entrée ne contient pas ces ID de ligne, ces lignes seront supprimées du tableau cible.
- Si les ID de lignes du fichier CSV d’entrée n’existent pas dans le tableau cible, ces lignes seront insérées avec les nouveaux ID de lignes générés et les ID de lignes donnés dans le fichier d’entrée seront ignorés.
- Si le fichier CSV d’entrée ne contient pas du tout la colonne ID de ligne, toutes les lignes seront supprimées du tableau cible et les lignes du fichier d’entrée seront insérées avec les nouveaux ID de lignes générés.
- Si les lignes du fichier CSV ne disposent pas d’une colonne ID de ligne (si
-
Si
resetTableest défini surfalse(valeur par défaut) :- Si les ID de ligne du fichier CSV existent déjà dans le tableau cible, les lignes existantes du tableau seront mises à jour avec les nouvelles valeurs du fichier d’entrée.
- Si le tableau contient des lignes, mais que le fichier CSV d’entrée ne contient pas ces ID de ligne, ces lignes ne seront pas supprimées du tableau cible et ces lignes resteront inchangées.
- Si les ID de lignes du fichier CSV d’entrée n’existent pas dans le tableau cible, ces lignes seront insérées avec les nouveaux ID de lignes générés et les ID de lignes donnés dans le fichier d’entrée seront ignorés.
- Si les lignes du fichier CSV ne contiennent pas de colonne ID de ligne ou si l’ID de ligne est défini comme
0, ces lignes seront insérées avec les nouveaux ID de lignes générés.
Récupérer les données HubDB
Il existe plusieurs façons de récupérer des données HubDB, selon que vous recherchez les détails du tableau ou les lignes d’un tableau :- Pour récupérer les détails de tous les tableaux publiés, effectuez une demande
GETà/cms/v3/hubdb/tables. - Pour récupérer les détails d’un tableau publié spécifique, effectuez une demande
GETà/cms/v3/hubdb/tables{tableIdOrName}. - Pour récupérer toutes les lignes d’un tableau spécifique, effectuez une demande
GETà/cms/v3/hubdb/tables{tableIdOrName}/rows. - Pour récupérer une ligne spécifique d’un tableau, effectuez une demande
GETà/cms/v3/hubdb/tables{tableIdOrName}/rows/{rowId}.
portalId.
Filtrer les lignes renvoyées
Lors de la récupération des données de tableau HubDB, vous pouvez appliquer des filtres comme paramètres de requête pour recevoir des données spécifiques. Les paramètres de requête de filtre sont construits comme suit :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 :
-
Lorsque vous transmettez des valeurs pour des colonnes
multiselect, les valeurs doivent être séparées par des virgules (par exemple :multiselect_column__contains=1,2). -
Pour les filtres
datetime, vous pouvez utiliser des dates relatives à la place des horodatages afin de spécifier une valeur relative à l’heure actuelle. Par exemple,-3hcorrespondrait à l’horodatage de 3 heures avant le moment présent, alors que10scorrespondrait à 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 -
Pour les besoins de ces filtres, la colonne intégrée
hs_idest une colonnenumber, la colonnehs_created_atest une colonnedatetime, et les colonneshs_patheths_namesont des colonnestext.
Trier les lignes renvoyées
Lors de la récupération des données HubDB, vous pouvez appliquer le tri comme paramètre de demande pour déterminer l’ordre des données renvoyées. Pour trier les données, ajoutez un paramètre de demandesort 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(location_column_name, latitude, longitude) : prend le nom d’une colonne d’emplacement et des coordonnées, renvoie les lignes classées en fonction de la distance entre les valeurs de la colonne d’emplacement indiquée et les coordonnées fournies.
- longueur(column_name) : prend le nom d’une colonne, renvoie les lignes classées selon la longueur de la valeur de la colonne (calculée sous forme de chaîne)
- aléatoire() : renvoie les lignes dans un ordre aléatoire.
geo_distance trie d’abord les éléments les plus éloignés :
sort=-geo_distance(location_column,42.37,-71.07)
Configurer les tableaux HubDB pour les pages dynamiques
Grâce au CMS de HubSpot, vous pouvez utiliser un tableau HubDB comme source de données pour générer des pages dynamiques. Par exemple, vous pouvez créer un tableau qui contient une ligne pour chaque membre de votre équipe de direction, avec des colonnes contenant les informations que vous souhaitez afficher sur une page. Une fois que vous avez sélectionné ce tableau comme source de données dynamique pour une page, cette page génère une page de listing qui affiche toutes les lignes sous forme d’éléments récapitulatifs, ainsi que des pages distinctes pour chaque ligne, similaire à une page de listing de blog et à des pages d’articles de blog. Pour permettre la sélection d’un tableau comme source de données dans l’éditeur de contenu, vous devez définiruseForPage sur true. Vous pouvez éventuellement inclure dynamicMetaTags pour spécifier les colonnes à utiliser pour les métadonnées de chaque page.
Par exemple, le code ci-dessous permet de créer un tableau qui peut être utilisé pour les pages dynamiques et spécifie les trois colonnes à utiliser pour les métadonnées de page.
Modifications dans la v3
- Les tableaux doivent avoir à la fois
nameetlabel. 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.nameetlabeldoivent les deux être uniques dans le compte. - L’API prend en charge à la fois les tableaux
idetnamedans les chemins URL. - Les points de terminaison des lignes
GETrenvoient la colonnenameau lieu deiddans le champvalues. De plus, les points de terminaison de lignesPOST/PUT/PATCHnécessitent une colonnenameplutôt queiddans le champvalues. - Les points de terminaison de mise à jour des lignes
PATCHacceptent 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 commenulldans la demande. - Les points de terminaison ont été remplacés par
get/update/deleteune cellule de ligne au profit des points de terminaisonPATCHde mise à jour des lignes. - Le point de terminaison d’import prend désormais en charge un champ
idSourceColumnfacultatif 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écifier0comme 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. - Cloner le point de terminaison nécessite un nouveau nom et un nouveau libellé.