July 2026
New features
Reverse ETL via Weld Connect and MCP Server
Reverse ETL Syncs can now be created, updated, and managed through the Weld Connect API and the MCP Server, so AI assistants and custom integrations can activate warehouse data into downstream tools without using the UI. New endpoints and tools cover the full workflow: listing destination object types and available operations, resolving a destination's settings schema (including options that depend on other selections, like available sheets depending on a chosen file), and creating, updating, activating, deactivating, and deleting syncs.
You can also trigger an immediate sync run on demand, and list and inspect individual Reverse ETL Sync runs. For failed records, new endpoints and tools let you list unresolved record errors, get the failed record count, and retry specific records or all failed records for a sync.
GitHub sync: validate, retry, and rebuild models
Weld's GitHub sync now surfaces and recovers from materialization problems instead of failing silently. When a sync commits model changes to your repository but a model fails to materialize in the warehouse, the sync is marked Partial and lists the affected models. From there you can:
- Retry failed models — re-run just the models that failed to materialize in a Partial sync, directly from the sync detail view.
- Rebuild out-of-date models — reconcile every published model whose warehouse object has drifted from its published query (including models left stale by a later push that never re-touched them) in one click, without re-reading the repo or creating a new commit.
Syncs now also validate on sync, surfacing downstream and stale breakage before it reaches production, and respect config() materialization and schedule settings — with warnings when a materialization type isn't supported.
Deduplication across streams
Connectors can now remove duplicate rows across all synced data for a connection, not just within a single file or batch. Deduplication is configurable per connector and matches rows either on the configured primary-key fields or on a whole-row checksum, so identical records that arrive across multiple files, streams, or syncs are collapsed into a single row.
Downloads sidebar
CSV exports from model previews and audit logs now run in the background and appear in a new downloads sidebar, so you can keep working while large exports are prepared. The sidebar shows the status of each download (processing, ready, failed, or cancelled), lets you cancel in-progress exports, and provides a download link once the file is ready. Downloads are tracked per workspace and automatically expire after 3 days.
MCP Server: Create Custom Reports tool
The MCP Server now supports a create_custom_reports tool, letting AI assistants create one or more custom reports (GAQL for Google Ads, ShopifyQL for Shopify) and attach them to ELT Syncs in a single call. The tool is batchable — pass multiple items to duplicate the same report across many syncs, or create different reports at once — and each item is processed independently, so one failing report doesn't block the others. Errors are returned with clear, categorized messages (for example, flagging when a connection has lost access and needs reauthorizing) instead of raw error output.
New destinations
MotherDuck
MotherDuck — the serverless cloud data warehouse built on DuckDB — is now available as a Weld destination. Sync data from any source into MotherDuck, use it as a Reverse ETL / Activate source, and query it directly from Weld's query builder. Connect using a MotherDuck Service Token.
ClickHouse
ClickHouse is now available as a Weld ELT destination. Sync data from any source into ClickHouse Cloud or a self-hosted instance over its HTTP interface, and query it from Weld's query builder. Weld supports append, merge, and full-copy load strategies and evolves destination tables automatically as your source schemas change.
Connector updates
TikTok Shop: Seller Affiliate Orders stream and commission amount fixes
The TikTok Shop connector now syncs a Seller Affiliate Order stream, covering affiliate order status, commission rates, and per-SKU commission, refund, and return details. Commission and fee amount fields across the Affiliate Creator Order SKU stream (e.g. estimated and actual commission, bonus, and tax amounts) have also been corrected from string to numeric fields so they can be aggregated and filtered directly.
The commission amount field type change is a possible breaking change for existing models or queries that treat these fields as strings.
3 total changes • 1 possible breaking change
| Table/column | Change type | Notes |
|---|---|---|
seller_affiliate_order | New stream | |
seller_affiliate_order | ||
seller_affiliate_order_skus | New table | |
affiliate_creator_order_sku | ||
commission and fee amount columns | Updated Column | Fields such as price_amount, estimated_commission_amount, and actual_commission_amount changed from string to double. |
Stripe: Faster incremental syncs for the Event stream
The Event stream now syncs incrementally, only fetching events created since the last sync instead of re-fetching the full event history each time. This makes syncs faster and reduces load on your Stripe account, especially for workspaces with a large volume of events.
TikTok Shop: Return Orders stream
The TikTok Shop connector now syncs a Return Orders stream, including return status, reason, shipping fee and discount breakdowns, and line-level return details.
6 total changes
| Table/column | Change type | Notes |
|---|---|---|
return_order | New stream | |
return_order | ||
return_order_line_items | New table | |
return_order_seller_next_action_response | New table | |
return_order_discount_amount | New table | |
return_order_shipping_fee_amount | New table | |
return_order_line_items | ||
return_order_sub_line_items | New table | |
Klaviyo: Periodic lookback sync for Events
The Events stream now periodically re-syncs a short lookback window of recent data, catching events that Klaviyo reports late or updates after they were first synced. The lookback runs automatically about once a day and doesn't affect regular incremental syncs the rest of the time.
QuickBooks: Profit & Loss report
QuickBooks now includes a Profit & Loss report stream, giving you period-level P&L data by account, alongside a summary breakdown grouped by section (income, cost of goods sold, expenses, and so on).
2 total changes
| Table/column | Change type | Notes |
|---|---|---|
profit_and_loss_report | New stream | Profit & loss amounts per account and period |
profit_and_loss_report_summary | New stream | Profit & loss totals grouped by section |
Linear: Create customers with Reverse ETL
Linear is now supported as a Reverse ETL destination for creating customers — push customer records from your warehouse models straight into Linear.
Google Drive and Microsoft OneDrive: New Reverse ETL destinations
Google Drive and Microsoft OneDrive can now be used as Reverse ETL destinations. Every sync creates a new file containing the full dataset from the source model — choose CSV, Parquet, NDJSON, or JSON array as the file format, with optional gzip compression (except for Parquet, which is already compressed). For Google Drive, pick the destination folder from a dropdown; for OneDrive, provide the destination folder URL.
Existing Google Drive and OneDrive connections can be reused as destinations.
OneDrive connections must be reconnected to grant the additional
Files.ReadWrite.All permission required to upload files.
Xero: New Accounts, Bank Transactions, Budgets, Credit Notes, and Tracking Categories streams
The Xero connector now supports five additional streams: Accounts, Bank Transactions, Budgets, Credit Notes, and Tracking Categories. Budgets are synced in 24-month windows to respect Xero's API limits, and Bank Transactions and Credit Notes support their nested line items, allocations, and payments.
14 total changes
| Table/column | Change type | Notes |
|---|---|---|
account | New stream | |
bank_transaction | New stream | |
budget | New stream | |
credit_note | New stream | |
tracking_category | New stream | |
bank_transaction | ||
bank_transaction_line_item | New table | Line items for each bank transaction |
budget | ||
budget_tracking | New table | |
budget_line | New table | |
budget_tracking | ||
budget_tracking_option | New table | |
budget_line | ||
budget_balance | New table | |
credit_note | ||
credit_note_payment | New table | |
credit_note_allocation | New table | |
credit_note_line_item | New table | |
tracking_category | ||
tracking_category_option | New table | |
The Bank Transactions stream requires the accounting.banktransactions.read
scope, and the Budget stream requires the accounting.budgets.read scope.
Reconnect the Xero account to grant these scopes if you'd like to sync bank
transactions and budgets.
SFTP: Deduplicate rows across all synced files
The SFTP connector now has an optional Deduplicate setting. When enabled, Weld removes duplicate rows — based on the configured primary key fields — across all synced files, not just within a single file. This is useful when the same records can appear in multiple files from the SFTP source.
Amazon Selling Partner: Fulfillment Orders, faster reports, and incremental vendor catalog
The Amazon Selling Partner connector now syncs Fulfillment Order data, including shipments, shipment items, package tracking, returns, and payment information. Report-based streams also generate faster — Weld now fetches ASINs and other report data through Amazon's report endpoint with reduced polling delays and parallel marketplace requests — and the Vendor Central catalog items stream now syncs incrementally.
9 total changes
| Table/column | Change type | Notes |
|---|---|---|
fulfillment_order | New stream | |
fulfillment_order | ||
fulfillment_order_item | New table | |
fulfillment_shipment | New table | |
fulfillment_return_item | New table | |
fulfillment_return_authorization | New table | |
fulfillment_payment_information | New table | |
fulfillment_shipment | ||
fulfillment_shipment_item | New table | |
fulfillment_shipment_package_tracking | New table | |
fulfillment_shipment_package_tracking | ||
fulfillment_shipment_package_tracking_event | New table | |
Amazon Vendor Central: Purchase Order Status stream
The connector now syncs Purchase Order Status data, including item-level status with ordered quantity and acknowledgement details.
4 total changes
| Table/column | Change type | Notes |
|---|---|---|
purchase_order_status | New stream | |
purchase_order_status | ||
purchase_order_status_item | New table | |
purchase_order_status_item | ||
purchase_order_status_item_ordered_quantity_detail | New table | |
purchase_order_status_item_acknowledgement_status_detail | New table | |
Shopify: Row deduplication on selected tables
Selected Shopify tables now have row-level deduplication enabled, removing duplicate records that could previously appear from overlapping syncs.
New connectors
Gmail · View Gmail data schema →
Gmail is now available as a Weld connector. Sync your mailbox — profile, labels, threads, and messages — into your data warehouse via OAuth, with incremental syncs for threads and messages. Gmail also supports Reverse ETL: send a SQL or dbt model on a schedule as a file attachment (CSV, Parquet, NDJSON, or JSON array, optionally gzip-compressed) to the recipient email address(es) you configure, using your connected Gmail account. Only the Mirror operation is supported — each sync sends a fresh email with the full result of your model.
9 total changes
| Table/column | Change type | Notes |
|---|---|---|
profile | New stream | |
label | New stream | |
thread | New stream | |
message | New stream | |
message | ||
message_label | New table | |
message_classification_label_value | New table | |
message_part | New table | |
message_classification_label_value | ||
message_classification_label_value_field | New table | |
message_part | ||
message_part_header | New table | |
Toast Analytics · View Toast Analytics data schema →
Toast Analytics provides pre-aggregated daily analytics across your restaurant locations. The connector syncs data per restaurant, per business day, and supports historical backfill.
Due to Toast's strict API rate limits, the initial sync runs in date-range
chunks and may take some time to complete. Choosing the shortest lookback
period that meets your needs is recommended.
The initial sync will run
in reverse order, starting with the date when the sync was started and going
backward in time until the lookback period is reached.
After the
initial sync, subsequent syncs will run incrementally, syncing only new data
since the last successful sync.
13 total changes
| Table/column | Change type | Notes |
|---|---|---|
analytics_restaurants_information | New table | Active restaurant locations accessible via your partner credentials |
analytics_aggregated_sales | New table | Daily aggregated sales metrics per restaurant — guest count, order counts, net/gross sales, discounts, voids, refunds, and hourly labor summary |
analytics_check | New table | Individual check-level data including totals, discounts, taxes, tips, and gratuity |
analytics_labor | New table | Daily labor totals per restaurant — hours, costs, and sales-per-labor-hour |
analytics_labor_by_job | New table | Daily labor broken down by job — hours, costs, and sales efficiency |
analytics_labor_by_employee | New table | Daily labor broken down by employee — hours, costs, and employee details |
analytics_menu | New table | Daily menu-level sales performance — quantities sold, revenue, discounts, voids, and waste |
analytics_menu_by_menu | New table | Daily sales performance grouped by menu |
analytics_menu_by_menu_item | New table | Daily sales performance grouped by menu item |
analytics_payout_by_settled_date | New table | Payout summary by settlement date — transaction count, payment/refund amounts, fees, withholding, and payout status |
analytics_payout_by_payments | New table | Individual payment-level payout records including card brand, type, tip, and gratuity |
analytics_payout_by_sales_date | New table | Payout summary aggregated by sales date |
analytics_guest_by_payment | New table | Guest visit data linked to individual payments, including card fingerprint for repeat-guest analysis |
Bug fixes
- Klaviyo deleted flows: Flow reports no longer fail when a flow has been deleted and returns a null date field.
- Shopify ShopifyQL date types: Corrected the data types returned for ShopifyQL date columns.
- Amazon Selling Partner search query performance: Fixed an issue where the search query performance report could return no data.
- Custom forms: Renaming a custom form no longer leaves a conflicting stale table behind.
- Model editor discard prompt: Pressing Esc now dismisses the discard-changes confirmation instead of reopening it.
- Stuck materialization jobs: Materialization jobs no longer get stuck on unbounded wait-for-completion polling.
- Model import: Folder-name casing is now preserved in the warehouse name, and leaf models resolve correctly in the GitHub sync dependency map.
- Model editor tab sync: Navigating directly to
/editor/:modelIdnow correctly activates the tab for that model, even when a restored unsaved-draft tab was already open from a previous session.