Skip to content

HubSpot: Update an existing table

HubSpot hubdb.tablesUpdateHubdbDraft: arguments, response, policy and SDK examples.

← Hubdb operations · Get started

Operation hubspot.hubdb_tables_update_hubdb_draft

Provider route: PATCH /cms/hubdb/2026-09/tables/{tableIdOrName}/draft. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/hubspot with npm, or alter-sdk-hubspot with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { HubSpotIntegration } from "@alter-ai/hubspot";
async function execute(input: Parameters<HubSpotIntegration["hubdb"]["tablesUpdateHubdbDraft"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new HubSpotIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.hubdb.tablesUpdateHubdbDraft(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_hubspot import HubSpotIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = HubSpotIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.hubdb.tables_update_hubdb_draft(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.tableIdOrNamestringRequired within parent
queryobjectOptionalAdditional keys: not allowed
query.archivedbooleanOptional
query.includeForeignIdsbooleanOptional
query.isGetLocalizedSchemabooleanOptional
bodyModelRequired within parentExpand Update an existing table — request body — body

Referenced models: Update an existing table — request body — body

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Clone a table — response body

Referenced models: Clone a table — response body

2 more schemas are linked from the tables above, on the schema pages.

Update an existing table — request body — body
FieldTypePresenceDescription and constraints
$objectRoot
allowChildTablesbooleanOptionalSpecifies whether child tables can be created
allowPublicApiAccessbooleanOptionalSpecifies whether the table can be read by public without authorization
columnsarrayOptionalList of columns in the table
columns[]ModelEach itemExpand Create a new table — request body — body columns item
dynamicMetaTagsobjectOptionalSpecifies the key value pairs of the [metadata fields](https://developers.hubspot.com/docs/cms/guides/dynamic-pages/hubdb#dynamic-pages) with the associated column IDs.
Additional keys: see wildcard field
dynamicMetaTags.*integerAdditional keysFormat: int32
enableChildTablePagesbooleanOptionalSpecifies creation of multi-level dynamic pages using child tables
labelstringOptionalLabel of the table
namestringOptionalName of the table
useForPagesbooleanOptionalSpecifies whether the table can be used for creation of dynamic pages

Referenced models: Create a new table — request body — body columns item

Clone a table — response body
FieldTypePresenceDescription and constraints
$objectRoot
allowChildTablesbooleanRequired within parentSpecifies whether child tables can be created
allowPublicApiAccessbooleanRequired within parentSpecifies whether the table can be read by public without authorization
columnCountJSONRequired within parent
columnCount (anyOf 1)integerAlternativeNumber of columns including deleted
Format: int64
columnCount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
columnsarrayRequired within parentList of columns in the table
columns[]ModelEach itemExpand Clone a table — response body — columns item
createdAtstringRequired within parentTimestamp at which the table is created
Format: date-time
createdByModelOptionalExpand Clone a table — response body — created By
deletedbooleanRequired within parentSpecifies whether the table is marked as deleted.
deletedAtstringRequired within parentThe timestamp indicating when the table was deleted.
Format: date-time
dynamicMetaTagsobjectRequired within parentSpecifies the key value pairs of the [metadata fields](https://developers.hubspot.com/docs/cms/guides/dynamic-pages/hubdb#dynamic-pages) with the associated column IDs.
Additional keys: see wildcard field
dynamicMetaTags.*JSONAdditional keys
dynamicMetaTags.* (anyOf 1)integerAlternativeFormat: int32
dynamicMetaTags.* (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
enableChildTablePagesbooleanRequired within parentSpecifies creation of multi-level dynamic pages using child tables
idstringRequired within parentId of the table
isOrderedManuallybooleanOptionalIndicates whether the table rows are ordered manually.
labelstringRequired within parentLabel of the table
namestringRequired within parentName of the table
publishedbooleanRequired within parentIndicates whether the table is currently published.
publishedAtstringRequired within parentTimestamp at which the table is published recently
Format: date-time
rowCountJSONRequired within parent
rowCount (anyOf 1)integerAlternativeNumber of rows in the table
Format: int32
rowCount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
updatedAtstringRequired within parentTimestamp at which the table is updated recently
Format: date-time
updatedByModelOptionalExpand Clone a table — response body — created By
useForPagesbooleanRequired within parentSpecifies whether the table can be used for creation of dynamic pages

Referenced models: Clone a table — response body — columns item, Clone a table — response body — created By

Create a new table — request body — body columns item
FieldTypePresenceDescription and constraints
$objectRoot
foreignColumnIdintegerOptionalThe id of the column from another table to which the column refers/points to.
Format: int32
foreignTableIdintegerOptionalThe id of another table to which the column refers/points to.
Format: int64
idintegerRequired within parentColumn Id
Format: int32
labelstringRequired within parentLabel of the column
maxNumberOfCharactersintegerOptionalDefines the maximum number of characters allowed in the column.
Format: int32
maxNumberOfOptionsintegerOptionalSpecifies the maximum number of options that can be set for select and multi-select columns.
Format: int32
namestringRequired within parentName of the column
optionsarrayRequired within parentOptions to choose for select and multi-select columns
options[]ModelEach itemExpand Create a new table — request body — body columns item options item
typestringRequired within parentType of the column
One of: BOOLEAN, CODE, COMPOSITE, CTA, CURRENCY, DATE, DATETIME, EMBED, FILE, FOREIGN_ID, HUBSPOT_VIDEO, IMAGE, JSON, LOCATION, MULTISELECT, NULL, NUMBER, RICHTEXT, SELECT, TEXT, URL, VIDEO

Referenced models: Create a new table — request body — body columns item options item

Clone a table — response body — created By
FieldTypePresenceDescription and constraints
$objectRoot
emailstringRequired within parentThe email address of the user.
firstNamestringRequired within parentThe first name of the user.
idstringRequired within parentThe unique identifier for the user.
lastNamestringRequired within parentThe last name of the user.
Create a new table — request body — body columns item options item
FieldTypePresenceDescription and constraints
$objectRootA HubSpot property option
createdAtstringRequired within parentThe timestamp when the option was created, in ISO 8601 format.
Format: date-time
createdByModelOptionalExpand Clone a table — response body — created By
createdByUserIdintegerOptionalThe ID of the user who created the option.
Format: int32
idstringRequired within parentThe unique ID of the option.
labelstringRequired within parentA user-friendly label that identifies the option.
namestringRequired within parentAn internal name assigned to the option, distinct from the label.
orderintegerRequired within parentThe order in which the option appears, represented as an integer.
Format: int32
typestringRequired within parentIndicates the category or data type of the option (e.g., string, number).
updatedAtstringRequired within parentThe timestamp when the option was last updated, in ISO 8601 format.
Format: date-time
updatedByModelOptionalExpand Clone a table — response body — created By
updatedByUserIdintegerOptionalThe ID of the user who last updated the option.
Format: int32

Referenced models: Clone a table — response body — created By

Clone a table — response body — columns item foreign Ids item
FieldTypePresenceDescription and constraints
$objectRoot
idstringRequired within parentUnique identifier for the foreign ID.
namestringRequired within parentName of the foreign ID.
typestringRequired within parentType of the foreign ID.

SDK function policy ID: hubspot.hubdb_tables_update_hubdb_draft. Catalog operation: hubdb_tables_update_hubdb_draft. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Required provider scopes: ["hubdb.tables.write"]

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.