Industry Software DevelopmentTechnologies SnowflakeTableauSalesforceMarket USA~30% ShareFile contacts identified for cleanup using Snowflake logicTwo Salesforce orgs governed through Snowflake and TableauScalable cleanup enabled through Tableau dashboards built by B EYEWhen Growth Through Acquisition Clutters Your System of RecordProgress is a global software company that helps organizations develop, deploy and manage business applications. Over the years, it has expanded its portfolio and customer base through multiple acquisitions, bringing in new products, teams and systems, including contracts, sales history and pipeline. Eventually, all of that needs to live in Salesforce, the system of record for sales. Over time, however, that success created a familiar problem: CRM bloat. “With every new company being integrated and added to the stack, there is a complexity with all the sales and pipeline information that is coming,” says Andrei, part of the Global Sales Operations team. “This needs proper governance and cleanup activities to make sure that when sales go to Salesforce, it is the source of truth and has all the correct assignments, alignments and processes.” After acquiring ShareFile, as expected, Progress wasn’t dealing with just one Salesforce org, but two: The main Progress CRM, covering most product lines and business units A separate ShareFile CRM, kept as an independent instance after the major acquisition Both instances had accumulated: Duplicate contacts: the same person appearing multiple times with different details Duplicate accounts: the same company represented in different ways Inactive records: contacts and accounts that hadn’t engaged with Progress or ShareFile for years For sales, that meant confusion on every call: Which contact is the right one? Why is this account in two geographies? Who actually owns this relationship? “It causes misalignment,” explains Andrei. “We could have a contact with the same name, but duplicated in a way that it’s aligned to different accounts or geographies. Our sellers are aligned on geographies and products, so we need to make sure those parameters match to avoid coverage issues.” A dedicated data cleanup project was critical. The Brief: Give Sales Ops a Single Source of Truth for Merges and ArchivalsThe project, one of the main initiatives for the second half of 2025, was led by Project Manager Martina from Global Sales Operations. The objective was clear: identify duplicate and inactive contacts and accounts in both Salesforce instances, and give internal teams a governed, transparent way to decide what should be merged, archived or kept. In practice, that meant: Defining business criteria for duplicate contacts and accounts in Progress and archival candidates in ShareFile Building Snowflake data sources that encode this logic Creating Tableau dashboards that make the data easy to explore, filter and act on Handing over clean lists to internal Salesforce specialists, who would execute merges and archival using existing jobs in Salesforce The work had to respect that Progress and ShareFile operate differently. Progress’ world revolves around assets; while the ShareFile operations revolve around subscriptions and contracts, which meant the archival logic couldn’t simply be copied across. Bringing in B EYE: an Expert Partner to “Do the Magic” To make it happen, Progress turned to B EYE as a specialist partner. On the B EYE side, Hristo Angelov took the lead as the primary consultant (building on a previous phase started by his colleague Mihail), working hand in hand with Progress’ Global Sales Operations and Data & Analytics teams. From the first calls, he became the point person for turning scattered Salesforce objects into clean, governed views and then into interactive dashboards that business users could actually work with. Martina describes the collaboration crisply: “It was an easy process in general. The communication felt easy and natural.” Andrei, coming from a more business-oriented side of Sales Ops, felt the same: “It was an absolute pleasure working with Hristo. He’s super knowledgeable and senior — that’s visible even for someone like me who is not that deep into databases and queries. He was able to translate complex technical things into an easy-to-understand message for us and for the sales team.” For both of them, it mattered that B EYE didn’t feel like a detached vendor. “Hristo really felt like an extension of our team,” says Martina. “He was directly participating in all the bi-weekly calls, providing feedback straight away in chats, joining sessions with Finance, Tax and other teams. He and our internal data & analytics colleague were really in harmony throughout the project.” From CRM Bloat to Governed, Visualized CleanupRather than starting from scratch, Hristo and the team began by listening and analyzing. “The issue was that there was too much bloat in Salesforce,” Hristo recalls. “When a sales rep gets on a call, having many accounts with the same name or contacts with the same email causes a lot of trouble. They needed this fixed to streamline their sales work.” Working closely with the team, he: Analyzed large samples of Salesforce data from both orgs to spot patterns — missing emails, inconsistent fields and suspicious clusters Joined multiple cross-functional calls with Sales Ops, Finance, Tax, Marketing Operations and Data & Analytics to understand how each team used the data and which edge cases mattered Helped the group align on concrete criteria for when a contact or account should be merged as a duplicate or qualified as an archival candidate Once the criteria were agreed, Hristo built Snowflake queries that pulled together the relevant Salesforce objects (contacts, accounts, assets, subscriptions, etc.) into clear, structured sources. These sources focused on duplicate contacts and accounts in Progress and ShareFile, “moved contacts” (contacts that changed accounts) and archival candidates on the ShareFile side. Those sources then powered a set of Tableau dashboards that provided capabilities raw tables never could: “The dashboards were very much needed,” Andrei explains. “They were a visual representation and easy access for the different scenarios we had created based on the criteria. It was easy to track and trace and also report on the progress we were making on the different tasks.” Instead of asking “which contacts might be duplicates?”, Sales Ops and the internal Salesforce team could now see how many records were affected, which criteria they met and how cleanup was progressing over time. From there, internal Salesforce specialists exported the IDs from the dashboards and used existing jobs to merge and archive records safely, staying fully in control of the final actions. Measurable Salesforce Cleanup at Scale Across Progress and ShareFileThe project ran over roughly six months, covering both Salesforce orgs and multiple rounds of alignment with stakeholders. On the ShareFile side alone, the analysis showed that: Around 20% of contacts met the criteria to be archived A further 15–16% met the criteria to be merged as duplicates Accounting for some overlap, this meant that around 30% of ShareFile contacts could be removed from active use — either by merging them into a single source of truth or archiving them altogether. For a company operating at Progress’ scale, this reprsents a significant reduction in CRM complexity. Hristo’s view is that the six-month timeline was driven less by the technical work and more by the necessary coordination: “If we remove the logic-gathering and criteria-gathering part, the technical work itself could be a couple of weeks or a month,” he says. “What took time was finding the right people with the right knowledge.” What Changed for Sales Ops at Progress1. Salesforce Is Cleaner and More Trusted There are fewer duplicates for sellers to stumble over when they look up contacts and accounts. Coverage alignment (by geography and product) is more consistent, reducing the risk of missed or double-covered accounts. Salesforce is closer to the “single source of truth” that Sales Ops wants it to be. 2. Sales Ops Has a Repeatable Framework, Not a One-Off Fix All criteria and logic for merge/archival are encoded in Snowflake and described in documentation. The Tableau dashboards are now standard tools for tracking data quality and cleanup progress across both orgs. Progress’ internal teams can reuse and adapt the framework as the business evolves. 3. B EYE as a Scalable, Trusted Expert Partner Martina and Andrei both stress that this kind of project is hard to do purely with internal resources: “Every company has issues with data,” says Martina. “Systems of record are bombarded with dummy information that needs to be cleaned up. The big opportunity is that companies don’t need to build this knowledge and experience internally, which usually takes a lot of time. It’s really easy to reach out to you as a provider of this already available experience.” Andrei is equally direct: “I like how professional things are handled. If somebody needs a professional approach, B EYE is the proper fit.” For both of them, Hristo’s role demonstrates what B EYE brings: “Within weeks and months, your experts — in our case, Hristo — are able to understand the issue and really support in solving it out,” Martina concludes. Thinking About Your Own Salesforce Cleanup?If your organization has grown through acquisitions, runs multiple Salesforce orgs or simply has years of CRM “bloat,” you probably recognize Progress’ situation. The Salesforce Contact and Account Cleanup initiative shows that with the right criteria, the right dashboards and the right partner, you can bring order to duplicated and outdated records, give Sales Ops transparent control over merge and archival decisions and do it with a compact, embedded expert rather than a massive program. If you’re wondering what that could look like for your CRM estate, B EYE can help you scope, design and deliver a similar initiative — end to end. Download the Progress x B EYE Short Case Study PDF or Connect with us about your own Salesforce transformation.