How to Prevent a Situation from Becoming a Crisis

November 27, 2018 Jesse Brown

"If it ain't broke, don't fix it."  

This old adage is an excellent philosophy for life and business.
But, when it comes to Salesforce environments, it’s hard to tell if something is broken, and by the time you realize something is wrong, it’s usually too late.  

For example, how do you know when is a minor bug a sign of ensuing chaos? Or, when a user base has outgrown its system? 

It’s not always easy to spot. To help you find the hidden sources of chaos, here’s a real-life story about how the Appirio Salesforce Thrive team helped prevent a crisis. 

Outgrowing old processes. 
A few months ago, a Thrive customer came to us for help with an enhancement to their business process. This client provides paid services to customers and has an integration between Salesforce and their payment processor to keep track of how and when their customers pay them.  

In the customer's mind, their existing system was working fine - with just a few glitches that needed to be corrected. To remove expired credit cards from their Salesforce records, help reduce clutter, and simplify routine maintenance for customer service employees, they ran a monthly batch job. But for some reason, this monthly process was starting to return errors. 

Our customer came to us with a simple request: they wanted help setting up an audit trail that could alert them to the failed jobs and the records that hadn’t been removed from their system. To them, this seemed like the logical fix. 

Nurturing a different way of thinking.
Luckily, Thrive engineers are trained to examine not just a customer's request, but also its underlying business process. 

Would an audit log really solve this problem? What would our customer do with this information, given that the batch was already failing? Would this get to the bottom of the problem?

To help them make this assessment, we worked together. Through our collaboration, we determined that the batch job was failing because of scale; code that was perfectly serviceable for a million records was struggling to keep up now that our customer had graduated to ten million paying customers on file.  

Getting to the root of it.
Part of the problem was that all the queries used to find our customer’s expired payment profiles were based on a huge and complex formula field. The formula field had been a great time-saver in the past, but due to the complex logic involved, it couldn't be indexed. In Salesforce's shared architecture, long-running queries looking up non-indexable fields are cut off when they take too long.

In other words, the batch job failures were not occasional occurrences: they would continue to happen every month - unless something was done. Our customer's growing customer base had stretched their existing business process and supporting code to its breaking point.

Making changes for the long-term. 
Instead of creating audit logs every month for the customer, we redesigned the underlying formula field and helped them fine-tune both their business process and the code supporting it.  
It wasn’t easy because any time you change fields relating to payments, it's best to move cautiously.  Accounting departments are justifiably insistent that financial records need to match exactly, so there is very little room for error. 

But thanks to the extra effort and fruitful collaboration, today, our Thrive customer is in a much stronger place and continues to scale and grow without running into a similar problem - and the once failing batch job and related ones all run smoother and faster than ever.

And that's the true meaning of Thrive! Personalized, experienced support to help your Salesforce-powered business do more than just survive but thrive as they tackle growing pains head-on to become better, smarter businesses. 

Previous Article
Simplify your Business Processes with Operational Products
Simplify your Business Processes with Operational Products

Next Article
Technology and Change in the Telecommunications Industry
Technology and Change in the Telecommunications Industry