In the first step of Exception Handling, we identified the appropriate Exception Email recipients. In the second step, we configured the Apex Exception Email and Process Automation Exception Email (Exceptions – When Things Go Bump in the Middle of the Night). Then we sat back and waited for the exception emails to flow into our triage and resolution processes. Congratulations!
This might be all you need to run your instance effectively. If so, Congratulations! Others, however, might be asking… Really!? This is all Salesforce provides for Exception Handling?
Really!? That’s it.
For a small, dedicated admin team, centralized exception emails may be enough. But what if you are dealing with a complicated implementation? Or a large, decentralized team? Or multiple projects and project teams with overlapping implementation schedules? You might be triaging hundreds of exception emails on a daily basis.
In these scenarios, you need more than an exception email. You need an Exception Dispatcher process.
What is an Exception Dispatcher process?
An exception dispatcher process is a process which can ingest your exception emails and properly distribution them to the appropriate resources. Every organization has a unique set of requirements, but a solid exception dispatcher process base needs to have the following 3 capabilities at its core
(1) Identification/Classification/Routing
An exception dispatcher process must be able to ingest an exception, identify the exception, classify the exception, and finally route the exception appropriately.
(a) Ingest
The exception dispatcher process receives exception emails as immediate input to the process.
(b) Identify
The exception dispatcher process identifies the type of exception, source of exception, and supporting details regarding the exception.
(c) Classify
The exception dispatcher process classifies exceptions including type, category, priority, etc. For example, an exception email can be classified a high priority production exception as it impacts the business’s invoicing process.
(d) Route
The exception dispatcher process routes exceptions appropriately based on its classification and routing rules. For example, a high priority invoicing process example is routed to a Jira case. A low priority reporting issue is routed the slack team responsible for reporting issues.
(2) Exception Suppression
The exception dispatcher process has the ability to suppress exceptions that falls into sub-categories such as a Known Issue or an Ignore Issue.
(a) Known Issue
A Known Issue is an exception that has been previously identified as issue, but the issue requires no further investigation. A Known Issues can have an expiration date. For example, a Known Issue can be an issue where the solution is currently in development. This Exception should be noted, but not routed, until the Know Issue has been lifted or the expiration date has been exceeded.
(b) Ignore Issue
Other Exceptions may be permanent. For example, an Exception intended to provide a UI message. These Exception will never be routed for resolution and will be ignored.
(3) Exception Reporting
The exception dispatcher process has the ability to generate reporting of Exceptions identified. The reporting can be used to identify problems in general implementation quality, team problems, and/or a resolution matrix.
Sounds Great! How do I get started?
Unfortunately, Salesforce does not currently provide an Exception Dispatcher framework. But don’t worry, there are still many simple options ranging from fully custom, to 3rd Party apps, or even a hybrid blend.