Campaigns in Salesforce

So for Hubspot and Salesforce, I want to ensure that my lead creation is associated with a campaign in Salesforce. If I upload a lead list, how can I automatically relate those to an existing Salesforce campaign? For example, I receive a several lists of leads from people that signed up at our booths at an event. How can I assosicate those in Salesforce with a campaign created for that event?

Hi, @SalesforceScott. Depending on how often you need to do this, it may be easier to start in Salesforce.

HubSpot workflows will allow you to set Salesforce campaign membership with a campaign member status. This is the only place in-app you'll be able to set both of these values. While you wouldn't be able to do this explicitly in just a list import - you'd have to import the list, then build a workflow to act on all contacts in that list. If this is something you need to do on a semi-periodic or ongoing basis, you can set up the HubSpot workflow to fire, based on specific data you import.

If a record is already syncing between HubSpot and Salesforce, then any new campaign enrollment on the Salesforce side syncs back to HubSpot. (However, only the campaign IDs are stored in a HubSpot property. No HubSpot property will house the campaign member status value on any associated Salesforce campaign.)

Depending on your use case, it may be easier to do the campaign association directly within Salesforce, rather than the import-and-run-them-through-a-workflow steps in HS.

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

Hi, @SalesforceScott. Depending on how often you need to do this, it may be easier to start in Salesforce.

HubSpot workflows will allow you to set Salesforce campaign membership with a campaign member status. This is the only place in-app you'll be able to set both of these values. While you wouldn't be able to do this explicitly in just a list import - you'd have to import the list, then build a workflow to act on all contacts in that list. If this is something you need to do on a semi-periodic or ongoing basis, you can set up the HubSpot workflow to fire, based on specific data you import.

If a record is already syncing between HubSpot and Salesforce, then any new campaign enrollment on the Salesforce side syncs back to HubSpot. (However, only the campaign IDs are stored in a HubSpot property. No HubSpot property will house the campaign member status value on any associated Salesforce campaign.)

Depending on your use case, it may be easier to do the campaign association directly within Salesforce, rather than the import-and-run-them-through-a-workflow steps in HS.

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

I have a similar case which is why I'm posting here, but my difference is that I dont want to set campaign status' in Salesforce from HubSpot, I want to be able to import the campaign member status from a Salesforce campaign into HubSpot. Is that possible? I know that you had written this in your response earlier:

"If a record is already syncing between HubSpot and Salesforce, then any new campaign enrollment on the Salesforce side syncs back to HubSpot. (However, only the campaign IDs are stored in a HubSpot property. No HubSpot property will house the campaign member status value on any associated Salesforce campaign.)"

If I create a custom field for that campaign member contact in Salesforce and Create a custom property in HubSpot, and sync the two would that be a good workaround?

Please let me know what your thoughts are. I've been researching this for a while and haven't been able to come up with a workaround. If i do a simple Salesforce import based on campaigns, it does not import the campaign member status.

Hi, @dtesfaye. The issue is that you have a 1:many relationship representing campaign member enrollment in Salesforce, and no such relationship exists in HubSpot.

Say there was a solution for one campaign. It'd work great for that one use case, but what happens on the second? The third? How are you going to fit multiple campaign member statuses into a single HubSpot contact property? Is it going to be something where the value changes over time? What happens if someone gets the same campaign member status on two separate campaigns?

These kinds of challenges arise because the way that data fits into Salesforce isn't a way it can fit natively in HubSpot, connector or no connector. The best you'd be able to do is push the most recent campaign member status onto a lead or contact field, mapped to HubSpot. Even then, you'd only get the most recent campaign member status appearing.

If there's really just one key Salesforce campaign that matters to contacts syncing between HubSpot and Salesforce, you may have some options. Just not if it's more than that.

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

I realized I commented on the other post as well, sorry for being all over the place. You have been extremely helpful and I am finding the same issue that you bring up. I believe it may be a lot easier to reverse the my clients workflow (they are used to entering data in Salesforce first and want it to sync to HubSpot - through member campaigns). It may be easier to have them enter the contact record and all info in HubSpot first and use workflows to push member status' to Salesforce. I'll reach back out if I somehow figure out a workaround, but you are right the most recent member status push to HS custom field looks like the only way to go about this.

@dtesfaye, spent some more time thinking about this, and I think the following scheme - while still a little unwieldy - could be workable.

Create a long text field on leads and contacts first. Create Process Builder automation on the CampaignMember object, firing on create only. You'll need one branch for when the associated campaign member is a lead, and another for when it's a contact. The resultant action concatenates the name of the campaign (or an abbreviated name) and its status, delimited by whatever value you want.

What this will do is concatenate every campaign-campaign member value (which is unique to the lead or contact) into one long string, on leads or contacts. You'd then be able to segment or automate when your concatenated string contains desired value(s).

This isn't elegant, and over time, it certainly wouldn't be readable. Solutions trying to make two different data types compatible are often unglamorous.

But it should work, for whatever value a solution like that would provide.

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

Yeah, campaign member association in either Salesforce or HubSpot will work just fine; it's a matter of what's the easiest to set up and maintain.

Are your Salesforce campaigns more ad-hoc? It might be easier to use the campaign member interface in Salesforce, or even using workflow rules/Process Builder automation/flows situationally. Do you want your campaign enrollment to be triggered by actions specifically taken within the HubSpot platform, or from marketing automation actions? It may be easier building a workflow in HubSpot which handles the enrollment for you.

Think about the use case, whether this is something which would need to be ongoing versus one-time, and handle the assignments accordingly.

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

Hi,. @dbhoward. No in-app option will allow new Salesforce campaigns to be created from HubSpot. All choices are configured to enroll HubSpot contacts into existing campaigns, with existing campaign member statuses.

It's possible there are custom development actions which can do this, but nothing native in HubSpot will create a new Salesforce campaign. HubSpot needs the existing campaign ID so it knows where to write to in Salesforce.

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

Marketo's built to work in Salesforce's ecosystem. You have a nearly unlimited schema with Salesforce. With HubSpot, it's just a handful of objects. Making the limited nature of HubSpot's objects play nice with every possible customization can be a tough endeavor.

HubSpot barely has a parent/child relationship; writing to the hierarchical and junction objects of campaigns and campaign members can be a tough go.

Making something as limited as the HubSpot schema work with Salesforce often involves a lot of Salesforce-side manipulation, just because Salesforce is structured in a more complex way HubSpot isn't (and probably won't ever be).

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

I have a related issue with Salesforce Campaigns. I'd like to assign a Salesforce Campaign in a workflow, but the specific Campaign I'd like to assign is not showing up in the drop-down options for Salesforce campaigns in HubSpot. The campaign exists in Salesforce, however. Does anyone know why that would be?

Once you've ensured that the campaigns you would like to appear on the Salesforce Campaign drop-down list are marked "Active" in Salesforce, they should appear within 15-min in HubSpot as well. Please note, HubSpot Campaigns and Salesforce Campaigns are separate and not synced in any way.