Case Study

Customized reporting structure tracks 100% of revenue opportunities

As a Salesforce Independent Software Vendor (ISV), SpringCM has attended the annual conference, Dreamforce, for years. But a substantial investment in the conference helped them realize they needed to equally improve their reporting capabilities to accurately track the ROI from the event. SpringCM was familiar with utilizing their HubSpot and Salesforce platforms to achieve their current level of reporting, but they needed more.


About SpringCM

SpringCM was founded in 2005 as a secure cloud platform that manages sales contracts and all types of documents across desktop, mobile and partner applications. Their corporate headquarters is located in Chicago, Illinois, but in order to meet the demands of their rapidly growing business, two new offices were opened in 2016 in San Francisco and London.

Learn More

SpringCM's challenge

SpringCM has a marketing and sales cycle with many touchpoints and transactions, sometimes spanning an entire quarter before getting to closed-won status. As a rapidly growing organization, they needed a healthy system to support their growth and to provide a unified buying experience from prospect to customer. Due to this, they needed a deep understanding of their marketing channels (such as paid advertising, email marketing and events like Dreamforce) that continued to influence leads past their first touch. HubSpot’s Campaign Tool does a marvelous job of tracking ongoing influence on SpringCM's prospects, but didn’t always provide deeper insight into the specific channels driving these re-engagements after the first touch.

At the same time, they were on a legacy Salesforce platform filled with tons of data in need of cleaning and organization. As a Salesforce partner, SpringCM has several listings on the Salesforce AppExchange for Contract Management and Document Management, which visitors can download without interacting with SpringCM directly. As a software vendor, SpringCM also receives conversions via software listing and review sites, like G2 Crowd, where HubSpot forms can’t be embedded. Though these events weren’t occurring natively in HubSpot, they’re still highly critical conversion points that needed to be tracked. And since these conversions weren’t being natively tracked, their source showed up as unknown data in SpringCM’s Salesforce platform.

In order to achieve this full understanding of their marketing channels, SpringCM sought to maintain more reliable data on both Salesforce and HubSpot. Then, they would need deeper reporting capabilities of this external and internal data in both platforms. Ultimately, SpringCM desired this granular insight into their audience in order to make better-informed decisions on financial investments into their marketing channels and resource investments into content development.

In order to overcome these challenges, SpringCM required:

  • The ability to not only track the original touchpoint, but every subsequent one — as well as the ability to attribute each of these touches back to revenue and conversions.
  • The capacity to not only understand the ROI of each marketing channel, but the added capacity to understand what campaigns and content were resonating and delivering results within each of those channels.
  • A way to track overarching campaigns in HubSpot, but also a way to more granularly track the various marketing channels impacting the overarching campaign and compare each one.

SpringCM was in search of a partner who could provide this high visibility into their ROI, handle their web of integrations, manage the cleanup of their contact database and overcome their lack of clear data to support making tactical decisions about their marketing efforts. In the end, they came to New Breed Marketing as we could provide this extensive knowledge of the platform and the opportunities that existed to build layers of integration on top of it.

New Breed's solution

1. Audit

First, we audited all of SpringCM’s existing conversion channels — both within HubSpot and their external conversion points. After compiling their current channels, we got everyone aligned on the organization of the campaigns, associated channels and lead sources they wanted to track. Our team also established naming conventions for consistent usage of UTM parameters for SpringCM’s tracker URLs. This way, our HubSpot workflows could consistently determine conversion source and add the conversion to the appropriate Salesforce campaign.

2. Standardize Internal and External Data

Our team built a custom configuration of all of SpringCM’s various conversion points to continuously import this external data and map it to a standard framework within HubSpot for easier attribution. This allowed the critical data to flow from the Salesforce AppExchange into their HubSpot portal automatically. The diagram below shows the complexity of some of the conversions occurring in the AppExchange (and some other external channels) and demonstrates why it all needed to be standardized for HubSpot attribution.

SpringCM process flow documentation

Second, we integrated the external software listing and review sites using HubSpot Forms API, which allowed us to track this data in HubSpot as well. These two workarounds were established to start automatically integrating important external conversions into SpringCM’s HubSpot portal and eliminate the creation of even more unknown data in their platforms.

Since SpringCM is growing rapidly, they needed the ability to pivot their marketing tactics and tools to keep up the pace (e.g., live chat and event registration plugins). Knowing this, we built out this framework to allow for new integrations with HubSpot, using workflows to convert each integration's default data format into a standardized format for further processing.

3. Implement Hidden Form Fields on HubSpot Forms

In addition to standardizing the input data from SpringCM’s internal and external conversion sources, we also expanded upon the capabilities of their existing HubSpot forms to capture “Most Recent Channel” and “Campaign” from UTM parameters. Now, when visitors come to their site via Tracker URL and convert on a form, the form would be able to capture this data in associated contact properties and store it on this new contact’s record in HubSpot. SpringCM needed to capture this information in order to trigger marketing attribution workflows and set the associated Salesforce campaign.

Not all of SpringCM’s website visitors were coming from Tracker URLs, but they still needed to know the channel from which they were sourced. Therefore, our team added several more hidden fields to capture more implicit details about the source of a visitor’s conversion. We used custom-coded JavaScript to set these values and implemented it across the entire site with the help of HubSpot Content Settings. In essence, this could interpret the source of a visitor’s conversion in cases where UTM parameters weren’t available and input it into the hidden form fields in a format similar to those parameters. The custom JavaScript code would also pull in the HubSpot campaign associated with the visitor’s current landing page just in case the campaign wasn’t specifically associated with that traffic source. By capturing these details, we could continue mapping all of the conversions taking place on SpringCM’s various channels without losing out on valuable data.

4. Build Custom Contact Properties

Once this external data was flowing into HubSpot, our team coded a series of custom contact properties to accurately store this data on contact records. One of these custom properties, Recent Lead Source Detail, captures conversion data from sources such as the Salesforce AppExchange or standard HubSpot forms and stores it as a contact’s most recent channel of interaction. Regardless of how a contact was interacting with SpringCM, all data is routed through this new property to standardize internal and external data and enable attribution.

Other custom contact properties included:

  • Recent Lead Source
  • Recent Lead Source Detail
  • Original Lead Source
  • Original Lead Source Detail
5. Custom HubSpot Workflows

Our team then implemented two custom HubSpot workflows to process the details of external conversions and add “Recent Lead Source” and “Recent Lead Source Detail” properties to contact properties, as well as to add the appropriate Salesforce campaign based on this recent lead source.

  • Set Recent Lead Source: First, a recent lead source workflow gets triggered after any HubSpot form submission or external conversion. It would consider any data brought in from these integrated sources or from hidden attribution fields on SpringCM’s HubSpot forms to code “Recent Lead Source” and the additional details of that source to represent the channel of a particular conversion.
  • Set Salesforce Campaign: After the details of the recent lead source were added to the contact record, this workflow would use branching workflow logic to add this contact to a Salesforce campaign representing three points of data:

    • The overarching HubSpot campaign

    • Channel of the recent conversion (Recent Lead Source)

    • And the calendar quarter this conversion occurred

New call-to-action
6. Templatize HubSpot Campaigns

Since SpringCM wanted to track re-conversions through the funnel, we created templatized campaign structures that could be reused in both of their platforms. These structures allowed us to keep the high-level campaigns and associated assets organized in their HubSpot portal, using the Campaigns Tool, while enabling the more granular attribution in Salesforce that they desired. It also enabled scalable implementation of new campaigns each quarter as SpringCM continued to grow.

The HubSpot campaign workflow “templates” could be cloned and configured to the specific campaigns they wanted to run in each quarter. After cloning the Campaign Template, SpringCM’s branching logic is already set up to capture Recent Lead Source Details, which would be complicated and time-consuming to redo for every single campaign.

By using the templates, SpringCM only needed to update the workflow for:

  • Enrollment criteria for the specific campaign
  • Appropriate Salesforce sub-campaign details for Campaign, Channel and Quarter

The templated campaign structures in HubSpot enabled SpringCM to use Salesforce to track attribution across three dimensions: campaign, conversion channel and quarter. Once a lead converted into an Opportunity in Salesforce, any associated conversions throughout the marketing and sales cycle could be attributed as influencing that opportunity.

7. Integrate with Salesforce

SpringCM was doing an amazing job utilizing the HubSpot Campaign Tool to define and execute their marketing campaigns, but this provided high-level reporting. Due to their sales cycle and numerous touchpoints along the way, SpringCM needed to report with more granularity on their prospects' entire journey through the marketing funnel. As they were pushing their HubSpot platform to its limits, we finessed a very unique Salesforce integration on top of the platform that provided them with further insights.

Our team continued to use the Campaign Tool to organize the assets and themes of each of their campaigns, but customizing the integration to Salesforce enabled SpringCM to begin tracking the assets, channels and timelines associated with each overarching campaign and the influence of these touch points on the customer journey.

Several of their campaigns are run repeatedly as they represent important areas of their business. While the assets may be reused, SpringCM wanted new contacts to only remain associated with the exact campaign they converted on. By keeping the high-level campaigns in HubSpot Campaigns, they can easily duplicate these long-running “parent” campaigns and assets. Then, they just have to set up a new “child” campaign in Salesforce that gets associated with the “parent”. This campaign separation and customized Salesforce integration provide the necessary reporting details to accurately calculate the ROI from each channel and asset.


  1. Before this project, 16% of SpringCM’s leads were tagged as coming from an unknown source and the SpringCM team lacked full confidence in the accuracy of the remaining 84% of their lead sources. Today, 0% of their leads are from unknown sources and SpringCM now has trust in the source data that is being captured.
  2. 100% of their revenue and marketing opportunities can now be tracked with this improved integration and reporting structure.
  3. So far in FY19, SpringCM has reported on multiple high-level marketing campaigns across more than a dozen unique channels and can attribute the influence of each one on generated pipeline.

In addition, SpringCM now knows that inbound marketing, Events and Paid marketing are their best-performing marketing channels in terms of generating pipeline. It’s a good day when you know all of your inbound marketing efforts have paid off!

Since SpringCM is growing rapidly, they’re always looking for new ways to engage with their leads and grow their business, so they needed a solution that allowed for new conversion channels. Even though the Salesforce integration with HubSpot isn’t as new as other integrations, our team worked tirelessly to build a unique configuration of it in order to better serve our client. And ultimately, what we built for them wasn’t just an integration, but an entire reporting structure that easily folds in new communication channels without disrupting their capabilities.

By continuing to work creatively with their evolving technology stack, we’ve been hard at work adding further integrations to expand SpringCM’s reporting capabilities between their HubSpot and Salesforce platforms. Since the initial setup of their reporting structure, we’ve been working on three additional HubSpot Connect integrations for SpringCM. As HubSpot Connect partners, the initial integration between these platforms and HubSpot already existed, but we’re continuing to further customize each one in order to standardize the data produced and easily incorporate it into SpringCM’s new reporting structure.


Ready to jumpstart your acquisition, retention and expansion efforts?

Request Assessment