A big challenge for many sales teams is lead management—especially triaging new inbound leads. When a new prospect gets in touch or signs up for a free trial, you want to leverage that moment to convert them into a paying customer. For sales teams with a high volume of inbound leads, however, it can be difficult to keep track of who has reached out to which lead and when.
In an attempt to solve this problem, many companies assign inbound leads to sales development reps (SDRs). But this approach presents its own logistical challenges. For starters, leads often span multiple time zones; it is not ideal to assign a lead based in the UK to an SDR who works in California because they will probably have a hard time getting in touch.
Additionally, sometimes reps are simply not available. They may be at lunch, on vacation, or in a meeting. It’s important that leads not be assigned to reps who cannot reach out ASAP. Otherwise, leads are more likely to fall through the cracks.
At Workato, we faced similar challenges with lead management. When a lead signs up for our platform, we want to reach out to them within five minutes. In order to make this feasible, we need to assign leads to the sales team based on individual availability and geography. To do this, we created a series of automated lead management workflows that connect Salesforce (our CRM) with Slack, which we use for all internal communication. Here’s how it works.
Assigning Leads to Available Reps via Slack
Throughout the day, our sales team spends most of their time in Slack. Thanks to some handy integrations, they can use it as a fully-functional sales hub where they can log demos, announce deals, and even approve contracts.
Because they spend so much of their time in Slack, we wanted to turn it into a lead management hub where lead assignments could be communicated. To do this, we created a chatbot that will message reps with new inbound leads as they come in. We call this bot LeadBot, and reps interact with it via DM in Slack.
In the DM, reps can set their status as “Accepting Leads” or “Not Accepting Leads.” When they are ready to start contacting leads, they can click “Accepting Leads,” and Leadbot will deliver new inbound leads to them. If they go to lunch or are finished working, they can select “Not Accepting Leads,” and no new leads will be assigned to them. As soon as they set their status to active, however, LeadBot will assign them leads again.
This gives us a simple way to make sure that only available reps are assigned leads to reach out to. It also means that leads are less likely to fall through the cracks because they are only ever assigned to reps who are ready to reach out at that moment. And it gives reps an easy way to manage their workload; if they’re busy with other tasks, they can simply set their LeadBot status to inactive until they are ready to accept more inbound leads!
Allowing Reps to Reject Leads from Slack
No matter how sophisticated its logic is, any lead assignment system needs to be able to work with exceptions. Sometimes, leads are assigned to reps incorrectly; perhaps the lead is in the wrong time zone or is not a good lead.
To account for these scenarios, we built a “Reject Lead” function into LeadBot. When a rep is assigned a lead in Slack, there is a button they can press the reject the lead. All rejections are logged, so if a lead is rejected by multiple reps multiple times, sales managers can see this and determine whether it is a poor quality lead.
Dealing with a Backlog of Leads
Sometimes, despite our best efforts, we have a backlog of leads that need to be contacted. This frequently happens when the entire sales team is out-of-office, such as on holidays.
To work around this issue, LeadBot keeps a list of backlogged leads. When there is no one to accept a new lead, it is not assigned but added to the list in the order that it arrived. When a team member sets their status to “Accepting Leads,” Leadbot will assign them the most recent appropriate lead from the backlog.
If there are no current inbound leads to work with, LeadBot will offer the option to “Get Backlogged Leads” instead. With this workflow, our team never misses a lead, even if everyone has taken the day off!
Enriching Leads with ResearchBot
Sometimes, SDRs need more information about a lead in order to reach out. The phone number listed may be incorrect, for example, or the lead may be missing contextual information like the size of the company. To make it easier to flag leads that need enrichment, we added a “Needs research” button to Leadbot. When an SDR clicks the button, the lead is added to the queue for ResearchBot.
ResearchBot functions similarly to LeadBot. Instead of pulling new inbound leads into Slack, it delivers leads that need enrichment. Researchers—such as our sales interns—can set themselves to “Accepting Leads” or “Not Accepting Leads” based on their workload and schedule.
When a researcher sets their status to “Accepting Leads,” ResearchBot will deliver the oldest lead in the queue to them in Slack. The message will contain a link to the lead in Salesforce; by clicking the link, the researcher can edit information on both the lead and any associated accounts and contacts. If the lead is marked as a duplicate in Salesforce, the researcher can also merge the two leads.
Once the researcher is finished enriching the lead, they can choose from two options in Slack. Selecting “Complete/Get Leads” will mark the current lead as done and assign the researcher another lead from the queue. If the researcher needs to move on to other tasks, they can select “Complete/Finish” to set themselves to inactive.
Just like LeadBot, ResearchBot gives us flexibility in terms of how to prioritize and assign leads. They can be assigned based on the order they were added to the queue, according to geography or timezone, or by other factors. With ResearchBot, we have better visibility into the leads that need enrichment, which improves lead quality dramatically!