Pular para o conteúdo principal
O HubDB é um armazenamento de dados relacional que apresenta dados como linhas, colunas e células em uma tabela, como uma planilha. As tabelas HubDB podem ser adicionadas ou modificadas dentro da sua conta da HubSpot, mas você também pode usar os pontos de extremidade de API documentados aqui. Para obter informações sobre como usar dados de tabelas HubDB no seu site ou em e-mails programáveis, confira a Documentação do desenvolvedor do CMS da HubSpot. Semelhante às páginas do site do HubSpot, as tabelas HubDB oferecem suporte às versões 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).

Observação:

Pontos de extremidade com suporte a 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.

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 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.
  • 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ção 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.

Criar uma tabela HubDB

Para criar uma tabela HubDB, faça uma solicitação POST 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:
Após a criação de uma tabela, IDs serão atribuídos às colunas em ordem crescente. Ao atualizar as colunas existentes, inclua o campo 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ção POST 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ção 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.
Em config, inclua os seguintes campos como uma string JSON: Usando a tabela acima, seu JSON config pode ter a seguinte aparência:
Se estiver usando cURL, seu comando pode se parecer com o seguinte:

Formatação de data

Há vários formatos que você pode usar ao importar dados para uma coluna de tipo de data. Inteiros
  • yyyy/mm/dd
  • yyyy/mm/dd
  • mm/dd/yyyy
  • mm/dd/yy
Esses formatos exigem que o mês preceda o dia (ou seja, 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
Datas relativa O HubSpot analisará os seguintes formatos de data relativos ao dia atual:**
  • next Thursday
  • Today
  • tomorrow
  • 3 days from now

Redefinir opções

Ao importar dados de um arquivo CSV para uma tabela HubDB, você pode definir o campo resetTable para true ou false (padrão) para controlar se os dados da linha do HubDB serão substituídos.
  • Se resetTable estiver definido como true:
    • Se as linhas no arquivo CSV não tiverem uma coluna de ID de linha (hs_id ou o ID da linha for especificado como 0, 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 resetTable estiver definido como false (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 GET para /cms/v3/hubdb/tables.
  • Para recuperar os detalhes de uma tabela publicada específica, faça uma solicitação GET para /cms/v3/hubdb/tables{tableIdOrName}.
  • Para recuperar todas as linhas de uma tabela específica, faça uma solicitação GET para /cms/v3/hubdb/tables{tableIdOrName}/rows.
  • Para recuperar uma linha específica de uma tabela, faça uma solicitação GET para /cms/v3/hubdb/tables{tableIdOrName}/rows/{rowId}.
Ao recuperar dados de linha, você pode filtrar e classificar os resultados. 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.

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, -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
  • Para efeitos destes filtros, a coluna incorporada hs_id é uma coluna number, a coluna hs_created_at é datetime e as colunas hs_path e hs_name são colunas text.
Abaixo, saiba quais operadores podem ser aplicados a quais tipos de coluna:

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 consulta 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(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.
Essas funções também suportam classificação inversa. Por exemplo, a seguinte classificação 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 definir useForPage como true. Opcionalmente, você pode incluir dynamicMetaTags para especificar quais colunas usar para os metadados de cada página.

Observação:

Ao especificar 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.
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 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.
  • A API oferece suporte a ambas as tabelas id e name nos caminhos de URL.
  • GET pontos de extremidade da linha retornam o nameda 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.
  • Os pontos de extremidade de atualização 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.
  • Removidos os pontos de extremidade para get / update / delete uma célula de linha em favor de pontos de extremidade de atualização PATCH para 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 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.
  • O clone de ponto de extremidade requer um novo nome e um novo rótulo.
Última modificação em 10 de abril de 2026