Moving leads back through the revenue modeler

Not applicable

Moving leads back through the revenue modeler

Hi Marketo Nation!

We are updating our revenue modeler (a pretty big change!) and wondering how everyone else is handling contacts who might need to repeat the revenue model. For example,

  • Susie J is attached to an opportunity.
  • That opportunity is closed lost and her contact is recycled.
  • Two years later, at contract renewal, Susie J is added to another opportunity.
  • That opportunity is closed won and Susie J becomes a customer.

The way we have it set up now, it seems like having multiple opportunities would move the leads to the wrong stage on the success path. Any ideas on how we can show leads who are already a customer or have been previously lost, have a new opportunity? We still want them to go through the lifecycle so we can report on current status.

We're thinking about making the gates (see below) into inventory stages. Is that going to mess up the flow in the success path analyzer?

ideal revenue modeler.JPG

Any inisight anyone has would be greatly appreciated!!

Level 10 - Champion Alumni

Re: Moving leads back through the revenue modeler

We primarily sell/market to existing customers (vs. net new leads).  Because Marketo was originally designed for the latter, we had to deploy a purposeful duplicate process - which has now created a major headache for us.  But at the time (> 2 years ago), that was the only option (we're on MS Dynamics CRM).  We're now in the process of completely re-architecting our lead lifecycle, now that the custom sync filter is available.   Here are the details (and history) behind this:

Here's our integrated sales and marketing funnel:


Here is our Revenue Cycle Model in Marketo (that's based on our lead lifecycle above):


And here's an overview of our lead assignment, routing and qualification workflow:


Some specifics:

  • The value of the STATUS REASON field in CRM is key; and what Marketo constantly listens for to determine lead lifecycle status:
    • Not Sales Ready (all leads are synced over and given this status)
    • Open (Marketing has qualified it (MQL) and assigned it to Sales
    • Working (Sales has accepted the lead and agreed to work it)
    • Recycled (the lead is recycled back to Marketing and continues to qualify for any related/active programs in Marketo
  • Today, we sync any lead that has reach "Suspect" or beyond to CRM (as a LEAD record).  While these leads are far from being qualified, we do this so that Sales (and/or Marketing) doesn't create a duplicate lead in CRM (which would sync back to Marketo as a duplicate).  Today, duplicates are a big issue for us (you'll see why in a bit).
  • When there's a potential MQL that's synced to CRM, it's still synced as "Not Sales Ready", but the lead lifeycle status is changed to "Evaluation".  This is so Marketing must physically evaluate a lead before it's qualified and sent to Sales.  Leads that fit this criteria are those that achieve a lead score threshold (100pts) or fast-tracked.  Fast-track scenarios include:
    • When someone submits a contact-us form on our website and selects either "Current Customer" or "Potential Customer" from the "Relationship with Avanade" field
    • When our Teleprospecting team has identifies a sales-ready lead
    • When someone attends an event/tradeshow and are identified as needing sales to follow-up with them.  We also tag leads where we know that an existing opportunity exists - these are tagged as "marketing influenced opportunities"
    • Marketers have the ability to manually fast-track any lead at any time by clicking the "Fast-Track to MQL Status" checkbox:
  • We have built highly detailed and informative real-time alerts (for both Marketing and Sales) to ensure leads are actioned in a timely manner (and have workflows built to send these out again, if not actioned; and eventually sent to escalation managers as a last resort.  Here's an example sales alert:


To give you an idea of the complexity of our lead lifecycle workflows, here are the smart campaigns built to support it (some of these have a large number of triggers, filters and flow steps).  We continue to optimize these over time - for example, we have setup specific routing/alert smart campaigns (LL Operational) - since this, alone, is complex in that everything is country based and have marketers assigned by country - that are requested by a number of the main smart campaigns



As you know, if a CONTACT already exists in CRM (which exists as a lead record in Marketo), you cannot sync this over as a CRM LEAD record (if only that were the case, it would make our lives so much easier).  We often sell into existing accounts, so we had to come up with a solution that would allow this.  A couple years ago, we deployed a purposeful duplicates process:

  • We setup a "hidden" DUPLICATE CONTACTS (DC) workspace and lead partition. Both the workspace and lead partition were hidden from all other workspaces/partitions (23 in total) - including the default one.
  • Any new CONTACT record created in CRM syncs to Marketo and is immediately routed to the DC partition.  The record is duplicated using a webhook and then routed to the appropriate country lead partition, where it's treated like a brand new lead record and can sync - when appropriate - to CRM and qualify for any of the lead lifecycle workflows we have in place. This duplicate workflow also applies to any lead in CRM that gets qualified into an opportunity (now a contact record exists).  We let that lead/contact complete the lifecycle until closed-won/closed-loss status exists.  And then the duplicate workflow kicks in.
  • I don't think I need to explain the issues around duplicates, but the most pressing ones are as follows:
    • How Marketo deals with duplicates - even when they're contained in a "hidden" partition.  This affects lead engagement in several ways: see one of my recent posts on this: If duplicate leads are an issue, be aware of how Marketo determines which lead is active
    • You lose that "single record of truth" approach since not all field values carry over to the new lead (nor is historical activity carried over)
    • If/when a lead is synced to CRM and eventually converted/qualified to a contact/opportunity, we have to manually merge the two contacts in CRM


Today, we are in the process of re-architecting the purposeful duplicate workflows.  We will be taking advantage of the custom sync capabilities of the Marketo CRM plug-in.  In a nutshell:

  • We will eventually remove the DC workspace and lead partition and no longer create duplicates of existing contact records in CRM.
  • For a short duration, we will have to work quickly to clean up all of the duplicate leads that will be re-routed to the country partitions that used to sit in the DC partition.  We don't want to delete these since they're all still tied to actual contact records in CRM.  We'll be doing a lot of merging in both Marketo (where only one of the records sits in CRM) and CRM (where both records sit in CRM - since this has to be done on the CRM side).  The majority of these duplicates will be a LEAD record and a CONTACT record in CRM.  So we'll first need to qualify the LEAD record and then instantly merge the new CONTACT with the existing CONTACT record.  Yes, this keeps me up at night!
  • The first time a lead comes through the system (they don't exist yet in CRM - either as a LEAD or CONTACT), we let them go through the lifecycle as normal. They get converted into a contact, qualified to an opportunity, etc.
  • When they hit the final lead lifecycle stage (or are disqualified/recycled), we will reset their behavior score to 0.
  • We’ll let that contact go back through the lifecycle again.
  • When the contact hits the Evaluation/MQL status again, we’ll create a duplicate lead by calling a webhook (this is only temporary). We’ll sync this new lead to CRM with the link to the existing contact and account that it was created from.
  • This duplicate lead in CRM will be hidden from Marketo using the new_synctomkto field. We’ll delete the duplicate lead from Marketo as soon as the sync is successful to CRM. The contact will remain at Evaluation/MQL status at this point.
  • If any action is taken on that lead, Marketo won't be able to see it, nor trigger off of any STATUS REASON change.  Also, real-time alerts won't be able to be sent out.  And finally MSI data will be blank since this is a new temporary lead record.  To overcome this:
    • We will create the necessary custom fields on the CONTACT entity in CRM and build workflows that will populate these fields (temporarily) so that Marketo will see whatever activity it needs to see to process the workflows that are part of our lead lifecycle.
    • For MSI, I understand that there is an option for us to replace the MSI call within the lead record so that it is actually using the activity from the parent contact record.  I don't think anyone has done this yet, so we'll be the first.  Fingers crossed!
  • When the lead is converted to a contact in CRM, it will merge (automatically) with the existing parent contact and then will move into the later stages (SAL, etc.). At this point, the information from the record will again be visible in Marketo and the contact will continue moving through the lifecycle.

The main advantages to this are that it lets us retain our existing lead lifecycle processes, it prevents having massive duplicates in Marketo, and it still lets us create leads for the sales team to follow up on with minimal risk of missing reporting data while we wait for sales to work the lead.  Most importantly, we are back using a "single record of truth" approach!

Level 10 - Champion Alumni

Re: Moving leads back through the revenue modeler

Wow Dan.

Jessica, the main issue that I'm seeing with your screenshot is you should:

  1. Create a New RCM
  2. Build a new system per Dan's suggestions
  3. Move people into this new RCM
  4. shut off old RCM

there are several threads on this and I've posted on those steps before.

As for Recycling Leads or Lost Opps, it should look more like Dan's screenshot. They should all be connected. You may want to use a special Score counter to see how many times people go through this loop. Some people may want a separate set of inventory stages to manage that differently due to how MQLs are handled and defined.

Not applicable

Re: Moving leads back through the revenue modeler

Wow, Dan you've got your work cut out for you.

Josh, what do you mean by using a special score counter? We handle the MQL before the lead is converted to a contact so no need to account for that after an opportunity has been opened and subsequently closed-lost or closed-won (customer).

Maybe a better explanation of the use of gates would be helpful for our team. We have to keep the sales process and success path as is but need to be sure that contact who is previously closed-lost won't be prevented from cycling back through the success path. We plan on connecting all the stages with transition rules once we better understand how to account for different types of lost opportunities.

Level 10

Re: Moving leads back through the revenue modeler

Hi Jessica,

As special score counter is a score field you create in Marketo and each time a person goes through one of the steps (for instance the MQL one or the Recycled one), you Add +1 to the score.


Level 10

Re: Moving leads back through the revenue modeler

Hi Dan,

Thanks for sharing this with everyone! There is a lot of work here. 2 potential enhancements:

  1. even customers can be recycled, after a while, or for instance when an additional information is known. For instance, we have customers that recycled customers after 6 months. Other when a account custom object is updated telling the system that the implementation project is over.
  2. There is a way to reduce the number of smart campaigns, using "pull campaigns". Typically, you will need  smart campaign per ending stage.
    Example: -> MQL
    1. Smart list:
      1. Various triggers based on anything that enables to detect an MQL lead (score, fast track, ...)
    2. flow:
      1. Change stage (or change data value on a dedicated field "RCM Stage" ) if current stage is empty -> new stage = Known
      2. wait 2 minutes
      3. Change stage (or change data value on a dedicated field "RCM Stage" ) if current stage Known -> new stage = Suspect
      4. wait 2 minutes
      5. Change stage (or change data value on a dedicated field "RCM Stage" ) if current stage is suspect -> new stage = Prospect
      6. wait 2 minutes
      7. Change stage (or change data value on a dedicated field "RCM Stage" ) if current stage = Evaluation, Prospect or Recycled -> new stage = Evaluation

Through this technique, you can manage in 1 smart campaign all the situations that are supposed to end up in MQL stage, whatever the starting point, and flowing throught each intermediary stage so that you do not mess up with the stats at each stage.


Level 2

Re: Moving leads back through the revenue modeler

Hello Dan! 

Sorry to dredge up the "ghost of posts from the past" but after encountering a lot of the same issues you describe in my current situation (MKTO<>DCRM) and actively working to move our CRM to the cloud, I'd be extremely interested to know how your approach to lead life-cycle management may have evolved over the last two years. Any key learnings or insights? 

Thanks in advance for your kind reply!