Tracking Sync Time In HubSpot and Salesforce

There’s a ton of research on how impactful ‘speed-to-lead’ is on the sales process. The faster your leads end up in the call queue, the more likely you are to convert them to an opportunity and customer.

Our team is always attempting to measure how long it takes our leads to make it to the sales team. So, I built a way to track that. If you want to copy what I’ve done feel free! Alternately, if you have suggestions on how to improve on this tracking or suggestions to improve the speed at which sync occurs between HubSpot + Salesforce please let me know in the comments or send me a message on my contact page.

Before we get started I think it’s important to note that our organization used the “inclusion list” functionality of the HubSpot and Salesforce integration. This causes additional snags in sync time so we wanted to measure what our average was…

In order to get this going you’ll need to setup some things in both HubSpot and Salesforce:

  1. Multiple HubSpot Workflows
  2. Custom Salesforce Fields (For calculations)
  3. Smart Lists (HubSpot)

Ready to track your speed to lead with HubSpot and Salesforce? Let’s go!

Step 1: Build Custom Field in HubSpot

First you’ll want to build a custom NUMBER field in HubSpot. You can call it whatever you like, but I chose to call mine “HubSpot to SFDC Delay”.

screen-shot-2016-10-13-at-1-11-17-pm

Step 2: Build Custom Lists in HubSpot

I built one list in HubSpot called “Workflow List | Leads Created Today – On Inclusion List – Not Synced”. We’ll call it “Workflow List” from now on.

The name of this list is pretty clear on it’s purpose but to break that down further here is what it does:

  1. It looks for leads where:
    • Create Date is less than 1 day ago
    • Is a member of the Inclusion List (the list where leads go to be sent to Salesforce)
    • The Last Salesforce Sync Time is unknown (this is a field provided by the integration)
    • The contact property Lifecycle Stage is not equal to Sales Qualified Lead or Opportunity. (I don’t need to find newly created contacts that have gone beyond MQL b/c MQL is the primary trigger for our leads to go to Salesforce. This could be different for your organization.)
  2. Once the lead makes it onto this list, the workflow I built will be triggered automatically. That workflow is called “Administrative | Step 1 Sync Delay Counter (0-5 minute)” As long as the lead stays on my list, they stay in my workflows.

This list is really valuable for both our Sales team leads and Marketing Managers / Ops Managers. They can use this list to quickly view who is still not synced with Salesforce and either use manual triggers to push leads that seem to be stuck or troubleshoot what might be causing the problem.

The other day I actually caught an integration error before HubSpot had time to publish any alert about it…. I know because I was on the phone with support when they told me a bug had been found during our call. 🙂

Step 3: Build Workflows in HubSpot

I have multiple workflows built to calculate how long a record is on my Workflow List. I did this to limit the number of steps in each workflow because it’s much easier to see the performance of a workflow when there are fewer steps.

The workflow uses the “increment a numeric property” functionality to incrementally count how long the lead is a member of the Workflow List. I set 1 minute delays between each step starting at 0 up to 5 minutes. After the completion of that workflow the lead will be enrolled into the next workflow and continue incrementing numerals of 1. I repeat this process through 9 workflows. This takes me all the way to 45 minutes. In the 10th workflow I increase the delays to 5 minutes and stop counting after 70 minutes.

So this means I have the following workflows active:

  • Administrative | Step 1 Sync Delay Counter (0-5 minute)
  • Administrative | Step 2 Sync Delay Counter (5-10 minute)
  • Administrative | Step 3 Sync Delay Counter (10-15 minute)
  • Administrative | Step 4 Sync Delay Counter (15-20 minute)
  • Administrative | Step 5 Sync Delay Counter (20-25 minute)
  • Administrative | Step 6 Sync Delay Counter (25-30 minute)
  • Administrative | Step 7 Sync Delay Counter (30-35 minute)
  • Administrative | Step 8 Sync Delay Counter (35-40 minute)
  • Administrative | Step 9 Sync Delay Counter (40-45 minute)
  • Administrative | Step 10 Sync Delay Counter (45-70 minute) | 5 Minute Intervals now

Can you tell I’m a fan of naming conventions?

Step 4: Build Custom Email Alert

Once a lead reaches the 15 minute mark on the third workflow, I built an automated email alert to tell the team we may have a problem with sync delays. This email allows the team to quickly jump to the Workflow List in HubSpot and manually sync records or troubleshoot any problems.

screen-shot-2016-10-13-at-4-13-08-pm
Sample of the email alert we send to the team. Hint: It has a GIF.

Step 5 (optional): Build Formula Fields in Salesforce

If merely alerting the team isn’t enough, you can also build a calculation field in Salesforce to produce average speed-to-lead dashboards. To do this consult your Sales Operations Manager to help or if you’ve got an inquisitive / adventurous side give it a shot yourself… I did!

Here is how I’m calculating the values with a formula field in Salesforce:

Field Name:
“HubSpot Created to SF Created Delay”

Formula:

IF(HubSpot_Create_Date_Time__c = NULL, NULL,
IF(HubSpot_Original_Source__c = “OFFLINE”,NULL,
IF(CreatedBy.Id = “[USER ID GOES HERE]”,
IF(CreatedDate<HubSpot_Create_Date_Time__c,NULL,
IF(HubSpot_First_Conversion__c=NULL,NULL,
(CreatedDate – HubSpot_Create_Date_Time__c)*1440)),NULL)))

This essentially calculates the difference in minutes between when the record was created in HubSpot vs Salesforce. Calculated when create date in HubSpot is known, lead source is inbound (meaning generated by our marketing team), and Salesforce Created Date is after the HubSpot Created Date. (which means the lead was new)

Field Name:
“HubSpot MQL to SF Minute Delay”

Formula:

IF(HubSpot_Became_MQL_Date__c = NULL, NULL,
IF(HubSpot_Original_Source__c = “OFFLINE”,NULL,
IF(CreatedBy.Id = “[USER ID GOES HERE]”,
IF(CreatedDate<HubSpot_Became_MQL_Date__c,NULL,
IF(HubSpot_First_Conversion__c=NULL,NULL,
(CreatedDate – HubSpot_Became_MQL_Date__c)*1440)),NULL)))

This essentially calculates the minutes it took to be created in Salesforce after being created in HubSpot. Calculated when the minutes are less than one day, when the record is generated by an Inbound Lead Source (not imported from our APP), and first conversion is known.

The HubSpot dashboard I built looks like this:

screen-shot-2016-10-13-at-4-51-22-pm

Using HubSpot’s Reporting Addon, I am showing the average time (in minutes) it takes to create a record in Salesfore when the lead becomes a Marketing Qualified Lead broken down by the month they became an MQL. Cool huh?

More Help:

Looking for more help on managing the HubSpot + Salesforce integration? Jump over to some of these help articles posted by the HubSpot team:

Advertisements

Landing Page Background Images with Rich Text On Top [HubSpot Hack]

Landing Page Background Images with Rich Text On Top [HubSpot Hack]

Have you ever wanted to build a landing page with a custom background image? How about this… have you ever wanted to build a landing page with a custom background image that your team can change on-the-fly? Well I have! And now I can!

About six months ago I saw a growing set of problems.

  1. I’m the only one that can do dev work in HubSpot.
  2. Our design team keeps making awesome stuff that HubSpot isn’t set up to handle out of the box.
  3. Our content production is increasing rapidly and needs to get out the door just as fast.

This observation led me on a quest to find a solution, one I was certain would exist in HubSpot given my initial understanding of their platform.

So I took it upon myself to look into HubSpot custom modules (this was after lots of research on how the code base works in HubSpot).

I spent a considerable amount of time learning how to build a custom module, and then more time learning how to implement it on a landing page (with custom CSS to help).

So, to get to the good stuff, here is what our new page can do:

In the hero of our landing page, we can now edit everything!
See the GIF below or watch my YouTube clip – make sure you have sound on 🙂

The custom HubSpot module contains the following fields:

  • Text Field x 2
  • Rich Text Field x 2
  • Image Field
  • Choice Field (this was for fun but turned out to be very useful)

ScreenCaptureProject1

With our new module in place and HubSpot’s friendly responsive (bootstrap) framework, we’ve got a fully mobile-ready landing page template for our team to use.

Mobile Response

This means no more custom templates and CSS files for every new landing page design! WOO HOO!

If you’re looking to get started with this little HubSpot Hack, I’ll save you some time… I’m happy to show you how to build out the module but first, I’m going to go home and get an IPA… I’m a little tired from all this dev work 😉

Stay tuned.

Bulk update contacts in HubSpot – which to use: HubSpot CRM or Workflows? [HubSpot Hack]

Bulk update contacts in HubSpot – which to use: HubSpot CRM or Workflows? [HubSpot Hack]

If you’re not using the free HubSpot CRM today, then you should definitely consider turning it on. For those using the Marketing tools as well, the CRM can occasionally provide additional value to your day to day automation / administration needs. For instance, in the past (before the CRM was around) the only options you had to update details in your database were:

  1. Use a Workflow in the HubSpot Marketing tool
  2. Download a CSV, update the CSV, Upload the CSV with changes (blegh)

However, I recently discovered a little HubSpot Hack (feature) in the HubSpot CRM which allows users (with the right permissions) to bulk update the contact records from any query or view in Contacts section of the HubSpot CRM.

Here’s a quick GIF I made showing where to access this feature:

BulkEdit Contacts HubSpot CRM

The beauty of this feature is that it’s rediculously fast. There is almost no downtime between hitting “update” and the field change. I tested it today on over 16,000 records and it was finished in less than a minute (probably less than 30 seconds).

Note: The old way to update details in your database is still useful from time to time. For example, you might still want to update properties in your database when a change is made somewhere else. That’s where workflows come in. Or perhaps you need to update more than one piece of data on your records and you don’t want to wait for a workflow to complete the process, that’s where a CSV comes in.

Curious what I mean about “waiting for the workflow”? Here’s a fun fact, HubSpot will sometimes “throttle” your contact enrollments into workflows if there are too many contacts entering a workflow or lots of workflows being performed at once.

“Contacts will be enrolled in your workflow at a rate of 20 contacts per second. Workflow enrollment throttling is account-specific, not workflow-specific, so this throttling applies to workflow enrollments across all of your workflows in your account.”

You can read more about that in the HubSpot support article here.

Hopefully this little HubSpot Hack will save you some time in the future. 🙂

Have any tips, tricks, or “HubSpot Hacks” to share? Let me know by tweeting me, or leave a comment below.