Salesforce Chatbot Implementation — Tips on Improving End User Experience

Samhith Dommata
Oct 14 · 6 min read

Keep your customers engaged and confident their information remains secure

My experience with Salesforce Chatbot has been rewarding from both the developer’s perspective and that of an individual, more broadly speaking. As a developer, I’ve gained knowledge with a new piece of technology, and as an individual, I’ve gained the awareness of the difference that this work can make in today’s world — especially in the context of an ongoing pandemic. I’ve worked mostly with government agencies to implement chatbots to help relieve the stress of live agent support during these rough times, while also resolving client issues in a more efficient manner. Although I have gained extensive knowledge in developing and configuring chatbots, I have also run into multiple challenges, resulting in lessons learned to better approach chatbot implementations. Let’s discuss a couple of issues from which I have learned and how to resolve those alike.

Eliminate infinite loops and prevent dead ends

During the pandemic, many services had to move online. Chatbots help with this transition, for they provide a seamless experience in guiding customers to getting their questions and requests answered while offloading repeatable operational tasks from the organization. However, a chatbot’s dialog tree complexity is exponentially proportional to the amount of information housed within it. The same holds true for the number of navigations from each dialog to the next.

One of the scenarios I experienced involved a client that told me their customers were frustrated because the chat conversation went in an infinite loop. The bot did not provide options to advance towards issue resolution and did not answer the customers’ questions. It turns out this is a common mistake Chatbot developers/configurators make, and it is crucial to test each path in the tree diligently to ensure there are no infinite loops or dead ends in the flow of the dialog.

If an infinite loop is identified either through testing or by external users, there are two approaches to resolve the issue:

Use a Generic Message — Administrators can walk through each of the identified instances and redirect the dialog to either the main menu or a generic message, in cases where a hotfix is needed, so that the bot doesn’t hang. As you can see in the screenshots below there is an option to show a separate menu, which offers flexibility beyond simply redirecting users to the main menu. Have you ever come across an automated system that redirects you back to the main menu rather than listing out the options for your last action? That is what we are trying to avoid here, to minimize user frustration.

Static Message for hot-fix

Provide a List of Actions — From my experience, users find it more useful when redirected to a set of actions that the common user usually performs. These actions must first be identified by asking agents about the most common calls they receive. Alternatively, this information may be identified using Salesforce Case Management, analyzed by Category. Once the actions are identified, the development team can include Apex actions in the menu for customer redirection. By using Apex Actions, we can both provide end users with crucial real-time data and send data to either Salesforce or a third-party service. Be forewarned, when an Apex Action makes a callout, the chatbot will time out if it executes for more than 10 seconds. The resulting menu would be a useful set of actions to which the user could be redirected without the chatbot running in a loop over the same dialog. This also adds value by providing the user with new options, adding fluidity to the interaction.

Menu of most utilized actions with the use of Apex Actions

Eliminate security concerns and address the need for Personally Identifiable Information (PII)

Although chatbots provide great guidance and self-service, bots can feel a bit impersonal. The lack of human interaction sways many people away from using chat and chatbots when the bot requests sensitive information (i.e., SSN, credit card information, etc.). My previous client notified our team they had been alerted of a security breach in which their users’ personal data was compromised. As a result, we needed to build trust with both the client and their users.

Inform the customer why — If sensitive information is required, configurators should display messages for why that information is necessary. This can be accomplished through either a menu option or a message before the input is required. Easing the customers to trust the functionality of the chatbot is critical.

Mask the information — For developers, any sensitive information should be encrypted both on the display and when storing or interacting with external services. On the front end, any chat messages displayed in the window can be overridden. Consider writing custom code in the Lightning Web Component chosen for the ‘Chat Messages(Text)’ component. This code should be built to identify patterns that are sensitive such as DOB, SSN, or Payment Info. Once those are identified, characters for those inputs can be masked with special characters.

Select Lightning Web Component to customize interface

Encrypt the data — Moving on to the back-end encryption, when sending sensitive data over to an external service, consider encrypting the value of the field being sent over with Base64 encoding to ensure that the original value is not part of the package. When performing a GET call from an external service, I have also found it useful requesting that data being received be encrypted through a method of their choice and then shared with me. This allows me to decode the response in the same manner.

Chatbots are meant to serve customers effectively while relieving the operational burden from live agents. This, in turn, can contribute to considerable increases in the support quality of their work. Talk about a virtuous cycle. At the end of the day, chatbots are to systematically manage the common questions with quick answers. However, replacing human interaction is not so simple; every question might not have an answer. When implementing a chatbot solution, it is imperative that the user experience is given importance. If the business does not prioritize user experience, calls will most likely be made back to live agents, deeming the chatbot an extra burden due to an increase in questions. The two topics discussed above provide a solid foundation to any chatbot implementation, reducing business costs while increasing the bot’s effectiveness to respond to customer needs.

Interested in how developers can fully contextualize the bot with user interactions on the application? Stay tuned for the next article!

Samhith Dommata is a Salesforce Developer based in Scottsdale, Arizona. He is a Salesforce Certified Platform Developer, Administrator, and Platform App Builder. He has been working on the Salesforce platform since 2018.

About Slalom:
Slalom is a modern consulting firm focused on strategy, technology, and business transformation. In over 35 markets around the world, Slalom’s teams have autonomy to move fast and do what’s right. They’re backed by regional innovation hubs, a global culture of collaboration, and partnerships with the world’s top technology providers.