What is AI?
AI is a way to model our data and process it in a way that a human would. This could include voice processing, image recognition, recommendations, and/or optimizations. All of these things allow us to automate processes that give us quick and accurate results. In Salesforce, in particular, Salesforce Einstein, AI is used for several things such as automatically capturing sales/customer data, recommending knowledge articles, sending messages when a customer is most likely going to be available, and many other use cases.
Machine learning is what drives AI. Essentially it is a process of utilizing algorithms to find interesting data patterns (or paths) from training data that you provide. The more training data you have the stronger your data model will be. Training data is defined by a set of attributes and characteristics, but the model is what determines how to make sense of it all. Then a weighted number is assigned to these sets to determine the best set of attributes to solve a problem. The quality of data is very, very important when providing training data as it determines the model. Think of it as a person, when you have more experiences in your life you will make better decisions based on those similar experiences.
This is almost the same as machine learning except that the algorithms aren’t being given organized data with features and attributes, but rather unorganized data that we still want to find the most important features from. Deep learning works very similarly to our brains in regards that it is structured like a neural network meaning that the paths are less structured and they cross, but still ultimately lead to us making a decision. Take the image below for example as to how many potential paths are possible in just a small training set.
Natural Language Processing (NLP)
Natural language processing is a form of machine learning that uses grammar and language to find patterns. Some awesome use cases of this are sentiment analysis, speech recognition, or answering questions.
As we know, AI is something that is embedded in our day-to-day lives currently even though we might not be fully aware, and the same thing is happening in Salesforce. An example of this is the smart assistant that exists in all Salesforce apps which is driven by AI, and it can help any user, in any role, function, and industry.
Then there is the Einstein platform which provides powerful tools for developers and admins to customize a smart assistant for their use-case. This includes natural language processing, voice input recognition, voice output, or even allow it to answer questions (specific or open-ended). Einstein is used to allow users to: discover, predict, recommend, and automate.
Also, there is auto-machine learning (Auto ML) which can allow for tailored predictions. One use case could be predicting how likely a customer is to purchase a product. All you would need is a list of customers who bought and a list of customers who didn’t as well as the associated attributes. Weights will be given to each attribute to predict how likely a customer is to purchasing. Attributes could be things such as length of time as a customer, location, response time, total purchase amount, last purchase date, etc. The more significant a feature is to determining purchase the more accurate your prediction will be.
Salesforce Einstein Prediction Builder
The example here will be used to determine how likely a customer is to show up for their reservation at a restaurant. The reservation options are as follows: completed, no show, and upcoming. We just want to determine which customers aren’t going to show up, but we need training data to determine that. Formula fields are a good way to automatically populate training data. In this example, we will create a formula field checkbox that will tell us if a customer showed up or not based on the value of the picklist.
The next step is determining attributes that have significance on a no show customer and we can do this with a roll-up summary on the Contact object called “Previous No Shows.” This will give us a count of no shows per contact based on the number of times the checkbox created previously returns true. Then we navigate back to the reservation object to create a formula number field called “Previous No Shows”. This field we are going to populate with the roll-up summary field we just created on the contact object to give us some times the contact has missed their reservation.
Finally, let us open up the Einstein Prediction Builder to put all of these new fields to use. A prediction is created on an object which in this case is the reservation object, and it needs a field to predict which in our case is the formula field checkbox created on the reservation object. Also, we need to choose which records einstein should use as examples which we know are going to be all reservations without the status of upcoming.
And of course, we need to choose the attributes that we are basing our prediction on. Also, you need to name the field that will hold the prediction results on your reservation object.
Then finally you click “Build Prediction” which will take a few hours to analyze and start predicting but eventually the field will start holding predictions for you based on prior experiences.
Now you could create a new list view named “Call to Confirm” displaying upcoming reservations with at least a 20% chance of no show according to Einstein. That would look like this:
Einstein Image Classification
To get started with image classification you first must sign up for your Einstein Platform account and add the associated private key to your salesforce org. Then also you must allow the Einstein API in your “Remote Site Settings” within your Salesforce organization as well.
This can get very heavily code-intensive so to break it down there were 5 apex classes and 1 visualforce page created to handle this image classification. Two of the apex classes are called JWT and JWTBearerFlow which both help with authorization. Then you have HttpFormBuilder, Vision, and VisionController which build the REST API request, build the request/calls the API and initiates the API call to return results to the visual force page respectively. The visualforce page is created to display the results of image classification on an already existing data model like so.
Have any questions about Salesforce or Salesforce Einstein? Don’t hesitate to contact us at any time!