In almost any CRM system, there's a field in the leads object that indicates the source of the lead. In most systems, that lead source field is carried along as the lead is converted to a contact and an opportunity. Clean — simple — and wrong.
The reason? People and businesses don't buy because of one ad, or one Web site view, or one whitepaper. All transactions are the result of a sequence of interactions, and the most profitable deals will involve a complex series of e-mail, phone, and Web "connections" between you and the customer. So a single field with a simple text value can't represent that history. Whether you store the first "touch" (the source) or the last (the trigger event) in a lead source field, you're misrepresenting what happened and giving too much credit to whichever value you stored. Pipeline impact reports will give misleading or even silly results.
So a key first step towards real customer relationship management is to track each "touch" of the customer or prospect as a separate record. In the case of Salesforce.com, the record is called "campaign members," and most CRM systems will have a similar object. The campaign member object typically contains pointers to a campaign and to a lead or contact, and contain a few of its own fields (such as status and response date).
In B2B companies, it's not at all unusual to have at least one outbound e-mail a month to every lead or contact in the system. And hopefully there will be some customer response, such as registering for a Webinar or doing a download. Every single one of these actions or responses is recorded as a separate campaign member "event." If you've got long sales cycles or long-running customer relationships, a contact's campaign history can grow to 100 records or more. This gives your sales reps tremendous insight into the state of the customer's knowledge (and hopefully the evolution of their interest/attitude) before they pick up the phone.
More importantly, these records provide the basis for much more intelligent CRM automation. Each lead and contact will have a more detailed profile, so marketing can segment them better. You also have a record of what each individual has done over time, so your marketing automation system can do a much better "behavioral scoring" of the lead for filtering and prioritization. If you have a customer support solution-suggestion system, it will have much more complete keywords to narrow the documents it suggests in your customer self-support portal.
Since the right thing to do is move all your existing "lead source" information into the "campaign membership" object, you will need to have a campaign for every possible lead source. This is straightforward for things like e-mail blasts or advertisements which are already structured like campaigns. But what about lead sources like "customer referral" or "inbound phone call?"
Even those lead sources — that have nothing to do with marketing programs — will need their own campaigns. Set up explicit campaigns for each of them. Those campaigns will look a little odd because they'll have $0 cost and will never terminate, but the only technical issue will be inevitably bogus ROI calculations for these phantom campaigns (expect to see division-by-zero errors).
Once those campaigns are set up, you'll need to populate the campaign memberships with the historical information for each lead and contact in your CRM system. In creating these new campaign membership records, make sure to set the date-of-participation (not the same thing as the campaign membership create date) as the historical date when the lead was touched by the campaign (typically, the lead-create date). If your CRM system has audit trails available for the lead source field, you can synthesize a series of campaign membership records from that. If you don't, you may be able to synthesize the history from your e-mail blasting logs, Web registration logs, and other surrounding databases (even your PBX system!). Be prepared for some serious SQL queries, but you can create an impressive campaign history from your existing data.
There's another kind of lead/contact interaction we need to add: customer support questions and cases. Particularly if your company offers a trial version of its product, understanding the issues and support conversations with prospects is a key success factor for closing the sale. With your existing customers, detecting patterns of interest and interaction in post-sales support can send off flares for a potential upsell. While your CRM system may already be capturing these interactions, taking things to the next level means including these "support" conversations as "campaign participations."
Once you create these campaign member histories, it pays to make the information easily digestible. Typically, that means rolling up the histories in relevant ways and presenting simple graphics in the opportunity and account records. For example, you can create a simple histogram of product interest across all of an account's contacts. Or, you can create a series of red-yellow-green traffic lights on particular offers or sales tactics for an opportunity. In some cases, these data can be the basis for email alerts to sales reps who might not have noticed new customer activity or indications of interest. These rollups are most easily done as a trigger, but depending on your CRM system and data volumes a nightly batch update may be the best approach.
Of course, making this move to campaigns can cost in terms of data mining, system changes, and user training. But using campaigns to their fullest can make a big difference to the payoff of your sales and marketing efforts.
David Taber is the author of the new Prentice Hall book, "Salesforce.com Secrets of Success" and is the CEO of SalesLogistix, a certified Salesforce.com consultancy focused on business process improvement through use of CRM systems. SalesLogistix clients are in North America, Europe, Israel, and India, and David has over 25 years experience in high tech, including 10 years at the VP level or above.