How to deploy Einstein bots in Salesforce

How to deploy Einstein bots in Salesforce

Eliza Pepper on

Share with


Salesforce’s Winter ‘24 release will supercharge Einstein bots, with an AI integration for Einstein GPT and further decision optimization. With so much on offer, it’s no wonder more and more teams are taking advantage of Salesforce’s AI tools.

But while Einstein bots are a great tool for your Salesforce end users in support or customer success, they can be a headache on the development side. Read on to learn more about Einstein bots, common errors and top-tips for deployment success.

What are Einstein bots?

Einstein bots are part of Salesforce’s Service Cloud, and are one of the four tools that Salesforce teams use to manage their customer support:

  1. Case management — tracking a customer request, monitoring the support they’re given and providing a fix.
  2. Channels — providing various channels for customer support, such as phone or web chats.
  3. Knowledge — managing a centralized knowledge base of articles. These can be both public facing articles that help answer FAQs and internal articles that your support team can access to resolve a case.
  4. AI and bots — automating aspects of customer service to provide faster support and free up your team’s time.

The four pillars of Salesforce’s Service Cloud depend on one another, and none are effective in isolation. For example, if case management and channels are totally separate then you run the risk of a customer phoning one agent and emailing another with the same request — a waste of your support team’s time and a confused customer experience. To avoid annoying errors like this, careful consideration must be put into making sure the four pillars run harmoniously.

Einstein bots are part of the fourth pillar — they automate text-based customer support by simulating the conversation that an agent would have with a customer. This makes Einstein bots helpful in a variety of use cases:

  • They can raise a case record within your existing case management system, and update the customer on the status of their case. Einstein can also book appointments on behalf of a customer and send reminders with their appointment times.
  • Einstein is compatible with a variety of customer support channels, from Slack through to WhatsApp. For systems that aren’t natively supported by Salesforce, such as Twitter, an integration can be created through the Einstein Bots API.
  • Your knowledge system of articles can be accessed by Einstein bots and fed back to a customer. For example, certain keywords in a customer request can trigger the Einstein bot to respond with relevant articles that may help answer their question.

Why do teams use Einstein bots?

Einstein bots are critical to support teams looking to improve customer satisfaction. In the digital age, most customers expect companies to respond instantly, but managing this with only agents can be difficult at busy times. Chatbots help by providing an immediate customer interaction — even if the chatbot can’t solve a request, it will update your customer with the status of their case and can provide extra information in the interim.

You can also set your chatbots to respond with automated answers to the most common questions, freeing up your customer support agents’ time to focus on the more complex queries. This not only keeps the customer satisfied, but also allows you to operate a large-scale customer support service with fewer agents.

What are the different types of Einstein bots?

Einstein bots are able to solve a variety of customer support problems through careful configuration by your Salesforce admins and developers. There are lots of different types of bot, and each Salesforce team will want to customize them to their specific needs — but there are some key functionalities that teams will want to be aware of:

AI functionality

Salesforce is harnessing the power of AI throughout their Einstein offering, but it can be a particularly useful addition to your chatbots. Currently, Einstein bot uses Salesforce’s native natural language processing to provide “smart answers” to customers. But the upcoming integration with Open AI’s Chat GPT, to create Einstein GPT, will see its responses enhanced through the use of Generative AI.

For teams wanting more control over their chatbot’s responses, it’s possible to configure automated responses. These are manually written out by your Salesforce team and are prompted by specific keywords or actions.

Different automations

If you are automating your chatbot’s answers, then you have the choice between using Apex Actions or Flow Actions in your Bot builder. As a rule of thumb, you should use Flow Actions for routine tasks, such as booking appointments, and Apex for more complex tasks, like returning a customer’s order status. It’s also possible to add Apex Actions to a Flow, centralizing your chatbot’s support functions.

Rich content display

In the Summer ‘22 update, Salesforce released a new bot type called “enhanced bots”. These differ from classic Einstein bots by providing rich content displays in the chat, such as photos or previews of articles. These can be used with either automated or AI chatbots.

Multilingual bots

Einstein bots are built in one “primary language” by the team that configured them, but they can also be multilingual to respond to users in their native language. This can be done either with automated or AI chatbots.

For an automated chatbot, you’ll need to manually add “secondary bot languages” and the appropriate bot responses in these languages from your Bot builder. But, using AI, a chatbot’s natural language understanding can give “smart responses” in 17 different languages.

Choice of channel

Einstein bots can be hosted and accessed on a variety of channels. Salesforce’s “classic chat” was the first web chat provided for use by either agents or bots, but it doesn’t allow a customer to move off of the window while staying connected.

To fix this, Salesforce released the “embedded service chat”, which still appears as a chat window on any page of your website. This allows your customer to stay connected to your live agent or Einstein bot while browsing other pages on the site.

“Messaging chat” takes this a step further by providing an embedded service chat on a variety of channels, like Whatsapp, allowing customers to receive support on an app they already have.

How to deploy Einstein bots in Salesforce

Once your Einstein bot is live, making a chat window available across your website is simple — Salesforce will generate the deployment code for you and you can paste this into the HTML of your website. However, actually deploying an Einstein bot to production with change sets can be a real challenge. To do this, you’ll need to:

  1. Add the bot from your source org to your Change Set Components section as you would do with any other metadata deployment. You’ll also need to click View/Add Dependencies to select the bot version you want to include and any custom flow definitions of Apex classes that your bot references.
  2. Now you’re ready to upload the outbound change set, and should be able to access the new bot in the target org from the Einstein Bots setup page.

This basic workflow is the same as any other metadata deployment, but there are a few different Einstein bot customizations that may complicate deployments.

Deploying active bots

Salesforce doesn’t support modifying an active bot by deployment. If you try to, you’ll get the error message Can't edit an active bot version. To resolve this, you’ll need to deactivate your bot before deploying or updating it.

Deploying a flow to an org with an active Einstein bot

If you deploy a new flow to your target org, you have to activate it in the target org before you open your Einstein bot. Otherwise, your Einstein bot will not be compatible with this new flow.

Deploying multilingual bots

While multilingual bots help you to provide wide-scale support, they come with some extra dependencies that you’ll have to deploy. You’ll need to select the Language Translation component type and include your secondary languages when deploying a multilingual bot.

How to deploy Einstein bots with Gearset

NOTE: Gearset’s comparisons have had an upgrade! We’re in the process of updating all our blog posts with the new UI images, but in the meantime you can find out more here.

Though Einstein bots can be tricky to deploy, Gearset’s smart comparison engine can help! If you want to follow along with this walkthrough, start a free trial of Gearset.

1. Select your source and target orgs

To begin, you’ll need to go to the Compare and deploy screen of the Gearset app and select your source and target orgs.

Screen showing the selection of source and target org within Gearset's compare and deploy workflow for your Einstein bot deployment.

2. Configure the comparison filter

You’ll need to create a custom filter to make sure that your Einstein Bot and all of its dependencies are included in the metadata comparison. Search for “Einstein Bot” and Gearset will automatically include the dependent “BotVersion” as a subcomponent.

Screen showing the selection of different metadata types within Gearset's metadata filter. Einstein bot and its dependencies are selected.

You’ll also need to include your bot’s intent sets. These are part of the “MlDomain” metadata type, and are visible as dependencies. Add this metadata type to your custom filter and when you’re ready — hit OK.

3. Compare metadata across both orgs

Once you’ve configured your comparison filter, click Compare Now to move to Gearset’s comparison page. This will show you all changed, new and deleted metadata between your source and target orgs. Select the metadata changes that you want to move and click Next.

Screen showing Einstein bot highlighted as a new metadata type within Gearset's smart comparison engine.

4. Problem analysis

Gearset’s smart comparison engine also includes problem analysis that can identify and resolve issues within your deployments.

For example, if you’ve selected one of your users as a “BotUser” in your source org but they’re not present in your target org, then you may receive the Salesforce error message: Invalid value for Bot User field given. Gearset’s problem analyzers will not only pick up on this issue, but will also suggest a fix or apply one for you automatically so that a BotUser error doesn’t scramble your deployment.

Screen showing that the selected metadata for the deployment has passed Gearset's smart problem analyzers and there are no suggested fixes.

Happy deploying!

All that’s left is for you to click Deploy now and get your Einstein bot live in your target org. It’s as easy as that!

Final screen showing that the Einstein bot deployment was successful.

Metadata made manageable

Gearset’s deployment solution handles tricky deployments so you can focus on configuring your orgs for end user experience. With the smart metadata comparison engine and problem analysis, you can deploy Einstein bots, and other complex metadata types, with confidence. Try it for yourself with a free 30-day trial of Gearset.

Ready to get started with Gearset?