Requisitos de escopo
Requisitos de escopo
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).
Limites de taxa
As solicitações de API do HubDB têm limites de taxa diferentes, dependendo do tipo de solicitação:- Quaisquer solicitações
GETque 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. - Todas as outras solicitações usando autenticação siga as limites padrão.
Tabelas de rascunho e ativas
As tabelas HubDB têm versões de rascunho e ativas, e as versões ativas podem ser publicadas ou ter sua publicação cancelada. Assim, você poderá atualizar os dados na tabela, seja para visualizações de página ou testes ou para permitir um processo de aprovação manual, sem afetar nenhuma página ativa. Nessa API, pontos de extremidade separados são designados para as versões rascunho e publicada de uma tabela. Por exemplo, você pode recuperar a versão publicada de uma tabela fazendo uma solicitaçãoGET 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.
Criar uma tabela HubDB
Para criar uma tabela HubDB, faça uma solicitaçãoPOST para /cms/v3/hubdb/tables.
No corpo da solicitação, especifique nos seguintes campos obrigatórios:
Além disso, você pode especificar os seguintes campos opcionais:
Sem nenhuma coluna adicionada, sua solicitação de criação poderá ter a seguinte aparência:
Adicionar colunas da tabela
Cada coluna de uma Tabela HubDB pode ser definida com as seguintes propriedades:
Usando os campos acima, sua solicitação para criar uma nova tabela HubDB pode ter a seguinte aparência:
id da coluna no objeto de entrada.
Adicionar linhas da tabela
Você pode adicionar linhas manualmente por meio da API ou pode importar linhas de um arquivo CSV. Para adicionar linhas a uma tabela HubDB, faça uma solicitaçãoPOST para /cms/v3/hubdb/tables/{tableIdOrName}/rows.
Para cada linha da tabela, você pode incluir os seguintes campos:
Usando os campos acima, o corpo da solicitação pode ser parecido com o seguinte:
Importar linhas do CSV
Para importar dados de um arquivo CSV para uma tabela HubDB, faça uma solicitaçãoPOST 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:
Usando a tabela acima, seu JSON
config pode ter a seguinte aparência:
Formatação de data
Há vários formatos que você pode usar ao importar dados para uma coluna de tipo de data. Inteirosyyyy/mm/ddyyyy/mm/ddmm/dd/yyyymm/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 2022Fri Mar 4 2022March 4th '22
next ThursdayTodaytomorrow3 days from now
Redefinir opções
Ao importar dados de um arquivo CSV para uma tabela HubDB, você pode definir o camporesetTable para true ou false (padrão) para controlar se os dados da linha do HubDB serão substituídos.
-
Se
resetTableestiver definido comotrue:- Se as linhas no arquivo CSV não tiverem uma coluna de ID de linha (
hs_idou o ID da linha for especificado como0, essas linhas serão inseridas com os novos IDs de linha gerados. - Se os IDs de linha no arquivo CSV já existirem na tabela de destino, as linhas existentes na tabela serão atualizadas com os novos valores do arquivo de entrada.
- Se a tabela tiver linhas, mas o arquivo CSV de entrada não tiver os IDs dessas linha, as linhas serão excluídas da tabela de destino.
- Se os IDs de linha no arquivo CSV de entrada não existirem na tabela de destino, essas linhas serão inseridas com os novos IDs de linha gerados e os IDs de linha fornecidos no arquivo de entrada serão ignorados.
- Se o arquivo CSV de entrada não contiver a coluna de ID de linha, todas as linhas serão excluídas da tabela de destino e as linhas do arquivo de entrada serão inseridas com os novos IDs de linha gerados.
- Se as linhas no arquivo CSV não tiverem uma coluna de ID de linha (
-
Se
resetTableestiver definido comofalse(padrão):- Se os IDs de linha no arquivo CSV já existirem na tabela de destino, as linhas existentes na tabela serão atualizadas com os novos valores do arquivo de entrada.
- Se a tabela tiver linhas, mas o arquivo CSV de entrada não tiver os IDs dessas linhas, as linhas não serão excluídas da tabela de destino e permanecerão inalteradas.
- Se os IDs de linha no arquivo CSV de entrada não existirem na tabela de destino, essas linhas serão inseridas com os novos IDs de linha gerados e os IDs de linha fornecidos no arquivo de entrada serão ignorados.
- Se as linhas no arquivo CSV não tiverem uma coluna de ID de linha ou se o ID de linha for especificado como
0, essas linhas serão inseridas com os novos IDs de linha gerados.
Recuperar dados do HubDB
Há várias maneiras de recuperar dados do HubDB, dependendo se você está procurando detalhes da tabela ou as linhas de uma tabela:- Para recuperar detalhes de todas as tabelas publicadas, faça uma solicitação
GETpara/cms/v3/hubdb/tables. - Para recuperar os detalhes de uma tabela publicada específica, faça uma solicitação
GETpara/cms/v3/hubdb/tables{tableIdOrName}. - Para recuperar todas as linhas de uma tabela específica, faça uma solicitação
GETpara/cms/v3/hubdb/tables{tableIdOrName}/rows. - Para recuperar uma linha específica de uma tabela, faça uma solicitação
GETpara/cms/v3/hubdb/tables{tableIdOrName}/rows/{rowId}.
portalId.
Filtrar linhas retornadas
Ao recuperar dados da tabela HubDB, você pode aplicar filtros como parâmetros de consulta para receber dados específicos. Os parâmetros de consulta de filtro são construídos da seguinte forma: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:
-
Ao transmitir valores para colunas
multiselect, eles devem ser separados por vírgulas (por exemplo,multiselect_column__contains=1,2). -
Para filtros
datetime, você pode usar datas relativas no lugar de data/hora para especificar um valor relativo à hora atual. Por exemplo,-3hcorresponderia à data e hora de 3 horas antes, ao passo que10scorresponderia 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 -
Para efeitos destes filtros, a coluna incorporada
hs_idé uma colunanumber, a colunahs_created_atédatetimee as colunashs_pathehs_namesão colunastext.
Classificar as linhas retornadas
Ao recuperar dados do HubDB, você pode aplicar a classificação como um parâmetro de consulta para determinar a ordem dos dados retornados. Para classificar dados, adicione um parâmetro de consultasort 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(location_column_name, latitude, longitude): pega o nome de uma coluna de localização e as coordenadas, retorna as linhas ordenadas por quão longe os valores da coluna de localização especificada estão das coordenadas fornecidas.
- length(column_name): pega o nome de uma coluna, retorna as linhas ordenadas pelo comprimento do valor da coluna (calculado como uma string)
- random(): retorna as linhas em ordem aleatória.
geo_distance retorna os itens mais distantes primeiro:
sort=-geo_distance(location_column,42.37,-71.07)
Configurar tabelas HubDB para páginas dinâmicas
Usando o CMS do HubSpot, você pode usar uma tabela HubDB como fonte de dados para gerar páginas dinâmicas. Por exemplo, você pode criar uma tabela que contenha uma linha para cada membro da equipe executiva, com colunas contendo informações que você deseja exibir em uma página. Depois de selecionar essa tabela como a fonte de dados dinâmicos de uma página, esta gerará uma página de listagem que exibirá todas as linhas como itens de resumo, juntamente com páginas separadas para cada linha, semelhante a uma página de listagem de blog e posts de blog. Para permitir que uma tabela seja selecionada como fonte de dados no editor de conteúdo, será necessário definiruseForPage como true. Opcionalmente, você pode incluir dynamicMetaTags para especificar quais colunas usar para os metadados de cada página.
Por exemplo, o código abaixo criaria uma tabela que pode ser usada para páginas dinâmicas e especifica as três colunas a serem usadas para metadados de página.
Alterações na V3
- As tabelas devem ter
nameelabel. 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. Ambosnameelabeldevem ser exclusivos na conta. - A API oferece suporte a ambas as tabelas
idenamenos caminhos de URL. GETpontos de extremidade da linha retornam onameda coluna em vez deidno campovalues. Além disso, os pontos de extremidade de linhaPOST/PUT/PATCHexigem a colunanameem vez deidno campovalues.- Os pontos de extremidade de atualização
PATCHagora 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 comonullna solicitação. - Removidos os pontos de extremidade para
get/update/deleteuma célula de linha em favor de pontos de extremidade de atualizaçãoPATCHpara linhas. - O recurso para importar ponto de extremidade agora dá suporte a um campo opcional
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 especificar0como 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. - O clone de ponto de extremidade requer um novo nome e um novo rótulo.