Optimizing the technology behind one of the top customer loyalty programs scales customer engagement
The retail industry is under a digital deluge, and it’s not just about having a shiny e-commerce platform anymore. Retailers must leverage technology across all touchpoints to get people into stores, create better experiences, and differentiate as a brand. One of the most well known home good retailers in the US relies on their customer loyalty program to deliver personalized rewards, coupons, and offers to individual shoppers—online and offline—and get them into stores. UdellDirect is the marketing firm that built and manages the technology behind this successful program. Membership was growing fast, and their existing technology could not support the rapid rate of growth. In order to meet the ever-evolving needs of retail customers, both the system and the experience needed to be optimized.
In the past, different vendors worked on different components of the loyalty program: There is a Python/Django-based website that customers interact with directly to get their membership info and a back-end data processing system. This made it tough to scale the program efficiently. That’s when Headspring stepped up as a holistic technology partner to bring the program up to speed and into the future.
- Existing technology would not support an increase of 1 million users per year
- Maintaining costs while keeping up with growing business requirements
- The impending holiday season accelerated the need for an infrastructure upgrade
- The customer-facing Python site needed a UI upgrade and overall optimization
- Different program components handled by different vendors led to disjointedness and technical debt
- Discovery session to understand the technology and end users
- Continuous optimization of the customer-facing website leveraging Python best practices
- Introduced a dynamic server solution to scale server count based on need
- Managed API integrations of the loyalty program website, main retail site, and membership data
- Introduced New Relic to streamline monitoring and maintenance and proactively solve problems
- 700% improvement in the number of requests per second (rps) that the loyalty program can handle
- Fewer and fewer issues during holiday peaks—the most recent went off without a hitch
- Long term cost savings resulting from the new server solution
- Reduced technical debt going forward means the program can scale efficiently
- A stable and scalable application that delivers a more engaging user experience
The existing technology got the retailer to where they were, but couldn’t scale to where they were headed. The loyalty program was growing to the tune of more than a million users per year and the system was beginning to falter under the load. The need to optimize was obvious, but this would all have to be done while continuously developing fresh rewards models and incentives for customers. This presented an ongoing business challenge of maintaining costs while keeping up to speed with requirements and serving a growing user base.
Threats to the experience
The loyalty program was critical to the retailer’s customer engagement strategy: If something went down on either the data-processing side or the user-facing website, they could end up with very unhappy customers. Historically, peak requests times would cause glitches in the system. Optimizing and integrating the different program components would be key to keeping customers from going from engaged to enraged. As the retailer’s primary website became more and more integrated with the rewards program, there was a need to smooth out the interaction and experience across all platforms.
Holiday-craze on the horizon
Time was also of the essence when we took on the whole program: We were approaching the holidays, that harrowing time in retail when everything ramps up exponentially. For the retailer, that meant a big spike in user requests would be putting record high loads on the system. In order to complete the infrastructure upgrade in time for the rush, we’d need to make a quick transition from the former development teams, come up with a strategy, and implement it quickly.
I’ve worked my entire career with developers and honestly have never had the amazing experiences I have with the Headspring Teams. Their work is on-time, on budget and works the first time out.
Excavating all the layers
Our team came in equipped with the skills needed to do the job: Notable experience in data processing and .NET, Python/Django expertise, and the DevOps chops to not just develop new software, but to design and implement lasting solutions.
As always, our first step was a thorough discovery session. We performed a deep analysis of the technology that was transferred to us. While the customer-facing website looks sleek on the front end, it hides a LOT of complex business logic that was important to untangle. Collaborating closely with the business requirements department, we made sure to understand the value of each proposed feature. That way, we could design solutions that could be achieved in the shortest amount of time possible.
Optimizing the platform as much as possible became our primary focus. We wielded our Python expertise to optimize the existing code and implement the latest updates and security patches. As part of the process, we introduced Python best practices and test-driven development which enabled continuous improvement. We also fully rebuilt an in-progress mobile coupon book and released it to customers, who now have easier, on-demand access to their loyalty rewards.
An ideal user experience starts with the system that works seamlessly: We managed the API integration between the web and mobile platforms, data processing, and the retailer’s main website. We also brought the UI and branding up to date for the loyalty program’s website and app, creating a fluid connection for customers between all touchpoints.
Due to the wavering nature of customer demand on the program, constantly adjusting the number of servers was a big component. We developed calculations to dynamically increase or decrease our server count based on the expected workload. On the cloud server side, we identified those that were out of use and shut them down to save costs on server upkeep.
Monitoring and maintenance were also big roadblocks to keeping up, so we decided to find a way to address that while still meeting the holiday rush. We introduced New Relic, which can identify pain points in specific parts of the system by monitoring time consumption. This enabled us to troubleshoot issues quickly and be more proactive about identifying impending ones.
And because we fully understand the nature of retail, our team stayed agile to deliver quickly and stay responsive to issues.
Successes were immediate and ongoing: Before our infrastructure upgrade, the highest number of requests per second (rps) that the system could handle was 150. When we first saw 215 rps hit the server with zero slowdowns to the downrange system, it was a huge win for all involved. Today, the system is handling 1,200 rps. That’s a 700% improvement, which translates directly into better customer experiences and more revenue.
Less debt, more profit
One of the long term wins we scored by continuous maintenance and optimization was reducing technical debt. Software quality is as critical as business goals when it comes to sustaining success. By applying Python best practices and resolving existing code complexities, we set the stage for ongoing efficiency. Meanwhile, our streamlined server solutions have reduced costs and the New Relic monitoring system has also saved considerable debugging time, allowing us to proactively clear would-be roadblocks.
Optimized customer experiences
Membership in the retailer’s customer loyalty program continues to rise, despite struggles within the wider retail realm. Our solution has always been future focused, and because we’re constantly optimizing the code, the system is experiencing far fewer issues, especially during peak load times. This past holiday was the smoothest on record! For customers, the combination of a beautiful UI and backend optimizations results in a good-looking, stable, and scalable app, which translates into better experiences.
As the market continues to evolve, this rising retailer can now focus on progress rather than problem-solving.