April 2026
Breaking changes
HubSpot Lists API v1 Retirement
We added a new HubSpot v2 form submissions stream with submission table and submission_value subtable. The legacy contact_list and form_submission tables depend on HubSpot's soon-to-be-retired Lists API v1 and are now deprecated.
After 4/30/2026, syncs for contact_list and form_submission are blocked.
What you need to do:
- Migrate from
contact_listtolist. - Migrate from
form_submissiontosubmission. - Update downstream SQL models and pipelines to use the replacement tables before
4/30/2026.
Explore HubSpot documentation → · HubSpot Lists API v1 migration guide →
Changelog
5 total changes • 2 possible breaking changes
| Table/column | Change type | Notes |
|---|---|---|
List | ||
contact_list | Deprecated | Stops syncing after 4/30/2026. Switch to list. |
list | Unchanged | Use this table instead of contact_list. |
Form | ||
form_submission | Deprecated | Stops syncing after 4/30/2026. Switch to submission. |
submission | New table | HubSpot v2 form submissions stream. |
submission_value | New sub-table | Substream containing submission field values. |
HubSpot Association Tables Migration
We have deprecated the legacy CRM association helper tables in the HubSpot connector and replaced them with new per-object singular association tables.
The HubSpot CRM Associations API limits responses to 100 associations per parent record. For accounts with higher association volumes, this produced incomplete data. The new singular association tables work around this limitation and return the full dataset for each object relationship.
The deprecated tables correspond to the v1 association types in HubSpot's API. The new tables align with HubSpot's current per-object association model, using a single {object}_association table per endpoint with from_id, to_id, to_object_type, type_id, category, and label columns.
What you need to do:
- Enable the new association tables in your HubSpot connector configuration.
- Update any SQL models or downstream pipelines that reference the deprecated tables to use the new table names.
- The deprecated tables will continue to sync temporarily to give you time to migrate, but they will be removed in a future release.
Migration example
Before — using the deprecated contact_company table:
SELECT
c.id AS contact_id,
cc.company_id
FROM contact c
JOIN contact_company cc ON c.id = cc.contact_id
After — using the new contact_association table:
SELECT
c.id AS contact_id,
ca.to_id AS company_id
FROM contact c
JOIN contact_association ca
ON c.id = ca.from_id
AND ca.to_object_type = 'company'
New table schema
All new {object}_association tables share the same schema:
| Column | Description |
|---|---|
from_id | ID of the source record (matches the parent object's id column). |
to_id | ID of the associated record. |
to_object_type | Target object type, e.g. company, deal, ticket, call, email. |
type_id | HubSpot association type ID. Identifies the specific relationship type. |
category | Association category: HUBSPOT_DEFINED or USER_DEFINED. |
label | Optional label for the association (e.g. "Primary", "Parent", custom labels). |
Explore HubSpot documentation → · HubSpot CRM Associations API →
Changelog
29 total changes • 22 possible breaking changes
| Table/column | Change type | Notes |
|---|---|---|
Contact | ||
contact_company | Deprecated | Use contact_association with to_object_type = 'company'. |
contact_deal | Deprecated | Use contact_association with to_object_type = 'deal'. |
contact_ticket | Deprecated | Use contact_association with to_object_type = 'ticket'. |
contact_engagement | Deprecated | Use contact_association with to_object_type = 'call', 'email', etc. |
contact_association | New table | Replaces all contact_* association tables. |
Company | ||
company_contact | Deprecated | Use company_association with to_object_type = 'contact'. |
company_deal | Deprecated | Use company_association with to_object_type = 'deal'. |
company_ticket | Deprecated | Use company_association with to_object_type = 'ticket'. |
company_engagement | Deprecated | Use company_association with to_object_type = 'call', 'email', etc. |
company_association | New table | Replaces all company_* association tables. |
Deal | ||
deal_company | Deprecated | Use deal_association with to_object_type = 'company'. |
deal_contact | Deprecated | Use deal_association with to_object_type = 'contact'. |
deal_engagement | Deprecated | Use deal_association with to_object_type = 'call', 'email', etc. |
deal_line_item | Deprecated | Use deal_association with to_object_type = 'line_item'. |
deal_ticket | Deprecated | Use deal_association with to_object_type = 'ticket'. |
deal_association | New table | Replaces all deal_* association tables. |
Ticket | ||
ticket_contact | Deprecated | Use ticket_association with to_object_type = 'contact'. |
ticket_company | Deprecated | Use ticket_association with to_object_type = 'company'. |
ticket_deal | Deprecated | Use ticket_association with to_object_type = 'deal'. |
ticket_engagement | Deprecated | Use ticket_association with to_object_type = 'call', 'email', etc. |
ticket_association | New table | Replaces all ticket_* association tables. |
Lead | ||
lead_companies | Deprecated | Use lead_association with to_object_type = 'company'. |
lead_deals | Deprecated | Use lead_association with to_object_type = 'deal'. |
lead_contacts | Deprecated | Use lead_association with to_object_type = 'contact'. |
lead_engagements | Deprecated | Use lead_association with to_object_type = 'call', 'email', etc. |
lead_association | New table | Replaces all lead_* association tables. |
Line Item | ||
line_item_deal | Deprecated | Use line_item_association with to_object_type = 'deal'. |
line_item_association | New table | Replaces line_item_deal. |
Call | ||
call_association | New table | Associations for call activities. |
New features
Granular Access Control (Viewer & Editor Roles)
We've overhauled workspace permissions with two new roles:
- Viewer: Read-only access for stakeholders who need to monitor dashboards, view configurations, or check sync statuses without the risk of accidental changes.
- Editor: Configurable write access scoped to specific areas — ELT syncs, Reverse ETL, or Transformations — while keeping the rest of the workspace locked down.
Learn more about workspace roles →
REST API for Data Models
You can now manage data transformations programmatically via the REST API. Create, update, publish, and list data models directly from external systems.
New Transforms endpoints:
GET /transforms— List transformsPOST /transforms— Create transformGET /transforms/{id}— Get transformPATCH /transforms/{id}— Update transformDELETE /transforms/{id}— Delete transformPOST /transforms/{id}/publish— Publish transformGET /transforms/{id}/versions— List transform versionsPOST /transforms/bulk— Bulk create transformsGET /transforms/available_references— List available references
Bulk Import for SQL & dbt Models
You can now upload entire ZIP folders of SQL or dbt models at once. The platform automatically tracks real-time progress, resolves dependencies across your files, and ensures everything builds in the correct order.
Learn more about Model Import & Export →
Deprecated Stream Warnings
It's now much clearer when an external platform retires a specific data stream. Visual warnings appear in the Data Sources list and the SQL editor to prevent querying outdated tables.
Shareable Data Source Links
The "View Data Source" slide-over panel now supports URL deep-linking. Bookmark or share direct links to a specific data source's Overview, Lineage, or History tab.
Workspace Usage Visibility
Updated the Settings navigation so all team members can now view the Plan and Usage pages. Billing management and payment actions remain restricted to Workspace Admins.
Streamlined Reverse ETL & Sync History UI
Improved navigation when creating new Reverse ETL syncs and added a dedicated view for ELT sync history and error logs.
In-App Alert Improvements
Workspace alert banners (such as data usage thresholds) now display real-time usage data and can be temporarily dismissed for a cleaner UI.
SQL Editor Scrollbars
Added visible horizontal and vertical scrollbars to the Model Tool SQL editor for easier navigation of wide or lengthy queries.
New connectors
Adyen
Full ELT support for Adyen payment data. Sync payment reports and transaction data directly into your data warehouse.
Explore Adyen documentation → · View Adyen data schema →
2 total changes
| Table/column | Change type | Notes |
|---|---|---|
payment_report | New table | |
transaction | New table |
Younium
Full integration for Younium B2B billing. Extract subscription, invoice, and account data into your warehouse.
Explore Younium documentation → · View Younium data schema →
4 total changes
| Table/column | Change type | Notes |
|---|---|---|
subscription | New table | |
invoice | New table | |
account | New table | |
billing | New table |
Traede
Full ELT support for Traede inventory and e-commerce data. Sync products, variants, and categories directly into your data warehouse.
Explore Traede documentation → · View Traede data schema →
3 total changes
| Table/column | Change type | Notes |
|---|---|---|
product | New table | |
variant | New table | |
category | New table |
Cargoson
Full ELT support for Cargoson freight and logistics data. Sync shipment and transportation data directly into your warehouse.
Explore Cargoson documentation → · View Cargoson data schema →
Connector updates
Shopify: Faster Catch-up Syncs
Completely rebuilt how Shopify Orders sync historical data. The system now uses intelligent "chunking," making multi-month catch-up syncs significantly faster and more reliable.
HubSpot: Form Submissions v2
Upgraded the HubSpot integration to support the new Form Submissions v2 endpoint, keeping your pipelines future-proof as HubSpot phases out legacy APIs.
Apple App Store Connect: App Usage Metrics
Expanded the Apple App Store Connect integration with detailed App Usage metrics — including sessions, crashes, installs, and deletions.
1 total change
| Table/column | Change type | Notes |
|---|---|---|
app_usage | New table | Sessions, crashes, installs, and deletions |
Amazon Ads: Unified Campaign Reporting & Extended Lookback
Combined the previously separate Sponsored Brand and Sponsored Product report streams into a single unified Sponsored Campaign report in Amazon Ads. Also increased the lookback window from 3 days to 5 days, ensuring late-arriving ad metrics are reliably captured.
1 total change
| Table/column | Change type | Notes |
|---|---|---|
sponsored_campaign_report | New table | Unified report combining Sponsored Brand and Sponsored Product data |
Calendly: Organization Syncing
Added a new Organization Memberships stream to Calendly. Scheduled events and user availability now automatically sync data for all organization members, not just the connected user.
3 total changes
| Table/column | Change type | Notes |
|---|---|---|
organization_memberships | New table | Organization-wide membership data |
scheduled_events | Updated | Now includes all organization members |
user_availability | Updated | Now includes all organization members |
Klaviyo: Campaign & Flow IDs on Events
Added Campaign IDs and Flow IDs to Klaviyo events, allowing you to tie user actions directly back to specific marketing campaigns.
2 total changes
| Table/column | Change type | New name | Notes |
|---|---|---|---|
event | |||
column | New Column | campaign_id | Links events to specific campaigns |
column | New Column | flow_id | Links events to specific flows |
Mixpanel: Same-Day Events
Updated Mixpanel to include events from "today" for faster access to recent product analytics.
1 total change
| Table/column | Change type | Notes |
|---|---|---|
event | ||
event | Updated | Now includes same-day events |
GoHighLevel: Conversation Sender Fields
GoHighLevel message syncing now includes from and to sender fields.
2 total changes
| Table/column | Change type | New name | Notes |
|---|---|---|---|
message | |||
column | New Column | from | Sender information |
column | New Column | to | Recipient information |
Zendesk: High-Volume Sync Overhaul
Switched Zendesk to time-based syncing with improved rate limit handling. Faster, more reliable syncs for large accounts without duplicated or skipped tickets.
1 total change
| Table/column | Change type | Notes |
|---|---|---|
ticket | ||
ticket | Updated | Switched to time-based syncing with improved rate limiting |
Intercom: Adaptive Rate Limiting
Intercom connector now gracefully adjusts data volume when hitting API limits, ensuring syncs recover smoothly instead of failing.
1 total change
| Table/column | Change type | Notes |
|---|---|---|
all streams | Updated | Adaptive rate limiting for graceful API throttle recovery |
Klarna: Updated Data Structures & Environment Selection
Updated Klarna transaction and payout syncs to match Klarna's latest data structures. You can also now choose between "Live" and "Playground" environments during setup for easier testing and sandbox development.
2 total changes
| Table/column | Change type | Notes |
|---|---|---|
transaction | Updated | Aligned with Klarna's latest data structures |
payout | Updated | Aligned with Klarna's latest data structures |
Stripe: Discount & Coupon Data
Expanded the Stripe integration to include detailed coupon and discount data on individual subscription items.
2 total changes
| Table/column | Change type | New name | Notes |
|---|---|---|---|
subscription_item | |||
column | New Column | coupon_id | Associated coupon identifier |
column | New Column | discount_amount | Discount amount applied |
Facebook Ads: Multi-Account & Insights Enhancements
Added a has_actions field to Facebook Ads Insights reports for more granular action breakdown control. You can now also configure the integration to sync multiple Ad Accounts at once. Improved API rate limit handling with smarter retry and backoff logic.
1 total change
| Table/column | Change type | New name | Notes |
|---|---|---|---|
ad_insight | |||
column | New Column | has_actions | Granular control over action breakdowns |
TikTok Shop: FBT Inventory & Order Statements
TikTok Shop now syncs fulfillment-by-TikTok inventory levels and order statement transactions, giving you visibility into FBT stock and financial settlement data.
2 total changes
| Table/column | Change type | Notes |
|---|---|---|
fbt_inventory | ||
| New Table | FBT inventory levels with per-SKU breakdowns |
order_statement_transaction | ||
| New Table | Order statement transactions with per-SKU details |
AppLovin: Campaign Report Schema Update & Lookback Window
AppLovin report schemas have been restructured — creative_set_id and external_placement_id are now synced in advertiser-level reports instead of campaign-level reports for more accurate attribution. Reports also now include a daily lookback mechanism to automatically capture retroactive reporting adjustments.
4 total changes
| Table/column | Change type | New name | Notes |
|---|---|---|---|
advertiser_report | |||
column | New Column | creative_set_id | Moved from campaign report |
column | New Column | external_placement_id | Moved from campaign report |
campaign_report | |||
column | Removed | creative_set_id | Moved to advertiser report |
column | Removed | external_placement_id | Moved to advertiser report |
TikTok Ads & Amazon Seller: Rate Limit Improvements
Optimized data fetching for TikTok Ads GMV Max daily reports and Amazon Seller Central Inventory/Pricing data to better respect rate limits and reduce interrupted syncs.
Platform improvements
Postgres & Redshift: Auto-Create Sub-Tables
Incremental syncs to Postgres and Redshift now automatically detect and create missing sub-tables on the fly, eliminating the need for a Full Sync to generate new sub-tables.
CDC: Concurrency Limits for Snapshots
Large initial data snapshots via Change Data Capture now enforce strict concurrency limits to protect source databases from overload.
Bug fixes
- Amazon Ads: Resolved multiple Amazon Ads sync failure issues — improved token expiration handling, missing campaign budget ID/ASIN errors, date-range calculations, and API pacing.
- Facebook Ads: Fixed an edge case causing duplicate rows in Facebook Ads data warehouse syncs. Added automatic retry when the API returns empty creative data.
- TikTok Ads: Fixed TikTok Ads sync failures caused by empty "platform" fields in campaign reports.
- Amazon Seller Central: Adjusted Amazon Seller Central API pacing to prevent rate-limit failures.
- Netvisor: Fixed Netvisor sync failures when non-numeric characters appeared in postal code or purchase invoice fields.
- ShipHero: ShipHero syncs now handle API gateway timeouts by dynamically shrinking data batches, preventing job failures.
- GoHighLevel: Fixed a pagination bug in GoHighLevel to ensure all Opportunity records sync correctly across all account locations.
- Stripe: Corrected a bug preventing discount data from being retrieved when querying individual Stripe subscriptions.
- Younium: Switched Younium "Sales Orders" and "Users" streams to Full Sync to resolve 500 errors from incremental syncing.
- Google Sheets: Fixed Google Sheets "Mirror" mode continuously appending data instead of updating existing rows.
- Postgres: Fixed large dataset syncs to Postgres failing due to strict database timeout limits.
- Midnight Full Syncs: Fixed a scheduling bug where Full Syncs scheduled at midnight occasionally ran incrementally instead.
- Data Model Imports: Fixed dbt model imports by automatically detecting and repairing missing or broken raw view references in your data warehouse.
- Reverse ETL: Fixed an issue preventing account deletion when active Reverse ETL syncs were still running.
- App Update Prompts: Fixed an issue where clicking "Update" on the new version toast notification wouldn't refresh the application.