Recently I was selected to speak at Europe’s largest community led event for Salesforce Professionals, Londons Calling however I was not able to give my talk because of the birth of my first child. My wife went into labour the day before the event and she gave birth to a beautiful baby girl in the early hours of Saturday. Nonetheless it meant I had to pull out last minute.
Thankfully the organisers were very understanding and I would like to give a shout out specifically to Simon Goodyear for handling my situation with such compassion, just goes to show how awesome the Salesforce community is.
The topic I had prepared was on salesforce.com and Cognitive Computing and specifically how to use IBM Watson to drive more valuable outcome from your CRM. In this blog post I will attempt to cover this broad topic in written form and maybe give you a flavour of the talk I was planning on delivering.
What is Cognitive Computing
Before we delve into the topic, it is only prudent to understand why this topic is important. As IT Professionals we come across many buzzwords, unfortunately at an alarming rate. However, we cannot ignore the incredible rise in unstructured data that is being generated. Wether that be from our interactions on Social Networks, Call Logs, Emails, Blogs etc..One stat I came across when preparing this topic that I found staggering was “Every 2 minutes, we generate an equal amount of data what was created form the start of time to the year 2000“.
Dealing with the rise of unstructured data
The best definition for Cognitive Computing (CC) that I can offer is making computers recognise, interpret and act upon information more like the human brain. This rise in unstructured data is only useful when we start to deliver apps that make use of this data and provide insights to end users. Given the sheer amount of data it is clearly not efficient for humans to attempt to process this data. And this leads me to another definition of cognitive computing that I quite like “Simulation of human thought process in a computerised model“.
So what about all the other buzzwords such as; Pattern Recognition, Natural Language Processing, Semantic Understanding….the list goes on. In my opinion CC makes use of these technologies and many more. Machine Learning / Artificial Intelligence I view as systems which learn through experience so I would classify them as taking CC to the next level.
Many of us first heard of IBM Watson back in 2011 when the computer took on human contestants in the famous US quiz show Jeopardy!. The format of the quiz show is not like your run of the mill quiz show, contestants are presented with general knowledge clues in the form of answers and must phrase the responses in the form of questions. Check out this clip of IBM Watson killing it on Jeopardy!. In January 2014 IBM launched the IBM Watson business unit which is dedicated to developing and commercialising cloud delivered CC technologies.
In its current guise it is a service offering and an API platform. IBM Watson currently offers over 15 services. The services are broken up into four categories;
- Data Insights
- The final category being Speech with services such as Speech to Text and Text to Speech.
This service extracts and analyses a spectrum of personality attributes to help discover actionable insights about people and entities, and in turn guides end users to highly personalised interactions. For the details you can check it out here
The service use three personality models
- Big Five (Developed by Costa and Norman – most widely used to describe how a person engages with the outside world)
- Needs (based on Kotler’s and Ford’s work in Marketing; which aspects of a product are likely to resonate)
- The final model Values (based on Schwartz’s work in phycology describes the motivating factors that influence the author’s decision-making)
A little history on the service and some of the research
The service uses linguistic analytics to infer personality and social characteristics, including Big Five, Needs, and Values, from text. These insights help businesses to understand their clients’ preferences and improve customer satisfaction by anticipating customer needs and recommending future actions.
Businesses can use these insights to improve client acquisition, retention, and engagement, and to strengthen relations with their clients. Work started on Personality Insights back in 2012 as part of a research effort to understand social media behaviors and the researchers found that people with specific personality characteristics responded and re-tweeted in higher numbers. For example, people who scored high on excitement-seeking are more likely to respond, those who scored high on cautiousness are less likely to respond, and that people who score high on modesty, openness, and friendliness are more likely to propagate information. As part of the work, they also developed method to compute Big Five and other personality traits from textual information. To infer personality characteristics from textual information, the service tokenizes the input text and matches the tokens with the the leading psycholinguistic dictionary to compute scores in each category. We build inferences by matching words from the text with words from the dictionaries. Such words are often self-reflective, such as words about work, family, friends, health, money, feelings, achievement, and positive and negative emotions.
Use Case Overview
The use case which the Personality Insights service can facilitate from inside your CRM is what I like to refer to as “Personal Connection Selling”. The basic user flow goes as follows:
- Sales rep is about to initiate contact with a contact
- Sales rep infers the personality of the customer
- Sales rep initiates contact and is able to relate better to the contact in order to make the sale
There are several components to the solution. Which is best highlighted using the detailed class diagram below.
The code for
PersonalityProfileResponse.cls have been omitted for brevity. In its current form the code is clearly in POC state just to highlight what is possible.
After some changes to the code and addition of a new component to show similar users/contacts I will publish the entire code on GitHub. Over time I plan to update build on this and use more of the IBM Watson services because sometimes you just need to build something that is not a CRUD app!