I found the best detailed explanation => here.
In short it depends of your Routing set in Omni-Channel Routing.
In short interaction looks for:
Spare capacity (in most cases ready state)
If multiple agents satisfying these conditions are found, the system will select one of these agents using the following criteria in the specified order:
- The agent with the highest skill level(s); the highest level is determined by the following formula:
- The least busy agent at the moment; based on Capacity share taken by each interaction currently processed by this agent (as per Omni Channel Routing capacity set)
- The longest idle agent; based on the sum of times of continuous Ready and Not Ready states since the last handled interaction
- The least occupied agent; based on agent occupancy since login