HubSpot-Salesforce Integration Clinic: Tuesday, June 23 [Now Closed]

lalexander
HubSpot Employee
It’s time to get answers to your most gnarly, burning HubSpot questions with the Power User Clinic. Each week, we’ll be tackling the opening a discussion thread, hosted by a HubSpot expert from our Professional Services Team.
 
Come with your issues and woes, and your host and your fellow Power Users will help you solve them.
 
Today, we're lucky to have HubSpot Senior Success Consultant Amanda Danielson back to answer all of your complex Salesforce integration questions. Drop the most challenging issue you’re facing with your HubSpot-Salesforce setup below and we’ll solve it together.
new_headshot1.png

 

8 Replies 8
CatieMoynihan
HubSpot Employee

@thesnappingdog  @Driek  @Jmernst @DanielaFonseca @LROADY  Good morning!  I saw in your introduction posts that you are all utilizing Salesforce sync- have you run into any roadblocks? Feel free to run any issues you are having by Amanda! 

Happy HubSpotting! 

thesnappingdog
Contributor

@CatieMoynihan wrote:

@thesnappingdog  @Driek  @Jmernst @DanielaFonseca @LROADY  Good morning!  I saw in your introduction posts that you are all utilizing Salesforce sync- have you run into any roadblocks? Feel free to run any issues you are having by Amanda! 

Happy HubSpotting! 


dear darwin where do I begin. My pains aren't necessarily Hubspot's fault to be honest, but rather how archaic salesforce is. I don't know if this post is going to have an actual question, or if it will just become one of many rants. either way hope it's at least entertaining.

 

Our biggest challenge is 're-engaged' contacts. In other words, contacts who successfully progressed to salesforce as lead objects, were converted to account+contact, we lost the deal/opp and then in later months these people resurfaced.

 

The main issue is that hubspot operates on 1 email 1 contact basis, where as salesforce doesnt limit you to that. I don't mean that you cant have multiple emails on a hubspot contact, i mean that hubspot cant sync with 2 salesforce contacts with the same email.

 

So then for example, we either have to figure out ways to track these contacts when they resurface, and present in some list / report view. At the same time, since it's 1 email 1 contact we don't have the option to create a new lead (which i dont agree with that we should be able to but it's somehow more intuitive for sales org and sales org reporting).

 

There also isn't a way to conditionally decide when to create a lead, when to create a contact (yes, that requires an associated company which is a separate rant topic in our case).

 

This also creates issues whenever I get asked about 'sources' - since the original source of a contact can't be edited, we're effectively left with a useless contact source. Hear me out - If i get logged into hubspot in 2019 and then I came from 'Email marketing' cool, we know that our email did something good. However, maybe I run into some other priorities and the deal dies down and sometime in 2020 I revisit the idea and do some form fills on the website. This time i go directly to the website. What's my source in that case? Email marketing 🙌🙌🙌 - and if I end up buying, and god forbid use the OG source for reporting purposes, I will have just given credit falsely.

 

The worst part is what I call the 'lead void' - since Hubspot connects to the first lead/contact in Salesforce it finds, it effectively decides that is the object it needs to sync with. If that lead is not converted to account/contact, it will just sit there in it's own little bubble. If it had been connected to an account, we could tell if someone else the same company was promoted to MQL and thus promoted the company and all of its contacts to the same lifecycle. 

 

Another major issue we're faced with is accounts. We're account based - we sell to companies and we win companies as clients - not contacts. So our SQL --> won reports are all Opportunity level. We've connected all company+contacts+deals from salesforce, and built automation to set a native hubspot lifecycle to the company level (from contact stage, Opp stages, lost customer account status etc). That works fantastically for those contacts that were associated to the account in salesforce. However, since our company object truth comes from salesforce (=companies can only be created via salesforce), we can't associate contacts to companies in Hubspot. that's really because the setting 'create and associate contacts to companies' setting is either or. I would love to have the ability to associate contacts to companies without creating companies. This part is our own fault though, since our account structure is heavily regionalised (uber emea, uber apac etc). and means we can't match leads via email extension or website. 

 

Again, these aren't particularly hubspot issues, but still a huge pain when it comes to hubspot and salesforce.

 

Perhaps the most concrete (and smt you may be able to add fairly easy) is the salesforce campaign sync via workflows. You can add a SF campaign ID in a workflow, and it will neatly sync over to Salesforce. But only if that contact/lead exists there. In our case, we don't send people to salesforce until they go past the marketing qualified lead stage for the first time. If it were possible to for example, set the salesforce campaign ID in the workflow AND have hubspot retain that ID until it's ready to sync, it would be amazing. This particular problem I last investigated months ago, so perhaps this is already possible.

 

TL;DR:

 

Sport GIFs & random things: Spiderman pointing meme 2020-06-24 12-31-01.jpg

0 Upvotes
lindseygarrett
Contributor

Hey Richard,

I just read through your entire post, and have to say we do struggle with a lot of the same issues. 

 

First, sourcing...yeah. Our sales cycle is often 2+ years. So, if someone comes in from a trade show [yay!], the initial contact source is trade show. But as a sales person works with the account [same issue, that accounts are our customers, not people], they add their own contacts. Then, if an opportunity comes, say 12 months after the trade show, through continued relationship building by the sales rep, the opportunity is sourced to 'sales call'. Salesforce doesn't have a good mutli-attribution model easily available, so we struggle there. The tops at our company often want to attribute the opportunity revenue to a single source. SO, instead we have started to change the modelling of what makes marketing successful [i.e. the goals of a campaign may be more meetings set up, instead of revenue]. It has helped some, but we are still muddling through that. 

I think that is the big question with syncing, when Hubspot is the marketing model and Salesforce is based on the sales model how do we get those to align?

 

That being said, there are some challenges you mentioned we've found some resolution with. Primarily when contacts resurface. You mentioned wanting duplicate contacts to keep the source/notify of new activity. We actually had an issue with too many duplicates in our systems. Instead, we have built workflows that trigger alerts to our sales team when someone re-engages on our website. Rather than creating a new lead [that, let's be honest, the sales rep is never going to merge into their existing one in Salesforce], the activity gets attached to the existing lead/contact and the rep gets an email that says 'Your contact XX has just done YY. You need to follow up with them.' This has drastically cut down on the duplicate contact information in both systems. We go one step further and use Hubspot workflows to create tasks on existing contacts. So, if someone was already a contact in Salesforce, and they show up at a trade show, they are loaded as part of the lead upload in Hubspot, but with a task assigned. Hubspot is smart enough to create new leads [with tasks] for ones that did not exist, and just add the task to existing contacts. This allows us to track re-engagements based on workflow emails sent and tasks created. It's a separate tracking from new leads/contacts, but gives us a decent view.

 

It's not a perfect system, but our Hubspot CSM has really helped with unique workflows to meet some of these challenges.

 

[We also have the benefit though of marketing being charged with managing both Salesforce and Hubspot, so we can dig in on both sides to make the solutions work].

 

Good luck with the integration - and I'd love to hear if you or anyone else has solved the multi-attribution issue between Salesforce and Hubspot!

thesnappingdog
Contributor

Glad to hear we're not alone 🙂 

 

You mentioned wanting duplicate contacts to keep the source/notify of new activity. We actually had an issue with too many duplicates in our systems. 

 

I may have written it funny, but I meant to say we dont want create duplicates. 1 email = 1 contact makes total sense to me. Awesome to hear about the notifications - we've built something similar:

 

- When an existing contact MQLs again, we add a task directly from hubspot (via workflow)

- When existing (and new) contact requests a demo we MQL them and use the demo submitted date + add to a global demo request salesforce campaign via workflow. Sales then has to switch the status from 'new demo' to 'follow up done' in the campaign member status. That gives us a little more visibility to make sure something is done with them.

- There's also contact owner pings etc both in hubspot (email) and salesforce (notification) 🙂

 

This allows us to track re-engagements based on workflow emails sent and tasks created. It's a separate tracking from new leads/contacts, but gives us a decent view.

I think that's what we do as well, however we've added both views to the same dashboard in salesforce (for SDRs) so that they can be viewed side by side. The trouble with existing contacts is that you need a date field that gets populated based on smt, and that datefield cant be 'created date'. Unless it's a task's create date 🤔

 

I think that is the big question with syncing, when Hubspot is the marketing model and Salesforce is based on the sales model how do we get those to align?

You know we had a workshop on this yesterday. Came up with a few ideas we're gonna test. Our problem has effectively been the 'opportunity source' field which now mixes sales values (sales generated, outbound) and marketing values. 

 

I'm going to split them into two - one for sales, one for marketing. The latter we can then control and directly add values via workflows (opportunity <> deals sync!). This way, at least in our minds, we can move away from sales vs marketing since us adding values in no way impacts them. And since we would still look at the exact same pool of opps, we can then build reports that show both values side by side. 

 

Ideally later on though, I would pump in activity categories to this field. E.g "demo" or "trade show" so that we can really start seeing what type of activity precedes the opp creation. 

0 Upvotes
adanielson
HubSpot Product Team

Hi @thesnappingdog - first of all: I love your use of that meme to explain the situation Robot LOL Thanks for taking the time to talk through your current challenges with the integration. I've done my best to address each one and provide some tips that may be helpful!

I have seen some customers attempt to navigate this by using both HubSpot/Salesforce "lifecycle stage" to denote the status (MQL, SQL, etc) and then using SFDC "Lead Status" to add additional information. Some customers have used a "Recycle" lead status to denote that a customer is not interested at the time, but may be interested in the future. 

Not being able to decide when to create either a lead or a contact is another common pain point, and I hear you on that front. I have historically recommended creating all new records as leads and then using a SFDC flow/apex trigger to automatically convert leads to contacts when they meet the desired criteria. https://automationchampion.com/tag/auto-convert-lead-using-process-builder/ It's not ideal, and I have heard some pushback from customers that doing this can throw off their lead > contact conversion percentages in reporting. 

You are correct that HubSpot did not let you edit a contact's "Original Source" for a long time, but this field is actually now editable as of a few months ago (however, the drill-downs 1&2 are still not editable). I completely hear you on your desire to be able to see the source of a contact that directly led to their conversion, rather than their original source (if it was an email they opened 6 months ago). There isn't a perfect way to see this, but here are some suggestions I have, along with the drawbacks of each:

1. Revenue attribution reporting allows you to see all assets that influenced a contact with a closed/won deal depending on the attribution model you are looking at. If you look at a linear, full path, U-shaped, W-shaped, or last touch models, you can weigh in other interactions leading to their purchase. The obvious con of this method is that the contact has to have a closed/won deal in order to the get attribution data. 

2. There is a new report under "Forms Performance" when you click into a specific form that is called "Submissions by Source". This looks at the source of the session leading to the form submission (not the contact's original source-- unless their first visit was also the session they submitted that form in). The pro of this is that it shows how many contacts filled out the form as a result of which specific asstets. The con is that it does not show the names of the contacts- only the number of submissions from each source. 

3. You could write some JS that grabs the UTMs present in a contact's URL when their session on your site begins and store them in local storage on the browser. You could then write those params to a hidden form field if a contact submits a form. The con of this method is that these custom contact properties will be overwritten with subsequent form submissions

Regarding: 


The worst part is what I call the 'lead void' - since Hubspot connects to the first lead/contact in Salesforce it finds, it effectively decides that is the object it needs to sync with.

Is this because your data model in SFDC incorporates multiple copies of someone with a given email addres (maybe due to different business units operating from a single org?) The native integration will continue to operate such that HubSpot will connect with the whichever contact/lead with a matching email address was most recently updated in SFDC. However, I have seen some customers:

A) Use Selective sync to hide the duplicates from the HS integration that it should not be updating or 

B) I worked with Workato to put together a custom SFDC integration that has its own logic, whereby each duplicate in SFDC syncs to one HS contact but writes to different contact property groups depending ont he business unit. This custom solution comes at a steep cost, but the Workato team is amazing. 

I have also suggested to our product team before that we separate the "create" and "associate" functions of the "automatically create and associate contacts with companies" setting. I think it's a great idea and I am happy to raise the suggestion again. The connector should create an association between a SFDC and any associated SFDC contacts between the HS contact and the HS company-- however, it sounds like your issue is that it is expected that some of your SFDC accounts do not have any associated contacts and that because of this, HS is not associating those companies with their opportunities? 

What I typically suggest for this is to add a criteria to the WF enrollment that says "And SF lead ID OR SF contact ID is known". This ensures that the contact does not enroll in the WF that attempts to set its campaign ID until it has been created in SFDC. However, I do agree with you that it would be easier to have the WF wait for the ID to be present instead of throwing an error and ending. 

Perhaps the most concrete (and smt you may be able to add fairly easy) is the salesforce campaign sync via workflows. You can add a SF campaign ID in a workflow, and it will neatly sync over to Salesforce. But only if that contact/lead exists there. In our case, we don't send people to salesforce until they go past the marketing qualified lead stage for the first time. If it were possible to for example, set the salesforce campaign ID in the workflow AND have hubspot retain that ID until it's ready to sync, it would be amazing.

 

0 Upvotes
DanielaFonseca
Top Contributor

Thanks @CatieMoynihan for the tag!

 

My first question (since we're working on our lightning transition) is if there is any plan to enable the HubSpot visualforce page for lightning (so that it doesn't have to sit on the account detail layout). I found a workaround for this, but would love if HubSpot actually made this a feature of the package.

 

My second question is around an error I always get in the HubSpot package screen. It says, "TaskRelation of a lead can’t be created for a Task that has already had TaskRelation of contacts or accounts, opportunities, custom objects, and other entities." Does anyone else get this error? I can't seem to figure out what this is related to.

 

My third question is more related to the HubSpot Sales integration with Salesforce. We have a situation where HubSpot user emails do not always match their username in Salesforce. We can't change this, so that rules out this solution. If someone who has this issue with mismatching usernames emails a lead/contact who does not exist in either database, when the lead/contact is created, the owner is not updated and goes through lead assignment rules instead (ends up in a queue because we have no other info but the email address and name). How can we default this to always be owned by the HubSpot sender as opposed to going through lead assignment rules?

 

My final question is a little more basic. Is there any plan to include a datetime field in HubSpot? If we map a datetime field from Salesforce to HubSpot, we have to map to a date field in HubSpot.

 

Thanks! P.S. Love the updates made to the Hubspot-Salesforce integration page!

adanielson
HubSpot Product Team

Hi @DanielaFonseca , thanks for your questions! 

1- We dont have plans to update this because we think this will result in a package update, and that caused a lot of customer pain the last time we had one. Later in the year we will be adding some additional object syncs with Salesforce, as well as some errors and field mapping improvements

2- It looks like errors were occuring when attempting to populate the 'Related To' field on a Lead record in Salesforce Lightning Experience. In late April, our engineering team deployed the fix for this problem to production. There shouldn't be any new instances of the error you described moving forward, but, unfortunately, we can't automatically clean up any that occurred while this bug was active.

 

To resolve these errors, users will have to:

1. Export those Other errors
2. Look at only the errors with the message quoted above
3. Use the TaskIDs for those errors to find the Tasks created in Salesforce
4. Delete those tasks in Salesforce
5. Go back to the Other error panel in HubSpot and click "Resync," which should re-create the tasks with valid RelatedTo.  If resyncing the other errors or following the steps above for that specific error message don't resolve the errors, please reach out to our support team and reference issue INT-4014

3- HubSpot should be able to help you with owner mappings from the backend. If you reach out to HubSpot support, they should be able to re-map the HubSpot user email to the SFDC user email for you! 

4- We do support the creation of datetime fields via API! If you create a field using https://developers.hubspot.com/docs/methods/contacts/v2/create_contacts_property Retrieving that value via the API will return the datetime value, but the UI still only shows the date. 

lindseygarrett
Contributor

Just wanted to pop in and say THANK YOU for the updated integration portal! This has saved us hours and hours tracking down sync errors in Salesforce or Hubspot. It was a huge improvement that also allowed us to automate more of the leads we want to send directly to sales in Salesforce. Prior, we had to manually review every web submission in case of an error, but now we get the notifications allowing us to not have to watch every lead!