I wonder if I misunderstand something fundamentally about Marketo Custom Objects and I hope someone can help me think straight.
I want to bring information from the Salesforce User Object into a Marketo Custom Object. A Salesforce User has fields like First, Last, Email Address, and lots of additional information that could be helpful to build Account Owner signatures in Marketo emails, like a calendar link, a link to a user image, phone, complete address, job title and some more. That information is not available in Marketo through the native user integration. (Right?)
So let's assume we have 500 sales rep users in Salesforce that are Account Owners. The native integration syncs over the field "Account Owner Email Address" to Marketo persons which I think could function as the link field for the object.
Marketo Person: Account Owner Email Address == Salesforce User Object: Email Address
So if I brought the users into a custom object, I'd have 500 unique Custom Object Records which are the various users. They'd be linked to as many persons as have the field "Account Owner Email Address" populated. A many-to-one relationship from Marketo's perspective: Each Marketo Person can have exactly one User Custom Object Record, but many Marketo Persons share the same one.
Is that construct even possible? I know there's one-to-many, and there's many-to-many (although I have never done that myself), but is there also many-to-one?
I've built the object this way, had my integration partner API populate the object, but it seems the integration created exactly one Custom Object Record per Salesforce User. And it also seems it could tie this one CO record only to the first occurrence of a Marketo person it could find.
Does anyone know more?
Interesting use case. I haven't seen anything like this worked out in Marketo. The Marketo docs also state that you can create only one-to-many and many-to-many type relationships between custom objects and Marketo standard objects.
Probably you already have this in mind but how you can achieve this is by creating custom fields on the lead and contact object and copying the data from SFDC user object to these custom fields on lead creation or anytime there is an update on lead owner/account owner field. Let these custom fields sync back to Marketo and use those in emails. Thoughts?
thank you for your thoughts! And no, actually I hadn't thought about copying the Salesforce object fields onto leads and contacts. I'm sure that would work though, but I'm not a Salesforce admin myself and I'm bugging that team sufficiently already, and also it's not exactly elegant. 🙂
Here's what Marketo Support came up with:
"What this tells me is that what you may need here is to order things differently to support a many-to-many relationship in order to associate multiple person records with the same SFDC user custom object. Does that sound about right? Feel free to refer to the attached PDF (CustomObjectDiagram) that contains a diagram of how you could set this up."
So he's hinting that a many-to-one relationship is in fact a many-to-many relationship type. I don't want to say that I completely understand this, but I guess that's what I'm going to do.
Interesting, I also don't really understand how this is going to work but I can guess it's not a straightforward thing. You have to use API and an external system to feed the data in an intermediate object and then link that to the user object somehow. Would love to hear back from you on how you end up implementing it.
Eventually I didn't. That SFDC User Object which would now be a secondary object cannot be accessed by Velocity, and that was my only use case.
But here's what I learned: If you create a Custom Object in Marketo _without_ a link field, that object becomes available as the link for another object:
That other - or intermediary - object will need to have two links: The one displayed here that links to the second object and one that links to either a person or a company. Where I struggled then was the next thing: This intermediary object also needs to have a dedupe field, and to be honest I had no clue what that would need to be.
But anyway: As secondary objects can't be used in Email Scripts, my project fell apart.