Latest Release
BASE_TAG=4.0.0* - Indicates an invasive or breaking change
Releases
Major Platform Release – Breaking Changes
Version 4.0.0 is a foundational release introducing significant architectural improvements across authentication, authorization, exports, and the user experience. This release includes breaking changes and fully retires the legacy UI.
Breaking Changes
Authentication and Authorization
- Complete modernization of the authentication and authorization model
- Updated role and permission enforcement across all workflows
- Changes to how users, admins, and system roles are validated
- Infrastructure changes that impact existing integrations and access patterns
Legacy UI Retirement
- The legacy UI is no longer supported
- All users are fully transitioned to the new UI with no option to revert
Major Feature Areas
Authentication and Authorization
Epic Goal: Limit and control access to designated areas of the platform based on role and permissions.
This epic represents the most foundational work in 4.0.0 and underpins nearly every other change.
Key improvements:
- Centralized and consistent permission enforcement across all workflows
- Clear separation between user, admin, and superadmin capabilities
- Stronger token validation and session management
- A scalable foundation for future enterprise-grade access controls
BDS Suppression v1: Previous Export at the Query Level
Epic Goal: Enable suppression of records based on prior exports at the query level.
This epic significantly improves how audiences and exports are managed over time.
Key improvements:
- Ability to suppress records based on previous export history
- More predictable and reliable suppression behavior across exports
- Improved handling of historical export state and downstream consistency
These changes reduce duplication and improve trust in exported data.
Upload File
Epic Goal: Introduce and stabilize file upload capabilities within the platform.
Key improvements:
- More reliable ingestion of uploaded files
- Improved validation and error handling during upload workflows
- Better consistency between uploaded data and downstream processing
This lays the groundwork for expanded upload-based workflows in future releases.
White Label Updates and Cleanup
Epic Goal: Address gaps, inconsistencies, and polish in existing white-label functionality.
Key improvements:
- Cleanup of visual and configuration inconsistencies
- Improved reliability of white-label settings across environments
- Reduced edge cases affecting branded customer experiences
BDS and BDI Enhancements
Significant improvements were made to the reliability and correctness of data processing and exports.
Key themes:
- More consistent and predictable backend split behavior
- Improved handling of suppression logic and prior export states
- Better schema consistency and token replacement
- Fixes for deduplication and audience edge cases
Exports and Integrations
Exports are now more resilient, observable, and easier to integrate with external systems.
Highlights include:
- Improved stability for long-running and large exports
- Better error handling and clearer failure states
- Enhanced tracking and capture of export events
- Infrastructure improvements supporting future integrations
UI and Workflow Improvements
With the legacy UI fully retired, the new experience continues to mature.
Key improvements:
- Cleaner dialogs and selection flows
- Reduced friction in high-traffic workflows
- Better handling of permission and prerequisite states
- Increased consistency across core product experiences
Reliability, Performance, and Quality of Life
A substantial portion of 4.0.0 focuses on platform hardening and usability.
Themes include:
- Improved loader and conversion stability
- Fewer silent failures and clearer error messaging
- More consistent permission handling in edge cases
- General performance, resilience, and maintainability improvements
Story
ENG-3201 FTP load files in BD UI if uploading to a directory that already exists
Story
ENG-3179 AccuZip Integration: Create/Update Dates during CASS/NCOA
Bug
ENG-2535 Resolve TypeError: Cannot read property 'replace' of undefined in cooker container
ENG-3006 Storage Routes: Cancel Button Persists Changes (State Saved on Cancel)
Story
ENG-3034 [BDI] Adding Bulk Fields Version Issue
ENG-3052 SFTP auth with Key-Pair Authentication
ENG-3065 Add Global Default Error Rate Validation Threshold (ConvertType-Level)
ENG-3066 Scope MD5 Duplicate File Detection by Data Owner
ENG-3158 Auto-Create Directories in SFTP output
Bug
ENG-3112 Convert Builder: Code Override editor window shrank in 3.3 (usability regression)
Targeted Release for Select Customers
Version 3.3.0 was a client-specific stop-gap release addressing urgent needs for a limited set of customers ahead of the 4.0.0 platform upgrade. Most customers will not have seen this version independently and will receive all changes as part of 4.0.0.
Key Themes
Authentication and Access Controls
- Early groundwork for upcoming authentication and authorization changes
- Bug fixes related to token handling and permission enforcement
- Improved reliability around session and user state validation
Export and Processing Stability
- Fixes for edge cases affecting BDS and BDI export behavior
- Improved handling of suppression logic and export state
- Corrections to token replacement and downstream schema issues
Operational Fixes
- Targeted bug fixes addressing client-reported blockers
- Improvements to error handling and observability in data workflows
This release focused on risk reduction and continuity while larger architectural changes were completed for 4.0.0.
Bug
ENG-1757 Bad request - 400 in front console log when logging in or refreshing view
ENG-2620 Duplicate BDS Query no longer works
ENG-2740 Exporting from BDS includes CR and LF in header
ENG-2753 BDS Not Always Taking Changes
ENG-2777 City/Address Radius Field is Lost When Uploading Data Field Definition
ENG-2781 Users can create output schemas with spaces in their name
ENG-2782 Ingestion Global Output Schema Mappings Does not Work on BDS Export Aliases
ENG-2815 Snowflake Create Table Defaults to 256 Varchar
ENG-2816 Data Ops: Change Records, Length, Output Schema to Simple Static Ranges/Lists
ENG-2872 Exports are not being captured in the Database
ENG-2873 Add spinner between login / BD Select
ENG-2924 Export Not Working with Segment Deduplication Code
ENG-2953 Can't create SFTP files.com account on dev02
ENG-2954 Merge job is not working
ENG-2955 Can't export BDS Audience (Error: Some interpolated variables not sent)
ENG-2974 Error when running site-visitor-1-day
Story
ENG-2990 [BDI] Token Replacement on Snowflake Table
ENG-2892 Emit Webhook/Event When Auto-Convert Blocked by Header Validation
ENG-1490 BDS: Allow audience builder datasource to use key pairs or OAuth to connect to customer Snowflake instance
ENG-2138 Add Cleaning of ASCII files to remove "bad" ascii characters
ENG-2236 Audience Acuity 2.0 API
ENG-2270 Case statement support in BD Select
ENG-2432 BDI: Allow use of key pairs or OAuth to connect to Snowflake instance
ENG-2699 Anchor: Get DONE list once and use cache for full loop
ENG-2820 Toggles and Chips/Highlights Need Theme Config Updates
ENG-2821 Add Ability to Swap out Text for Navigation in Theme Json
ENG-2824 Theme Color Granularity Changes
ENG-2851 Refactor DuckDB profiling to be streaming/SQL-based and run under shared job queue
ENG-2864 Performance changes for multi-select components with large numbers of Items
ENG-2902 Datafile Output Schema Select Missing Category Grouping
ENG-2913 Enable Bulk Select Option for Reload
Tech-debt
ENG-2215 Create Identifier for Export and Count Queries
Bug
ENG-2486 Will not Convert Shows in Waiting to Review Filter
ENG-2498 Files.com Fails When Entering Same Email But Different Name
ENG-2517 UX updates for minimal supported resolution
ENG-2569 Need way to see Who You Are When in Bettrdata
ENG-2595 Check for and delete output before a new run
ENG-2611 BDS Details SQL Window Hides Last Line
ENG-2629 Loading service times out
ENG-2685 Fix End of Date Issue in bettrdata-convertreport-enhanced-export integration
ENG-2696 BDS Export modal background is gone after logout/login cycle
ENG-2756 Parsed Name Fields Contain Unexpected Placeholder Values \(\\MISSING\\\)
ENG-2763 Delete Modal Losing Style in Auth Admin
ENG-2780 Local Upload Warning Missing
ENG-2829 After opening convert run modal window or validation results the whitelabel styles are reset
Task
ENG-2482 \[SPIKE\] End of Support Snowflake Client Drivers: Please Upgrade!
Story
ENG-619 data files: Allow user to soft purge files
ENG-1523 Data Relation Table V2
ENG-1626 Humpty performance improvements
ENG-1685 City Radius \(single \+ bulk\)
ENG-2134 Add ability to use delete statement when importing data in Snowflake without explicit delete of old file
ENG-2189 Address Radius \(single \+ bulk\)
ENG-2210 New Tab for Filtering Files by Status that is everything not convert complete
ENG-2356 Create, deploy, and display Data Provider Data Sources
ENG-2510 Implementation of white-labeling - first pass
ENG-2566 increase userpilot logging for debugging when provided stg key
ENG-2580 \[MS Fabric\] connection config form
ENG-2581 \[MS Fabric\] Table Names Api
ENG-2582 \[MS Fabric\] Field Names Api
ENG-2583 \[MS Fabric\] SQL Validation
ENG-2584 \[MS Fabric\] Count Service
ENG-2585 \[MS Fabric\] Export Service
ENG-2588 Add Search in Data Relation File Selection
ENG-2600 Create a Reset Filters button for clearing status filters in Data Ops
ENG-2607 "All" tab in Data Ops does not refresh with the latest data ingested - DO NOT MERGE UNTIL CONFIRM
ENG-2609 Add Ability to Change Owner When Duplicating Integration
ENG-2627 Split files should use alias if available
ENG-2628 Audit FieldConfigurations
ENG-2631 BDS: Set Alias on Export
ENG-2637 Saving the output schema should provide an alert if the version its saving is out of date
ENG-2701 New static field type ¨SQL Variable¨
ENG-2764 Slider Bar Color Not Updating
ENG-2765 Removable Login Components
ENG-2770 BDS - User Friendly / Marketplace Updates
ENG-2771 BDS - Many small UI Updates
ENG-2772 Pass BettrData Version to Userpilot
ENG-2773 Disable Help dropdown menu
ENG-2783 Remove "Calculate Tokens" in Export Modal
ENG-2809 Ability to Export Counts via Copy/Paste
ENG-2810 HOT-MIC November
ENG-2825 Update the table to use the same table type as the Data Ops Table.
ENG-2826 Fortellis Integration Setup in UI
ENG-2841 Update View Release Notes Link
Overview
The BettrData Platform 3.1.0 release brings exciting improvements designed to make data operations faster, smarter, and more intuitive.
Whether you’re managing large data pipelines, integrating with third-party tools, or exploring insights, this release makes the experience smoother and more efficient.
For business users, this release introduces enhanced ZIP code and geographic data handling in BD Select, more flexible query options, and new system safeguards that prevent errors before they impact workflows.
For technical users, new Snowflake automation and AI-driven configuration tools simplify setup, improve reliability, and reduce maintenance overhead.
Together, these updates make BettrData more reliable, intelligent, and user-friendly — empowering teams to spend less time troubleshooting and more time driving insights.
Major Themes and Features
AI: To the Forefront
- Auto-write simple CodeOverrides from prompt
- Rerun Smart Dates if list of dates is empty, not only undefined
BD Select
- Upload of ZIP codes with different radiuses
- Added labels to count histories
- Improved data relation field defaults and query handling
- Fixed static variable behavior when missing from queries
- Snowflake: Auto-create table
- Support for special SQL words in field names
- Added range and single slider toggle capability
- Required table validation for data source fields
- Improved ZIP radius logic and validation (50-mile cap)
Integration and Platform Enhancements
- Automated alerting for Prismatic integration failures
- Enhanced documentation for Facebook and Google Ads integrations
- Improved metric delivery for Customer Success reporting
- Added log visibility for manual conversion jobs and warnings
Performance and Observability
- Metrics now push directly from BettrData to AWS Lambda
- Added warnings for filenames with special characters
- Data ingestion halts automatically at configurable disk usage thresholds
Bug Fixes and Stability Improvements
BD Select
- Fixed invalid ZIP code errors
- Resolved missing default values in data relations
- Corrected static variable persistence issues
Snowflake and Data Sources
- Resolved SQL keyword conflicts in schema creation
- Fixed table auto-generation timing during sync
General Fixes
- Addressed throttling issues in processing and conversion
- Improved manual job logging for conversion and validation
- Fixed Cypress e2e test setup errors
Complete UI/UX Overhaul – Brand new navigation, layout, and design for an improved and more intuitive user experience.
SmartField Detection Powered by OpenAI – Auto-detect fields using LLM-based logic to reduce manual configuration.
AI-Assisted Schema Creation – Automatically generate schema structures using AI for faster onboarding.
Redesigned Output Schema Builder – Improved layout, save logic, and filtering capabilities for managing schema fields.
Embedded AI Chatbot & User Guide – In-app guidance and contextual help directly within the platform.
Improved Storage Route Management – Revamped tables, filters, and usability across GCS, SFTP, and Blob connectors.
Enhanced Output Field Filtering – Multiselect and case-insensitive filters for efficient schema navigation.
Better DataOps Table UX – Column resizing, improved pagination, and table density persistence across sessions.
System-Wide Spinner & Notification Updates – Unified loaders, alerts, and error messages for consistent feedback.
Improved Marketplace Navigation – Better route to integrations and fallback handling for failed loads.
Support for Recursive File Search – Enhanced file lookup logic within nested folders for GCS & SFTP integrations.
Global Accessibility Fixes – Better modals, keyboard tab navigation, tooltip standardization, and layout fixes across browsers.
Bug
ENG-866 Purge Merge Data
ENG-1132 Report View Breaking
ENG-1494 Purge does not clear .pre files
ENG-1634 Use Merge w/ originalRecord Feature
ENG-1651 Should not be able to Adjust Convert Type when file is in Convert
ENG-1676 Convert vs Merge createDate naming convention
ENG-1710 Profiler will try to take on jobs for files that have been purged
ENG-1716 Remove leftout_ for Accuzip ncoa48
Story
ENG-901 Separate Global Failed Files and Failed Routes
ENG-1191 User Friendly Usernames
ENG-1193 Access to code reduce within the UI
ENG-1284 Resolve discrepancies in parameter store
ENG-1407 CASS/NCOA Prioritization
ENG-1453 Gatherer, punt if a header matches multiple formats exactly
ENG-1549 CASS/NCOA Email Report Updates
ENG-1631 Re-enable 3.0 new version appetizer
ENG-1656 NCOA Reruns Integration
Bug
ENG-1353 Azure Blob Lists Files Recursively
ENG-1512 Trapper: Remove Entry Before Processing
Story
ENG-713 Reprocess in Processing
ENG-1410 Anchor Error Visibility
ENG-1442 Datafile Updates Integration
ENG-1449 Merge: Join each unique, no dupes
ENG-1470 Audience Acuity: Move to 2038
ENG-1510 When a Output Schema Uses Cass/NCOA, Force Required Fields
ENG-1515 Get Raw Field Function
ENG-1518 Disable Auto-Validate for Specific Convert Types
ENG-1519 Confirmation Step for "Review Complete" Action
Bug
ENG-1261 param-store sync-script issues
ENG-1321 Ignore Header Validation if Split & Not File 1
Story
ENG-1157 Email Cass/NCOA Reports
ENG-1233 Reduce size of docker logs
ENG-1237 Ops Support User Friendly Updates
ENG-1298 Create Snowflake Integration to Push Data
ENG-1305 Performant Union for Split Files
ENG-1329 NoSQL Injection Leading To Denial of Service \(high\)
ENG-1408 Audience Acuity Output Layout 2043
ENG-1415 Update commons-validator
ENG-1446 When delimiters and varied widths, default to CSV
Bug
ENG-1009 Designating Width Truncates Quote Text Qualifiers
ENG-1068 File Loaded Event: Make sure there is a wait to ensure file loaded
ENG-1071 Transform.io: Empty Collection
ENG-1120 ConvertRun Not Created
ENG-1127 Files Stuck on SFTP Server
ENG-1129 Virtual File Errors w/o route
ENG-1130 ADF Template Update
ENG-1152 Fix "TSError: ⨯ Unable to compile TypeScript" on develop
Story
ENG-907 Migrate Smartfile to Files.com
ENG-920 Audience Acuity: Output Layout
ENG-942 Front-end UI Revamp
ENG-1049 Strip Nulls Characters from Plaintext
ENG-1079 Anchor - Omit special chars / foreign Records
ENG-1084 Infrastructure Updates for 2.5.0
ENG-1104 Output: Gigasheets
ENG-1117 Hidden / Non-Mappable Fields
ENG-1137 Add FileID to Anchor job failures
ENG-1143 Snowpark in BettrData
ENG-1147 Ability to Use "Type Hint" Any Time
ENG-1156 Make Convert Accessible in override Setup
ENG-1159 Global functions
ENG-1168 Audience Acuity: Add DOB
ENG-1174 No NCOA Notice
ENG-1198 Add a "split" flag to avoid dropping non-header records
ENG-1200 Anchor PROCESS OPTION = 3
ENG-1214 Refactor: Performance Improvements
Bug
ENG-1053 Brands/Titles not accessible in codeOverride -> setup Fixed error where “Client” was not accessible in code override.
ENG-1081 Transform.io: DAG running twice Fixed error where DAG was going through a 2nd run cycle causing slowdown and errors.
ENG-1098 AI Date Formatter Bug Report Fixed error where sometimes a trailing space gets added to the AI generated date format.
Story
ENG-273 Admin Authorization Added the ability to give “Admin” to users on the BD platform. This locks the Admin tab in bettrdata unless the user is an Admin.
ENG-550 Auto Build Merge Job - Including Optional List of Join Actions Added functionality to extend the current auto join to add 0:N JOIN entries into a merge job.
ENG-809 NCOA / CASS Reports Added functionality to expose CASS reports from provider as well as compile NCOA stats.
ENG-979 External Injected Process
ENG-1036 CASS Provider: Add RDI Flag
ENG-1042 Name from Parts: Add prefix and suffix
ENG-1055 CodeOverride Reduce [Backend]
ENG-1065 Manage Datafile Priorities with Ability to Terminate Non-Running Converts
ENG-1076 Merge Window Improvement
ENG-1078 Add createDate to Scala File Object
ENG-1092 NCOA Provider, if less than 300 Records run CASS Only
ENG-1093 Cooker: Test Runner Dedicated
Bug
ENG-956 Duplicate Converts
ENG-968 Deduplicate on Key as Explicit Option
Story
ENG-273 Admin Authorization *
ENG-597 Fast platform for high volume one token lookups *
ENG-606 Build Updates *
ENG-809 NCOA / CASS Reports *
ENG-857 Fortellis API Integration *
ENG-875 Original Sort Order
ENG-907 Change SmartFile use default account not service account *
ENG-915 Profit and loss detail *
ENG-920 Demographics provider: Output Layout *
ENG-946 Auto detect date pattern (smartDate.py script) + Integration
ENG-947 Profanity Checking *
ENG-957 Code Final
ENG-959 Global Web Hook
ENG-961 NCOA Integration *
Bug
ENG-873 String Double does not cast to int
ENG-928 SmartFiles.py Not Finding Matches
ENG-944 Route Mappings: Fails when using "NA"
Story
ENG-779 AccuZip Sync: Load Balance
ENG-852 Insert client specific varibles into merge jobs (when across the same client\)
ENG-874 QBO P&L by class
ENG-877 Curley Brace Delimiter Support
ENG-880 Move Profile Field to Convert Type
ENG-886 Type Mapping Based on Record Size (greater than or less than)
ENG-887 If no zip4 or dpc - seed address id w/ standardized address1
ENG-888 Option to parse name vs use raw
ENG-894 Pass Through Data
ENG-895 Table view of output in builder
ENG-916 Endpoint to get Convert Output
ENG-896 Random Nth for profile data
ENG-897 Samples of data with errors in report
ENG-905 Transform.io Performance Improvements: War Room
ENG-929 Do not allow ignore replaced in Convert State
ENG-932 Smart Fields Updates
ENG-941 Push codeFinal after Deduplication
Bug
ENG-801 Limit Demo Request API Calls
ENG-876 Contacts Not Saving
ENG-883 Quote Embedded Newlines
ENG-884 Site Visitor Large Number of Files Support
Story
ENG-674 SalesForce Integration to platform
ENG-687 AI: Separate Company Names from Name Field
ENG-777 ADF Lead Email Output
ENG-803 Snowflake: Add YYYY , MM, DD, Warehouse Params
ENG-805 Update Rollbar Token
ENG-824 Error Parsing Extreme Dates
ENG-825 Broaden Address Validation Error
ENG-865 Re-enable FTPS
ENG-871 Multiple Virtual Files
Bug
ENG-460 Report View Not Updating
ENG-760 Gatherer: When refreshing a route, make sure it's not null
ENG-769 S3 List: Unable to get file from /
ENG-780 S3 list objects 1K limit
Story
ENG-595 Admin: Global Email Notification
ENG-737 Feature Flag for cass/ncoa toggle Accuzip
ENG-783 CASS/NCOA Dynamic Positions
ENG-697 Inegration: Shopify Fix Formatting
ENG-724 Inegration: Quickbooks (AR/AP Aging Summary)
ENG-754 Inegration: Okendo Reviews
Bug
ENG-656 Webhooks cause processing to fail
ENG-699 Routes: Replacing non-existing token in S3 results in 'null' string
ENG-712 Review and fix union/deduplication/omit memory & disk space issues
ENG-734 Missing Last Name Shifting First Name
ENG-749 Transform.io /tmp space usage
ENG-750 Partition Optimization
ENG-751 Differing CASS/NCOA Layouts
Story
ENG-598 Ability to Window Merge by Client
ENG-617 Convert Type: Templates
ENG-632 Prioritize delimited over fixed
ENG-634 Demographics provider API GetById/Md5
ENG-679 Convert Report: Auto Increment Thresholds
ENG-694 Auto Create VFs
ENG-720 Global: Auto Convert Type Mappings
ENG-746 Integration:JW Player
ENG-747 MySQL: min/max dates
Bug
ENG-588 \[Issue\]: Excel file is not being parsed correctly - fake commas
ENG-667 Transform.io Running Multiple Passes
Story
ENG-635 Integrations: Enhancements & Cleanup
ENG-661 Ability to copy input to output \(no convert\)
ENG-662 Additional tables pull - Pineapple Quickbooks data
ENG-669 Option to force quote text qualifier
ENG-672 Quickbooks: Do not error on empty data
ENG-677 Convert Performance Changes
ENG-692 File Split by Byte Count
Bug
ENG-601 Slash in Excel filename bug
ENG-622 Builder: Plugging a DOUBLE in defaults does not work
ENG-647 Phone object not recognized after the second pass
Story
ENG-618 Outbound Routes: Tokens on directory for GCS
ENG-620 Integrations: Pull Months Ago
ENG-628 Add more CASS/NCOA fields
ENG-629 Address Parser API
ENG-630 Integration: Sanity Export to S3
ENG-631 PostgreSql Output Support
ENG-640 Output: MSSQL Server
ENG-641 Split Large Files
ENG-645 Convert Output: Error Updates
Bug
ENG-567 Output Missing Field Headers
Story
ENG-587 Address Standardization - Phase 2 - Integration
ENG-596 Profile Lookups : Data Enhancement Integrations
ENG-603 Tune up Shopify
Story
ENG-409 Ability to sort before joins
ENG-496 Consolidate merge / convert to avoid resource contention
ENG-543 Pentest HIGH vulnerability - Authenticated DDOS
ENG-544 Pentest Low vulnerability - outdated nginx version
ENG-545 Pentest Low vulnerability - Missing security headers
ENG-555 Quickbooks API integration
ENG-556 Auto Mixer
ENG-559 Hide columns, filter fields by quick search
Story
ENG-542 Ability to suppress known validation issues
Story
ENG-529 Compress JSON and drops output
Story
ENG-241 Transform.io: Write drops file (Enabled in Admin → ConvertType → Settings)
ENG-494 Jupyter notebook for viewing/exporting errors
ENG-518 Expose address standardization setting in admin, add fields to convert type
ENG-521 Route File List: Option to Load All
ENG-522 Do not change text case on profile fields on convert report
Bug
ENG-478 False Positive Service Alerts
Story
ENG-486 Cache Counts (performance update)
ENG-485 Add accessibility to httpOptions to DataAccessService
ENG-482 Remove logs after 90 days
ENG-476 Prototype: Facebook Ads
ENG-467 Integrations - Run Now
ENG-458 Add New Services to Status
ENG-289 View into what is converting and the order that they will be converted