A new work item comes in and she is notified about the new item in the queue. She takes charge of the new case. At this time, she has received a size 5 work item, so her total capacity is now 5 (if the case is closed, she’ll have a capacity of 10 once more).
Then, another case joins the queue; she’s notified of this and she accepts it. Her capacity is now 0, which means she cannot receive work items until her capacity has been reduced.
If another work item comes in, she won’t be notified about it, and Omni-Channel will try to notify another agent or wait until Francesca has closed at least one of her cases.
To try this out, go back to the Service Console app, click on Cases, and then click the New button to create a new case. Put in whatever information you want and click Save. You’ll notice that nothing happens; why? This is because our user already owns the record.
Click the Change Owner case button and move the case’s ownership to our high-priority cases queue.
A sound notification should warn you that a new work item is incoming (the Omni-Channel components will start blinking).
Click the Omni-Channel and accept the case:
Incoming work item on the Omni-Channel utility component
By accepting this case, its ownership goes back to the current user and it is now listed on the MY WORK tab of the Omni-Channel component.
Repeat these steps again and accept another case; you will see that you have no capacity.
If we try this for the third time, no notification will be sent, but once we close one of the two cases we own (the capacity will become 5), the components will start notifying you about the third item. This is because you have enough capacity to accept new cases.
Let’s summarize all the configuration steps:
- A Service channel turns (almost) any Salesforce object into a work item.
- Routing configuration is used to determine how work items are routed to agents.
- Presence configuration tells us how many work agents can take cases from Omni-Channel’s engine (a user can only be assigned to one presence configuration; being assigned to a new presence configuration overrides the previous one for that given user).
- A queue is created as a waiting room for incoming work items and users are related to queues, so they are allowed to receive new work items (the queue object is related to the Routing configuration; in this case, from the queue edit form).
- Presence statuses state whether the user is available to receive new items, or whether they’re busy or offline (each presence status can also be enabled for specific Service Channels). We can customize Presence statuses from Setup | Presence Statuses and they must be assigned to users using profiles or permission sets.
What if I have high-priority cases and low-priority cases? Create a new Routing configuration with lower (higher in number) priority, create a new low-priority cases queue, and then use automation (workflows, the Process Builder, Apex triggers, external API integrations, and so on) to assign incoming cases to the right queues.
So far, we’ve looked at queue-based routing. This is suitable for smaller Omni-Channel setups with a few users and queues, but if we need more fine-grained tuning, we can use skill-based routing or external routing. We’ll cover these in the upcoming sections.