Service Cloud Voice: After Our First Implementation
Before the release of Salesforce Service Cloud Voice, I wrote a series of thoughts about what the product might be able to do. But imagining a product’s capabilities based on the marketing and actually implementing that product for a customer are often very different things. I’ve just completed my first implementation of Service Cloud Voice for a customer, and here’s what I know now.
For our first (and one of the first) Service Cloud Voice implementations, PolSource partnered with BTC Power, a leader in providing and servicing electric vehicle chargers in North America. They had decided to move from their current telephony and after some investigation determined that Service Cloud Voice would be a good fit. BTC chose PolSource to help them implement. They had a few unique use cases that I’ll discuss later, but for the most part this was an ideal first implementation as much of what BTC wanted was out of the box functionality with just enough off-script work to learn some of the complexities of the product.
So what did we learn?
Follow the Setup Directions Carefully
When the licenses get provisioned, you might be tempted to visit Salesforce setup and follow the steps in Voice Setup. That is just the beginning. Salesforce has done some of the work for you, but there’s a lot more that needs to be done. You need to be ready to follow the instructions in Configure Salesforce and Amazon Connect for Service Cloud Voice very carefully. If you miss a step, it can be hard to figure out how to fix it unless you truly understand all the Amazon tools.
This is all the more true if you want to use the Lambda functions that allow you to query, create or update Salesforce records within your contact flows. You will need to navigate a lot of different Amazon functions in order to make this work. This includes creating your own self-signed certificate.
The good news is that if you follow all the directions, the out of the box functionality starts working and you have integrated telephony that does some fancy stuff in Salesforce that feels a little magical.
Almost Everything is As Advertised
Most of the out of the box functionality works a lot like the demos you saw from Salesforce. The auto transcription is still fun to watch and will be great for call transfers, monitoring, and auditing. That said, the transcript can feel a little slow and of course the transcription is not always perfect. It works well enough for the use cases above.
Call recordings worked for me on the first try. The “attach” to the case takes little-to-no effort (as long as you follow the configuration steps). Playing the recording within the Voice Call record page is pretty slick.
Omni Supervisor is a great tool and everything you want it to be. You can see who has calls and chats, agents’ current availability, and queue stats. This is one of the unsung heroes of this product. Contact center supervisors everywhere will pinch themselves to make sure they’re not dreaming.
Connecting Voice to Knowledge or Next Best Action requires that you be a part of a pilot. Like lots of features of the product, Salesforce has provided an API that requires a fair amount of work to wire things together, but this is true of working with the transcript at all.
Service Analytics is very nice. Getting this included with your SCV licenses is a cool bonus. Having the call data and case data in the same place is amazing, whether you’re using it from voice or from standard reports and dashboards. Setting up an agent scorecard is now very easy–and if you also have your CSAT surveys in Salesforce you have everything you need to provide agent coaching in one place.
Amazon Connect is Easy to Configure, Except When It Isn’t
The vast majority of the work for this project (and I expect this to be the case for all projects) is in building the contact flows. Your time will be spent setting up and testing the flows to make sure that everything works as expected. This will be especially true if you do anything besides adding prompts, getting customer input, and setting the queue. Amazon Connect does have good documentation. Surely contact flows have been well-tested by the customers that went before us. That said, there are some idiosyncrasies that you might run into along the way.
Here are a few examples that we ran into on our journey:
- Contact attributes don’t persist between flows. This meant that after the inbound flow sent the call to the queue, I didn’t have the voiceCallId value anymore to make updates to Salesforce.
- If you’d like to use the Transfer to Phone Number block in your call flow, you need to submit a ticket to Amazon to remove a limit that is automatically placed on the account.
- Updating the voice call record is currently undocumented. The Lambda function Salesforce provided has an updateVoiceCall method, but how to use it isn’t documented anywhere (that I can find).
- You can’t use a Transfer to a Phone Number in a Customer Queue flow until you have already used a Loop Prompts block.
As is often the case with AWS, there are many components needed to work with this “product” including Connect, Lambda, CloudWatch, Systems Manager, and S3. You’ll need to set up a self-signed certificate to use the Salesforce Rest API (and the instructions assume you’re on a unix-based machine). At least some understanding of how each of these components work and work together will be useful – especially if something goes wrong. If something isn’t working in your contact flows, you’ll need to get comfortable reading the CloudWatch logs.
There Are Some Gaps, But Nothing That Can’t Be Fixed
There are a few places where this product isn’t perfect. None of them even cause me to pause in recommending the product, however, these are things that are worth knowing before you dive in.
One such place is that the Salesforce integration portions of the contact flows take 3-5 seconds to complete, and there will be silence. These functions are necessary to make the transcript, recording and Voice Call record work. For the implementer, it makes sense to prompt the customer before then to let them know that something is happening.
Beyond that, the Lightning components for voice could use a little polish. They don’t align very well. The Recording Player component is particularly temperamental. It doesn’t have the standard Lightning rounded corners and often resizes funny. More importantly, it is hard to predict when it will appear on the call record page at all.
My main concern is for the agent experience. In the contact center, the most likely use case is that a customer is calling about something that will result in either an update to a case or a new case. The default functionality is for the agent to use the Related Record field to relate the record to the right account, contact, case, or lead. For this purpose, PolSource has built an accelerator that we can apply for any of our customers to display recent cases for the contact and automatically attach and open that case for the agent with one click. This control is invaluable to save time and frustration for the agent and valuable time on the phone.
Why Do It Alone?
Sure, this advice is self-serving, but it is also good advice. Don’t implement this yourself. Don’t pay someone to learn all this on your dime. PolSource has invested in understanding the Salesforce platform, Voice, and Amazon Connect. We’ve invested quite a bit of energy in pushing this product around and pushing it to its full potential. Let us apply that expertise to your implementation of this product. We can get through the hard parts for you and then help you be prepared to operate it.
I hope you found this article helpful. For questions about Service Cloud Voice or to start your Voice journey with PolSource, please contact us today!