Hi everyone, looking for help when syncing opportunities to a custom CRM (i.e. not SFDC or Dynamics)
Background:
Earlier this year we created a custom integration between our CRM and Marketo, which syncs person/companies
Recently we created a Lead scoring program and enhanced the sync so that MQL's from Marketo show in our CRM, and the salesperson can create opportunities from these in the CRM.
Having achieved that, I now want to sync those opportunities in Marketo. We want this because:
Creating opportunities via the API is fine, but I understand that the opportunity role object is required for opportunities to 'work' in Marketo, and it 'links' the opportunity and lead tables.
What I'm not sure of is do we need to populate the 'role' field in the OpportunityRole object, or is this only required for if you use SFDC? We currently don't enforce this field in our CRM, and don't want to (it's not that important for our business, and we don't need it for RCE or any Marketo reporting products that require it).
If we use the API to populate the following fields in the Opportunity role object: ExternalOpportunityID, LeadID and externalCreatedDate, is that enough for us the do what we want to with opportunities in Marketo?
Hopefully, this makes sense - I'm quite new to Marketo, so grateful to anyone who can help, and also would appreciate any advice from anyone who has synced opportunities to a custom CRM.
Solved! Go to Solution.
Depending on how you've integrated it (REST or SOAP), follow the API guides in developers.marketo.com to implement opportunity roles.
If you have a middleware maintaining the sync, hopefully you are able to macro the creation of an opportunity role when a new opportunity is created in CRM.
You can test this yourself using Postman and the REST API to create dummy opportunities and opportunity roles to understand how it would work.
Since you just want the opportunity information available in Marketo for smart list and trigger campaigns not for any attribution reporting, the simplest way would be using the custom object. Feed all the opportunity data in a Marketo custom object.
With a custom object you should still be able to apply all the filters and even use the trigger based on custom object. Just keep in mind that there will be one limitation with this approach i.e. the trigger works only for a new custom object record not if you are updating an existing record in the custom object. As a workaround, you can do one of the following:
hope this will help but feel free to let me know in case of any further question.
You can create a custom activity using API in Marketo for the custom object data update and use the custom activity reference in the triggered smart campaign.
Problem with the CA is you can't consult the CA fields inside Velocity, so you won't know which Oppty was updated.
I prefer a separate CO, cal lit SomeObjectUpdateLog, that you add to when there's an update. You can then refer to the $TriggerObject.updatedObjectGUID to reference the object that was updated.
Thanks for your response Amit, I had assumed it would be best to work with the existing opportunities object so hadn't thought about using a custom object. Also, I haven't used custom objects yet, but have been wanting a reason to. Will look into the detail of this, and compare to Jay's solution below. Thanks also Sanford Whiteman for your comment on this.
Depending on how you've integrated it (REST or SOAP), follow the API guides in developers.marketo.com to implement opportunity roles.
If you have a middleware maintaining the sync, hopefully you are able to macro the creation of an opportunity role when a new opportunity is created in CRM.
You can test this yourself using Postman and the REST API to create dummy opportunities and opportunity roles to understand how it would work.
I agree w/Jay - it seems like any process that's capable of automating Opportunity creation can iterate over the same list and inject OpportunityRoles. Is there some hiccup where the 1st-level object can be created but not the junction object entries?
Hello Jay,
I'm not the developer who built the integration but yes we used REST and its via a middleware that is a bolt-on product to our CRM / ERP. I hadn't even thought of dummy roles TBH, and I prefer the sound of that to starting from scratch with CO's.
I'll just check with the developer that we can create junction object entries, but so far we haven't found anything we can't do with the integration. Will check this out along with Amit's suggestion above and come back and update with what we did, for completeness. Thanks for your input.