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, pagedGET /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/column | Change type | Notes |
|---|---|---|
pipeline | ||
pipeline_stage | New subtable | Includes 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.
No action required. Capture deletes stays off until you turn it on for a table.
For the most accurate results, turn on READ_COMMITTED_SNAPSHOT on the
database. Without it, Weld reads with NOLOCK, which can skip a row being
moved by a concurrent write, so that row could be marked deleted until the
next full sync picks it up again.
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.
No action required. Capture deletes stays off until you turn it on for a table.
6 total changes
| Table/column | Change type | New name | Notes |
|---|---|---|---|
product | |||
column | New Column | product_updated_at | Added to product_variant, variant_cost_price, product_category, product_meta, and product_cost_price_set. |
variant | |||
column | New Column | variant_updated_at | Added to variant_attribute, variant_meta, variant_price, variant_available, and variant_stock. |
order | |||
column | New Column | order_updated_at | Added to order_meta, order_line, and order_line_meta. |
invoice | |||
column | New Column | invoice_updated_at | Added to invoice_meta, invoice_line, and invoice_line_meta. |
production_order | |||
column | New Column | production_order_updated_at | Added to production_order_meta and production_order_line. |
production_order_delivery_note | |||
column | New Column | production_order_delivery_note_updated_at | Added 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/column | Change type | Notes |
|---|---|---|
course | New table | |
course | ||
course_association | New subtable | Links 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.