99.co

Lead Generation Automations
image

overview

Ever wondered if programming a Customer relationship management (CRM) on Google Sheets is possible? Yes, it is. Is it painful? Also, yes.

role

Full Stack Software Engineer

timeline

March 2022 to May 2023

team

Full Stack Software Engineer intern:

T. Daranidarran (Me)

Lead Generation Team lead:

Prachi Singh

tech used

Python, Google App Script (Javascript), Google Sheets, Google Drive

Background

What is the Lead Generation programme?

The Lead Generation programme is an experimental initiative by 99.co that generates high quality "leads", users that are looking to buy, sell, or rent their homes, for Real Estate agents.

A particular pain point for real estate agents was finding customers that were looking to buy, sell or rent homes.

In Singapore, agents earn commissions by selling or renting out properties, and there is a huge demand for potential clients looking to buy, sell or rent homes.

A profitable business revolves around solving a niche problem, and this initiative could be just that.

How were processes for this programme implemented?

The initial processes were set up in Google Sheets. The leads were manually distributed by the team lead who would copy and paste leads from a master Sheet to the telemarketers' Sheets.

The goal was to automate these processes to scale this business unit.

Implementation Shortcomings

The Team Lead, unfortunately, did not possess programming skills and did not have access to engineering resources. As a result, most of the implemented processes were labor-intensive and inefficient 😭.

Problem 1

Telemarketers' call sheets

Issue => Cluttered, Unintuitive Old Call Sheets

The old telemarketer calling sheet consisted of 31 columns, which required telemarketers to constantly scroll vertically to view relevant information.

A significant portion of the populated information was not relevant to the telemarketers, making the onboarding process for new telemarketers more challenging.

Old telemarketer sheet header row

Solution => New Improved Call Sheets

After gathering telemarketer feedback and personally engaging in calls with users using the old sheet, I realized that it was far from user-friendly. Based on the feedback I received and my own experience, it became evident that the layout of the old sheet needed a complete overhaul.

The old sheet displayed unnecessary information, overwhelming the telemarketers. At times, telemarketers would mistakenly give the green signal for a user even when not all criteria were met.

To address these issues, I recognized the need to create a user-friendly solution that could handle erroneous input and be easily onboarded. Continuing to use Google Sheets made sense as it met all the necessary requirements.

The UI and logic of the new form were implemented using Google Apps Script, which allowed for easy execution from the Menu bar of the sheets.

New telemarketer sheet form

Problem 2

Distribution logic

Issue => Inefficient distribution logic

Users were called by telemarketers only once. This meant that returning users who could be potential leads were not being contacted.

Solution => Batching and Prioritisation algorithms

The Batching algorithm was designed to include returning Property Valuation users in the distribution to telemarketers' calling sheets. As a result, there was an increase of 80% in the number of callable users that could be distributed.

The Prioritisation algorithm was developed to re-order users in the telemarketer's sheet based on their importance. This was achieved by assigning points to each user, where leads with lower points indicated higher priority.

Lead distributin and Prioritisation flowchart

Implementation of both these algorithms resulted in an increase in call to lead generation by 2% (in Lead Generation, a 0.5% improvement is considered to be excellent).

I implemented Batching and Prioritisation algorithms using Python.

Problem 3

Lead Distribution

Issue => Time intensive repetitive tasks

At the start of each day, the Team Lead manually distributed leads by copying and pasting rows of users to be called into her telemarketers' Google Sheets. This process consumed approximately 45 minutes of her time every day.

Solution => Distribution automation

The Distribution automation was implemented using Python, and it was responsible for distributing leads to available telemarketers for the day. This automation script included the execution of the Batching and Prioritization algorithms as integral components.

Problem 4

Lead and Agent Mapping

Issue => Potential user and agent mapping

When the Team Lead needed to match a lead with an agent, she had to manually search through the statistics of all subscribed agents to find an experienced agent in the area of the home.

Solution => Lead and Agent mapping script

This script enabled the Team Lead to assign a lead to an agent based on specific conditions defined within the query, which in turn accessed a database containing real estate transcation history. Implementing this feature resulted in a significant increase in the success rate by 5%

Reflection

Proper-tea is interesting🧋

This internship provided me with the opportunity to explore and better understand myself. Through this experience, I've come to appreciate that I hold more potential than I give myself credit for.

The Lead Generation project was quite fascinating 👀. Here's a rundown of everything I had the chance to explore:

1) Engaging in user calls as a telemarketer. 2) Exploring a plethora of raw business ideas (it was ALOT of business ideas). 3) Brainstorming and shaping these business ideas into potential solutions. 4) Transforming these solutions into functional code through development. 5) Conducting user research with telemarketers.

I've discovered my knack for breaking down intricate tasks into manageable, bite-sized components. Additionally, I excel at articulating and explaining solutions in straightforward terms that are easy to grasp.

Now, I confidently express my thoughts and concerns, having realized that my peers genuinely appreciate my ideas, and that there's no such thing as a bad idea.

Special shoutout to Prachi for being a great boss, and Jack, Akqeel and Kevin who've always assisted me in navigating through challenging problems 😍.