We are big believers in tracking lead-follow-up SLAs. In the past, I’ve done this all in one SLA Flag field. But I recently worked with a client who really cared how deeply/thoroughly leads were worked. Now I think of Lead SLA Alerts in two parts:
- Was the first touch within the expected window? (e.g. follow-up within 1 business day)
- Did we continue to follow-up thoroughly? (e.g. 5 calls and 5 emails within 5 business days)
Here’s how I track and measure lead follow-up activity across Salesforce activities, Outreach sequences, and Salesloft cadences.
>> Related: How to Attribute Traffic from Salesloft <<
In this post:
Going beyond first-touch SLAs
When your lead volume is small-but-qualified, every leads has to be called, emailed, and DMed dozens of times. We don’t want any one-and-dones. This project tracks how deeply leads are worked, not simply how quickly we called the first time.
To capture this, I measure:
- Did the rep quickly reach out to this person when they MQLed?
- And did the rep continue thoroughly working the lead until they converted to Meeting Held/Opp/Recycle?
On the Lead/Contact object, SLA-compliance is simply represented by green/red flags.
Click to expand
The First Touch SLA Flag is simply measuring whether or not the first touch is within the agreed-upon window for follow-up. But the Follow Up SLA Flag is tracking if we’re following up after that first touch. Even though the automation behind the scenes is sophisticated, the flags are quickly/easily understood. If the flag is red, you need to pick up the phone.
Building the Salesforce Flows that power this
- In order to calculate the first touch, we need to capture a Datetime for when the clock starts, plus a Datetime for that first interaction.
- Depending on your lifecycle model and level of complexity, this might be MQL Datetime and SAL Datetime/Nurture Datetime/DQ Datetime, respectively, to measure the time between receiving an MQL and accepting/rejecting it.
- Or it might be MQL Datetime and a Datetime when the first follow-up call/email is logged.
- To calculate the difference between those two Datetimes in business hours, I use this formula.
- BTW this doesn’t capture daylight savings, multiple time zones, or holidays. If you want to do that, you need Apex.
- Once the first touch has been logged, I’ll date stamp in First Touch This Stage, and start incrementing the Calls This Stage and Emails This Stage fields as Tasks are logged in Salesforce. (Remember, if it’s not in Salesforce, it didn’t happen.)
Click to expand
Once a conversation or email reply happens, it’s up to the rep to:
- Move the prospect on to the next stage by setting a meeting or creating an Opportunity
- Disposition the prospect as Nurture/DQ if they’re not a fit
- Set a follow-up Task for the future
If a future Task is logged, I’ll set Follow Up Date on the Lead/Contact to the Due Date for that Task and the Follow SLA Flag will turn green.
- They don’t need to log another call for the sake of logging another call.
- There is potential for abuse here if a rep is logging fake Tasks for the future. But I assume reps are properly managed.
Creating the flags
Based on these counts, and the Follow Up Date, I create a formula field to return an image flag. A simple SLA for Sales Accepted Leads might look like this:
- SALs
- If untouched, Red 🚩
- If Follow Up Date in the future, Green ✅
- If Phone populated, calls this stage must be ≥ the number of business days since the first touch (up to 5)
- If email is populated, emails this stage must be ≥ the number of business days since the first touch (up to 5)
- Else, Red 🚩
- All other stages, Green ✅
CASE( CASE( TEXT(Funnel_Stage__c), "SAL",IF( ISBLANK(First_Touch_This_Stage__c), 0, IF( Follow_Up_Date__c > TODAY(), 1, IF( AND( OR( ISBLANK(Phone), Calls_This_Stage__c >= 5, Calls_This_Stage__c >= Business_Days_Since_First_Touch__c ), OR( ISBLANK(Email), Emails_This_Stage__c >= 5, Emails_This_Stage__c >= Business_Days_Since_First_Touch__c ) ), 1, 0 ) ) ), /*DEFAULT VALUE FOR OTHER STAGES*/ 1 ), 2, IMAGE("/img/samples/flag_yellow.gif","Yellow"), 1, IMAGE("/img/samples/flag_green.gif","Green"), 0, IMAGE("/img/samples/flag_red.gif","Red"), IMAGE("/img/msg_icons/error16.png","Error") )
Configuring Outreach/Salesloft
If your team uses Outreach or Salesloft, you’ll need to make sure the Tasks it syncs to Salesforce are easily identifiable, whether they be calls, outbound emails, or inbound emails. In Salesloft, you can map to Standard or custom Activity fields in the Field Configuration area under Settings:
Outreach allows you to create Subject line templates to make Tasks easy to identify.
Historical reporting
So far, this has all been about the live view of the SLA on the individual contact/lead. But when I combine it with the custom funnel history object, we can easily capture historical SLA compliance – directly in Salesforce – and create reports like this:
Click to expand
Seeing SLAs = better SLAs
In general, you want to be at least 90% in compliance. But when you see these reports for the first time, your compliance will probably be scarily bad.
Often there are specific points of failure. Common offenders I’ve seen:
- We expect reps to call leads, but they don’t have a phone number ¯\_(ツ)_/¯
- Not pausing SLA timelines during weekends, non-business hours, or major holidays.
- Lead assignment is really slow.
- Reps send one email and move onto the next lead.
- There’s a dead end in the lead lifecycle, and leads aren’t getting recycled to nurture.
- There’s a manual task that nobody’s completing.
Seize the new visibility and actually fix your process! A recent Sponge client was (rightfully) appalled they hit the MQL follow-up SLA just 30% of the time. After implementing alerts, SLA compliance reached 85% within two months.
Want tips, tutorials, best practices, and other cool stuff delivered to your inbox? Subscribe to the quarterly Sponge newsletter >