Skip to main content

#Omni Channel10 discutindo

We transfer live WhatsApp conversations (Enhanced Messaging channel, PlatformType=Enhanced) to an Enhanced Bot (richContentEnabled=true) using a RoutingFlow with the Route Work action (routingType = Bot, Service Channel = Messaging/sfdc_livemessage). This worked for about 2 years and stopped working reliably a few days ago. 

 

Symptom: routeWork creates a PendingServiceRouting, but BotId comes back null, and the record falls back to the fallback queue instead of reaching the bot - no error shown to the agent. This does not happen on every single transfer attempt - it fails in some cases and works in others, with no clear pattern identified yet on our side. 

 

We also tested inserting PendingServiceRouting directly via Apex with BotId populated (bypassing routeWork entirely). The insert succeeds, but in the failing cases the record is never dispatched (IsPushed stays false indefinitely) - the conversation never reaches the bot either way. 

 

This reproduces in our Production org and two sandboxes. No relevant setup changes were found in Setup Audit Trail around when this started failing. 

 

Has anyone seen PendingServiceRouting.BotId intermittently fail to dispatch to an Enhanced Bot over Enhanced Messaging for WhatsApp? Any known cause or fix? 

 

#Omni Channel

2 respostas
  1. 21 de ago., 11:54

     Yes, both the WhatsApp channel and the Bot are on Enhanced. 

0/9000

Our agents work with Cases, Messaging and Voice Calls. They can work with up to 5 cases and 3 messaging sessions, which means that Voice calls end up last in the list of work items to pick up. Calls should ideally appear first, to avoid agents scrolling to the bottom of the list to find out about the incoming call.

How can we prioritize so that Voice Call shows up at the top of the list? Is Salesforce planning to roll out a little feature for this?

Thanks in advance,

Maelle

3 respostas
0/9000

Issue:

 

When a consultant clicks 

Accept on a routed Case work item, the AgentWork.Status field is moving to Canceled instead of Opened/Assigned. This is happening consistently, not as an occasional glitch.

The practical impact: on cases that get handed off between multiple consultants before resolution, only the finalconsultant (the one who closes the case) ends up with a usable HandleTime value. Every earlier consultant who worked the case has their AgentWork record sitting at Canceled, with no AcceptDatetime-to-CloseDateTime window ever calculated — so their actual time on the case is invisible in reporting, even though they clearly worked it (case comments/emails/status changes during their ownership window confirm this).

What I've already ruled out:

  • Confirmed we're on Enhanced (not Standard) Omni-Channel via Omni-Channel Settings
  • Confirmed Status-based capacity model is in use on the Case service channel
  • Confirmed every Case Status picklist value has a mapping (In-Progress/Paused/Completed) — no unmapped values
  • This isn't a competing-routing/race-condition scenario — it happens even on cases routed to a single agent with no other agents contending for the same work item

Expected behavior:

 

Accepting a work item should set AgentWork.Status to Opened (with AcceptDatetime populated), and HandleTime should be calculated independently for each consultant's own Accept→Close window when a case is transferred/reassigned between them — not just for the last one. I can see that throught the case value changes, the consultant spent 25mins on the case before moving to a "waiting for customer" status and then the last agent picked this up and closed it which is tracking the AHT.

 

Questions for the community:

  1. Has anyone else seen AgentWork.Status go straight to Canceled on Accept under Status-based capacity, despite a fully mapped Status field?

 

Any pointers — especially from anyone who's hit this post-migration — much appreciated. 

 

AgentWork status moves to

 

Screenshot 2026-08-03 at 10.44.47 pm.png

 

 

 

#Omni Channel

1 resposta
0/9000

Hello, I need some information. I have activated the Unified Routing feature for an AWS Connect contact center. I wanted to know whether, despite call routing using Unified Routing, it is still possible to preserve the functionality of quick connect to a queue or user in AWS without using Salesforce Omniflow. The guide seems unclear on this point.  Thanks in advance!   

2 respostas
  1. 6 de ago., 08:43

     Hello @Ankit Vashishth , thank you for your response. I would like to use Salesforce routing for inbound calls (by enabling unified routing and Omni-Channel Flow) and use simple contextual Quick Connect with AWS (transferring simply to queue or user). Is this feasible? 

0/9000

Previously I can be able to login amazon connect SAML instance with salesforce user.  

 

But now Unable to login SAML instance of amazon connect with Salesforce user. Setup>Partner Telephony Contact Centre> Open YOUR Contact center > Click 'Telephony Provider Settings'. when clicked the below page appear.

 

Unable to Login Amazon connect SAML Instance with IDP salesforce user and Inbound Call not receiving in omni channel.

 

 

In the SCCAC contact center connected with above SAML connect instance, active status achieved in omni channel when I login with amazon IAM user(not salesforce contact center user) in SAML connect instance in same window of browser, otherwise showing Log into Omni-Channel failed.

 

When the status is active 

  • The Incoming Voice call is not receiving in the omni channel where the same configuration worked before.
  • But the outbound calls are made with the omni channel and working fine.

image.png

 

 

What is the possible fixes for the above problem.

2 respostas
  1. 8 de mai., 12:22

    @Naveen Kumar S these are two issues. The Insufficient Privileges page on Telephony Provider Settings

    usually points to access/configuration, not an Amazon Connect outage. Make sure the Salesforce user has the correct Service Cloud Voice / Partner Telephony permission sets and is added as a user on the Contact Center. Also check the Amazon Connect side. Salesforce permission sets do not automatically give the user Amazon Connect admin/security profile access. 

    Found a similar thread:

    https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000K0pExSAJ

     

     

    For the SAML login issue, I would also check whether the contact center SSO connected app access changed, whether the SAML certificate expired/changed, and whether the Salesforce user still maps correctly to the Amazon Connect user. Salesforce docs say Salesforce users with the Service Cloud Voice permission set should be automatically logged into the associated Amazon Connect instance when SSO is configured correctly. 

    https://help.salesforce.com/s/articleView?id=service.voice_amazon_config_sso.htm&type=5

    For the inbound call issue, since outbound works, the softphone/browser side is probably okay. I would check the inbound path: Amazon Connect phone number, contact flow, queue, routing profile, agent availability, Omni presence, capacity, and whether the VoiceCall record is created in Salesforce. If VoiceCall records are created but not routed, focus on Omni/routing config. If no VoiceCall is created, focus on Amazon Connect/contact flow/Salesforce integration.

    Also confirm you are not mixing Amazon external routing and Salesforce Omni-Channel Unified Routing in the same contact center. Salesforce docs say to use only one routing system per contact center.

0/9000

Hi,  I am facing issue in Skill based routing omni channel flow.  My requirement is if subject contains multiple skill  then route work for multiple skill agent.    In omni channel flow  i am using add skill requirement element, and in it, i am using use variable to pass the multiple skill ids.    but for multiple skill ids, this feature is not working fine.  Also it is not taking collection of text variable which has multiple ids.    Could someone please help & Guide.    Thanks & Regards,  Anshu    

1 resposta
  1. 5 de jul., 12:01

    Greetings, @Anshu Kamble

     

     

    I believe the root cause of your problem is that the Add Skill Requirement element cannot natively read a standard Text Collection of IDs or a single text string of combined IDs.  

     

    To make sure I can you please answer the following questions: 

     

    1. How are the skills currently being identified? How is your flow scanning the Subject to find the skills? (e.g., Are you using a series of Decision elements, or do you have a custom mapping table/Custom Metadata Type that links keywords to Skill IDs?)
    2. Are these skills "Required" or "Optional"? Should all the identified skills be strictly mandatory for the agent to have, or are some skills preferred (additional) if an exact match isn't immediately available?
    3. What is the current data type of your skills variable? Is your current variable a Text Collection variable holding individual IDs, or a single Text variable containing comma-separated IDs? 

       

      If you resolved this, please share your answer so that others can learn.

    Be well- Katende

0/9000

Omni-channel user experiencing issues where when a new case is created, it doesn't appear in a new tab for them. They have to change their status to offline and back to email & phone and when that doesn't work, he needs to reload the entire page for it to start working again. Also once it starts feeding them over again it sends an old case that he had already closed back to him first, once he closes that back out again he starts getting new emails. Has anyone ever experienced this before and identified a root cause to resolve?   

2 respostas
0/9000

Hi all and all the best to wherever you are,  

 

i run out of ideas regarding passing hidden pre chat values from embeeded service deployment (enhanced chat) to a messaging session record. I setup everything in messaging settings, the custom parameter, mapped it in parameter mappings, i use the exact same flow variable, which is of same data type and available for input. In the flow i have an update element which should write the pre chat value to the messaging session before routing the session to the bot in the Inbound Flow. 

 

In embeeded service deployments pre chat is active and the hidden field is selected. I added according to documentation the method.  

 

"window.addEventListener("onEmbeddedMessagingReady", () => { 

    embeddedservice_bootstrap.prechatAPI.setHiddenPrechatFields({ 

        "preChatWebsite": "Austria" 

    });"  

But the value is not passed. However the flow itself fires. So i can write hardcode "test" into the field on messaging session object via flow everytime i start a conversation. It as well does not get overwritten from another flow. I test this in dev console with a VF page.  

 

Is there something i am missing? Do i have to create a case first maybe? 

 

Would be happy for help here. Thanks a lot in advance.  

Best 

3 respostas
  1. 5 de jun., 11:38

    Hi @Sven Riemer

    I am also at same situation and I tried reverting Embedded Service Deployment to v1 but still no luck. Did you manage to get this working with v1, if so was there any additional change needed? 

     

    Thank you.. 

    Manoj

0/9000

We're utilizing the Google API to search for an address and populate five read-only fields in Omni script if the address is found. If not, we're providing users with the option to manually enter the address via an LWC pop-up screen. After they've entered the address, we return to the Omni script. Although the fields are updating in JSON, the old values persist on the screen. How can we refresh the screen to display the new address data?

#Omni Channel
1 resposta
  1. 1 de jun., 15:22

    Hi, 

     

    omniUpdateDataJson() updates the DataJSON but doesn't trigger UI re-render on OmniScript elements — their local state stays stale. 

     

    Fix: Use omniApplyCallResp(payload) instead — it updates the JSON and forces UI refresh.

    const addr = {

    AddressLine1: '123 Main St',

    City: 'Noida',

    PostalCode: '201301'

    };

    this.omniApplyCallResp(addr);

    Requirements:

    • LWC must extend OmniscriptBaseMixin
    • Payload keys must exactly match OmniScript element names (case-sensitive)
    • For nested step data, use { StepName: { FieldName: value } }

    If still not refreshing, chain both:

    this.omniUpdateDataJson(addr);

    this.omniApplyCallResp(addr);

0/9000

Need suggestion or workaround. 

We have implemented a skill based omni channel routing, it is working fine routing correctly to available agent with specific skills. 

Issue observed is when an agent with skill is available, case owner is updated to the agent's name and if unaccepted the work after push timeout the case remains under agent ownership only. Ideally it should be reverted back to unassigned queue. 

 

Process is when a case owner manually assigns a case to a queue, automation fires and routes the case through omni. If reverting owner to unassign queue again, so as designed again the case will be routed with new PSR. 

 

I find this article - 

https://help.salesforce.com/s/articleView?id=000383911&type=1

  

But this article says,   

If an Omni-Channel user is available but does not manually accept

a Case request, the Case Owner will be set to the Omni-Channel User and then change back to the Queue in the Case History.

 

Any suggestion/guidance, would be much appreciated. 

Thanks 

 

@* Service Cloud * 

2 respostas
0/9000