When manually creating the Case in a console component instead of letting Salesforce create the Case automatically via pre-chat or deployment API then you will need to use an apex trigger on the LiveChatTranscript object and add a custom text field Chat Key to your Case object to correlate the records in the trigger.
Custom Console Component
Here is sample ...
How come Agent A who is having 3 work items has the capacity impact of 1?
You've misread this part. Agent A has a used capacity of 3; they have three items worth one capacity each. In this example, they're showing that A is less active than B.
How come Agent B who has 1 active work item has the capacity impact of 4?
Each work item has a capacity value. ...
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)....
Is this the query you're looking for?
SELECT Id, User.Name, ServicePresenceStatus.MasterLabel, StatusDuration, ConfiguredCapacity
WHERE IsCurrentState = true
I used the documentation that @javanoob referenced above and the developer console.
Current Pending Service Routings - This signifies that up to 1000 new work items can be added to the list of pending items and can be re-routed to an agent. If the agent is not available to receive more work or no agent is available, the item remains in pending service routings list.
Current Pending Service Routing Rate per Hour - This signifies that up to ...
Welcome to SF StackExchange, AFAIK Omnichannel configurations are not deployable by change sets alone and thus also not supported by SFDX.
"We do not have any option to include the configuration done in Omni-channel to migrate/deploy to production..."
Success idea link.
As Kris suggested, I have used similar to make a custom omni supervisor component, you can use status of AgentWork and UserServicePresence to find out current capacity of the Agent.
UserServicePresence usp= [SELECT Id,ConfiguredCapacity FROM UserServicePresence WHERE IsCurrentState = true AND ServicePresenceStatus.MasterLabel ='Available' AND UserId=:...
Unfortunately that seems not to be possible.
I was just trying to do the same and asked one of our gurus who told me to just replicate the steps in production... only thing I was able to get into change set was the permission set giving users access to availability statuses.
Found that trigger & workflow rules do not fire for any updation by Omni-Channel.
These functionalities are restricted by Salesforce.
Because when the omni-channel feature was built salesforce people wanted to make sure that their customers didn't run into any recursive loops from workflow rules or apex triggers firing. Please check the link--(https://...
This is a very interesting scenario, which everyone faced while testing/deploying omnichannel. Inserting is not allowed and as manish porwal suggested you have to make test running user as active on OmniChannel to get coverage for AgentWorkTrigger. This makes unit testing hard and impossible for CI/CD as someone has to manually go and make test running user ...
I suspect you'll have to do a few other things before you can remove them. First, remove the permission sets you created for your Users that gave them access to their Presence Status for each channel that you have a Presence Status enabled. Then, go to Setup and remove the Service Channels that are enabled to disable them under Setup>Customize>Omni-...
I guess Live agent does not support Sales objects but lightning powered live chat version does work ...it's called "Snap In"... there are lot of documents how to implement it...
Yes it absolutely works. You haven't provided enough details to identify specifically where your code is failing, but I just set up a Prechat page which routes to Omni Channel, and it creates a Case and Contact with no problem. I answer the chat in the Lightning console and it pops open both related records as subtabs.
One surprising gotcha for me was that ...
So for completeness I'm going to answer my question. Agentwork only works if you are using OmniChannel for chat. LiveAgent chat will not populate Agentwork object.
Now one thing to call out there is a nasty bug currently in Salesforce that if the Chat is transferred to another agent. What happens is the RequestDateTime field is null Salesforce treats this ...
There is no way directly from Salesforce to give a wait time. You could implement a custom VisualForce page and use the liveAgent:clientChatQueuePosition component, along with historical data from your org to see what the average wait time for a chat is. So number of users ahead + average wait time per user = current wait time in queue. But there is no built ...
No need to create 1:1 mapping between routing configuration and queue.
Routing configuration helps in deciding logic of allocation like Most Avaiable/Least Active and capacity consumption to be considered when one work item from queue is assigned to the agent.
Queue is something which holds work items till the point they are not assigned to someone.
Salesforce Support replied that OmniChannelToolKitAPI for Lightning is not supported in Mobile!
Basically, There is no support in mobile!
We had the same issue on our Org. We already opened a ticket with Salesforce.
So wish you/us luck. Thing has escalated already.
Workaround is to use an on before trigger on the LiveChatTranscript to manually create the Case.
When a work item is assigned to user through omnichannel. It creates one entry in Agent Work object.
If a workitem is in user omnichannel then agent work status is assigned.
If workitem moved to my work then agent work status changed to open.
Try to build custom logic on this object to get the cases assigned to user using omnichannel.
Well I am not sure if you're still looking for answer to that but I had to implement fallback routing and that too dynamically. So initially it checks the agent availability based on the button defined in embedded setting, that's a global button and all the agent must be added to the associated queue, so that even if a single agent is available then button ...
if you read the Case objects Soap Api documentation, there are 2 fields that might interest you:
you can validate with the following SOQL:
select id, LastViewedDate, LastReferencedDate, CaseNumber, Subject
and this will return a date in the following format per case record:
I have found the answer to above.
In order to add new buttons, we need to customise the entire widget. The content of the post and other details can be added as fields to the widget's compact page layout
You can migrate these with a workaround using data loader.
Export all (or filtered) records of the Routing Configuration (QueueRoutingConfig) object from the source org(make sure you select the "Show all Salesofrce records checkbox") and Import the records in the target org accordingly.
This also applies for Skills (if you use skill based routing in Omni-...
This is not possible as of now and I don't think Salesforce will release this considering it just offered Live Agent to shift from skill based to Omni-channel based routing https://releasenotes.docs.salesforce.com/en-us/spring17/release-notes/rn_live_agent_omnirouting.htm
What I would recommend instead is to create queues based on skills and assign to these ...