Saturday, January 17, 2009

Why Loyalty Programs Suck

I personally do not consider loyalty programmes as coming under the banner of CRM. The main reason for this is I come from the school of thinking that CRM is about analysing existing relationships with customers and modifying business processes to improve future communication. That is, understanding the needs of the customer and then anticipating future needs.

Loyalty programmes do not do this. They are simply a trick where the customer is duped into thinking they are getting something for nothing, giving them an incentive to return. This is not management of the customer relationship any more than putting up signs saying 'closing down sale' is CRM.

So here are my three main reasons why I think loyalty programmes should be avoided by all parties.

There is no real reward in a loyalty program
The promoters of loyalty programs claim the customer is being rewarded for loyalty. This is rubbish for the vast majority of loyalty programmes. Unless the business can derive some kind of economy of scale through the employment of the programme, all additional costs (the cards, stamps, advertising, 'rewards', back end systems to manage it etc.) will go one place and that is onto the price of the items being bought by the consumer. 

Loyalty programmes do not reward but simply introduce an additional cost to the process, which is occasionally offset for frequent purchasers and not offset at all for people not in the programme. If a competitor has access to the same supplies at the same cost, they can make the same product for cheaper, if they are not using a loyalty programme. With low switching barriers, the infrequent customers will go elsewhere and save a few dollars. In other words a loyalty programme drives customers to low cost competitors, promoting disloyalty.

Loyalty programmes are easily copied
No sustainable competitive advantage can be obtained from a loyalty programme. The main reason for this is it can be easily copied by a competitor if, despite all reason, it does derive benefit for a particular business. Once every competitor in an industry has a loyalty programme, they are all stuck with the same additional costs and offer nothing that is not offered by their competition. Everyone loses including the customer.

Loyalty programmes hinder business growth by tying up cash
If I have a loyalty programme and people can claim against it, I need to keep assets on hand to cover the possible redemptions EVEN IF no one claims. In reality this means a company with a loyalty programme has significant amounts of money sitting in a bank account doing very little when, without the loyalty programme, it could be employed into building real benefits for the customer. The average cafe would not worry about this, but for larger programmes, such as airlines, this is a significant problem where literally millions of dollars sit around idle.

To get around this, points used to expire. If you did not use your points within a certain time, they disappeared and the underlying cash was released. These days clever marketers think it is smart to have points never expire and then wonder why their marketing budget is getting smaller and smaller each year.

If you need a way to tie up cash, provide no sustained competitive advantage and burden you and your competitors with additional costs, a loyalty programme is a great start. Smart players in an industry will not copy their competitors who go down the line of loyalty programmes but rather employ the funds they would spend on such a project elsewhere. It could be in maintaining the product price while others are forced to increase theirs. It could be in increasing the price to match the loyalty programmes but then investing the additional profits into the business to reduce costs elsewhere, providing sustainable lower costs of production. It could be on additional advertising to drive demand. Anywhere is better than a loyalty programme and if you really want to generate loyalty in a business, give the customer something they genuinely want, not smoke and mirrors.

Monday, January 12, 2009

What is CRM?

Googling CRM will give you lots of opinions and thoughts on what is CRM. Some talk about the philosophy of CRM and customer-centricity, others talk about the technologies. This blog is all you need to read on what CRM is.

Most of us buy groceries. Many of us go regularly and buy similar stuff each time. Imagine if you went to the supermarket and on arrival you were greeted and told "Welcome back Mr. Smith. Because you shop with us regularly and buy similar things each time, we know what you need and already have your shopping ready for you. Let us know where your car is and you can be on your way". Would you go to another grocery store again?

That is the philosophy of CRM. A supplier anticipating the needs of a customer and fulfilling their requirement before the customer has even asked. In return the customer perceives such a loss of service in going somewhere else, it is simply not an option. For anyone selling a product, they could call the customer when an upgrade is available that will save the customer money or it could be calling the customer just prior to the life expectancy of the product is up to save productivity loss due to outage. 

As many consultants know, their job is to up-sell services, even when the customer may not realise they need them. If the 'value add' truly provides more benefit than it costs, this is also a form of CRM.

So what stops grocery stores getting your box of shopping ready just in time for your arrival? Or someone that sells air conditioners calling their customers and telling them that it is time for their unit to be serviced to stop it running inefficiently and wasting the customer's money? The answer is the systems in place. In the case of the grocery store they would need a system that stores each customer, when they have come into the shop and what they bought. 

Computers are excellent at storing large amounts of information and allowing it to be queried in a variety of ways quickly. This is the technology of CRM. A database with customer information. This information might be what you have done before a sale is made or it could be the information of the sales themselves. It could be the post-sale support information or it could be the marketing campaigns you've run to generate new customers. Any information relating to your business and the external parties that you deal with is fair game.

That is it. CRM in a nutshell. The philosophy of CRM and what it aims to achieve and the technology needed to support it.

As an interesting aside, I've implemented a lot of CRM systems and, for the most part, they are not there to meet a CRM philosophy. Often CRM systems are used to monitor staff, improve internal work processes or simply to help management better manage their reporting. There is nothing wrong with this and most were perfectly successful in achieving their aims. As long as the organisation is behind the system, gives it the resources it needs and they have their eyes open to what it will and will not do for them, usually everything is fine.

One other thing to note. An essential requirement for a CRM system meeting a CRM philosophy is the ability to extract the information you need to understand your customers. Therefore it is essential you understand what information you want about your customers before the first DVD hits the tray and make sure your CRM system will be able to give you this information. Moreover, for complex requirements, a business intelligence system (BI) should be seriously considered.

Sunday, January 11, 2009

Reporting in CRM with Excel

One of the most powerful and under-utilised reporting options in Dynamics CRM is exporting to Excel. Practically any list on CRM can be exported as either a static list of data or as a dynamic list/pivot table which updates whenever the Excel file is opened.

Once a dynamic list has been exported, you can manipulate it however you wish. You can add columns, delete columns, add graphs, add extra worksheets etc. Essentially everything you can do to a normal Excel spreadsheet you can do with a dynamic list. Please note the default format when CRM exports is OpenXML, not xls. Therefore to do things like add graphs you will need to save the export file into an xls/xlsx-type format.

While this is powerful, you can go further. The major limit of the above is that you can only bring into Excel what you can define in an Advanced Find in Dynamics CRM. Plenty of queries you can write in Excel, you cannot write through Dynamics CRM's Advanced Find. For example, if you want to aggregate data from CRM and list it e.g. show the number of open cases per account, you cannot do this through the Advanced Find interface.

So how can we 'hack' the query? Its actually pretty easy.
  1. Right-click cell A2 and select Edit Query...
  2. Click the 'OK' on the warning you can't use the query wizard
  3. Click the 'SQL' button on the Microsoft Query box that pops up
And here it is, the power of SQL at your command. The first thing you might want to do is remove the 'top 10000' after the select. This will stop only 10000 records coming back. 

Please Note: This only works for on-premise as IFD does not use SQL in its Excel queries.

Once you've adjusted your SQL, click 'OK' and click the 'X' in the top right corner of the Microsoft Query window. The query will now be run and will populate the spreadsheet. One thing to watch out is if you've added extra columns to the query as these will appear in the spreadsheet and obliterate anything already in there.

The only real trickiness is with things like working out the correct name of the attributes, working out the right value for picklists and the correct names of the tables.

The names of the attributes, you can get by going to Settings-Customization-Customize Entities, selecting the entity in question and opening up the attributes. The name you want is the one in the 'name' column.

The right value for picklists is a little trickier, especially for entity status values. While you can figure most of them out by going to attributes and editing picklist entries to get the 'value', the easiest way I find is to do a new Advanced Find query, using the picklist value as a condition in the query, clicking the find button, exporting to another dynamic excel spreadsheet and examining the query.

For tables, you should only refer to the Filtered Views. This ensures security is preserved in terms of the records the spreadsheet user is allowed to access from CRM. It also ensures a supported solution i.e. the spreadsheet query should survive future upgrades of CRM

For the most part the view name is of the form 'FilteredEntityName'. There are a few exceptions such as for the Case entity (FilteredIncident) and Notes (FilteredAnnotation). If in doubt, open up SQL Server Management Studio and have a browse.

And there it is, the ability to write SQL queries against CRM without all that fiddling around in Visual Studio. In my opinion the use of Excel for queries instead of SSRS also fits in with Microsoft's aim of giving the power to configure to the end user. There are few end users who are brave enough to tackle Visual Studio but there are plenty that will play with Excel and most companies have at least one person that can write basic SQL SELECT queries.

One final note, Excel does not submit the SQL query in a secure way so, in principle, if someone was on your network sniffing the packets they could access the data being returned. To learn how to tighten the security of Excel queries, read the following blog post: