Standard Omni-Channel End of Life: Your Questions Answered

If you’ve been hearing about Standard Omni-Channel going End of Life (EOL) – good! We’ve included this in our monthly emails since June 2025, but in case you’ve missed it and this is the first you’re hearing – Standard Omni-Channel is going end of life at the Summer ’26 major release. With the Summer ’26 release coming up in June, it’s time to make the switch to Enhanced Omni-Channel. But here’s the good news: this is nothing to be afraid of. Enhanced Omni-channel has been GA for nearly 3 years, and over 50% of our traffic and 35% of our customers are already running on Enhanced Omni-Channel successfully!

Let’s answer some common questions to make this transition as smooth as possible.

When is Standard Omni-Channel going End of Life?

Standard Omni-Channel will reach its end of life with the Summer ’26 release. For Production orgs, that is on or around June 13th, 2026 depending on your instance. For Sandbox this is on or around May 8th, 2026. After this date, Standard Omni-Channel will no longer be supported, and all orgs will be moved to Enhanced Omni-Channel.

Why is Standard Omni-Channel going EOL?

Enhanced Omni-Channel runs on modern infrastructure built for scale on Hyperforce. By consolidating on Enhanced Omni-Channel, we can:

  • Move faster on new features
  • Reduce maintenance overhead
  • Deliver better performance and reliability
  • Unlock innovation that benefits all customers

In short – we can provide you more value for your investment – faster!

All future Omni-Channel features and improvements will only be available on Enhanced Omni-Channel – that includes all new features we’ve delivered in the last 2 years (2024 & 2025).

What’s different between Standard and Enhanced Omni-Channel?

The good news? Virtually nothing! Enhanced Omni-Channel includes all the features of Standard Omni-Channel, plus:

  • Enhanced Agent Experience with the new Inbox view
  • Enhanced Supervisor Experience with the Wallboard view
  • Improved Status-Based Capacity with Paused work states
  • Route by SLA with Acceptance Due Date
  • All future innovations and features

For a detailed comparison, check out our help documentation.

What do I lose when I upgrade?

For most customers: absolutely nothing! Your routing rules, queue configurations, and agent setups will continue to work exactly as they do today.

The only notable exception is the ‘Transfer Skills’ button on the Omni-Channel widget, which isn’t available in Enhanced. You can easily replace this with the out of the box transfer action for records, or create your own Flow if needed.

What do I need to do before the upgrade?

The only action required beforehand is to make sure that the SCRT2 domain (*.salesforce-scrt.com) is an allowed domain within your network. See Allow the Required Domains for more information.

All existing functionality will continue as it was before, with no setup changes necessary.

Do I need to migrate off legacy channels first?

Yes! If you’re using legacy Chat (formerly LiveAgent) or Standard Messaging channels (e.g. SMS, WhatsApp), you’ll need to upgrade to their Enhanced equivalents before moving to Enhanced Omni-Channel:

  • Legacy Chat โ†’ Enhanced Chat (formally known as Messaging for In-App & Web, or MIAW)
  • Standard Messaging โ†’ Enhanced Messaging

In saying that, the End of Life date for these channels is in February 2026, so a whole release before the Standard Omni-Channel End of Life, so in all likelihood you will already be upgraded before the Summer ’26 release.

How hard is it to manually upgrade?

It couldn’t be simpler! Navigate to ‘Omni-Channel Settings’ and click the toggle. Accept the terms and conditions, and you’re done! Have your agents log out of Omni-Channel and back in, refresh their screens, and they’ll see the new experience.

That’s it. Really!

What if I don’t upgrade manually before June?

We’ll be running automatic migrations for orgs that haven’t upgraded yet, in multiple waves leading up to the EOL date. This is to help mitigate the risk of migrating a large number of orgs all at once at the major release. However, we strongly encourage you to upgrade proactively yourself so you can:

  • Choose the timing that works best for your team
  • Test the new experience on your schedule
  • Start benefiting from Enhanced features immediately

These automatic migrations and beginning this month, and will happen during maintenance windows. Emails will be sent out to administrations a month ahead of the upgrade, if your org is included in the automatic upgrades.

Will my org be automatically migrated?

You should get an email if your org is going to be automatically migrated, but some may have become eligible in between the report being run and emails going out, so could be missed.

To meet the criteria to be automatically upgraded to Enhanced Omni-Channel, your org must meet these criteria:

  1. Core org must be on Hyperforce
  2. Must have no LiveChatTranscript records created in the last 90 days (i.e. not using Live Chat)
  3. Must have no Standard Messaging channels active in the org

If your org meets that criteria, then it will most likely be upgraded. There are a few exceptions to this, mostly based on usage of Omni-Channel from the Classic UI.

When is my org being automatically migrated?

If you meet the above criteria, then when your org will be migrated depends on your region/instance. Here is the current plan (subject to change).

RegionUpgrade Date
ARE,ISRJanuary 17th
SGP,KOR,IDN,JPN,AUSMarch 8th
BRA,CANMarch 8th
CHE,ITA,GBR,FRA,SWEMarch 21st
IND,DEUApril 4th
USA – first waveApril 19th
USA – second waveMay 3rd

These upgrade happen in the standard maintenance window for your instance. You can expect your Sandboxes to be upgraded 1 week before your production org.

What happens after June 13th, 2026?

After the Summer ’26 release, Standard Omni-Channel will no longer be available. All orgs will be upgraded to Enhanced Omni-Channel when the org is upgraded to the Summer ’26 version.

The only exclusions are those with an exemption for the EOL for legacy chat, or don’t agree to the AWS terms and conditions of Hyperforce.

The only exclusions are those with an exemption for the EOL for legacy chat, or don’t agree to the AWS terms and conditions of Hyperforce.

Where can I learn more?

For more information and detailed comparisons:

The Bottom Line

Enhanced Omni-Channel is already powering the majority of our routing traffic, and thousands of customers are successfully using it today. The upgrade is straightforward, and you’ll gain access to new features while maintaining all your existing functionality. Don’t wait until the last minute โ€“ make the switch today and join the Enhanced Omni-Channel community!

Questions? Drop a comment below or reach out to your Salesforce team.

Re-routing or Ending “Waiting” Conversations

Weโ€™ve all been there. You look at your Omni-Channel Supervisor dashboard and see a list of conversations sitting in the backlog waiting for a service rep to action them. Maybe the customer wandered off, or maybe the floor is just slammed, or itโ€™s routed to a queue or skillset that doesnโ€™t have anybody online right now.

Letโ€™s look at this from the customer’s perspective. If a user is on a web chat and hasn’t been connected for 10+ minutes, they aren’t just “waiting”โ€”theyโ€™re potentially stuck in a void. Maybe your agents were pulled into an emergency meeting, or a fire alarm went off, or the shift ended and the backlog didn’t clear. Keeping a customer staring at a spinning wheel for 15-20 minutes when no one is coming is a surefire way to tank your CSAT.

Wouldn’t it be better to proactively manage that experience? In this post, Iโ€™ll show you how to use Scheduled Paths and a “janitor” Bot to automatically re-route or end conversations that have been waiting too long. These steps will focus on how to solve this for our messaging channels, but a similar approach could be used for Voice calls, when using Unified Routing.


The “Why”: Proactive Queue Management

When a conversation stays waiting indefinitely, it clutters your backlog and misleads the customer. By automating the cleanup:

  • Respect the Customer’s Time: Instead of infinite waiting, give them a clear exit or an alternative way to reach you.
  • Accurate reporting: Wait times arenโ€™t blown out by a few conversations that are waiting for an inordinate length of time.
  • Cleaner Backlog: Supervisors can focus on the work that is actually actionable.

The “How”: Using Scheduled Paths

The magic happens in a Record-Triggered Flow on the MessagingSession object (or VoiceCall for the phone channel).

Option 1: The Simple “Safety Net”

This approach creates a global rule: if any session waits too long, we take action.

  1. Configure the Start: Trigger the Flow when a record is created or updated where Status equals Waiting.
  2. Add a Scheduled Path: Click Add Scheduled Paths.
  3. Set the Timer: Set the offset to, say, 10 or 20 minutes after the session moves to waiting (Time Source = When MessagingSession is Created or Updated)
  4. Route Work: Within that path, use the Route Work action to move the session to a different queue or an Enhanced Bot or Agentforce Agent.

Option 2: The “Prescriptive” Approach (Custom SLAs)

If you want to be more specificโ€”perhaps giving VIP customers a longer wait thresholdโ€”you can use a custom field.

  1. Custom Field: Add a Date/Time field to MessagingSession called TimeToReRouteSession.
  2. Initial Routing: In your main Omni Flow, use a formula like NOW() + (1/(24*60)) to set a specific “expiration” time on that record.
  3. Triggered Flow: Set your Record-Triggered Flow to fire based on that custom field reaching its deadlineย  (Time Source = MessagingSession:TimeToReRouteSession)

The Secret Sauce: The “Janitor” Bot

Salesforce doesn’t have a “Close Session” action in Flow yet. To end a session gracefully, we use an Enhanced Einstein Bot as our “janitor” (messaging only).

  1. Create the Bot: Build a simple Enhanced Bot.
  2. The “Welcome” Dialogue: Send a message that acknowledges the delay: “We’re sorry, it looks like our team is currently unavailable. Please try again later or visit our Help Center.”.
  3. The “End Chat” Action: Immediately following the message, add an End Chat action.
  4. The Hand-off: In your Flow’s Scheduled Path, route the “expired” session to this Bot.

The Bot triggers, explains the situation to the customer, and closes the session cleanly.


Technical Gotchas to Keep in Mind

  • The 5-Minute Window: Scheduled paths run every minute. This means the scheduled path wonโ€™t execute exactly down to the second of expiry, but up to 59 seconds after it expires. Furthermore, depending on org activity, it can take up to 5 minutes for the automation to actually fire if you have a lot of these.ย 
  • Different Queues: If you route to a Bot, ensure the Fallback Queue in the Route Work action is different from the queue the work is currently in, or it won’t route at all.
  • Work fails to re-route: In some circumstances, the re-routing can fail, I recommend a second scheduled path to catch these stragglers (Product is working on a fix here to handle these scenarios).
  • Omni Supervisor Lag: We’ve seen cases where the work stays in the “Queues Backlog” view for a moment after the automation fires. A simple refresh usually clears the “ghost” session.

By setting up these safety nets, you ensure that if the worst happens and your queue is left unattended, your customers aren’t left in the dark and your backlogs stay clean.

Acceptance Due Date: The Omni-Channel SLA Sensation You Need

One of the oldest challenges in Service Cloud is ensuring your urgent work gets handled firstโ€”not just the old work, but the work that is truly closest to violating its Service Level Agreement (SLA).

You might have a customer who paid for a 2-hour response time, and another who is on a standard 8-hour agreement. Prioritizing items that enter the queue at the same time is relatively straightforward today, just using priorities. The real challenge arises over time, when your longer SLAs are approaching expiry, and new shorter ones are still entering your backlog.

Historically, weโ€™ve relied on clever, but ultimately limited & complex uses of Primary and Secondary Priority to try to solve for this – or a lot of manual assignment by supervisors. Now, with the Winter ’26 release, weโ€™re proving a dedicated tool for this: Acceptance Due Date

This feature is a game-changer for any service center dealing with mixed-length SLAs or simply needing to prioritize work by true urgency.


The “Why”: Solving the Mixed-SLA Problem

The issue with traditional Primary Priority is that it’s a static integer (1, 2, 3, etc.).

If you have work coming from different SLA buckets (High Priority = 2 hours; Medium Priority = 8 hours), you might set the 2-hour SLA to Primary Priority 2 and the 8-hour SLA to Primary Priority 5.

This works at the start. But what happens 7 hours later? The work item with P=5 is now an hour from expiry, while the new P=2 item still has two hours to go. The P=5 item is now more urgent, but the system will still prioritize the P=2 item.

The new Acceptance Due Date (ADD), exposed via the Acceptance Due Date field on the Route Work Flow action, solves this by making the time the prioritization factor.


The “How”: Calculating the Acceptance Due Date

Setting this up is straightforward and happens entirely within your Omni-Channel Flow.

Step 1: Calculate the Due Date

When a work item (e.g., Case, Messaging Session) is created, your Flow needs to calculate its acceptance deadline. I recommend using a formula in Flow, of type Date/Time to set the due date/time.

For example you can use these formulas:

  • 5 minute SLA: NOW() + 5 / (24*60)
  • 2-Hour SLA: NOW() + 2 / 24
  • 8-Hour SLA: NOW() + 8 / 24 

Want to use Salesforce SLAs? Check out the section further down this page on integrating with those!

Now, based on your business logic you can select which SLA is the right one for a given work item. Luckily – you are using the worlds #1 CRM, so you should be able to pull information about the person contacting you to work out their service agreements, or spend with you, loyalty status etc. to help you decide which to pick for each inbound work item.

Step 2: Route by the Acceptance Due Date

In your Omni-Channel Flow, when you use the Route Work action, you will now see an Acceptance Due Date field.

Instead of manually setting a date, you pass the dynamic date/time variable you selected in Step 1.

The magic happens when Omni-Channel compares all items in the queue: it will automatically prioritize the work item whose Acceptance Due Date is the earliest (i.e., the item closest to expiration or already expired).


The Technical Gotcha: Unifying Priority for True Urgency

This is the most crucial part to understand and is what separates a successful implementation from a confusing one.

The routing engine uses the following prioritization order:

  1. Primary Priority (Lowest number wins, e.g., 1 is highest priority in Salesforce routing)
  2. Secondary Priority (Lowest number wins – same as Primary) – Optional
  3. Target Acceptance Date (Earliest date wins) – Optional
  4. Date Enters Queue (Oldest work wins)

If you want Acceptance Due Date to be your primary mechanism for determining urgency, you must ensure all work items being compared have the same Primary & Secondary Priority.

Action: Set the Primary Priority field to a single, consistent value for all work items that you want routed by SLA – this comes from your Routing Configuration. You’ll also want to ensure your Secondary Routing Priority isn’t being set – you can find this in the Service Channel settings in Setup for the given channel.

Best Practice: The P=5 Rule (Leaving Room for Firefighters)

For a stable, reliable setup, don’t set your SLA-routed work items to Primary Priority 1.

Suggestion: Start your default SLA-driven Primary Priority value at P=5.

This gives you P=1, P=2, P=3, and P=4 to use for true human-driven overrides. If a supervisor needs to put a true “fire drill” ahead of the Acceptance due date logic, they can manually update that work item’s Primary Priority to 1 or 2, ensuring it bypasses the SLA queue and gets routed first, while the rest of your system continues to function perfectly using the Acceptance Due Date.

By combining the dynamic calculation of Acceptance Due Date with a unified, moderate Primary Priority value, you finally have an Omni-Channel routing system that prioritizes work based on true, calculated SLA urgency.


See it in action!

Want to see it in action? Check out this video from our friend Magulan Duraipandian over at Infallibilbe Techie walk you through how this works:


Bonus! Integrate with Salesforce SLAs

You can integrate this process with Salesforce SLAs – formally known as Entitlements & Milestones. This is only supported for the Case and Work Order objects right now. You can reuse your existing Milestone Types, or create a new specific one for the Acceptance Due Date – itโ€™s up to you. Creating a new one will mean you can re-use your reporting on Milestones to track it, but you can also report on it from the AgentWork record, as detailed in our help docs. To get the target date, follow these steps

  1. Load the โ€˜Milestoneโ€™ object your are using by โ€˜Nameโ€™
  2. Load the โ€˜Case Milestoneโ€™ record with the โ€˜recordIdโ€™ of the Case weโ€™re routing and the โ€˜Milestone Type IDโ€™ you loaded in Step 1
  3. In your โ€˜Route Workโ€™ action, use the โ€˜TargetDateโ€™ field on the โ€˜Case Milestoneโ€™ you loaded in step 2

Done! Just like that, the SLAs youโ€™ve already been using can now drive Routing in Omni-Channel. Magic!


What about reporting if you hitting the target?

One of the most important measures in many contact centers is whether you answered calls within a certain time period, or if you are hitting you SLAs – these can often come with financial penalties if you don’t. While we have SLA Management within Service Cloud that may be more suited to reporting on some of those targets, you can report whether you hit your target acceptance date or not.

The key fields live on the ‘AgentWork’ record, named: ‘Accept Date’ and ‘Target Accept Date Time’. You can add these to a any Report Type that includes the ‘AgentWork’ object. Once you’ve added them, you’ll then want to include them into a report to compare the values.

You then have a choice as to that you want to do in terms of a Row-Level Formula – either create one that outputs Text or a Number. To calculate the Text one, you can use a formula like this:

IF(ISNULL(AgentWork.TargetAcceptDateTime), NULL, IF(AgentWork.AcceptDateTime > AgentWork.TargetAcceptDateTime, "Target Not Met", "Met Target"))
(substitute 1s and 0s for a number type)
(I suggest filtering out records without a 'TargetAcceptDateTime' value and that aren't closed yet)

At that point you can then choose what to do with this – I’ve created reports where I group by this Row-Level. Then you can use a ‘Summary-Level Formula’ to calculate a percentage of the records in your report that are in each group – giving you the percentage of records that hit the target date.

Grow Smart with Agentforce: Treat Your AI Like a Teammateโ€”Not Just a Tool

Part 4 of our Agentforce Series

In Part 1, we helped you launch fast with FAQs.
In Part 2, we showed you how to scale smart using escalations.
In Part 3, we boosted accuracy with advanced grounding.

Now itโ€™s time for the next evolution: making your AI agent a true member of your service team.
Because when you treat your AI like a teammateโ€”not just another automation toolโ€”you unlock collaboration, trust, and efficiency at scale.

Whether youโ€™re just starting to see AIโ€™s potential or youโ€™re ready to take it to the next level, this post will give you the mindset and steps to get there.

In this post, youโ€™ll learn how to:

๐Ÿค Foster a collaborative relationship between agents and AI
๐Ÿงฉ Define roles and responsibilities for your human + AI team
๐Ÿ“ˆ Measure and improve the AIโ€™s performance like any team member

Why Thinking โ€œTeammateโ€ Changes the Game

When AI is seen only as a tool, it risks becoming a black boxโ€”used occasionally, understood rarely, and trusted even less.
When AI becomes a teammate, it:

  • Builds trust by showing work and reasoning
  • Reduces burnout by taking repetitive tasks off human plates
  • Levels up your teamโ€™s expertise with consistent, context-rich answers
  • Drives continuous improvement through feedback and coaching loops

Just like a new hire, your AI needs:

  • Clear expectations
  • Ongoing training
  • Feedback on performance
  • Access to the same resources your human agents use

What Does AI-as-a-Teammate Look Like in Practice?

  1. Give Your AI a Role and Scope
    • Define what your AI owns vs. what humans own.
    • Example: AI drafts responses for Tier 1 inquiries, humans approve or escalate.
  2. Coach and Retrain Regularly
    • Use post-interaction reviews to flag where the AI nailed itโ€”or missed the mark.
    • Feed that back into your grounding sources and escalation rules.
  3. Promote Transparency
    • Let your AI show its sources or reasoning in drafts so agents can quickly validate accuracy.
  4. Encourage Two-Way Learning
    • Just like a teammate, your AI learns from human input.
    • Leverage โ€œacceptโ€ or โ€œeditโ€ actions as signals for future improvement.
  5. Track Metrics That Matter
    • Measure CSAT, first-response accuracy, and escalation rates for AI-handled interactions.
    • Review these in the same cadence youโ€™d review team performance.

The AI-Teammate Mindset Shift

When you start thinking of AI as part of your service org, you stop asking โ€œWhat can AI replace?โ€ and start asking:

โ€œHow can AI help my team do their best work?โ€

This shift:
โœ… Strengthens agent trust in AI-generated responses
โœ… Increases adoption and consistency in use
โœ… Improves customer outcomes without overburdening agents

Continuous Collaboration = Continuous Growth

The best teams grow together. That means:
๐Ÿ“Œ Including AI performance in team retros
๐Ÿง  Giving your AI โ€œtraining dataโ€ like youโ€™d give a teammate onboarding materials
๐Ÿ“ฅ Updating its knowledge and role as your business evolves
๐Ÿงช Experimenting with new use cases to expand impact

Itโ€™s a loop: better AI collaboration โ†’ happier agents โ†’ better customer experiences โ†’ stronger business results.

Whatโ€™s Next: Scaling AI Across Channels

Now that your AI is an active, trusted teammate, itโ€™s time to see where else it can shine.
In our next post, weโ€™ll explore:
โšก Orchestrating consistent customer experiences across touchpoints

โœ‰๏ธ Struggling to make your customer service emails hit the mark?

Discover why theyโ€™re falling shortโ€”and how AI can turn them into powerful customer moments.

๐Ÿ‘‰ Read the full guide here

How is AI changing the way you handle customer service emailsโ€”and where do you see the biggest opportunity to improve?

Share your perspective below. ๐Ÿ‘‡

Grow Smart with Agentforce: Boost Accuracy with Advanced Grounding

Part 3 of Our Agentforce Series

In Part 1, we helped you launch fast with FAQs.

In Part 2, we showed you how to scale smart using escalations.

Now weโ€™re diving into the next phase: getting your AI agent to respond with confidenceโ€”and precisionโ€”by improving how it finds and uses information.

Whether you’re just getting up and running or refining your AI agentโ€™s performance, this post is for you.

In this post, youโ€™ll learn how to:
๐Ÿ”— Connect your AI agent to deeper, structured sources of truth
๐Ÿ“š Ground responses in accurate, real-time data
โš™๏ธ Set up scalable systems that grow with your content

Why Accuracy Mattersโ€”Especially Now

As your AI agent takes on more complex questions, expectations go up.

Customers donโ€™t just want answers.
They want the right answersโ€”immediately and consistently.

Thatโ€™s where grounding comes in.

A confident, useful response depends on trusted content. And not just generic help articles or static FAQs. You need to connect to the live, structured sources your teams already use:

  • Knowledge bases
  • Internal help docs
  • Product catalogs
  • Policy databases
  • Field-level case data

What Is Advanced Grounding?

Think of grounding as the process of anchoring your AI agent to facts.

Basic grounding starts with FAQs or email templates.
Advanced grounding goes furtherโ€”linking your agent to dynamic, structured content across your org.

Done well, advanced grounding helps your AI:
โœ… Find the most up-to-date answer
โœ… Reduce hallucinations or vague responses
โœ… Boost agent and customer trust
โœ… Cut down on unnecessary escalations

How to Set It Up: From Content Chaos to Connected Confidence

1. Take Inventory of Whatโ€™s Working Today
Your teams are already using reliable content sourcesโ€”bring those into the mix:

  • Salesforce Knowledge Articles
  • Salesforce record data (like case, account, or entitlement fields)
  • Uploaded internal documentation and structured files
  • Help center content
  • Public site information
  • High-performing responses like macros, flows, and templates

2. Prioritize Based on Gaps and Volume
Use your escalation review loop to find where your agent struggles.
Is it with pricing? Returns? Coverage details?
Identify high-volume topics where grounding would have the biggest impact.

3. Make It Structured and Searchable
AI agents love structure. Use tags, metadata, and organized formats (like lists, tables, or field references) to make it easier for the model to retrieve and reference relevant content.

4. Build Your Context Variables
Agentforce lets you pass structured context into your email responsesโ€”like CaseId and ContactId.
This helps your agent tailor answers more accurately by grounding in the right version of content.

Continuous Grounding = Continuous Growth

Your AI agent isnโ€™t staticโ€”and your content shouldnโ€™t be either.

Make grounding part of your sprint cycle:
๐Ÿ“Œ Review new escalations
๐Ÿง  Identify what content was missing
๐Ÿ“ฅ Add or update structured sources
๐Ÿงช Re-test and measure impact

Itโ€™s a flywheel: better grounding โ†’ better answers โ†’ fewer escalations โ†’ more scale.

Whatโ€™s Next: AI as a Channel

Now that your AI agent is accurate, responsive, and scalableโ€”itโ€™s time to go bigger.

In our next post, weโ€™ll explore:
๐Ÿ’ฌ What it means to treat your AI like a teammate, not just a tool

๐Ÿš€ Ready to see whatโ€™s new in Agentforce?

Check out the Summer โ€™25 Release Readiness Highlights for Service Cloud to get a look at the latest updates.

๐Ÿ‘‰ Watch here

How are you grounding your AI agent todayโ€”and where are you seeing the biggest wins or challenges?
Letโ€™s learn from each other.๐Ÿ‘‡

Grow Smart with Agentforce: Turn Escalations into Your Enablement Engine

Part 2 of our Agentforce Series
In Part 1, we covered how to get your AI agent live fast with FAQs. Now, weโ€™re moving beyond launch.

In this post, youโ€™ll learn how to:
๐Ÿ” Analyze escalations to uncover what your agent should learn next
๐Ÿง  Use real case data to expand your AIโ€™s knowledge
๐Ÿ” Set up a repeatable process to improve performance every sprint

If youโ€™ve gone liveโ€”this is your roadmap for scaling thoughtfully (and ROI-positive).

The Opportunity: Your AI Agent Is Talkingโ€”Are You Listening?

You launched with FAQs. You went live fast. Youโ€™re seeing value.

But now your AI agent is hitting edge cases. Itโ€™s handing off emails it canโ€™t resolve.

Thatโ€™s not a sign to stop.
Itโ€™s your next roadmap.

Escalations arenโ€™t failures. Theyโ€™re feedback. And theyโ€™re your biggest unlock for scaling your AI agent beyond the basics.

Why Escalations? Because They Show You Whatโ€™s Next

Every time your AI agent hands off a message, itโ€™s telling you something:

  • โ€œI donโ€™t understand this request.โ€
  • โ€œThis topic isnโ€™t in my training set.โ€
  • โ€œI need better grounding data to respond confidently.โ€

These patterns are gold.

The best teams donโ€™t ignore escalationsโ€”they analyze them.
They turn confusion into clarity, and handoffs into high-impact training data.

Train Smarter: Use Real Cases to Build Real Capability

If FAQs are your training wheels, escalations are your upgrade path.

Hereโ€™s how to use them to expand agent coverage:

  1. Find the themes. Are cases escalating around order changes, subscription adjustments, or loyalty programs? Tag and group them.
  2. Source your content. Pull from agent macros, email templates, flows, and internal KBs already in use.
  3. Feed your AI what works. Use real examples from high-performing agents whoโ€™ve answered these questions well.

Youโ€™re not building from scratchโ€”youโ€™re building from success.

Build the Feedback Loop: Escalation โ†’ Enablement โ†’ Impact

With every iteration, your agent gets better. And so does your process.

Set a rhythm:

  • Review escalations weekly or every sprint
  • Prioritize high-volume or repeatable intents
  • Add grounding data and test again
  • Measure agent performance and customer outcomes

This isnโ€™t one big launch.
Itโ€™s a flywheel of continuous improvement.

Measure When Youโ€™re Ready to Expand

How do you know your agent is maturing?

Look for signals:

โœ… Lower escalation rates in key categories
โœ… Faster case resolution times
โœ… Higher agent satisfaction (they’re focused on complex work)
โœ… Better customer feedback (and fewer “please clarify” loops)

When you see those signsโ€”itโ€™s time to unlock new categories.

Real Scale, Real Impact

The most successful Agentforce teams donโ€™t automate everything at once.
They automate what mattersโ€”and scale with intention.

By listening to what your AI agent canโ€™t do, youโ€™ll figure out exactly what it should do next.

Itโ€™s not about doing more. Itโ€™s about doing the right next thing.

Real Scale, Real Impact

The most successful Agentforce teams donโ€™t automate everything at once.
They automate what mattersโ€”and scale with intention.

By listening to what your AI agent canโ€™t do, youโ€™ll figure out exactly what it should do next.

Itโ€™s not about doing more. Itโ€™s about doing the right next thing.

Whatโ€™s Next: Beyond Emailโ€”The Future of AI as a Channel

Youโ€™ve launched. Youโ€™ve scaled.
Now itโ€™s time to think bigger.

Next up? Weโ€™ll dive into boosting accuracy with advanced groundingโ€”exploring how to enrich your AI agentโ€™s responses by connecting deeper into trusted, structured sources across your org.

๐Ÿ‘‰ Ready to start or scale? Check out the Help Guide to connect your Agentforce Service Agent to email.

Whatโ€™s the most surprising thing your AI agent has escalatedโ€”and how did it help you improve?

Letโ€™s learn from each other.๐Ÿ‘‡

Grow Smart with Agentforce: Train Your Agent Like a Human

Part 1 of our Agentforce for Service Email Series

In this post, youโ€™ll learn how to:

  • โœ… Launch your AI fast using what you already have
  • ๐Ÿ“š Train it like a human service rep
  • ๐Ÿ” Create a foundation you can grow and scale

The Problem: AI Projects Stall Before They Start

Youโ€™ve invested in the platform. Youโ€™ve got the data. Leadership is on board. But your AI initiative still isnโ€™t live.

Why?

Because most teams get stuck trying to launch the โ€œperfectโ€ use case.
They overthink. They overbuild. And they delay deploymentโ€”turning what couldโ€™ve been a quick win into a 6-month experiment with little to show for it.

Sound familiar?

If you want to move fast, deliver ROI, and start making real impact, thereโ€™s one proven place to begin:
๐Ÿ‘‰ Start with your FAQs.

Why FAQs? Because They Just Work.

Launching Agentforce for Service Email doesnโ€™t require a massive overhaul. You already have what you need:

  • A robust knowledge base
  • Common, repeatable inquiries
  • High-volume case categories perfect for automation

Think about how you onboard a new rep. You start with the basics:

  • โ€œHow do I reset my password?โ€
  • โ€œWhereโ€™s my order?โ€
  • โ€œWhatโ€™s your return policy?โ€

These are your agentโ€™s training wheelsโ€”and theyโ€™re your fastest path to value.

Train Your Agent Like You Would a Human Service Representative 

The most successful teams donโ€™t treat AI like a black box.
They treat it like a teammate. Hereโ€™s how:

  • Use what you already haveโ€”macros, quick texts, and KB articles.
  • Model the bestโ€”feed in examples from high-performing agents.
  • Ground in real dataโ€”Salesforce cases, flows, and templates.

With Agentforce, your AI agent can start handling email in weeks, not months.
This isnโ€™t about perfection. Itโ€™s about progress. ๐Ÿš€

Escalations = Your Roadmap to Scale

Once your agent is live, youโ€™ll start seeing what it canโ€™t handle. Thatโ€™s not failureโ€”thatโ€™s opportunity.

Use escalations to:

  • Spot gaps in your content or logic
  • Identify new areas for grounding
  • Prioritize your next round of automation

Every escalation tells you where to go next.

The Flywheel of AI Service Maturity

Hereโ€™s how the most successful support orgs scale Agentforce:

  • โœ… Launch with FAQs
  • ๐Ÿ“Š Track what gets escalated
  • ๐Ÿ” Expand training and grounding data
  • ๐Ÿ” Iterate and deploy again

This โ€œrinse, learn, repeatโ€ model drives continuous improvementโ€”without burning time or resources.

Real Impact in Real Time

Teams with Agentforce for Service Email are seeing:

  • โฑ๏ธ Faster resolution for common questions
  • ๐ŸŽฏ More time for agents to focus on high-value issues
  • ๐Ÿš€ Deployments in weeks, not quarters

And the best part? It all starts with the content you already have.

If you’re stuck or waiting for the “perfect” use caseโ€”don’t be.

Start with FAQs. Get your agent into production.
And let the results speak for themselves.

Letโ€™s get you live.

Progress Over Perfection

Your AI doesnโ€™t need to handle every edge case on day one.
It just needs to start helping.

And once itโ€™s live, youโ€™ll start learning fast.
In Part 2, weโ€™ll show you how to use escalations to identify gaps and scale intelligently.

๐ŸŽฅ Want to see it in action?
Check out our quick demo of Agentforce for Service on Email:
๐Ÿ‘‰ Watch the video

๐Ÿค” Whatโ€™s the one service question you wish your AI could handle today?
Let us know in the commentsโ€”weโ€™re building this together.

Report on Abandoned Conversations with Salesforce Channels

One important piece of information for Service centers is related to abandoned conversations – that is how many people that really wanted to talk to you, gave up while they were waiting for a rep to talk to them. This primarily applies to real-time communication channels like web chat and voice calls, where a customer may abandon the interaction while waiting in queue before being connected to a service rep. This could also include after being handed off from a Bot or AI Agent conversation, to connect with a human.

Why is Abandoned Reporting Important?

This is a hugely important metric, but you probably know that already, thatโ€™s why youโ€™re here. But just as a reminder, here are a few key reasons why:

  • Understanding Customer Frustration: High abandonment rates can indicate long wait times or other issues causing customer frustration.
  • Optimizing Resource Allocation: Tracking abandonments helps determine staffing levels and potential bottlenecks in customer service.
  • Improving Customer Experience: Identifying reasons for abandonments leads to process improvements and better overall customer experience.

Great – we know itโ€™s a gap, we know itโ€™s important, how do we solve it?

How to report on Abandoned

First – we are planning an out of the box solution for this (on Enhanced Omni only) where we will write a new โ€˜AgentWorkโ€™ record, with the โ€˜Statusโ€™ of โ€˜Abandonedโ€™ – but ahead of that change coming in the Winter โ€˜26 release (October 2025), here are some ways to report on it.

I will go through a simple option, followed by a more complex one the captures more scenarios, but is a lot more difficult to implement and track. The scope of this is to solve it for Enhanced Chat (formally known as Messaging for In-app and Web) and Voice calls.

Step 1 – Add new fields to the objects

Both options involve adding these 3 fields to both the โ€˜MessagingSessionโ€™ and โ€˜VoiceCallโ€™ records:

  1. Num Times queued (Number) – default 0
  2. Num Agent accepts (Number) – default 0
  3. Was abandoned (Formula (Checkbox)). This formula compares the two values above, plus that the conversation was ended by the end customer/visitor, as opposed to an agent or the application:
    1. For MessagingSession:
      ISPICKVAL(EndedByType, "End User") && ( Num_Times_queued__c > Num_agent_accepts__c)
    2. For VoiceCall:
      DisconnectReason = "CUSTOMER_DISCONNECT" && ( Num_Times_queued__c > Num_Agent_accepts__c)

Step 2 – Update on each accept

Now we need to increment the two counters in the appropriate places – for the number of accepts that is relatively straightforward:

  1. Create a Record Triggered Flow on โ€˜AgentWorkโ€™, and configure the start conditions in this way:
    1. Trigger is โ€˜A record is created or updatedโ€™
    2. Trigger condition for โ€˜Statusโ€™ equals โ€˜Openedโ€™ and โ€˜Bot IDโ€™ is Null equals โ€˜trueโ€™ (ignore any time the bot accepts work)
    3. Ensure you select โ€˜Only when a record is updated to meet the condition requirementsโ€™
  2. Add a decision node to check the type of work that was accepted. That decision node should check the โ€˜Starts Withโ€™ of the โ€˜WorkItemIdโ€™ matches the appropriate prefix for the objects we care about:
    1. MessagingSession: 0Mw
    2. VoiceCall: 0LQ
  3. Within each outcome, youโ€™ll add 3 elements
    1. Get Records – load the appropriate record
    2. Assignment – โ€˜Addโ€™ 1 to the โ€˜Num agent acceptsโ€™ field
    3. Update Records – save the updated value

Step 3 – Update on each routing request

Now we get to the trickier part – updating the record to count each time a routing request was made for the record. For efficiency and ensuring that the work gets delivered, we prevent a lot of automation on the โ€˜Pending Service Routingโ€™ object, as any errors could cause systems to get out of sync, calls dropped or work not actioned as expected. However, that creates some issues when trying to catch a new routing request of a record – so I have 1 simple, and 1 more complex solution for this.

Simple solution

This involves simply updating the record each time you attempt to route it to a human service rep (don’t do this when routing to a bot or Agentforce Agent) – in the most basic case, this is incrementing the counter within the Omni Flow that you route the object in, similar to the screen shot on the right (this one assumes weโ€™ve previously loaded the Voice Call record in the Flow).ย 

Assuming you know all the places that you are routing Voice Calls and Messaging Sessions, and when you transfer between users you are using an Omni Flow, then this should lead to an accurate count of routing requests, and therefore abandonments.

More complex solution

A more complex solution is to use โ€˜Change Data Captureโ€™. You can enable this in Setup, and add the โ€˜Pending Service Routingโ€™ object to the โ€˜Selected Entitiesโ€™ – you can only enable 5 entitles without purchasing an add-on for more. This will then allow you access to the โ€˜PendingServiceRoutingChangeEventโ€™, which you can add an Apex Trigger to – yep weโ€™re going to need to write Apex for this one, hence the added complexity.

trigger PSR_CDC_Trigger on PendingServiceRoutingChangeEvent (after insert) {
    // Iterate through each event message.
    for (PendingServiceRoutingChangeEvent event : Trigger.New) {
    // Get some event header fields
        EventBus.ChangeEventHeader header = event.ChangeEventHeader;
        List<String> recordIds = event.ChangeEventHeader.getRecordIds();
        System.debug('Received change event for ' + header.entityName + ' for ' + header.recordIds + ' of type ' + header.changeType + ' operation.');
        if (header.changetype == 'CREATE')
        {
            // New PSR record created - check the object type for the work item
            System.debug('event.WorkItemId: ' + event.WorkItemId);            
            // Ensure we aren't routing to a Bot/AI Agent
            if (event.BotId == null) {
            	for (String recordId : recordIds) {
                    if (event.WorkItemId.getSobjectType() == Schema.VoiceCall.SObjectType)
                    {
                        // VoiceCall - load record and increment num times queued.
                        System.debug('PSR for a Voice Call created.');
                        VoiceCall call = [SELECT Id, Num_Times_queued__c from VoiceCall where Id = :event.WorkItemId LIMIT 1];
                        call.Num_Times_queued__c++;
                        update call;
                    }
                    else if (event.WorkItemId.getSobjectType() == Schema.MessagingSession.SObjectType)
                    {
                        // MessagingSession - load record and increment num times queued.
                        System.debug('PSR for a Messaging Session created.');
                        MessagingSession ms = [SELECT Id, Num_Times_queued__c from MessagingSession where Id = :event.WorkItemId LIMIT 1];
                        ms.Num_Times_queued__c++;
                        update ms;
                    }
                }
            }
        }
    }
}

This is an example of the Apex Trigger that would increment the value – you can copy and paste this into the โ€˜Developer Consoleโ€™ after going to โ€˜Fileโ€™ โ†’ โ€˜Newโ€™ โ†’ โ€˜Apex Triggerโ€™. Name it โ€˜PSR_CDC_Triggerโ€™, and select the โ€˜PendingServiceRoutingChangeEventโ€™ object.

That should capture all creations of PSR records, and increment the routing requests as appropriate. 

Step 4 – Create the report

To keep this post a reasonable length, Iโ€™m not going to go into details on how to create reports, but it should be pretty straightforward to create a report for each object to report on this, and there is lots of helpful content out there. Follow the usual reporting steps to create a โ€˜Report Typeโ€™, ensuring it has the โ€˜Was Abandonedโ€™ field included, and then create a report using the report type. You will need to create two separate reports, 1 per object – but I suggest dropping them both onto a single dashboard. You likely also want an abandonment rate – you can use a summary level formula to calculate this in standard reporting for a time period – below is an example of how you might do this, if you grouped by date:

Limitations

There will be a few limitations to this solution, particularly with regards to the Voice channel:

  • The โ€˜Disconnected Reasonโ€™ needs to come from the telephony system. With the โ€˜AWS Connectโ€™ integration, this can take a while after the call disconnects before it is populated. It may also be populated differently (or not at all) by other telephony providers.
  • To use the Omni Flow solution, you will need to be calling Omni-Flow from your telephony provider.
  • Transfers may need some thought, and youโ€™ll need to decide if you want to count conversations that drop when being transferred between teams or service reps as abandoned or not.
  • Only unauthenticated Messaging Sessions can be ended/abandoned, so may not totally cover all abandoned scenarios related to web chats.
  • There will be some edge cases, error scenarios etc. that may not be captured by this setup

Conclusion

While out of the box Salesforce does not track abandoned yet, this custom solution can fill the gap. By implementing appropriate methods and metrics, organizations can effectively measure and analyze abandonments in both Messaging and Voice channels, leading to improved customer service and operational efficiency. Let me know how you get on, and if there are any issues or remaining gaps this misses.

One Engine to Route Them All:Unified Voice Arrives in Omni-Channel!

Itโ€™s official: Omni-Channel can now route voice calls end-to-end! ๐ŸŽ‰

For the first time, Salesforce Omni-Channel is the single routing engine for all supported channels — including voice. That means all customer interactions — from phone calls, chats, emails, leads — are routed through one unified routing engine. Until now, voice routing lived in a separate engine — causing complexity, sync issues, and routing conflicts — especially when blending voice with channels like chat.

With Unified Voice Routing (GA for Amazon Connect), voice is now fully native to Omni-Channel — enabling seamless channel blending through a single routing engine. It also unlocks skills-based and direct-to-agent routing for voice, leveraging Omni-Channelโ€™s CRM-powered, channel-agnostic design to deliver smarter and more consistent customer experiences.


Why This Matters: One Engine to Route It All

Hereโ€™s what Unified Voice Routing brings to the table:

โœ… Omni-Channel routes voice calls directly, delivering consistent routing across all channels
โœ… Simplified setup experience — no more juggling complex configurations across two platforms; all routing rules live in one place
โœ… Improved channel blending, especially between voice and chat, for smoother work distribution
โœ… Skills-based and direct-to-agent routing support now extended to voice calls
โœ… Elimination of race conditions and presence conflicts — one routing engine rules them all
โœ… Flexible push timeout configuration, removing the frustrating 20-second push time out for SCV Amazon Connect agents


What a Smarter Voice Routing Experience Looks Like

What makes Unified Voice Routing stand out is how naturally voice now fits into the Omni-Channel experience — using the same routing logic you rely on for other channels — including skills based routing!

Shareable Link: https://salesforce.vidyard.com/watch/bNZrwRjpDe6ABiTSa1jNdY

In this demo:

  • A customer calls about a billing issue
  • IVR inputs are captured and passed from Amazon Connect to Salesforce
  • Omni-Channel Flow determines how the work should be routed
  • The voice call is routed using skills-based logic and placed in the Supervisor skill backlog
  • An agent is matched and offered the call based on their skill proficiency
  • The experience mirrors routing across all other channels — cases, leads, messaging, and chat — and now, voice!

Youโ€™ll see a real-world scenario where a customer calls in with a technical support issue, and the system routes the call directly to the most skilled available agent — automatically, seamlessly, and in real time. Omni-Channel Routing is CRM-powered and channel-agnostic — routing decisions are based on rich Salesforce context and applied consistently across every channel. This is voice routing — the Salesforce Omni-Channel way.


Letโ€™s Get Technical: How Unified Voice Routing Works

Hereโ€™s how it all comes together under the hood:

  • Amazon Connect handles the IVR and the physical phone call connection.
  • When a call arrives, Amazon notifies Salesforce, passing along the IVR inputs and other call attributes (e.g. number dialled menu selections, customer responses).
  • Salesforce Omni-Channel uses those inputs to make CRM-powered routing decisions using Unified Routing.
  • While Salesforce determines the best agent, Amazon holds the call in a temporary queue.
  • Omni-Channel selects the right agent — based on skills, queue logic, or direct-to-agent routing — and sends which agent is the best person for the call
  • Amazon then connects the caller to the selected agent.

The result: voice, chat, email, and other work items are now routed, prioritised, and distributed through a single intelligent engine.


Who Should Adopt Unified Voice Routing?

Unified Voice Routing is ideal for:

  • Existing Omni-Channel customers already using channels like messaging or email who want to bring voice into the same routing engines
  • Existing Amazon Connect SCV Customers prioritising seamless channel blending and aiming to eliminate routing conflicts and sync issues
  • Customers looking to scale Omni-Channel across sales and service teams, simplifying routing management across multiple channels. One of Omni-Channel value is routing over 25 objects — including leads and custom object — meaning that sales and service users can have consistent routing rules

โš ๏ธ Whatโ€™s Not Supported (Yet)

  • Queued Callbacks
  • Scheduled Callbacks / Scheduled Work
  • Telephony partners outside of Amazon Connect
    • We are currently working with several partners to enable them to also support Unified Routing. Check with your Bring Your Own Telephony partner whether they will support Unified Routing in the future. Or work with your Account Team to identify the right Bring Your Own Telephony partner for your use-case. For partners looking to implement Unified Routing, have a look at the Bring Your Own Telephony developer guide.


Try It Out and Help Shape Whatโ€™s Next!

One engine. Every channel. Unified at last.

I hope this article has you as excited to try Unified Voice Routing as the Omni & Voice teams were to help bring it to life. Weโ€™d love for you to give it a try — and let us know how itโ€™s working for you! Your feedback is key to shaping what we build next. Share your thoughts and enhancement ideas on the IdeasExchange, tag us on LinkedIn, or drop a comment below. We’re here to help you get the most out of this powerful new capability.

๐Ÿ‘‰ Get started with our help docs
๐Ÿ‘‰ Explore best practices for your routing strategy

Reporting on Service Cloud channels

Reporting on Salesforce Service Cloud can sometimes feel like navigating a labyrinth. While the platform offers immense flexibility, it often leaves users yearning for more guidance. This blog aims to demystify the process, providing you with the insights and tools needed to harness the full power of Salesforce Service Cloud reporting.

Simplifying the Complexity

Historically, we’ve made it challenging for our customers by offering a plethora of reporting options without clear direction, or even making them aware of the options out there. Many customers will start with a single channel and build reports on that single object with some success. However, what happens when you add more channels and want consistent reporting across them all? The flexibility is there in the application, but the guidance on how to do it has been lacking. This blog, and future ones coming, are intended to help bridge that gap, making it easier for you to create meaningful reports and understand the data at your fingertips.

Harnessing the Power of Omni-Channel

One of the most powerful features of Salesforce Service Cloud is Omni-Channel. This tool is not only a powerhouse for work classification and routing, but also allows you to report consistently across all channels using a unified object model.

There are 2 objects that are critical to this consistent reporting:
1. AgentWork Object: This object is your go-to for tracking all the work assigned to agents and their performance. By analyzing the AgentWork object, you can gain insights into how efficiently your agents are handling their tasks, and the volumes you are handling.

This is where you find key performance indicators like average handle time, wait time (speed to answer) and wrap up time (after conversation time). For a work focused view, remember to group by the WorkItemId to find all the work performed for a given case or conversation, or alternatively for a service rep focused view, group by the UserId to find all the important metrics for your team.

For those with more advanced routing configurations, this object joins to the AgentWorkSkill object, where you can find if additional skills were dropped or not, and the relevant performance per skill.

2. UserServicePresence Object: To monitor user presence and capacity throughout each day, the UserServicePresence object is invaluable. It helps you keep track of when agents were available, busy, or offline, providing a clear picture of your team’s capacity and workload over time.

This contains important information related to how busy your team was, and how they are spending their time while logged in. Youโ€™ll want to group by user, presence status and date, to identify how long they are in each status each day, as well as analyze their idle time and average capacity, to see where you are potentially over or under staffed.

Recent Reporting Enhancements

We’ve recently enhanced our reporting capabilities to make it even easier to join Omni-Channel data with channel-specific data in Custom Report Types. For example, you can now join the AgentWork object with Case, MessagingSession, and VoiceCall objects (amongst others). This capability allows for a more comprehensive view of your service operations, enabling you to make data-driven decisions with greater confidence, and create consistent reports across channels.

This allows more in-depth analysis per channel, for instance determining which Case Types have a higher average handle time than others, or which customers you are spending the most time supporting. You will need to create separate reports for each object you want to join, but you will then be able to put them all on the same dashboard with common filters, allowing you to identify trends around volume or performance.

Existing Reporting Gaps

While we’ve made some strides in improving our reporting capabilities, we acknowledge that there are still some gaps that you can’t report accurately on (or at all) without customization. Two of the most common gaps we hear about are related to abandoned and transferred work – stay tuned for future blogs in this series, where we’ll provide tips and tricks to help you navigate these gaps until we can address them natively in the product.

In the Summer โ€™25 release we are going to be adding some reports and dashboards that you can install from the Setup screens, with the intention of giving you some basic reporting right away, with the flexibility to customize and enhance to your hearts desire – we’d love you feedback on those once they are available.

Future Topics

This blog is largely an introduction and some high level guidance, with some extra posts planned in the coming weeks, including more in depth guides on building these reports, as well as work arounds to address the known gaps. I’ll also call attention to these two new help docs related to reporting on Messaging:

Future blog topics include:

  • Step by step instructions on how to report on the AgentWork object
    • Extra: How to report on Skills
  • Step by step instructions on how to report on the UserServicePresence object
    • Extra: Utilization & Concurrency
  • How to report on Transfer
  • How to report on Abandoned

Let me know if there is something else Iโ€™m missing that youโ€™re wanting to learn more about – these aren’t in a particular order, so those that are most desired I can start with.