In Part 2 of this series I explained the basics of Marketo’s Revenue Modeling feature referencing the Digital Pi standard model design. In this, the latest installment of this blog series I’ll explain how to build a lifecycle model, the logic that drives leads through it, and how to test your work.
A responsive model for intelligent design
In Part 2, I explained how triggers, really Smart Campaigns in Marketo, are the logic that tells the model when to move leads from one stage to another. Marketo lets you embed the triggers in the model as shown here in the Stage Properties tab of the modeler. This screenshot shows the model and rule defined for the flow from MQL to Disqualified.
The Transition Actions menu lets you switch to the standard Marketo editor to create a Smart List as you would in a Smart Campaign, or you can simply double click on the purple arrows to get to the Smart List editor. The next screenshot shows the Smart List defined for the flow from MQL to Disqualified.
Trigger happy: use program member statuses to drive your lifecycle
Our model design uses a dedicated Marketo Operational Channel Global Lead Lifecycle and program to manage the lead lifecycle. Whenever we want to move a lead in the model, we change the program member status to the member status for the destination stage. The program member status is always the source of truth for the lifecycle and the brains that tells the model when and where to move leads. The channel, build to run one or more lifecycle model programs, has a status for each lifecycle stage defined in the requirements. All steps are set to the same number so leads can move backwards and forwards in all member statuses. Because Marketo requires at least one success step, we create a status called DO NOT USE marked as the only success. So, when you want the model to move a lead to a new stage, you just change the program member status. For example, if you want a lead to go to Disqualified, you change the Global Lead Lifecycle program member status to Disqualified.
This makes creating the flows in the model drop-dead simple. For every stage, you simply use change in program status from/to as the rule for every trigger. Look again below at the screenshot of the rule for disqualified. See where it says “MQL ==> Disqualified?” Follow that flow by building a program status change rule where the left side of the tab MQL==> is the Old Status and the right side ==> Disqualified is the New Status. This makes creating the model easy to build and less prone to error.
Rev up your lifecycle engine
Now that the model is complete, you need to build out the Smart Campaigns in Marketo that tell the Global Lead Lifecycle program when to change member status to move the lead in the model. Keep your eye on the ball: all we’re doing is changing program member statuses to destination stage and the model is looking for that member status change to move the lead in the model. The program member status is a signal that the lifecycle model responds to. The screenshot below gives you an idea of how this looks when complete. The logic you employ for these Smart Campaigns will depend on your requirements. For every stage move you want to make, you need a Smart Campaign to change the Global Lead Lifecycle member status to the destination stage.
Lead flow exception handling: when leads go outside the lines
I explained earlier that you don’t have to draw a line for every single from/to stage move in the model…just keep it to the ones you consider typical and not the exception. Now I’m going to show you how our model design lets you catch leads that flow where there is no line in the model, add them to a static list, and let the revenue stage move happen. Let’s use a lead flowing from Disqualified to SAL (sales accepted) to illustrate.
Nobody expects sales to accept a lead that’s been disqualified, but it happens. You’d like to see all of the leads that flow from Disqualified to Sales Accepted on a list – you might even want to get an alert whenever someone is added to the list. The same holds true for any lead that moves from a stage to another that isn’t a flow in your model. Keep in mind, the lifecycle model tool can’t move a lead without a path – unless you tell it to manually move it from a Marketo Smart Campaign. Imagine having a real-time list in Marketo who’s members flowed in your lead lifecycle from one stage to another for which there is no line. Further, after the exception is logged imagine letting the lead flow happen anyway – as it should since it really did happen. Here’s how this works:
- Change the Global Lifecycle Member Status to a new stage (e.g. Disqualified, whatever)
- Wait a minute
- Check to see if the lifecycle model changed the revenue stage. If it didn’t, there’s no line for the move you instructed the model to make and the revenue stage did not change
- If the revenue stage did not change, you know there wasn’t a line for the move in the model. Add the lead to a static list that collects all exceptions and move the lead to the destination stage anyway by manually changing the revenue stage.
The Smart Campaigns and logic to accomplish this feat look something like this:
The last step before turning on your lifecycle model is to load all of your leads into the model. You’ll want to write Smart Campaigns to move leads into the correct stages, starting from the right (Closed Won) and working your way left to Raw including the Detour stages Recycle and Disqualified. Be careful here, you want to load the model in a way that puts the leads in the right stage and doesn’t move around in a subsequent stage load. And make darn sure you take the time to load them correctly. If you load leads incorrectly, weeks or months down the road any leads incorrectly loaded will mess up your funnel metrics.
In the next and final installment of the series, I will describe how to test your model and explain some of the gotchas that you’ll want to be aware of when it comes to doing Marketo Lifecycle Models right.