New Breed's Solution
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.
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 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.
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.
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 touch points 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.