Omni-Channel Limit Exceeded and Troubleshooting
|Knowledge Article Number||000233885|
|Description||Omni-Channel is a comprehensive customer service solution that lets your call center route any type of incoming work item to the most qualified, available agents in your organization.
There are a few prerequisites that would allow you to understand Omni-Channel, its limits and ways to avoid issues better:
- You can review our Omni-Channel for Administrators PDF guide to know more about Omni-Channel configuration.
- To understand better some of the processes we'll mention in this Article please review How Does Omni-Channel Routing Work? as this contains comprehensive information to fully grasp how routing works in Omni-Channel.
- Omni-Channel limits are documented as part of the Salesforce Features and Edition Limits.
In Setup | Omni Channel menu | there is a Limit menu | which shows what the current number is.
Taking that last document as starting point, there are two limits for Omni-Channel:
Omni-Channel: Maximum Queued Work Items per Hour: Maximum number of records that can be queued per hour in an org, across all Omni-Channel-enabled queues. Each time an item is assigned to an Omni-Channel queue, the platform checks how many items were queued in the preceding hour. If the limit has been reached, the item isn’t assigned to the queue.
Omni-Channel: Maximum Pending Routing Requests: Maximum number of objects that can be pending for Omni-Channel routing in an org. When an item is assigned to Omni-Channel-enabled queues, Omni attempts to route it to an available agent. If there are no agents, then the work is pending routing.
Issues and error messages may start to appear if those limits are broken. Some of the possible error messages you can see are:
- LIMIT_EXCEEDED : limit exceeded - when performing seemingly unrelated operations like using Email-to-Case or pushing Social Conversations into Salesforce.Bottom line is that the operations are related to Objects that currently use the Omni-Channel feature in your Organization (i.e. Cases...).
- You or your organization has exceeded the maximum limit for this feature - when operating with omni-enabled objects.
|Resolution||The errors are expected as values are enforced for both limits mentioned above. Here's what you need to know about your options when running into these limits.
1. You can use Workbench or the Developer Console to find out how many records are counted against the Maximum Pending Routing Requests limit. Use the following query:
SELECT count() FROM [Object] where OwnerId in (SELECT Id FROM Group WHERE QueueRoutingConfigId != null)
You can replace [Object] with the Object you're using for Omni-Channel (e.g. Case, Lead...)
If you replace count() by Id (i.e. SELECT id FROM...) you'll obtain a list of records. You can remove those records from their actual omni-enabled queue and assign it to a different owner or other queue not associated with Omni-Channel. This way you can reduce the value until you're under the limit.
2. If you don't want to remove records from the Queue you can still reduce the number and try to avoid hitting the limits by removing the Routing Configuration from the Queue.
To do this please navigate to the Setup of your Organization, use the Quick Find box to open the Routing Configurations node, locate the one that you want to modify and click on its name. Then you'll see the list of Related Queues. You can click to access any of them and, when editing it, you'll be able to remove the Routing Configuration currently selected for that Queue.
Please keep in mind that this method will prevent records from being assigned to agents via Omni-Channel as it's part of the required configuration. Use this method only if you need to drastically reduce the load or if the Queue is incorrectly configured.
The way to avoid this from happening would be to make sure that record-intense activity (e.g. the use of mass transfer tools, heavy Data Loads or data migration) in your Organization is done by keeping in mind that Omni-Channel has certain limits in place. For example, if you plan a massive Data Load of Cases to your Org and you plan to assign them to a Queue you may ran into unexpected errors if you didn't realize that the Queue has a Routing Configuration that will make the Omni-Channel limits to be broken.