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_list to list.
  • Migrate from form_submission to submission.
  • 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 changes2 possible breaking changes

Table/columnChange typeNotes
List
contact_listDeprecatedStops syncing after 4/30/2026. Switch to list.
listUnchangedUse this table instead of contact_list.
Form
form_submissionDeprecatedStops syncing after 4/30/2026. Switch to submission.
submissionNew tableHubSpot v2 form submissions stream.
submission_valueNew sub-tableSubstream 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:

ColumnDescription
from_idID of the source record (matches the parent object's id column).
to_idID of the associated record.
to_object_typeTarget object type, e.g. company, deal, ticket, call, email.
type_idHubSpot association type ID. Identifies the specific relationship type.
categoryAssociation category: HUBSPOT_DEFINED or USER_DEFINED.
labelOptional label for the association (e.g. "Primary", "Parent", custom labels).

Explore HubSpot documentation → · HubSpot CRM Associations API →

Changelog

29 total changes22 possible breaking changes

Table/columnChange typeNotes
Contact
contact_companyDeprecatedUse contact_association with to_object_type = 'company'.
contact_dealDeprecatedUse contact_association with to_object_type = 'deal'.
contact_ticketDeprecatedUse contact_association with to_object_type = 'ticket'.
contact_engagementDeprecatedUse contact_association with to_object_type = 'call', 'email', etc.
contact_associationNew tableReplaces all contact_* association tables.
Company
company_contactDeprecatedUse company_association with to_object_type = 'contact'.
company_dealDeprecatedUse company_association with to_object_type = 'deal'.
company_ticketDeprecatedUse company_association with to_object_type = 'ticket'.
company_engagementDeprecatedUse company_association with to_object_type = 'call', 'email', etc.
company_associationNew tableReplaces all company_* association tables.
Deal
deal_companyDeprecatedUse deal_association with to_object_type = 'company'.
deal_contactDeprecatedUse deal_association with to_object_type = 'contact'.
deal_engagementDeprecatedUse deal_association with to_object_type = 'call', 'email', etc.
deal_line_itemDeprecatedUse deal_association with to_object_type = 'line_item'.
deal_ticketDeprecatedUse deal_association with to_object_type = 'ticket'.
deal_associationNew tableReplaces all deal_* association tables.
Ticket
ticket_contactDeprecatedUse ticket_association with to_object_type = 'contact'.
ticket_companyDeprecatedUse ticket_association with to_object_type = 'company'.
ticket_dealDeprecatedUse ticket_association with to_object_type = 'deal'.
ticket_engagementDeprecatedUse ticket_association with to_object_type = 'call', 'email', etc.
ticket_associationNew tableReplaces all ticket_* association tables.
Lead
lead_companiesDeprecatedUse lead_association with to_object_type = 'company'.
lead_dealsDeprecatedUse lead_association with to_object_type = 'deal'.
lead_contactsDeprecatedUse lead_association with to_object_type = 'contact'.
lead_engagementsDeprecatedUse lead_association with to_object_type = 'call', 'email', etc.
lead_associationNew tableReplaces all lead_* association tables.
Line Item
line_item_dealDeprecatedUse line_item_association with to_object_type = 'deal'.
line_item_associationNew tableReplaces line_item_deal.
Call
call_associationNew tableAssociations 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 transforms
  • POST /transforms — Create transform
  • GET /transforms/{id} — Get transform
  • PATCH /transforms/{id} — Update transform
  • DELETE /transforms/{id} — Delete transform
  • POST /transforms/{id}/publish — Publish transform
  • GET /transforms/{id}/versions — List transform versions
  • POST /transforms/bulk — Bulk create transforms
  • GET /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.

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/columnChange typeNotes
payment_reportNew table
transactionNew 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/columnChange typeNotes
subscriptionNew table
invoiceNew table
accountNew table
billingNew 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/columnChange typeNotes
productNew table
variantNew table
categoryNew 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/columnChange typeNotes
app_usageNew tableSessions, 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/columnChange typeNotes
sponsored_campaign_reportNew tableUnified 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/columnChange typeNotes
organization_membershipsNew tableOrganization-wide membership data
scheduled_eventsUpdatedNow includes all organization members
user_availabilityUpdatedNow 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/columnChange typeNew nameNotes
event
columnNew Columncampaign_idLinks events to specific campaigns
columnNew Columnflow_idLinks 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/columnChange typeNotes
event
eventUpdatedNow includes same-day events

GoHighLevel: Conversation Sender Fields

GoHighLevel message syncing now includes from and to sender fields.

2 total changes

Table/columnChange typeNew nameNotes
message
columnNew ColumnfromSender information
columnNew ColumntoRecipient 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/columnChange typeNotes
ticket
ticketUpdatedSwitched 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/columnChange typeNotes
all streamsUpdatedAdaptive 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/columnChange typeNotes
transactionUpdatedAligned with Klarna's latest data structures
payoutUpdatedAligned 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/columnChange typeNew nameNotes
subscription_item
columnNew Columncoupon_idAssociated coupon identifier
columnNew Columndiscount_amountDiscount 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/columnChange typeNew nameNotes
ad_insight
columnNew Columnhas_actionsGranular 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/columnChange typeNotes
fbt_inventory
New TableFBT inventory levels with per-SKU breakdowns
order_statement_transaction
New TableOrder 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/columnChange typeNew nameNotes
advertiser_report
columnNew Columncreative_set_idMoved from campaign report
columnNew Columnexternal_placement_idMoved from campaign report
campaign_report
columnRemovedcreative_set_idMoved to advertiser report
columnRemovedexternal_placement_idMoved 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.

Was this page helpful?