Sunday, September 29, 2013

You Know You Need a CRM System When You Have a BONA

A cheeky title but more interesting than “Why you need a CRM system”. Sometimes I am asked “How do I know if I need a CRM system or not?” My typical response is either “everyone needs one” or “you already have one, it just may not be very effective”. This article talks about a clear sign you need a ‘proper’ CRM system and the advantages it will bring.

What is a BONA?

A BONA implementation is, arguably, the most common CRM system used by businesses today. It is:

  • Business Cards
  • Outlook
  • Napkins
  • (Microsoft) Access


There is also the slightly less innuendo-ridden BONE implementation where Microsoft Access is replaced with Microsoft Excel.

We have all seen this system in operation; piles of business cards on the desk, scraps of notes everywhere, an overloaded Outlook inbox and that application that ‘Bob’ put together in Access which does various business processes and, when a new field needs adding, we just ask Bob.

In the case of BONE, there are usually a few hundred (or a few thousand) Excel spreadsheets scattered throughout the business assisting with various micro-processes.

It is quite surprising how many Fortune 500 businesses run on a BONA/BONE implementation.

Problems With BONA/BONE Implementations

While many businesses operate under these conditions, it does not mean they operate well. Problems include:

  • Things falling through the gaps e.g. appointments and action items written on scraps of paper
  • No easy way to get contact information from the business card pile
  • No easy way to see the meeting/email history for a given person in Outlook
  • No ability to collaborate with co-workers as everyone has their own pile of cards/inbox etc.

In terms of the Microsoft Access application, there is the obvious risk of ‘Bob’ moving on from the business leaving an unsupported application. Also, as with the Excel spreadsheets, the ‘system’ is developed over a period of time and there is often a dozen different ways of doing the same process throughout the business. Even within the Access database there may be multiple contact lists, all with common contacts in them and no clear source of truth. This means none of the data is trusted and is restricted in its use in the business.

The CRM Alternative

These days CRM system are more than just sales force automation; they are a central place for all information about the people and organisations you do business with and the interactions with them. Moreover, a good CRM system will have a workflow engine in it to help manage the processes of the business. Notifications, escalations and approvals are the bread and butter of a modern CRM system.

The icing on the cake is you can create different ‘record types’ (for those of a database persuasion, think new tables). So, if you are in the business of managing elevators, you could create a new elevator record type to store all your elevators in. If you manage cows, you can create a cow record type to store Daisy and Buttercup.


If you or someone you know has a BONE or BONA office, now is a great time to look at getting a proper CRM system. Review your needs, look at the CRM solutions on the market and spin up a 30 day trial. If you see value, get a partner in to set up a system to meet your immediate needs and which can be scaled to meet the unanticipated needs of the future.

Monday, September 23, 2013

Reporting on Activity Parties

Activities are set up in a bit of an unusual way in Dynamics CRM. You have Activity Types (Appointments, Phone Calls etc.) which have their own entities and there is also the Activity entity which holds common fields (Regarding, Subject, Actual Duration etc.) There is also the idea of an Activity Party. An Activity Party is any kind of a ‘person’ which can be associated to an Activity. So, for example, the Required field of an Appointment can be populated by a Lead, User, Account, Contact or Facility/Equipment. These are all Activity Parties, as is the owner of the Activity. In fact there are quite a few ‘Participation Types’:

  • BCC Recipient
  • CC Recipient
  • Customer
  • Optional Attendee
  • Organizer
  • Owner
  • Regarding
  • Required Attendee
  • Resource
  • Sender
  • To Recipient

Activity Grid Issues

Where this can provide some problems is in Activity grids on Contacts and Accounts. For example, if we look at the Activities of Adrian via the Navigation Pane, we see an Appointment.


However, looking at the Activity Grid on the Contact form shows no Appointment.


The reason for this seemingly inconsistent behaviour? In this case, Adrian is a Required Attendee of the Appointment but it is not Regarding him. The ‘Open Activity Associated View’ looks for all Activities where Adrian is a Party. Unfortunately, when we add the Activity grid to the form, the only relationship we can use is the Activities(Regarding) so the Appointment is lost.


Because of the confusion this causes with users, I often remove the Activities grid from the Contact and Account form when implementing CRM.

Reporting on Activity Parties

There is also some limitations with Advanced Find in regards to Activity Parties. While we can perform an Advanced Find on Activities and use Activity Parties to define our filter, it is not possible to perform an Advanced Find directly on Activity Parties. So, while we can ask “Show me all Activities where Adrian has been a Party”, we cannot ask, “Who has been a Required Attendee for an Appointment in the past six months?” The best we can do is start at one kind of entity who can be a participant e.g. a Contact and then browse through to Activity Parties to answer this question but it means querying for Contacts, then Accounts, then Leads etc.

Another option is to use the Report Wizard. I have been disparaging of the Report Wizard in the past and maintain this position. For the average user, Excel reporting is more accessible and for developers, creating SSRS reports directly offers a lot more control and flexibility. In this case, as we cannot easily extract the information we need via an Advanced Find query, the Excel reporting option is closed to us and therefore the Report Wizard is our next best option.

Using the Report Wizard, we define the entities of interest for the report as, for example, Activities and Activity Parties.


From here we can add a list of Activity Parties directly to the report. In this case I have grouped them by their Activity Subject, but this is not necessary. You could just as easily group by Participation Type.


Once set up, the report can be run and the list of Activity Parties generated and exported, as required.


Activities and their associated records are set up a little strangely in Dynamics CRM, although they can be understood. If you are finding your Activity reports are not working as expected, it could well be the case that your reports are only looking for one kind of Participation Type and not all of them. Generally though, once you identify the cause for the misreporting, it is relatively easy, with a little creativity to extract the reports you require.

Sunday, September 15, 2013

How ERP Can Use CRM: Mass Payment Notifications

Often the worlds of CRM and ERP are quite distant. It is a rare individual who has traversed both of these lands (I am quite lucky to have a few such folk in my team, but it is unusual).

One idea I recently had was a way a CRM system could be used to help with the processes traditionally associated with the ERP system. This post is probably more aimed at ERP users who are CRM-curious than everyday CRM folk but, hopefully, it might generate some ideas to help bridge communication between the two nations.

How Not to Use CRM

There is a rich tradition of people trying to bring ERP functions into a CRM system and it failing horribly. The fact of the matter is a general ledger has no place in a CRM system. If it involves debits and credits or account reconciliation, keep it out. However tempting it my be or however insistent the client is that it is exactly what they need, it is wrong and unnatural and will fail. Even things like inventory management are limited in their scope if managed through a CRM system. This being said, there are some things CRM systems do well which an ERP system can make use of.

What CRM Systems Do Well

CRM systems do two things really well:

  • Managing business processes that involve the passing of information between people
  • Managing interactions with external stakeholders

ERP systems also handle the first one of these well in regards to financial transactions. However, sometimes the second one is lacking. Sure, most ERP systems have a concept of ‘vendor’ and ‘customer’ but tracking external communication is not always as strong; pulling up a history of client emails, meetings and phone calls is not always simple.

This is where CRM systems can help.

Mass Payment Notifications The CRM Way

I am not an expert on ERP systems so I am sure there are some ERP systems that do this really well; I just have never seen it. Let us say we have made a series of payments in our ERP system. Cheques are in the mail, bank transfers are done and money cabled to distant lands, as required. All of this is recorded in the ERP system and we now want to let the recipients know the money is on its way.

To do this via CRM, we first extract the list of payments from the ERP system into a CSV file. Pretty much every ERP system has the ability to generate lists of transactions and export them to Excel so this should not be a problem.

Next, we use the CRM Import Wizard to bring in the transactions. We will need to create a transaction entity in CRM first, but this is a straightforward, codeless process.


Once we import, we can then use a CRM workflow to do the rest. The workflow will automatically kick in the moment the record is imported and can send an email, using a template of our creation to inform our customer that their money is on its way. The sent email will be held in the activity history of the account record in CRM, along with any meetings and phone calls made by other parts of the business.


While money could be thrown at integrating the CRM and ERP systems to pass the various bits and pieces of information between them, in the case of the activity history, it is probably simpler for the ERP users to simply use the Outlook client for CRM so they can reference the various interactions at their leisure. Similarly, such a setup means the other areas of the business can see when payments are made. For example, if an enquiry comes in via phone to the call centre about a missing payment, they can reference the CRM system to see if and when it went out. If the payment record is not there, they can escalate it, as required.


Sometimes it is hard for the CRM and ERP camps to understand how they fit in with each other. However, it is possible to use the strengths of both for the benefit of the entire business. In the case above, I have described a simple way CRM can help the ERP process and also provide clear visibility of transactions across the entire business. I am sure there are other ways, such as for debt collecting, where a similar process could be employed. If this is of interest, enquire with your internal CRM power users or ask your Microsoft partner how things can be streamlined (as outlined above, it does not have to be an expense process).

Monday, September 9, 2013

Setting Long-Term Workflows in Dynamics CRM

I originally wrote this article for MS Dynamics World who gave me permission to recreate it on my blog.

Setting Long-Term Workflows

Workflows are remarkably useful because they are so powerful as well as being easy to configure. A feature of them which takes a little getting used to are the ‘waiting’ steps. I recently had a problem where a client needed to use the waiting steps well beyond the time limits available in Dynamics CRM.

The Problem

The client in question was a financial management client who classified clients into three categories (let us call them gold, silver and bronze). Based on their category, a major review of their financial situation happens every one, three or five years respectively. The idea was that when the record was created, a review date would be set. A month before this review date the client was contacted and an appointment set up (handled by a different workflow). When the review date passed, the review date was again reset.

The problem is timeouts can only happen up to 24 months out, not three or five years out.


My initial reaction was to tell the client it was not possible. My main contact smiled and she suggested I think it over. Sure enough I found a solution.

The Solution

The solution in the end turned out to be quite simple.


To start at the top, the workflow begins on the creation of the record (Account Category is a mandatory field so we can guarantee it will have a value). It can also be called by another workflow as a child process (I am planning to loop this workflow).

The first step the workflow has is to set the review date to one year in the future.


In this case I have set the Review Date to 12 months after the ‘Execution Time’. The Execution Time is a commonly misunderstood expression and leads to no end of confusion when setting up workflows. The Execution Time is the time the expression is evaluated. In other words it is the time at which this update step updates the Review Date. Given this is the first step in the workflow it is almost exactly the same time as the Accounts Created On value and almost exactly the same time as when the workflow started but if the update step was further down in the workflow with timeouts and the like before it, the execution time would be very different to the start time of the workflow and the Created On time of the Account.

It then checks if the Account is Silver or Bronze and, if so, increases the Review Date by another two years.


This use of the Review Date to set itself is completely valid.

For Bronze Accounts, this is then repeated. The net result is Gold clients will have a 12 months Review date, Silver clients will have a 36 month review date and Bronze clients will have a 60 month review date, as required.

The final step is to wait until the Review Date and then reset it by calling the workflow again.


We now see the reason we used the Execution Time in our first expression rather than the more commonly used, and less confusing, Created On value. The Created On value will still be the same whereas the Execution Time will now be approximately the same as the Review Date, as required.

As a word of warning, generally speaking CRM will fail a looping workflow. However, for longer cycles it will let them happen. I cannot remember the exact time limit for loop detection but it is of the order of minutes and hours, rather than months and years.


This is a nice example which combines a few of the trickier aspects of workflow creation such as timeouts, looping and the Execution Time. One other thing to take note of is often people will shy away from creating long-running workflows fearing they consume resources. My understanding is this is not the case. When a timeout is encountered, the workflow unloads from memory and is only reloaded when the timeout condition is met.

Monday, September 2, 2013

Salesforce Turns the Corner, Kinda

Great news this quarter for Salesforce; they reported a quarterly profit . Is this the ‘opposites’ segment of “You Can’t Do That On Television”? Is Marc seeing the value of selling $10 bills for $11 in his old age? Let us delve into the numbers and find out.

Salesforce Quarterly Results

As usual all numbers come from the Salesforce web site.

  2013 Q2 2013 Q3 2013 Q4 2014 Q1 2014 Q2
Revenue 731,649 788,398 834,681 892,633 957,094
Subscription Revenue 687,493 740,600 785,495 842,221 902,844
Revenue Cost 162,418 186,248 183,362 208,994 217,717
Operating Cost 582,697 656,338 672,126 728,179 779,234
Salesforce Income -9,829 -71,150 -20,844 -67,721 76,603
Revenue Growth # yoy 185,647 204,138 202,768 197,166 225,445
Revenue Growth % yoy 34% 35% 32% 28% 31%
Revenue Growth % mom 5% 8% 6% 7% 7%
Total Cost % yoy 33% 42% 34% 31% 34%
Staff 8,765 9,319 9,801 10,283 12,571
Staff Growth (yoy) 38% 34% 26% 23% 43%
Margin -1.34% -9.02% -2.50% -7.59% 8.00%

NB: A miscalculation in the revenue growth at the time of original writing has now been adjusted in the table above. Related commentary below has been lined through.

Sure enough, the ‘Salesforce Income’ aka ‘GAAP Earnings’ is positive for the first time in two years with a healthy margin of 8%. Even with this profit, revenues have grown around 28% year on year. So what is the secret sauce in the Salesforce recipe?

Revenue and Cost Growth

Revenues have consistently grown, year on year, at around 30% for the past three years. How about costs? Costs this quarter grew at 34% year on year. Cost growth for the past three years (apart from one quarter where sales growth inched ahead by 1%) have consistently out-paced sales growth. Sales keep growing but costs are growing faster. So if this is the case this quarter, where is the extra money coming from?

Digging Deeper

The fact is the GAAP numbers above do not reveal how Salesforce made a profit this quarter. To do that we need to look at the line items not summarised above, specifically the ‘Benefit from income taxes’. Because of Salesforce’s lack of profits, they got a tax rebate to the tune of around $130m and it is this that changed a $60m loss into a $70m profit.

What About the Future?

So will the IRS bail out Salesforce in the future? Fortunately, we do not have to speculate because Salesforce has done it for us. In their earnings press release they tell us in their guidance section how they will fare next quarter and in the year overall. Salesforce tell us that they expect a GAAP Earnings Per Share (EPS) of between –$0.19 and -$0.18 per share using a basis of 601 million shares for the next quarter. For the full year they expect a GAAP EPS of between -$0.44 and -$0.42 per share using a basis of 598 million shares.

EPS = GAAP Earnings / Number of Shares. So all we need to do is multiply the EPS by the number of shares to get the expected GAAP earnings (Salesforce income).

For the next quarter, Salesforce expect to make –$0.185*601,000,000 = -$111m. For the full year, they expect to make -$0.43 * 598,000,000 = -$257m.

Finally, we know that in the first two quarters, Salesforce made -$68m + $77m = $9m. So, we can also work out what Salesforce expect to make in their last quarter which is -$257 -$9m + $111 = -$155m. So, this financial year, Salesforce expects in earnings:

  • Quarter 1: -$68m (last quarter)
  • Quarter 2: $77m (this quarter)
  • Quarter 3: -$111m (next quarter)
  • Quarter 4: -$155m (final quarter)

Total loss: $257m

Let me be very clear on this point, I am not doing some clever extrapolation of historical numbers here; I am simply presenting the numbers Salesforce have put out in their press release. This is their expectation of the next six months, not mine. Salesforce expect to lose a quarter of a billion dollars this year and they expect to lose over $100m in both of the next two quarters.

It seems, unfortunately, this quarter’s profit is an anomaly and not a paradigm shift in thinking that making a buck is a good thing.

Staff Numbers

The slowing growth of staff has been truly bucked this quarter, leaping up to 43% and back to the kind of growth Salesforce was seeing a year ago.

Earnings Call Buzzword Bingo

As with other quarter’s, here are the buzzword bingo figures.

  2013 Q1 2013 Q2 2013 Q3 2013 Q4 2014 Q1 2014 Q2
Number of words 3200 3200 3000 3800 2800 3500
Revenue 38 39 38 45 32 37
Social 32 21 13 9 10 9
Cloud 23 20 20 22 16 23
Enterprise 21 10 7 15 0 6
Customers/Customer 28 9 21 40 32 40
Sales 14 8 9 8 9 14
Cash 13 17 9 13 10 10
Service 11 15 9 16 12 14
Growth 11 19 17 17 13 12
Operating 10 17 0 0 9 9
EPS 8 0 0 0 7 10
Marketing 0 8 10 9 0 12
Mobile 0 0 7 0 16 11
Margins 0 0 0 7 0 1
ExactTarget 0 0 0 0 0 24


The key words are still consistent. ExactTarget got a good showing but it is their new acquisition so this is not too surprising.

Phrases of two or more words:

  • Deferred revenue (15 times)
  • Non GAAP (12 times)

which are the same as last quarter.

Insider and Institutional Sales

According to Yahoo, in the past six months, insiders did a net sale of 0.5% of their shares. This was made up of one purchase and 109 sales.

Institutions sold 16 million shares this quarter, reducing their overall ownership by 3%.

There are many reasons why people sell shares. Whether this is a dropping confidence or simply the desire to pay a few bills or diversify investments is difficult to say.

Google Trends

It has been a while since I have done the Google Trends analysis and I noticed a week or two ago that there are a bunch of new features so here is the Google Trend analysis for ‘’ and ‘dynamics crm’.


The dotted lines are Google’s predictions (no more Excel straight line extrapolations)

The regional comparison is also interesting.

image image

We see a more global interest in Dynamics CRM and a more focussed interest in Salesforce. In Central and South America and in Europe it seems Dynamics CRM has the edge whereas Salesforce has a strong concentration in the USA.

I am not sure what is behind this trend but it will be interesting to monitor it over time.


While Salesforce has broken the drought and made a profit this quarter, there is no indication that the ship is changing direction. Marc’s appetite for revenue over profit continues. Similarly Marc’s messaging is also unwavering, focussing on the key words and phrases this quarter as the last.

Insiders continue to sell and it seems institutional owners of Salesforce shares are also reducing their holdings. Whether this is connected to Marc’s strategy is unknown.

Google trends suggests interest in both salesforce and Dynamics CRM is at similar levels but the global focus is different. While the Salesforce buzz is generated primarily out of the USA (San Francisco to be precise), Dynamics CRM buzz is much more global with USA not even appearing in the top ten countries and the highest ranking USA city being New York at the eighth position.