Os pontos de extremidade do HubDB são usados para obter e gerenciar dados nas tabelas de dados HubDB.
draft
e published
. Isso permite que você atualize os dados na tabela, seja para teste ou para permitir um processo de aprovação manual, sem afetar nenhuma página ativa. Saiba mais sobre tabelas de rascunho versus tabelas dinâmicas.
Se uma tabela estiver definida para ter acesso pelo público, você pode acessar a versão publicada da tabela e das linhas sem qualquer autenticação especificando seu ID de conta da HubSpot através do parâmetro de consulta portalId
.
Se você estiver migrando da v2 da API de HubDB, saiba mais sobre alterações na API atual (v3).
GET
também oferecem suporte a CORS
, para que você possa acessar dados em uma tabela do lado do cliente usando JavaScript e o ID da conta. Outros métodos e o ponto de extremidade Obter todas as tabelas requerem autenticação e não oferecem suporte a CORS
.GET
que não exijam autenticação (incluindo solicitações JavaScript do lado do cliente) estão limitadas a 10 solicitações por segundo. Essas solicitações não contarão para o limite diário.GET
para o seguinte ponto de extremidade:
/cms/v3/hubdb/tables/{tableIdOrName}
E para recuperar qualquer conteúdo em rascunho, mas que ainda não foi publicado, você adicionaria /draft
ao final do URL:
/cms/v3/hubdb/tables/{tableIdOrName}/draft
Os dados de rascunho podem ser revisados e depois enviados por push ao HubSpot ou usando o ponto de extremidade /push-live
. Os dados de rascunho também podem ser descartados por meio do ponto de extremidade /reset
, permitindo reverter para a versão atual ativa dos dados sem interrupção.
POST
para /cms/v3/hubdb/tables
.
No corpo da solicitação, especifique nos seguintes campos obrigatórios:
Campo | Tipo | Descrição | Exemplo |
---|---|---|---|
name | String | O nome interno da tabela. Este nome não pode ser alterado após a criação da tabela. Os nomes somente podem incluir letras minúsculas, dígitos e sublinhados e não podem começar com um número. | "name": "my_table" |
label | String | O rótulo da tabela que os usuários veem ao editar a tabela no HubSpot. | "label":"My table" |
Campo | Tipo | Descrição | Exemplo |
---|---|---|---|
useForPages | Booleano | Se a tabela pode ser usada para criação de páginas dinâmicas. | "useForPages": false |
allowPublicAPIAccess | Booleano | Se a tabela pode ser lida sem autorização. | "allowPublicApiAccess": false |
allowChildTables | Booleano | Se tabelas secundárias podem ser criadas para a tabela. | "allowChildTables": false |
enableChildTablePages | Booleano | Se páginas dinâmicas de vários níveis devem ser criadas usando tabelas secundárias. | "enableChildTablePages": false |
columns | Objeto | As colunas da tabela. Saiba mais sobre as propriedades de coluna nas seções Adicionar colunas da tabela. | See "Add table columns" section below |
Campo | Tipo | Descrição | Exemplo |
---|---|---|---|
name | String | Obrigatório. O nome interno da coluna. Não pode ser alterado depois que a coluna for criada. | "name": "row_name" |
label | String | Opcional. O rótulo da coluna que os usuários verão ao editar a tabela no HubSpot. | "label": "Row label" |
type | String | O tipo de dados da coluna. Deve ser um dos seguintes:
| "type": "type" |
options | Objeto | Uma lista de opções para colunas de seleção e seleção múltipla. Cada opção é definida com um name , juntamente com um type igual a option . | "option": [{"name":"Option 1", "type":"option"}, {"name": "Option 2", "type": "option"}] |
id
da coluna no objeto de entrada.
POST
para /cms/v3/hubdb/tables/{tableIdOrName}/rows
.
Para cada linha da tabela, você pode incluir os seguintes campos:
Campo | Tipo | Descrição | Exemplo |
---|---|---|---|
values | Objeto | Uma lista de pares chave-valor com o nome da coluna e o valor que você deseja adicionar a ela. Se não quiser definir um valor específico para uma coluna, você pode omitir o nome da coluna na lista de pares chave-valor. | "values": { "text_column": "sample text", "number_column": 76} |
path | String | Para tabelas habilitadas para páginas dinâmicas, path é o sufixo do caminho usado para a página criada para esta linha. | "path": "example_url_path" |
name | String | Para tabelas habilitadas para páginas dinâmicas, name é o título HTML usado para a página criada para esta linha. | "name": "Example Title" |
childTableId | Número | Ao criar páginas dinâmicas de vários níveis, childTableId especifica o ID da tabela secundária. | "childTableId": 123456 |
POST
para /cms/v3/hubdb/tables/{tableIdOrName}/draft/import
.
O ponto de extremidade de importação assume uma faça uma solicitação POST
multipart/form-data
:
config
: um conjunto de opções formatadas em JSON para a importação.file
: o arquivo CSV que você deseja importar.config
, inclua os seguintes campos como uma string JSON:
Campo | Tipo | Descrição | Exemplo |
---|---|---|---|
skipRows | Número | O número de linhas de cabeçalho que devem ser ignoradas. Este campo assume 1 por padrão, ignorando a primeira linha e tratando-a como um cabeçalho. Defina como 0 se todas as linhas forem dados válidos. | "skipRows": 0 |
separator | String | O delimitador de coluna no arquivo CSV. Defina "," como padrão. | "separator": "," |
idSourceColumn | Número | O índice da coluna no arquivo de origem que contém a ID da linha (hs_id ).Se esta coluna for especificada, a importação atualizará as linhas existentes na tabela para as IDs de linha correspondentes do arquivo CSV. Isso é opcional e você pode ignorá-lo durante a primeira importação de dados para uma tabela.Consulte a seção Opções de redefinição abaixo para obter informações mais detalhadas. | "idSourceColumn": 1 |
resetTable | Booleano | O padrão é false , significando que as linhas da tabela serão atualizadas sem remover nenhuma linha existente. Se definido como true , as linhas da planilha substituirão os dados da tabela, o que significa que as linhas da tabela que não estiverem na planilha serão excluídas.Consulte a Opções de redefinição abaixo para obter informações mais detalhadas. | "resetTable": true |
nameSourceColumn | Número | Para tabelas habilitadas para páginas dinâmicas, nameSourceColumn especifica a coluna no arquivo CSV que contém o name da linha. Os números das colunas estão em ordem crescente, com a primeira coluna sendo 1 . | "nameSourcecolumn": 5 |
pathSourceColumn | Number | Para tabelas habilitadas para páginas dinâmicas, pathSourceColumn especifica a coluna no arquivo CSV que contém o path da linha. Os números das colunas estão em ordem crescente, com a primeira coluna sendo 1 . | "pathSourcecolumn": 6 |
childTableSourceColumn | Número | Especifica a coluna no arquivo CSV que contém as childTableId . Os números das colunas estão em ordem crescente, com a primeira coluna sendo 1 . | "childTableSourcecolumn": 3 |
columnMappings | Matriz | Uma lista de mapeamentos das colunas no arquivo de origem para as colunas na Tabela HubDB de destino. Cada mapeamento deve ter o seguinte formato: {"source":1,"target”:"columnIdOrName"}
hs_id , ela não deve ser incluída em columnMappings . Em vez disso, inclua-o como idSourceColumn para atualizar as linhas existentes. | "columnMappings": [{"source":1, "target": 2}, {"source": 2, "target": "column_name"}] |
primaryKeyColumn | String | O nome de uma coluna na tabela HubDB de destino que será usado para desduplicação. O ID da coluna não pode ser usado para este campo. | "primaryKeyColumn": "column_name" |
encoding | String | O tipo de codificação do arquivo. Por exemplo, utf-8 , ascii , iso-8859-2 , iso-8859-5 , iso-2022-jp , windows-1252 . | "encoding": "utf-8" |
format | String | Somente CSV é suportado. | "format": "csv" |
config
pode ter a seguinte aparência:
yyyy/mm/dd
yyyy/mm/dd
mm/dd/yyyy
mm/dd/yy
dd/mm/yy
não é aceito). Inteiros podem ser separados por hifens (-
) ou barras (/
).
Datas flexíveis
Também é possível importar formatos de data que sejam menos padronizados do que as datas baseadas em inteiros. Por exemplo:**
The 1st of March in the year 2022
Fri Mar 4 2022
March 4th '22
next Thursday
Today
tomorrow
3 days from now
resetTable
para true
ou false
(padrão) para controlar se os dados da linha do HubDB serão substituídos.
resetTable
estiver definido como true
:
hs_id
ou o ID da linha for especificado como 0
, essas linhas serão inseridas com os novos IDs de linha gerados.resetTable
estiver definido como false
(padrão):
0
, essas linhas serão inseridas com os novos IDs de linha gerados.GET
para /cms/v3/hubdb/tables
.GET
para /cms/v3/hubdb/tables{tableIdOrName}
.GET
para /cms/v3/hubdb/tables{tableIdOrName}/rows
.GET
para /cms/v3/hubdb/tables{tableIdOrName}/rows/{rowId}
.portalId
.
columnName__operator
.
Por exemplo, se você tiver uma coluna numérica chamada barra, poderá filtrar os resultados para incluir somente linhas onde barra for superior a 10: &bar__gt=10
.
Todos os filtros são unidos por E (filtros OU não são suportados no momento).
Ao filtrar, lembre-se do seguinte:
multiselect
, eles devem ser separados por vírgulas (por exemplo, multiselect_column__contains=1,2
).
datetime
, você pode usar datas relativas no lugar de data/hora para especificar um valor relativo à hora atual. Por exemplo, -3h
corresponderia à data e hora de 3 horas antes, ao passo que 10s
corresponderia a 10 segundos no futuro. As unidades de tempo suportadas são ms (milissegundos), s (segundos), m (minutos), h (horas), d (dias). A hora atual pode ser usada especificando um valor zero: 0s
hs_id
é uma coluna number
, a coluna hs_created_at
é datetime
e as colunas hs_path
e hs_name
são colunas text
.
Operador | Nome | Descrição |
---|---|---|
eq (or none) | Igual a | Todos os tipos de coluna.Este filtro será aplicado se nenhum operador for usado. Quando usado com colunas de seleção múltipla, retorna linhas que correspondem exatamente aos valores fornecidos. |
ne | Não é igual a | Todos os tipos de coluna. |
contains | Contém | Texto, rich text e seleção múltipla.Quando usado com colunas de seleção múltipla, retorna as linhas que contêm todos os valores fornecidos. Este filtro diferencia maiúsculas e minúsculas. |
lt | Menor que | Número, data e data/hora. |
lte | Menor que ou igual a | Número, data e data/hora. |
gt | Maior que | Número, data e data/hora. |
gte | Maior que ou igual a | Número, data e data/hora. |
is_null | Nulo | Todos os tipos de coluna, exceto booleano. Esse filtro não requer um valor (por exemplo, &exampleColumn__is_null= ). |
not_null | Não nulo | Todos os tipos de coluna, exceto booleano. Esse filtro não requer um valor (por exemplo, &exampleColumn__not_null= ). |
like | É como | Texto e richtext. |
not_like | Não é como | Texto e richtext. |
icontains | Contém | Texto e rich text.Este filtro não diferencia maiúsculas de minúsculas. |
startswith | Começa com | Texto e richtext. |
in | Em | Número, seleção e multiseleção.Retorna linhas em que a coluna inclui pelo menos uma das opções transmitidas. Quando não houver outro sort no parâmetro de consulta, os resultados serão classificados na ordem em que os valores são especificados no operador in . |
sort
e especifique o nome da coluna:
&sort=columnName
Por padrão, os dados serão retornados na ordem natural da coluna especificada. Você pode inverter a classificação adicionando um -
ao nome da coluna:
&sort=-columnName
Você pode incluir este parâmetro várias vezes para classificar por várias colunas.
Além de classificar por coluna, há três funções que podem ser usadas:
geo_distance
retorna os itens mais distantes primeiro:
sort=-geo_distance(location_column,42.37,-71.07)
useForPage
como true
. Opcionalmente, você pode incluir dynamicMetaTags
para especificar quais colunas usar para os metadados de cada página.
dynamicMetaTags
, você precisará verificar se a página está usando as tags page_meta
do HubL em vez de content
. Saiba mais no guia de páginas dinâmicas.Parâmetro | Tipo | Descrição |
---|---|---|
useForPages | Booleano | Defina como true para permitir que a tabela seja usada como uma fonte de dados para páginas dinâmicas. |
dynamicMetaTags | Objeto | Especifica as colunas por ID a serem usadas para metadados em cada página dinâmica. Pode conter:
|
DESCRIPTION | Número | O ID numérico da coluna a ser usado para as metadescrições de cada página. |
FEATURED_IMAGE_URL | Número | O ID numérico da coluna a ser usado para o URL da imagem em destaque em cada página. |
LINK_REL_CANONICAL_URL | Número | O ID numérico da coluna a ser usado para o URL canônico de cada página. |
name
e label
. Este nome não pode ser alterado após a criação da tabela. Os nomes somente podem incluir letras minúsculas, dígitos e sublinhados e não podem começar com um número. Ambos name
e label
devem ser exclusivos na conta.id
e name
nos caminhos de URL.GET
pontos de extremidade da linha retornam o name
da coluna em vez de id
no campo values
. Além disso, os pontos de extremidade de linha POST
/ PUT
/ PATCH
exigem a coluna name
em vez de id
no campo values
.PATCH
agora aceitam atualizações esparsas, o que significa que você pode especificar apenas os valores de coluna que precisa atualizar (nas versões anteriores, era necessário especificar todos os valores de coluna). Quando você atualiza uma coluna com uma lista de valores, como seleção múltipla, é necessário especificar a lista de todos os valores. Para excluir o valor de uma coluna, você precisa especificar a coluna com o valor como null
na solicitação.get
/ update
/ delete
uma célula de linha em favor de pontos de extremidade de atualização PATCH
para linhas.idSourceColumn
, juntamente com os campos existentes nas opções formatadas em JSON. Você pode usar esse campo para especificar a coluna no arquivo csv que contém ids de linha. Para importar novas linhas, juntamente com os novos valores para as linhas existentes, você pode simplesmente especificar 0
como o id para as novas linhas e os ids de linha válidos para as colunas existentes. Veja mais detalhes na seção Importar abaixo. Também é possível usar nomes ou ids de coluna no campo de destino dos mapeamentos de coluna nas opções formatadas em JSON.