In the Salesforce Service Cloud, a typical scenario is that customers use multiple case queues to split up the workload into different buckets. Different teams can be responsible for working on cases in the various queues. The better cases are assigned, the less eyes have to look at the case before it can actually be picked up. The out-of-the-box manner to do this is to create case assignment rules. This solution can get quite messy as it can extend to a large set of rules to provision for a large set of queues:

  • If [email] description contains [some bunch of words] -> assign it to queue a,
    • unless it also contains [some other bunch of words] -> assign it to queue b
    • [and more expections]
  • etc

Applying Machine Learning

In comes Machine Learning (ML). The application of ML in classification context has been researched for quite a while and is also applied in more and more areas. The advantage of applying ML is that there is no need to define a complex and extensive set of assignment rules as the ML application creates the model to be used.


Currently, with Salesforce Einstein still being in the early stages, it’s not easy to run specific Machine Learning algorithms on the platform. Maybe in the future with the announced Einstein API’s this will change, but otherwise there are no existing ML libraries available directly on the platform. This means that an off-platform solution must be used. Possibilities include hosting the ML algorithms on other cloud platforms like heroku or on AWS.

In essence, two REST services will be needed, one to create the model and one to have each case classified.

  • Creating the model
    From within Salesforce, a selection must be made for each of the queues to contain an appropriate amount of representative cases per queue on which the model can be based.
  • Request classification
    For each incoming case (e.g. from Email2Case or through other API’s), a call must be made to have the case classified to one of the existing cases

Commenting is closed

© 2016