Fully Automated Email Syncing and Logging for Salesforce: Dust Off Your Boolean Algebra

I remember wondering in middle school math class why they were teaching us Boolean Algebra. When would we ever use this stuff involving truth tables? Fast forward 25 years, and suddenly I wish I had paid more attention in class.

In the good old days, a sales person could keep track of their leads and contacts in a tin box on index cards. At the most, a sales rep sent and received a few letters per week. Phone calls were strictly local; an interstate call required permission from a sales manager. No one called overseas. Face-to-face selling in a territory was the norm.

Today, face-to-face contact is rare. Most sales reps sit in a cubicle or at home and communicate with the world through electronic means. Customer contact is done via phone, web conference and, mostly importantly, email. The amount of information sent, received and managed by a sales rep is staggering. In many companies, a sales rep is expected to make 45 calls per day and follow them up with an email. That means one email communication every 10 minutes. If perchance, a prospect actually picks up the phone and wants to chat, the rest of the day is spent catching up.

In such an environment, it is critical that the customer relationship management system (CRM) be as efficient as possible. Any time wasted on non-essential tasks means less customer facing time, lower commissions and more stress. That is why it is essential that a CRM system offer fully automated email syncing and logging for Salesforce like the system that my company offers called Match My Email. Manual email logging takes too much time. It is estimated that manual email syncing and logging uses up 100 hours per year, or about 2 and one-half full work weeks.

Fully automated email integration with even the best CRM system – for remainder of the article I will use Salesforce.com as a benchmark — requires careful thought and planning. That is where the Boolean Algebra comes in. At setup, an organization needs to think through how its email stream maps to its selling style and then to the various objects types — in Salesforce.com Leads, Contacts, Accounts, Opportunities and Cases.

At its core, fully automated email syncing and logging exploits the uniqueness of an email address as an identifier or ‘tag’ to sort the email and upload it to the right record in the CRM system. Computers are very good at finding one-to-one matches and then executing a set of instructions or an algorithm to file a piece of data point into a database. In small organizations where a single sales person sells directly to individual customers and uses standard Salesforce.com objects, fully automated email syncing works perfectly out-of-the-box.

Add a second decision maker at the end-customer to the selling process and fully automated email syncing gets harder. Now the system has to de-duplicate the associations between the main primary object in Salesforce.com, the Contact, and the secondary and tertiary objects, Accounts, Opportunities and Cases.

But first a graphic on the types of objects in Salesforce.com and how they inherit email address fields is in order. [As you can see below, Leads don’t roll up into any other object so they are very simple — until you have to convert them to a Contact, that is.]

Primary Object Secondary Object Tertiary Object
Contains Email Address Field Inherits Email Address Field from Associated Contact(s) Inherits Email Address Fields From Associated Account That Inherits Them From Associated Contact(s)
Contact Account Opportunity

For automated email integration to work properly, the system has to contain Boolean Algebra truth tables – matrixes of columns and rows with “1” equaling true and “0” equaling false — that match the email address field(es) in the email header to the email address field(s) in Salesforce.com and find all the exact one-to-one matches. The system also has to recognize when multiple primary objects roll up into the same secondary object, i.e., two Contacts roll up into the same Account. In that case, the system has to make sure that only one copy of the email is associated with the Account, otherwise the Account record will be filled with annoying, duplicate entries. Maximum de-duplication is an important component of a good email syncing and logging solution.

By adding Opportunities which are tertiary objects in Salesforce.com, the truth tables get even more complicated. With Opportunities, the system has to recognize different ‘states’. Is the Opportunity open or closed? If it is open, match and insert a link to the email; if it is closed, do not. Moreover, Opportunities include a feature called Contact Roles. By default, Contact Roles inherit the Contacts related to the associated Account. So the matching inheritance chain is (1) email address in the email header, (2) email address field in a Contact, (3) Contact rolls up into an Account, and (4) Account associated with an Open Opportunity through Contact Roles. But Salesforce.com lets the end-user override the default settings and arbitrarily define random Contact Roles in an Opportunity. A full-function email syncing and logging system has to recognize these overrides and conform the email matching rules, i.e., truth tables, to them.

A well-designed email syncing solution also has to accommodate a feature in Salesforce.com that enables the end-user to establish multiple email addresses in a single Contact. This is done by adding a standard custom object called a Secondary Email Address field. This convenient complication requires the ‘true tables’ to include junctions that use “if, then” logical statements to correlate multiple inputs to single outputs.

Email Syncing and Logging for Salesforce
In order to be fully automated, an email syncing solution has to be based on ‘multiple email address and object matching’ at the primary object level. Every email address in the email header whether it is TO:, FROM:, CC: or BCC: has been matched to all the relevant primary email address fields in Salesforce.com. Manual systems, on the other hand, will prompt an end-user to match an email to one primary object, which means that the email log in Salesforce.com, by definition, cannot be 100% comprehensive and accurate. Moreover, manual systems are only ‘ON’ when the end-user is working in his or her email account so the system is rarely up-to-date as all the end-users are rarely logged in and working on email logging.

Having a 100% complete email record in Salesforce.com has many positive benefits. It increases sales rep adaption of the CRM solution because the data in the system is more reliable and useful. The CRM becomes the ‘system of record’ for cross-company email correspondence with external clients. Management can use the email data in Salesforce.com to produce activity reports and monitor sales rep performance.

However, there is one use-model I which fully automated email syncing and logging works too well because it creates lots of duplicates. That is a one-to-many relationship between a Contact and multiple Opportunities in Salesforce.com. One-to-many customer relationships are often associated with indirect selling through resellers and distributors.

In the typical one-to-many scenario, a Contact has dozens of Open Opportunities. With fully automated email syncing and logging, the system will log every email between the Contact and the Salesforce.com User, i.e., the sales rep, into every Open Opportunity. The emails will be logged even if they have nothing to do with a particular Opportunity, because the system relies on the email address as the unique ‘tag’ linking the email with an Opportunity. Sales reps get frustrated when Opportunities include lots of irrelevant emails, when it is hard to separate the ‘wheat from the chaff’. You can tell them to delete the extraneous emails – which only takes a few seconds — but with time they will rebel.

Unfortunately, no computer system — not even IBM’s Watson that won Jeopardy – is smart enough to perfectly match an email to a Salesforce.com Opportunity without an exact and unique ‘tag’ like an email address. A system could be constructed that would try to do the job – by matching to the Opportunity Name, or by including an identifier somewhere in the email and in the Opportunity record, or by doing word scoring between the email body and the all data in the Opportunity records etc — but it would not work perfectly. It would produce ‘gray results’ like ‘false positives’, ‘false negatives’, ambiguous word scores and user tagging errors and omissions. The system would have to include a quarantine screen where ambiguous emails would stay until they are manually resolved – exactly like an anti-spam system.

The only solution to the one-to-many issue is to turn off automated Opportunity matching and do the matching by hand. The sales rep still gets the benefit of automated email syncing and logging to Contacts and Accounts, but Opportunities are handled manually. Manually logging is usually performed with a tools that includes ‘two letter forward look-up’ for existing Opportunities and a web form for creating new Opportunities and binding the email.

Author bio:
Paul Sterne is the President of Match My Email, a provider of email syncing and logging in the cloud for Salesforce.com.