The first thing i recommend you do is go to Customize > Omni-Channel > Presence Status and get the names of the presence statuses for when your users are online. Next, go to Customize > Manage Users > Permission Set and search for the permission set that contains the presence statuses you just found the names for (Presence Statuses is likely what it's named). You could also check the names of your users to perhaps help you locate the name of the permission set to make certain it's active and contains the online presence statuses. You may discover the issue is one of the permission set not being active or no longer containing the users. It may also be that "Online-LiveAgent" (or equivalent) isn't in the list of enabled statuses. If not, let's go to the next logical step.
Since you've already created the Agent Configurations, you'll need to reconfigure the Omni-Channel Presence Statuses to match the Live Agent Deployments. I'm assuming you've enabled Live Agent, have created Live Agent Skills and assigned users to those Skills. You also need to have your Live Agent Configurations set up for each type of agent. If not, you'll need to do that before proceeding. This could easily be the source of your problem if those configurations got lost or destroyed.
Next, click Customize > Live Agent > Deployments to make certain that you see the Live Chat Deployment Name for each Live Agent Configuration Name above. Once you save that, Salesforce generates Deployment code that you copy/paste into notepad or another text editor. After you create your chat buttons and find your online/offline images, you click on Build > Develop > Static Resources. Save all of this as a Static Resource for each type of Product Silo you've mentioned for the different types of Live Agents you've confirmed that you already have. You'll need to do this for both your online and offline deployment profiles of agents. If they already exist, just edit them with the new info from your text editor. You'll need to paste the Button code into the text editor just before the Deployment code from above and save it as an html file.
If you don't see those Agent Configuration types, you'll need to configure your Deployments to match your existing types, such as "Technical Support" or whatever you may have named your chat windows. I wouldn't expect this step to be necessary, but I also don't know exactly what you've done.
Finally, and this may be what's missing, click Customize > Omni-Channel > Presence Statuses. If your Live-Chat for your Product Silos isn't enabled in Omni-Channel, you'll need to Enter a Status Name by clicking New > then entering something like "Online - Live Chat". Then, in the Service Channels section Move Live Agent over to the list of Selected Channels and click Save.
If you haven't already, you now need to make this status available to the Presence Status permission set. Got to Setup > Manage Users > Permission Sets and click on the Presence Status permission set. Click on the Service Presence Statuses Access, then click Edit and then move Online - Live Chat to the list of enabled statuses. Hopefully by this last step, you'll have fixed your issue.
This may have been the result of a few things:
- In my attempt to debug what was happening, I had multiple tabs and browsers open with Omni-channel in them. It seemede that the Omni-channel session was being disrupted
- Some of these items had previously been routed to me and declined, which may mean they weren't being re-routed to me
- We were using Workflow field updates to move the Cases into the omnichannel queue. It seems that "Order of Execution" means that these cases are not picked up by omnichannel. When we moved from Workflows to Process builder, this seemed to resolve this issue.
- We had not realised that cases routed by Omni-channel have the owner of the case automatically updated to the user, even before they've accepted it. We had thought the owner was updated when they accept it. As a result it looked to us like it was routing cases that we already owned.
We can't be sure exactly which of these was causing the confusion, but it was likely a combination of the above and wanted to leave this here in case it is of use to others.
Best Answer
unofficialsf has a walkthrough of creating an omni flow that seems to apply to your situation. It'd come with the necessary actions to route the work.
The important point they show, is that an Omni Flow can be called as a sub-flow from a record-triggered flow. This would allow you to trigger based on your situation - a record is created or updated.
This is also covered in the help docs Invoke an Omni-Channel Flow to Route Non-Real-Time Objects which also contains sub-docs to explain how an Omni Flow works.