Lists, Lead Scoring & Workflows

JTChal
Member

HubSpot lead score based on Salesforce campaign member status

SOLVE

I'd like to assign different amounts of points to leads based on their campaign member status for Salesforce campaigns (i.e. visited booth or qualified at booth, registered or attended webinar). I'd also like to only assign points if they were enrolled in the campaign in the past 30 days.

 

Are either of these possible?

0 Upvotes
1 Accepted solution
bradmin
Solution
Key Advisor

HubSpot lead score based on Salesforce campaign member status

SOLVE

Hi, @JTChal. This won't be possible the way you're asking. The connector talks to Salesforce campaigns in an extremely limited fashion. It can read them, and write to new campaign members. Reading any custom fields on the campaign (including parent campaigns) or campaign member is not possible. Without that, there's no possible manipulation like what you're looking for on the HubSpot side. 

 

Instead, if you have resources which can create rollup summary fields from the campaign member to the lead or contact in Salesforce, that would be more successful. You could rig a scheme where you populate the desired HubSpot Score adjustment on the campaign member, then the effective rollup sums those on the lead or contact. That lead or contact field could be used to augment your HubSpot Score. 

 

[NOTE: Salesforce will not let you natively build rollup summary fields between these objects, so you'd need to either write custom Apex, or use something like Declarative Rollup Summary Tool. A word of caution that the setup and implementation will be nontrivial for either case.]


Brad Mampe, Salesforce Analyst, Fidelity
I'm probably wrong. I may not be right about that.

View solution in original post

0 Upvotes
9 Replies 9
bradmin
Solution
Key Advisor

HubSpot lead score based on Salesforce campaign member status

SOLVE

Hi, @JTChal. This won't be possible the way you're asking. The connector talks to Salesforce campaigns in an extremely limited fashion. It can read them, and write to new campaign members. Reading any custom fields on the campaign (including parent campaigns) or campaign member is not possible. Without that, there's no possible manipulation like what you're looking for on the HubSpot side. 

 

Instead, if you have resources which can create rollup summary fields from the campaign member to the lead or contact in Salesforce, that would be more successful. You could rig a scheme where you populate the desired HubSpot Score adjustment on the campaign member, then the effective rollup sums those on the lead or contact. That lead or contact field could be used to augment your HubSpot Score. 

 

[NOTE: Salesforce will not let you natively build rollup summary fields between these objects, so you'd need to either write custom Apex, or use something like Declarative Rollup Summary Tool. A word of caution that the setup and implementation will be nontrivial for either case.]


Brad Mampe, Salesforce Analyst, Fidelity
I'm probably wrong. I may not be right about that.
0 Upvotes
JTChal
Member

HubSpot lead score based on Salesforce campaign member status

SOLVE

Thanks @bradmin. Darn. I don't know Apex and that Declarative Rollup code looks like it's beyond my skill level right now.

 

I'm trying to keep this as simple as possible. 2 separate scores (a HubSpot Score and a Salesforce Score) is not ideal. I could create fields on the lead/contact such as "Last Event Campaign Date" and "Last Webinar Campaign Date" that pull the Campaign Member Create Date of the most recent campaign with the corresponding Campaign Type. This would allow me to create HubSpot rules to add X points whenever a lead/contact was enrolled in an event/webinar/etc. within the past 30 days. I just couldn't give credit for multiple campaigns of the same type, but that's unlikely to happen anyway. 

 

I just hate watching my salesforce fields multiply like bacteria 😩

0 Upvotes
bradmin
Key Advisor

HubSpot lead score based on Salesforce campaign member status

SOLVE

One-to-many relationships are tough. If you want to say, "I want campaign member status to drive HubSpot Score", a HubSpot contact will want to know, "Which campaign? Which member? Which status?" 

 

These are tough things to manage, and ones that can be difficult to represent. In this case, see if there's an alternate way to accomplish what you're asking.

 

Maybe you could push a value from the campaign member, to the associated lead or contact, via Process Builder. Maybe that's a campaign name, or some meaningful text value, or a number. If you can put it in a (Salesforce lead or contact) field, you can map it to a HubSpot (contact) property. So maybe that Process Builder push to the contact is something you can use to drive your scoring scheme. 

 

Janky? Yes, absolutely. Effective? Possibly. This is a tough case for two systems with wildly different schemas to solve for.


Brad Mampe, Salesforce Analyst, Fidelity
I'm probably wrong. I may not be right about that.
0 Upvotes
DDerrick
Participant

HubSpot lead score based on Salesforce campaign member status

SOLVE

Kinda funny that it's a challenge Marketo solved long ago...

0 Upvotes
JTChal
Member

HubSpot lead score based on Salesforce campaign member status

SOLVE

@bradmin this app on the Salesforce app exchange looks a little less technically involved than that Github code. Think this could help do the trick?

 

https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000009i3UpEAI

bradmin
Key Advisor

HubSpot lead score based on Salesforce campaign member status

SOLVE
Yeah, Rollup Helper is fantastic. I use it all the time in my current role. The paid version is 2k USD/yr., but you can get 2 or 3 free rollups before paying, and this use case should be able to fit into that scheme. I can personally confirm it's much easier than DLRS.

Brad Mampe, Salesforce Analyst, Fidelity
I'm probably wrong. I may not be right about that.
bradmin
Key Advisor

HubSpot lead score based on Salesforce campaign member status

SOLVE

Looks like there are 3 rollups available with the free version. You're going to need at least two: one for campaign member data rolling up to leads, and the other for campaign members rolling up to contacts. On that version, you'll only be able to roll up one field's data - however, you can create any kind of conditions you want, so there'll be some flexibility there. Plan carefully.


Brad Mampe, Salesforce Analyst, Fidelity
I'm probably wrong. I may not be right about that.
0 Upvotes
JTChal
Member

HubSpot lead score based on Salesforce campaign member status

SOLVE

@bradmin I'd love to buy this tool, and I probably can soon. I'm not sure the 3 free rollups would be enough. I believe I need these distinct fields right now:

 

- Last event campaign date (member status = qualified)

- Last event campaign date (member status = unqualified)

- Last webinar campaign date (member status = registered)

- Last webinar campaign date (member status = attended)

 

Whether or not a lead registered or attended the webinar matters, and we also want to differentiate between qualified and unqualified event booth visits. FWIW, I tried using formula fields for this in Salesforce and created a workflow through PB.  It worked almost perfectly, but Salesforce treats custom campaign member status values as distinct for each campaign. Therefore, the workflow will only fire for one campaign. I.e., if I have 3 Campaigns where the custom campaign member status values are Qualified and Unqualified, the workflow only fires on one campaign 😞

0 Upvotes
bradmin
Key Advisor

HubSpot lead score based on Salesforce campaign member status

SOLVE

With that many conditions (plus whatever else you've brainstormed since installing the tool, I'm sure), it sounds like those are needs which eclipse the number of rollups available in the free version. 

 

As a worst-case, right now, you could change the conditions of the rollups and force a recalculation. That would at least get all records with all conditions initially scored, if that's a concern prior to purchasing. That'll be unnecessary if you end up buying, but would be a sort-of "fix" in the interim.

 

Couple of notes which may help on purchase: 

 

1) Deploy real-time triggers on all objects used in your rollups, both the default object and the target object. It will not be necessary to do this on objects not currently being used in your rollups. 

2) Forcing a recalculation of a new/modified rollup can be a very long job, depending on the objects involved, and how many records of that object you have in your org. While often a couple of hours, I've had some rollups take up to 12 hours to initially calculate. If possible, save these for overnight/weekend jobs, as they can be resource-intensive.

3) Don't be afraid to reach out to their support team with questions. While small, they're very knowledgable, and are very transparent to work with.


Brad Mampe, Salesforce Analyst, Fidelity
I'm probably wrong. I may not be right about that.
0 Upvotes