October 2026

New destinations

Apache Iceberg

Apache Iceberg is now available as a Weld ELT destination. Weld writes Iceberg tables through any Iceberg REST catalog, including Amazon S3 Tables and AWS Glue, as well as Polaris, Snowflake Open Catalog, Lakekeeper, Nessie, Cloudflare R2 Data Catalog, and BigLake. Iceberg is write-only in Weld: it's available as an ELT destination, not as a data source or data warehouse.

New features

Notifications in the Weld Connect API and MCP server

The Weld Connect API can now list, fetch, and remove an account's notifications:

  • GET /notifications: active notifications for the account, newest first, paged
  • GET /notifications/{id}
  • DELETE /notifications/{id}: removes the notification

The MCP server gets matching tools: list_notifications and get_notification for viewers and up, and remove_notification for editors and admins. Removing a notification that's locking a table lifts the lock, the same as dismissing it in the app.

Notifications for a quarantined sync now also include an explanation of what went wrong and what to do about it, the same explanation shown in the app.

MCP server: Exclude sub-tables and see which are retired

add_elt_sync_source_streams in the MCP server now takes an excluded_substreams list for each table, so an AI assistant can exclude a sub-table (for example HubSpot's deal_company) instead of only being able to migrate models off it. The list replaces the table's current exclusions, except retired sub-tables that are already excluded: they stay excluded since they're no longer offered. Leaving the field out keeps the exclusions unchanged.

get_elt_sync_available_streams now also returns retired_sub_streams for each table: the sub-tables the ELT sync still syncs that are retired, with the sub-table that replaces each one. This is additive, sub_streams is unchanged.

Also fixed a bug where updating an existing table without excluded_substreams could silently replace its exclusions instead of leaving them unchanged.

MCP server: Create a connection

Added a create_connection tool to the MCP server that mints an authorization link for setting up a new connection to an integration from list_integrations. An AI assistant can hand you the link to open in a browser; the connection doesn't exist until you finish it. The label becomes the connection name and must not match an existing connection or another open link.

Connector updates

GoHighLevel: pipeline_stage table

The pipeline table now has a pipeline_stage subtable, unwrapping each pipeline's stages array into its own rows. Stage names, counts, win probabilities, and colors all vary by location and pipeline, but every stage returns the same properties, so opportunity.pipeline_stage_id and contact.pipeline_stage_id can now join directly to a stage's name, color, and stage_win_probability instead of only through pipeline's stringified stages column. That column is unchanged, so existing models keep working.

1 total change

Table/columnChange typeNotes
pipeline
pipeline_stageNew subtableIncludes name, position, show_in_funnel, show_in_pie_chart, stage_win_probability, color, and origin_id.

Microsoft SQL Server: Capture deletes on every table

Every table synced from Microsoft SQL Server, SQL Server on RDS, and Azure SQL Database can now use Capture deletes: a full sync marks rows the source no longer returns with _weld_deleted_at instead of dropping them. The table needs primary keys, either from the source or set by you in Weld; turning it on for a table without any is rejected.

Microsoft Dynamics 365 via MSSQL isn't included. Dataverse filters rows by the connection's security role and stops queries at a fixed timeout, so a missing row isn't necessarily a deleted one, and a sync with Capture deletes turned on fails.

Traede: Capture deletes on category, customer, product, variant, order, invoice, production_order, and production_order_delivery_note

These tables can now use Capture deletes; the user table isn't included.

Each table's subtables also gain a new nullable <entity>_updated_at column, copied from the parent row's updated_at (for example product_updated_at on product_variant and product_meta). It's added for every customer, not only those with Capture deletes turned on, and main tables are unchanged.

6 total changes

Table/columnChange typeNew nameNotes
product
columnNew Columnproduct_updated_atAdded to product_variant, variant_cost_price, product_category, product_meta, and product_cost_price_set.
variant
columnNew Columnvariant_updated_atAdded to variant_attribute, variant_meta, variant_price, variant_available, and variant_stock.
order
columnNew Columnorder_updated_atAdded to order_meta, order_line, and order_line_meta.
invoice
columnNew Columninvoice_updated_atAdded to invoice_meta, invoice_line, and invoice_line_meta.
production_order
columnNew Columnproduction_order_updated_atAdded to production_order_meta and production_order_line.
production_order_delivery_note
columnNew Columnproduction_order_delivery_note_updated_atAdded to production_order_delivery_note_meta and production_order_delivery_note_line.

MotherDuck: more accurate column types

MotherDuck now types nullable timestamp, double, and long columns correctly on new tables and new columns, instead of creating them as VARCHAR text. Existing columns keep the type they were created with, so already-synced tables aren't affected.

HubSpot: course table

HubSpot now has a course table, syncing HubSpot's Courses object along with its company, contact, deal, engagement, and ticket associations in a course_association subtable. The table is only selectable once the Courses object has been activated in the connected HubSpot portal.

2 total changes

Table/columnChange typeNotes
courseNew table
course
course_associationNew subtableLinks a course to its associated companies, contacts, deals, engagements, and tickets.

Platform

Views over a changed model rebuild automatically

On Snowflake, Postgres, MSSQL, ClickHouse, and MotherDuck, a SELECT * view fixes its column list when it's created, so when the model it reads changes its columns, the view fails every query until it's rebuilt. Weld now rebuilds those views automatically whenever the underlying model changes, whether the change comes from a GitHub sync, the editor, an OpenAPI or MCP publish, a rematerialize, or a scheduled table run. On Snowflake, rebuilding a view also keeps the grants your BI tools depend on.

Was this page helpful?