SOLVED

Advice on using opportunities in Marketo with a custom CRM

Go to solution
Highlighted

Advice on using opportunities in Marketo with a custom CRM

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:

  • It would be useful for the marketing team to view opportunities against contacts in the Marketo.
  • We want to use the Opportunity triggers and filters in SMART campaigns, for example, email contacts based on whether they have an opportunity or not, and what stage it is at.
  • We want to improve our attribution reporting for opportunities (we use Power BI, not any Marketo products)

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.

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Level 7

Re: Advice on using opportunities in Marketo with a custom CRM

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.

View solution in original post

6 REPLIES 6
Highlighted
Champion Moderator

Re: Advice on using opportunities in Marketo with a custom CRM

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:

  • Use re-occurring batch campaigns to do some actions based on the updates received in past day or past hour etc.
  • 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.

hope this will help but feel free to let me know in case of any further question.

Highlighted
Level 10 - Community Moderator

Re: Advice on using opportunities in Marketo with a custom CRM

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.

Highlighted

Re: Advice on using opportunities in Marketo with a custom CRM

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.

Highlighted
Level 7

Re: Advice on using opportunities in Marketo with a custom CRM

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.

View solution in original post

Highlighted
Level 10 - Community Moderator

Re: Advice on using opportunities in Marketo with a custom CRM

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?

Highlighted

Re: Advice on using opportunities in Marketo with a custom CRM

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.