Automation can streamline your processes and bring multiple benefits to your business. After working on Salesforce implementations for many years (13 years and counting!), I have repeatedly encountered some pitfalls that could jeopardize a well-intended automation initiative. Let’s delve into these deadly automation sins.
1. Lack of data validation
When building an automated process, it’s common to assume that data will be provided in perfect condition. However, reality often reveals that data is far from perfect.
Missing values, wrong format, wrong information, and lack of consistency are just some examples of common issues.
Why is it a problem for automation?
First, it might prevent the execution of the automation completely.
Or it might cause the automation to process inaccurate data and have a cascade effect on the rest of the process.
My favourite approach is avoiding data issues in the first place:
- Ensure that validation rules, required fields, and data formats are in place to maintain data integrity.
- Enforce data entry standards within your automated process and provide training for users.
2. Poor error handling / No logging
Sometimes we are overly optimistic when designing an automated process. I know I have many times failed to foresee some exceptional or edge cases that could cause trouble.
When designing and building an automated process, we have to assume that there will be unforeseen errors, even when we try to consider all scenarios.
When an automated process finds an issue, it is important to put in place mechanisms that flag these errors and log them for analysis. Effective error handling not only prevents data corruption but also helps in quick resolution, saving time and resources.
How I would suggest to approach this challenge:
- Make sure to implement error handling mechanisms that are consistent, robust and reliable in all your automated processes. You can find more details about best practices on Salesforce documentation and blog posts, here are some to get you started: Customize what happens when a flow fails, Error handling best practices for LWC
- You can implement a logging framework that each one of your automated processes must incorporate. A common approach in Salesforce is to use a custom object to store application logs. There is also Salesforce native functionality that can help with logging, such as Events Logs and Debug Logs.
3. Automating inefficiency
It is not uncommon for organizations to automate the “as-is” processes, missing the chance to improve them. This often stems from familiarity with existing operations, leading to automated but overcomplicated processes.
While this approach can yield positive results, the benefits are often marginal if the processes themselves are inefficient.
In my discussions with customers, I often find these inefficiencies are rooted in outdated systems or issues like poor data quality (i.e. processes that require manual verification steps due to lack of trust in data quality).
I often recommend my Customers to:
- Review the existing business process, are there any optimization opportunities before automating? Was it designed based on previous systems that are no longer relevant? Was it designed based on the assumption of poor data quality?
- Additionally from thinking of streamlining the process, it is important to consider how the business is going to evolve and ensure that the new automation allows change without major disruption to the business, which could happen if the process is over complicated.
4. Insufficient user training & adoption
Some organisations make the decision to automate a process without giving time to Users to learn the new process.
Users are expected to immediately adopt the new approach, without being given any guidance or support.
As a result, some Users who are comfortable with the existing manual process might feel intimidated by the new process and decide to keep doing things in the familiar way, even though it’s less efficient.
In this case, the benefits of automation might not be fully realised.
Additionally, low adoption rates could lead to data discrepancies.
For these reasons, change management is a great support for end Users:
- Give Users the time and additional resources they need to learn the new process. Resources could be training videos, documentation, training sessions.
- Make sure to create awareness of the benefits of the new automated process to encourage adoption
5. Automated chaos
Process builder flows, workflows, flows, apex triggers, approval processes…all impacting the same objects, or the same business processes, without a clear common framework and documentation.
When trying to debug an issue, this becomes very challenging.
This ‘automated chaos’ can lead to conflicting actions, race conditions (race conditions happen when multiple operations run simultaneously instead of one after the other, causing unpredictable outcomes), locked records errors, unknown errors, data issues…This automation maze becomes difficult to manage and troubleshoot.
How to prevent chaos?
- Create a common approach. For example, create some automation standards to guide designers and developers. Increasingly migrate all your existing automations to this approach.
- If your organization is still using some process builder flows and workflow rules, remember that they are no longer supported. Migrate them to Flow as a priority. Here is some guidance from Salesforce
- Document each automation and how it interacts with other automated processes.
6. Not considering scalability & performance
It’s exciting to see our brand-new automated process working.
We test it on a few records in a developer environment and it works beautifully. We push it to a test environment and it does the job. Good times! It goes to production.
Time passes and data volume increases because the business is growing, great news!
But one day we start seeing performance issues, and even the dreaded “LIMIT EXCEEDED” screen.
Automations that work well for individual records or a small volume of records might fail or become really slow under the load of bulk operations, leading to performance issues and system timeouts.
This is a complex topic, as large data volume management in Salesforce requires an integrated approach, including thorough expert analysis and recommendations. Some pointers:
- Always design with scale in mind, testing how your automation behaves with large data volume and fixing any performance issue as early as possible, ensuring it remains efficient and reliable when your business grows
- Bulkify your processes from the beginning, even if the original use case is for an individual record. I have lost count of the number of times my customers built a process for individual records and eventually the requirement of processing records in bulk came up.
7. Not enough testing
Building on the previous point, many organizations undervalue the importance of a solid testing strategy.
Testing your automation thoroughly is a must. So many times organizations decide to shorten the testing time in order to meet a deadline, often due to the project taking longer than planned. I have witnessed this, and then the consequences: production issues, revenue impact, reputational damage, stressed team members. It can be more costly and time-consuming to fix issues after deployment than addressing them during the testing phase.
Also I have seen companies assign the task of testing to already very busy team members, who try to squeeze some testing time during their day job. It usually only works for validating the “happy path” (known expected input).
The types of testing I more often see neglected (even in large organizations) are:
- Regression testing: Typically the focus of testing is on new functionality. However, ensuring that new changes do not adversely affect existing functionalities is equally important.
- Performance testing: Even though Salesforce is scalable, the vast majority of implementations have some level of customisation that need to be tested for performance and scalability
- Negative testing: Testing that the automation works as expected with expected input is just the first step. But equally important is to verify the behaviour of the automation under unexpected input.
Some recommendations to make your test strategy solid:
- Always plan for regression testing to ensure new changes do not adversely affect existing functionalities. This is the one area where I have seen the most critical production issues happening.
- Implement comprehensive testing strategies, including unit tests, system tests, integration tests, and user acceptance tests (UAT), ideally led by expert QA leads.
- Involve end-users in the testing phase (ideally much earlier!) to ensure the automation aligns with their needs and real-world scenarios.
Lack of data validation, poor error handling/no logging, insufficient user training and adoption, automated chaos, not considering scalability and performance and not enough testing are just some examples of pitfalls that could impact the efficiency of your automations (there are many more!). Can you identify some of them in your organization?
The best way to approach these challenges is by partnering with expert advisors who can guide you through the best solutions for solving these issues. Contact us for a free assessment.
These obstacles are manageable and with discipline, governance and expert guidance you can eradicate these issues and make Salesforce great again 🙂