Case Study: Enhancing Customer Engagement and Retention in a Digital Account Opening Platform
- Stephen Dawkins
- Jan 2
- 3 min read
Background
As a product manager for a bank's digital account opening platform targeting business customers, I identified a significant engagement issue. Many new accounts were opened with the minimum deposit of $100 but remained inactive until they automatically closed. While my primary focus was on account opening metrics, my KPIs also encompassed subsequent deposits and overall account activity.
Most of our customers resided within the bank's branch footprint. I hypothesized that connecting these customers with local market managers could foster relationships, encourage account usage, and improve retention rates. However, implementing this idea required creativity, as my control was limited to the account opening platform.
Solution
The account opening platform was built on Salesforce using the Lightning Web App. I developed a Salesforce trigger to connect business account owners with the nearest market manager based on geographic proximity. The solution involved:
Geolocation Matching: Using the business owner's address, I calculated the geolocation and identified the closest branch.
Market Manager Assignment: The system assigned the account to the corresponding market manager for the nearest branch.
Email Notifications:
Sent an introduction email to the customer, personalized to appear as if it came from the market manager.
Sent a notification email to the market manager with the customer’s details for follow-up.
Implementation
Below is a representation of the Salesforce trigger and the associated logic to achieve this:
trigger AssignMarketManager on Account (after insert) {
for (Account acc : Trigger.new) {
// Ensure the account is for a business and has an address
if (acc.Type == 'Business' && acc.BillingAddress != null) {
// Calculate geolocation of the business owner
GeoLocation businessLocation = GeoLocationService.getCoordinates(acc.BillingAddress);
// Find the nearest branch
Branch nearestBranch = BranchService.getNearestBranch(businessLocation);
if (nearestBranch != null) {
// Assign the market manager
acc.MarketManager__c = nearestBranch.MarketManagerId;
update acc;
// Send email notifications
EmailService.sendCustomerEmail(acc, nearestBranch);
EmailService.sendManagerNotification(acc, nearestBranch);
}
}
}
Supporting Code Snippets
GeoLocation Service:
public class GeoLocationService {
public static GeoLocation getCoordinates(Address address) {
return new GeoLocation(address.latitude, address.longitude);
}
}
Branch Service:
public class BranchService {
public static Branch getNearestBranch(GeoLocation location) {
List<Branch> branches = [SELECT Id, Name, Latitude, Longitude, MarketManagerId FROM Branch];
Branch nearestBranch;
Double shortestDistance = Double.MAX_VALUE;
for (Branch branch : branches) {
Double distance = GeoUtils.calculateDistance(location, branch);
if (distance < shortestDistance) {
shortestDistance = distance;
nearestBranch = branch;
}
}
return nearestBranch;
}
}
3. Email Service:
public class EmailService {
public static void sendCustomerEmail(Account acc, Branch branch) {
Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
email.setToAddresses(new String[] { acc.OwnerEmail });
email.setSubject('Welcome to Your Local Branch');
email.setPlainTextBody('Dear ' + acc.OwnerName + ',\n\nYour local market manager, ' + branch.MarketManagerName + ', will be reaching out to assist you.\n\nThank you!');
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { email });
}
public static void sendManagerNotification(Account acc, Branch branch) {
Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
email.setToAddresses(new String[] { branch.MarketManagerEmail });
email.setSubject('New Business Account in Your Area');
email.setPlainTextBody('A new account has been opened by ' + acc.OwnerName + '. Please follow up.');
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { email });
}
}
Results
While the initiative did not directly lead to increased deposits, it significantly improved customer retention, with retention rates rising by 60%. This demonstrated the value of fostering personal relationships with customers through local market managers.
Conclusion
This project highlights the importance of creative problem-solving and leveraging existing tools to address challenges. By implementing a simple yet effective geolocation-based trigger, I enhanced customer engagement and retention in a measurable way. This approach can be replicated or adapted for similar scenarios in other industries.