SFDC Sync: Multiple Account Associations via "Shared Contacts"

SFDC Sync: Multiple Account Associations via "Shared Contacts"

Salesforce has had default support for multiple Account associations for several years (via AccountContactRoles), but visibility into multiple Account associations (especially from MA platforms like Marketo) is generally lacking.

This month, Salesforce rolled out their Summer '16 release, which includes general availability of the new (poorly-named) "Shared Contacts" feature (https://success.salesforce.com/ideaview?id=08730000000BrBSAA0). This is an opt-in feature which unifies the existing "Contact: AccountId" and "AccountContactRole" relationships, replacing the "AccountContactRole" with a new "AccountContactRelation" object. This new feature supports both "direct" and "indirect" relationships, automatically setting the "Contact: AccountId" for direct relationships but using the junction object for indirect.

Currently, we have the ability in Marketo to sync the "AccountContactRole" junction object via Salesforce Objects Sync. This has the potential to be useful, but suffers from two major limitations:

1. Account entities are ignored in the Salesforce Objects Sync, so we cannot access fields on Accounts which are related via "AccountContactRoles". We want to specify a filter something like "Has AccountContactRole >> Account" or "Has AccountContactRole: With Account" with Account-level field constraints, such as "Revenue >= 1mil" or "State == NY".

2. The "AccountContactRole" entity does not permit the creation of custom fields, so we cannot work around #1 by mirroring Account information directly into the junction object.

The major difference between the old "Role" and new "Relation" is the ability to create custom fields on the junction object, which would resolve #2 and provide us a path to leverage many-to-many Contact-to-Account relationships from inside Marketo... so I was very excited to see if this new feature would help address some of the difficulties with handling multiple Account associations in Marketo.

When I enabled this new feature and synced the SFDC schema, I was crestfallen to discover the "AccountContactRelation" object was not available in "Salesforce Objects Sync". I'd like to see the "AccountContactRelation" exposed to "Salesforce Objects Sync", because it would be a short path to building segments from multiple Account relationships.


I run a report in Salesforce to make a list of all contacts where role = "key contact". I then export that list. I then upload that static list to Marketo. I only have to upload one field i.e. email addresses. Because all the contacts have already been synced from Salesforce to Marketo, there is no need to upload other fields. I simply use this static list upload to segment the Marketo database to identify which contacts are the key contacts.

Then I can target our email communications in Marketo to that list of key contacts. Very manual.

What is your solution?

Level 4

This is a big use case for Uber. In a restaurant Franchise model, Contact1 could own 5 different locations. Thus we "related" Contact1 across 4 other Accounts.

We have a Contact Account Relationship custom object which allows us to bring back some 1:many Account 2 through 5 fields but isn't feasible to add every single Account field into said object. Additionally, we have custom objects within the related Accounts which we need to reference. We could directly tie the Contact to each custom object but that isn't scalable either.

So, if Marketo was able to have a "Has Related Account" filter which you could treat like a custom object, you could listen across multiple Accounts to qualify that record. Additionally you could use email scripting to #foreach loop through to consolidate multiple Account campaigns into one.

Anyone from Marketo engineering able to chime in here and offer insight on when/if this might be added to the sync?  This has been a long-standing issue for companies that need to associate 1 contact to multiple accounts and market to/track each of them as such.



Level 4

We ended up creating a Marketo custom object which is updated via the API whenever a new 1:N relationship is added in Salesforce. It's incredibly flexible and useful but becomes an issue if you rely on Velocity Script to populate emails via (because of duplicate records).

Level 7 - Champion Alumni

Becoming massively important with the release and uptake of new SFDC packages like the Higher Education and NonProfit Success Pack. These use multiple account relationships inherently in the package. Marketo has to show some movement on this.

Level 4

We actually had to pivot to ET because of this functionality. The lack of Velocity depth we have on our team combined with the inability to see Related Account info means we can't qualify or report on any franchise Account model.

Hi Wyatt,

ET standing for ?


Level 4

Sorry, ExactTarget. Leveraging Data Extensions like Marketo Custom Objects, we're able to roll-up 1:N relationships with more flexibility and much less code.

Had I been aware of the lack of support for this Salesforce feature I would have blocked our migration into Marketo in June 2018.

Level 4

Although frustrating there's isn't native functionality, a SFDC admin with SOQL skills combined with an API developer can build a Marketo custom object for you and push data in. We push global related restaurant relationships into a Marketo custom object every 3min. This combined with Email Scripting gives us access to all the functionality we need.