While Salesforce CRM offers robust functionality in a host of areas, there are occasionally times when your organization can save money and realize a better product by offloading work from the Salesforce CRM itself. What does “better” mean in this context? A more robust, more reliable, and more flexible solution, with higher throughput/performance to boot.
A common weakness of the Salesforce CRM developer community is the hammer/nail perspective (which I prefer to think of as “hammer/nail/shoehorn”). Salesforce developers tend to reach for the tool they know best: the Salesforce CRM itself. These developers are clever and find ingenious ways to overcome Salesforce CRM’s limitations.
Unfortunately, the outcome is pretty predictable. Budgets for these solutions are higher than they should be, as seriously “creative” code is required. Testing efforts are also higher, as these systems tend to be fragile and complicated. Once built, this ingenious development will probably remain a finicky mess for its entire lifetime.
Quality aside, these solutions tend to crumble after implementation, sometimes very quickly. No shoehorn-based solution will bring real scale to your processing. These solutions push your ceiling back, but they cannot remove it. As your processing needs increase, shoehorn-based performance will likely degrade or fail outright.
The solution is simple: don’t work around the limitations! Don’t try to shoehorn your solution into the CRM. Move it out of Salesforce CRM altogether and solve it with tools designed for your problem. Life will be better if you embrace Salesforce CRM for its inherent strengths and use other solutions and tools when they are more appropriate.
As a case in point, a fundamental pattern in Salesforce CRM development is decoupled processing: updating Contacts when their Account changes or pushing Contact updates to an external event management system, for example. Decoupled processing allows multiple systems to work together without knowing about each other, significantly reducing complexity and preventing development gridlock.
Salesforce CRM provides both declarative and code-based solutions for decoupled processing, such as flows, triggers, and batches. However, Salesforce CRM’s multi-tenant architecture means that you are sharing server resources with other orgs. To ensure a single org does not monopolize server resources, Salesforce CRM enforces limitations on processing.
Generally, these limits give you plenty of room for small-scale processes, but they can be serious challenges for large-scale processes. And that’s by design. Salesforce wants to provide you with powerful tools but doesn’t want you doing weird crazy things that don’t make sense for the platform.
One of our favorite tools for this problem is another part of the Salesforce ecosystem: Heroku. Heroku is a platform for building custom solutions and provides some powerful synergies with Salesforce CRM.
One of Heroku’s greatest advantages is easy vertical and horizontal scaling. Imagine that instead of syncing 10,000 Contact updates to an integrated service, you are making 10,000 cups of coffee. In Salesforce CRM, you may have a single barista, and they might not be speedy; you may not get through all 10,000 coffee orders before the next 10,000 orders come in.
In comparison, Heroku allows you to have as many baristas as you want, and they can be as strong and fast as you want. When you grow from 10,000 coffee orders to 100,000, Heroku can quickly scale with you, because that is precisely what it is designed to do.
Beyond sheer volume, other kinds of processing are not well suited to Salesforce CRM processing. Slow processes, requests to external systems, and large amounts of data can lead to Salesforce CRM unceremoniously terminating your process. A solution like Heroku is going to be a better fit in these situations as well.
Taking advantage of external solutions like Heroku requires different expertise than Salesforce CRM development. Many Salesforce CRM development partners focus exclusively on the CRM, inevitably falling into the nail/hammer/shoehorn trap. As your needs mature, make sure your partner can keep up.
If you have already bought a few shoehorns that you regret, Fíonta would love to help you find proper solutions! Contact us to learn more about how our in-house Heroku expertise can help your organization scale.