Sunday, March 22, 2015

A Codeless Alert System For Dynamics CRM

A common requirement for JavaScript on CRM forms is to pop up a warning when a record opens. Perhaps it is an account marked as a bad credit risk in the ERP system or perhaps it is a case overdue for a response. Whatever the circumstance, we often want to inform a user of something before they start interacting with a record.

With Business Rules, we can now interrupt a user reliably without resorting to Javascript.

Setting up the Alert

First of all we need a text field to contain our alert. Initially I added this to the header of the record but found out that it is not possible (or, at least, I could not figure out how) to widen the field meaning my alert was being cut off. In the end I added a tab to the top of the form body and added the field to a section in the tab.


When blank the field is almost invisible so I clicked into it for the screenshot. I also turned off the label for the field as we do not need it.

Next, I set up a business rule to grab the user’s attention.


All the rule does is prevent the user from saving if the Alert field contains data and forces the user to clear the field first, making them acknowledge the contents.

Triggering the Alert

Now we simply set up another Business Rule, Workflow or whatever we like to populate the Alert field. When this is done, we are set. For example, let us say we want to warn the user of all Accounts beginning with A.


When the user opens up a guilty record, they are confronted with:


Until they clear the message, they will not be able to save any changes to the record.

A word of warning though, Business Rules fire in the order they are activated so if you add a rule to populate the Alert field, make sure you deactivate and reactivate the Alert Rule afterwards so it checks AFTER the field is populated and not before.


A simple and effective alerting system which forces the user to read the message before interacting with the record. If you need such an alert and do not want to rely on a coder to adjust it as the business alert criteria change over time, consider this option.

Monday, March 16, 2015

Marc’s Lemonade Stand 2015

Last year, around this time, I wrote about Marc’s Lemonade Stand. This was my attempt to demystify the cash flow of Salesforce. From their annual reports we know they have not made a profit for four years so how do they stay afloat? If the money from selling subscriptions is insufficient to cover costs where does the extra money come from? Now, with Salesforce’s financial year at a close we can, again, revisit, Marc’s Lemonade stand.


Cash is King

There are three financial reports released with an annual report:

  • Statement of Operations (Revenues and Costs)
  • Balance Sheet (Assets and Liabilities)
  • Cash Flow Statement (Incoming and Outgoing Cash)

Marc is quite the fan of Non-GAAP results. This is Marc being creative with the Statement of Operations where he literally turns a financial loss into a profit. In short, if you have the motivation, you can make the statement of operations sing whatever tune you want it to.

With the balance sheet, we list our assets and liabilities. I once heard of a creative account who argued research and development is an asset for the Balance Sheet and not an expense on the Statement of Operations because it is an ‘investment in the future’. He had turned a business cost into a valuable asset simply through creative accounting.

The Cash Flow Statement is harder to mess with. It simply shows what money came into the business and what money left the business over the financial year. Concepts like ‘revenue recognition’ are thrown away. Either the cash came in, or it did not. The best you can do is something like add a positive value in one part of the Cash Flow Statement and then put a matching negative one in another part of the Cash Flow Statement. For an example of this ‘give with one hand and take with the other’, see the most recent quarterly statement of Salesforce  and spot the two “Excess tax benefits from employee stock plans” entries.

The Story So Far

Marc runs a successful lemonade stand outside of his home in Hawaii. He buys the ingredients from the local corner store (Subscription and Support Costs) and puts up posters in the surrounding streets to promote his stand (Marketing and Sales). His sister also helps out, making the lemonade and sitting on the stand (General and Administrative Costs). She is a strong believer in the future success of the stand and frequently buys shares in the business from Marc (Expenses Related to Stock-Based Awards).

Uncle Sam visits around Christmas and takes a few lemonades and sometimes, if he has a few extra coins in his pocket, will add them to Marc’s kitty (Provision for Income Taxes). Similarly, his Dad comes home from work, thirsty and sometimes borrows money from Marc to buy a lemonade (Accounts Receivable). Marc also borrows money from Mom occasionally when money is short (Financing Activities).

Marc runs a loyalty program where, for new customers, if you pay $9 today you get ten lemonades over the rest of the year (Deferred Revenue).

Finally, Marc has been so successful at running his lemonade stand, he has bought out a few of the local rival stands, keeping the staff but taking the profits (Business Combinations).

Excess money earned from the stand goes into the bank and earns interest (Investment Income) or goes into comics (Purchases of Marketable Securities)

There are a few other entries in my ledger but you get the general idea.

The Numbers


As an exercise in masochism, I took the numbers back to 2003, using the Annual Reports on the Salesforce web site. The only exception to this were the 2015 results which I took from the latest quarterly announcement.

I then grouped the cash flows as if they related to a lemonade stand. So, for example, “Taste Testing” is “Research and Development” and “Fixing Up the Lemonade Stand” is “Land Activity and Building Improvements” plus “Capital Expenditures” plus “Principal Payments on Capital Lease Obligations”.

Finally I scaled all entries, relative to the revenue for that year, setting the revenue to equal $1. In effect, this tells us, in a given year what percentage was spent or how much money was received for that line item. So, in the above sheet, for 2015, 51% of Revenue (Lemonade Sales) was spent on Marketing and Sales (Posters).

Values in green are greater than or equal to 10c and values in red are less than or equal to -10c

Marc’s Main Sources of Revenue

Marc has three main sources of revenue:

  • Lemonade Sales (Subscription, Support, Professional and Other Revenue) $1.00
  • Selling Sister a Share of the Business (Expenses related to stock-based awards + Proceeds from the exercise of stock options + Repurchase of unvested shares) $0.16
  • Loyalty Program (Deferred Revenue) $0.15

Lemonade sales are, by far, the largest source of cash with the other two running roughly equal second. The use of options and shares as compensation (Selling Sister…) keeps cash flowing into the business but dilutes the value of the business per share. This source of cash is only viable while the receivers perceive value in the underlying stock. As the stock becomes diluted, this value diminishes.

The loyalty program (Deferred Revenue) is an interesting source of revenue.This refers to Salesforce taking the full value of an annual subscription at the start of the contract. They receive the cash but still have to deliver the service. In the quarterly calls, a big deal is made of the deferred revenue with the inference it is an indicator of future income. For a subscription model there is some truth to this, in that the clients will be paying the same next year, but it is also an indication of services yet to be delivered. In the case of the lemonade stand, Marc now has lots of money but eventually the customers will come asking for their lemonades which Marc will be compelled to provide for no additional cash.

In terms of historical significance, relative to subscription and support revenue, I was surprised to see that these additional sources of cash are not new. Both have provided significant cash inflows for most of the company’s life. In the case of deferred revenue, its relative importance is dropping, now only accounting for 15c for every dollar of revenue earned, compared to historic highs of 32c.

Marc’s Main Costs

Marc has quite a few significant costs in the business:

  • Cost of Ingredients (Subscription, Support, Professional and Other Costs) $0.24
  • Taste Testing (Research and Development) $0.15
  • Posters (Marketing and Sales) $0.51
  • Lending Dad Money (Accounts Receivable) $0.10
  • Borrowing Money From Mom (Financing Activities) $0.10

In total, this is $1.10 which explains the need for additional sources of revenue and the financial loss we see in the annual reports. By cherry-picking the sources of cash and sources of cost, this also explains how the financial loss is turned into a Non-GAAP profit.

Marketing and Sales absorbs half of the revenues received by Salesforce. This compares to, say, Microsoft whose Marketing and Sales runs at around 18c to the dollar (18% of revenue).

In terms of historical norms, ingredient costs have remained constant. Research and development appears to be increasing in cost, relative to revenue, which strikes me as unusual. Generally costs remain fixed or reduce as volume increases. Marketing and Sales are less than they were back in 2003-2004 but now seem to have flattened, relative to revenue. The other two (Accounts Receivable and Financing Activities) have no discernable pattern in terms of growing or shrinking.

What Happens If Sales Flatten?

Salesforce has enjoyed strong, on-going sales growth of over 20% year on year since 2003. However, Hawaii is an island and, similarly, markets are not infinite in size so sales will eventually flatten. When all the possible market share has been grabbed, Salesforce will rely on its existing subscription base to support it. How will this affect our cash sources and sinks?

With the client base regularly buying their lemonade, sales will remain constant and this source of revenue will remain the same. It is assumed defections will be countered by new sales.

However, with flattening sales, the future prospects of Salesforce will not be as rosy and the optimistic share price (based on consideration of stock’s P/E ratio) will flatten or drop. Marc’s sister may be less interested in buying shares in the business and this source will diminish, relative to sales.

With the only new sales being those to cover clients defecting to other lemonade stands, the loyalty program will disappear or diminish significantly as the new sales dry up.

Ingredient costs will remain the same and, as the lemonade quality needs to be maintained, I argue taste testing (R&D) will remain the same to maintain the existing client base.

Posters (marketing and sales) may increase to bolster demand but let us be generous and assume it will remain the same to ensure when the existing clients think of lemonade, they think of Marc’s lemonade. In terms of Salesforce, I am assuming marketing spend remains the same and the Salesforce sales team continue to get commission on active subscriptions.

Lending Dad Money (Accounts Receivable) will remain the same or increase as credit terms are relaxed to maintain the client base.

Borrowing from Mom (Financing Activities) will need to remain flat if the business is to be sustainable. We cannot rely on Mom to constantly bail us out.

Therefore, overall, if sales flatten, cash inflows will reduce and costs will remain the same or increase. With the current cash profit level of 2% (2c for every lemonade sold) we do not have a lot of wiggle room. The only place I can see concessions being made is in a reduction in posters (Marketing and Sales) and this will have to go down from around 50c for every lemonade sold down to around 20c, in line with the competition, to cover the 30c loss in cash inflows from the share sales and the loyalty program. If the costs of the business increase, this will mean a further reduction in posters.


Salesforce is sustainable while sales continue to grow. Sales growth brings optimism to the share price (ensuring revenue from stock sales) and allows them to take money from new customers to cover the costs of existing customers. However, if sales growth falters, this will affect these sources of cash and Salesforce will need to get even more creative with their financing to support the costs in their business.

The GAAP financials advertise this warning but the unique growth profile has allowed Salesforce to defy the warning so far. I sincerely hope that Salesforce see the end of the sales growth coming and adjust their business accordingly.

Sunday, March 8, 2015

Book Review: Microsoft Dynamics CRM Customization Essentials

Introduction and Disclaimer

Packt are an interesting organisation. They are an online-only publisher who actively approach subject matter experts to write books in a profit-sharing arrangement. I have not written for them but I do the occasional review of their books. My compensation is a free copy of the book.

In this case it is Nicolae Tarla’s ‘Microsoft Dynamics CRM Customization Essentials’ (link to buy on the image).


It claims, on the cover, to “use a no-code approach to create powerful business solutions using Dynamics CRM 2015” so, given my lack of coding ability and focus on solutions requiring no code, it has my attention. Despite him being a CRM MVP, I do not personally know Nicolae but, if I am too harsh on him I promise to buy him a drink at the next MVP Summit.

Let us see how it stacks up. I am expecting to see lots of information on Business Rules, Dialogs and Real Time Workflows and perhaps some insights on using Business Process Flows. As usual I will review the chapters as I read them and bring my conclusion in at the end.

Overview and Structure of the Book

At 238 pages, this is not a massive tome but this should be enough to cover the essentials. There are six chapters and the book is split up like this:

  • Preface
  • Chapter 1: Getting Started
  • Chapter 2: Dynamics CRM Application Structure
  • Chapter 3: Customizing Entities
  • Chapter 4: Business Processes
  • Chapter 5: Social Features in Microsoft Dynamics CRM
  • Chapter 6: Dynamics CRM Administration

I was expecting a book on just business processes so this covers a lot more than I anticipated.


The preface makes it clear that this book assumes no prior knowledge and will give you a foundation in configuring CRM. The book will walk you through setting up a sandbox and the fundamental structure of Dynamics CRM. It then builds on this to show how the system can be modified and augmented.

There is certainly a demand for this kind of book in the market. Often Dynamics CRM is installed and it is assumed that IT will take on the responsibility for managing the system. While there are plenty of administration guides in the market, a book focussed on configuring CRM is, arguably, missing. For customers who have the inclination to take on the setup of their CRM system, if this book comes through with the goods, it has the potential to save a company thousands in consulting costs.

Chapter 1: Getting Started

This chapter provides an overview of Dynamics CRM talking about how it is deployed and how you interface with it. It suggests you need a Live ID to use Dynamics CRM but this is not true. It used to be that you needed a Live ID but now that Dynamics CRM is part of Office 365, it uses an Office 365 account. Setting up the 30 day trial will automatically provision an Office 365 account as well.

The sign up process for the 30 day trial is a little different to the one in the book but this process varies from country to country and is constantly evolving so this is no big surprise.

The chapter then goes on to talk about setting up Outlook for CRM. While not needed for customization/configuration, this is a nice touch. The configuration walkthrough assumes you have set up your 30 day trial on the US Microsoft Servers as it refers to “”. For Australia, this needs to be changed to “” and it is different for other regions as well.

That brings us to the end of the chapter. We now have a 30 day trial and Outlook set up. While there were a few kinks, this chapter will put you on the right path for setting up your sandbox.

Chapter 2: Dynamics CRM Application Structure

This chapter talks about how the out-of-the-box system is put together. It talks about the modules of CRM and the entities which make up the system. Next it goes through, in detail, the out-of-the-box configuration for each module, covering the entities unique to that module, Business Process Flows, Dashboards and Reports.

Next it talks about CRM Processes (Dialogs, Workflows, Actions and Business Process Flows) giving a high-level overview of each of them. Then it gives an overview of Dashboards and Reports.

Finally it talks about new navigation at the top of CRM 2013/2015.

Overall an excellent summary of the out of the box setup, arguably the best I have seen.

Chapter 3: Customizing Entities

Now we get to the meat in the sandwich; how to change stuff.

First it covers the essentials of solutions. Managed and unmanaged solutions are tricky because managed solutions can get you in trouble if not handled right. The book recommends using unmanaged solutions for development and test and changed to a managed solution for production. I generally stick to unmanaged all the way through but if there is the possibility that you will need to uninstall the solution, the managed variety is the better option. It briefly talks about solution layering but to get a good handle on this tricky aspect I would look elsewhere.

Next the chapter talks about entities and changing them. For renaming entities it reminds the user to also change the messages for that entity but does not mention changing the field and view names. It also covers configuring entity settings. The ability to change the primary field for the entity i.e. the ‘name’ field is mentioned but the big pitfall with this is not mentioned. Specifically, if you make the name field optional and it is not filled out, any lookup field referencing a record with a blank name field will be blank. I have found that in certain browsers this makes the record very difficult to select. Also, when looking at the form with a blank name field, CRM assumes it is a new record and displays a title to reflect this. In other words, while it is possible to make the name field optional, leaving it blank i.e. not auto-populating it, can lead to a range of usability issues.

The chapter also distinguishes between system entities, business entities and custom entities, highlighting some of the differences between them.

Next we get into changing the various elements of the entity i.e. forms, views, charts etc. The different types of forms are reviewed. The details for adding a Quick View Form are covered in depth and well worth the read if you are unfamiliar with this relatively new feature. Form configuration comes next starting with tabs and ending with form spacers. This is probably a little lighter than I would have expected. Global option sets are not covered and, other than being mentioned, the details for calculated and rollup fields are not covered.

Entity relationships talks about how to link entities together through 1:N and N:N relationships. The new hierarchy display is mentioned but the limitations i.e. only can show the hierarchy of one entity, are not covered. For N:N relationships, the limitation of having no access to the linking entity is mentioned and the suggestion of creating a ‘manual N:N’ is offered. The elements involved in the set up on a new relationship are not covered and the pros and cons of the Display Option setup are not mentioned. For example, if I am creating three lookups from the Contact form to the Account form, I need to modify the Display options because, otherwise, when I go to the Account record, I will see three Contact buttons to choose from in the related records. It will not be clear which Contact button refers to which relationship without the Display Options being set up appropriately.

Views and Charts are covered in the same section. Although this initially surprised me, I can see the logic of it given a chart can only be set up once a view is in place. The section gives a high level summary for setting up views and then touches on the setup of charts. One thing the book does not mention is the importance of publishing and it is assumed by the book that the reader is familiar with this aspect of CRM. So, for example, when the book says “Once you have created the charts, you can see them by navigating to the view” it should probably mention the importance of publishing the changes.

Next come Dashboards, the logical extension of charts. The difference between organization-owned dashboards and user-owned dashboards is covered but, again, this section is a little light. A warning that once a dashboard format is set, it is locked in would have been nice.

Next comes Messages (where the importance of publishing is mentioned). Multi-lingual limitations are also touched on.

Finally, we move to Business Rules. This has good coverage and even mentions the scope of the Business Rule, which is often overlooked, and talks about how the Business Rule, since CRM 2015, can be run on either the client side or server side.

Overall not a bad chapter but some sections could be fleshed out more. It would be very easy to double the size of this chapter to cover the topic in more depth.

Chapter 4: Business Processes

The chapter begins by stating what types of Business Processes it will cover. Dialogs are given a very brief overview with Workflows not faring much better. The steps available to workflows and dialogs are not covered at all. Actions get some coverage, even though they can only be called by code. Business Rules get a good overview with a summary of their limitations (even though they were also covered in the previous chapter). Similarly, Business Process Flows also get a comprehensive summary and also discuss how to trigger workflows when the stage of a Process Flow changes.

Like the previous chapter, this one is a bit of a mixed bag. Some elements are covered well while others get little more than a few paragraphs. While reading this chapter sets me up nicely for making Business Rules and Business Process Flows, it offers little help for Workflows and Dialogs.

Chapter 5: Social Features in Microsoft Dynamics CRM

The first element covered is the Social Pane. This is the box that appears on the new forms which shows Posts, Activities and Notes. Bizarrely, the chapter not only provides some code to hide tabs on the Social Pane, the code is unsupported. For a book promoting codeless configuration, the inclusion of unsupported code seems unusual and dangerous for an audience who will not be familiar with concepts like supported/unsupported code. How to set up the social pane through configuration is covered and a sample workflow for adding a post is also included.

Next comes a review of Microsoft Social Listening (MSL) and instructions on how to link it with CRM Online. This is a bit of an unusual inclusion on a book talking about configuring CRM (MSL is a separate product with minimal configuration settings) but the review is quite detailed and of value if MSL is something you are considering.

Similarly, Insights by InsideView is reviewed. I gave an overview of the set up process in a previous blog post and this covers the same as well as a summary of the functionality. With minimal configuration, this also strikes me as an unusual inclusion.

Finally, Yammer is covered. Setup is covered and configuration to surface it in CRM is also reviewed.

I am not sure how this chapter fits in with a book on codeless configuration but its coverage of the three collaboration tools is quite good.

Chapter 6: Dynamics CRM Administration

This chapter is designed to cover “the most commonly-used configuration options that an administrator of the system will work with on a day-to-day basis.” The chapter certainly gives a summary of the Settings area of CRM but actual processes, such as adding a new user or configuring a security role are not covered.


This book reminds me of a cut-down version of Wittemann and Ables’ Administration Bible (that book was just shy of 800 pages and sought to address similar topics). The preface claims “This book takes a no-code approach to configuration and customization and is aimed at non-developers. It is intended as a guide for someone who is starting  out with the platform and as a reference material during the platform life.”

The first couple of chapters start down the path of addressing this claim well, empowering the reader to set up a thirty day trial and giving an overview of the CRM structure. Chapters three and four have some good moments but I expected them to be more in-depth, especially around topics such as Business Processes and form setup. Chapters five and six are an unexpected inclusion, especially chapter five. A chapter on free, commonly applied solutions makes sense, and InsideView fits into this camp nicely but setting up Yammer and MSL is not something I see as a ‘Customization Essential’.

Chapter six is little more than a high-level summary of the Settings module. Focussing on the Settings elements which can have a big impact on behaviour may have been a better approach here. For example, reviewing data duplication and SharePoint integration in detail would have made sense.

As a lifetime reference for codeless configuration, the book probably misses the mark. Beefing up chapters three and four, dropping chapter five and focussing the coverage of chapter six would get it there though. Is the book worth the ticket price of $30? There are very few books in the market addressing CRM 2015 so if you absolutely need something for CRM 2015 and are completely new to the product, this is it. The administration bible, for example, is only good for CRM 2011. The closest competitor I know of is the CRM 2013 QuickStart which costs a similar price for about twice the size and is focussed on configuration and customization of CRM. However, the description and reviews make it clear the QuickStart assumes prior knowledge of Dynamics CRM.

Buy the book for a guide on what is possible but you may have to look elsewhere to know how to change things and, more importantly, when not to change things. Nicolae, the first round at Summit is on me.

Saturday, February 28, 2015

Salesforce: Newton’s Second Law

The end of another financial year draws to a close for Salesforce and, as usual, I am doing my post-game analysis. Unlike the previous quarter, Marc is being very consistent so, for people like me, looking for the patterns, they are easy to spot. Let us see how he fared.

The Numbers

As usual, the numbers come from Salesforce’s own website. They are the numbers reported to the US Securities and Exchange Commission using the ‘Generally Accepted Accounting Principles’ (GAAP). This is an accounting framework allowing analysts to compare companies on a level playing field. When giving press releases, these days, Marc shies away from GAAP and uses his own special brand of accounting which, not surprisingly, make the numbers look more favourable (referred to as Non-GAAP). This was not always the case. As can be seen in this Salesforce press release from 2009, Salesforce used to embrace GAAP reporting, until the truth got in the way of a good headline i.e. they stopped making a profit. I understand this from a public relations perspective but, from a business management perspective, I struggle to see the benefit.


2014 Q4

2015 Q1

2015 Q2

2015 Q3

2015 Q4







Subscription Revenue






Revenue Cost






Operating Cost






Salesforce Income






Highest Transaction





Transaction Growth QoQ




Revenue Growth # YoY






Revenue Growth % YoY






Revenue Growth % QoQ






Total Cost % YoY












Staff Growth (YoY)












Growth Difference












Accounts Receivable












NB: I realised in writing this up that I had the wrong Salesforce income in place for 2014 Q4, being off by 13,000. It had no material impact on my analysis but I thought I would call it out before someone else did.

Apart from the staff and transaction numbers, all of the above are in the thousands. For the year, Salesforce generated around $5.4b in revenue and has made a big noise about being the fastest to five billion. As I have mentioned in the past, Salesforce is selling $10 notes for $9 which makes for strong sales but lousy profits.

Revenue growth is slowing (which I will look at later) but, thankfully, so are costs. As previously predicted a 20% year on year staff growth is now the new normal.

In terms of losses, for the full year, Salesforce lost around $260m

Cash has gone up but Accounts Receivable has skyrocketed. Again, I will look at this in more detail further in.

Revenue and Cost Growth


This is a good and bad news graph. Firstly the good news. Revenue growth is outpacing cost growth by 8%, about the same as last quarter. So while Salesforce is making a loss, this loss will reduce over time.

The bad news is growth is slowing. It is well and good to talk about Salesforce’s 26% year on year revenue growth (the first bullet point in their bold headline in the quarterly announcement) but what this fails to mention is this is the lowest it has been in almost five years. Compared to those Marc used to mock for their lack of cloud presence, Salesforce is slowing and is far from the triple figure growth of its competitors.



I am using a 12 period moving average to smooth out the variance. The advantage of the trending line is it is very difficult to glean insight from the numbers directly as they jump around so much. The trend graph suggests the deteriorating margins are slowing up and, if things continue, Salesforce will move towards profitability albeit slowly.

This is reinforced by the annual numbers. This year, Salesforce made an annual loss of around $260m, compared to $230m last financial year. In other words, they have increased their revenue by 33% but their loss has only increased by about one third of that. Perhaps this suggests there is a way for Salesforce to return to profitability through sheer size. It is very early days though and the loss would need to start decreasing year on year, rather than just growing slower than revenue for this to be realised.

Looking at the long term, other than when the IRS cashed in their tax credits, Salesforce has not turned a profit since 2012 Q1. The next quarter, using Salesforce’s terminology, is 2016 Q1. Therefore, if Salesforce fail to make a profit next quarter, it will literally have been four years since Salesforce made a buck from their operations.

Cash and Accounts Receivable


The purpose here is to consider the quality of Salesforce’s current assets (assets which, in theory, could be cashed in quickly, if needed). The two major components for Salesforce are Cash (literally cash sitting in a bank account) and Accounts Receivable (money owed to them). Cash is generally considered more desirable than Accounts Receivable if only because it is much easier to get money out of the bank than it is to get money out of people who are in your debt.

The part jumping out at me here is the regular spike in Accounts Receivable (the red line). However, it is completely predictable, based on the historical values. At the end of every financial year, Accounts Receivable jumps up and every year the jump seems to be increasing. What is the cause of this mysterious pulse?

The answer is a human one. At Salesforce, “every month is end of quarter” so imagine how important the end of financial year is. The Salesforce sales team want to earn their commission and end the year on a high. If there is a way to close a sale before the end of the financial year, they will. In this case it is signing the contract before they have the money in hand. Terms of credit are extended significantly in the final financial quarter. What this tells me is if you are looking to get a good deal on Salesforce’s CRM, January is the month to play hard ball.

I also feel it is time to revisit the cash flows of Salesforce. How is it, if they are generating losses for so long that they continue to stay in business. Part of the story is the selling of shares to prop up operating cash flow but there is a bigger story around the ‘deferred revenues’. I think I will cover this in another blog article in the next few weeks.


Based on the transactions, subscription growth has slowed from 23% to 15%. It is probably a bit early to say if this is a trend or an outlier but it is worth keeping an eye on.


The loss per user per month has gone up from about 75c to about $1.10, which is not great and defies a transition to profitability. Another one to keep an eye on.

Earnings Call Buzzword Bingo


2014 Q4

2015 Q1

2015 Q2

2015 Q3

2015 Q4

Number of words
































































































The rule is the words on the list have had ten or more mentions in the past five periods with the text used being the call transcript after the introduction and up to, but not including, questions.

As we can see, we say farewell to ‘Sales’. The origin of Salesforce as a sales force automation platform is now well and truly in the past, although the Sales Cloud is still the main part of the Salesforce revenue. We also say hello to the word ‘Software’. Salesforce’s catchcry used to be “No Software” so it is a little surprising that the word Salesforce used to rally against is now a key part of Marc’s quarterly speech. Marc, in the quarterly announcement, refers to Salesforce as a “software company” seven times, obviously embracing the term he once reviled.

In terms of words in danger, we have ExactTarget, the acquired marketing automation platform and Salesforce1 which Marc refers to as the “foundation of everything we do”. It may be the foundation but it is the cloud, revenue and the customers which are at the front of his mind.

Google Trends

The term “dynamics crm” continues to have more interest than “” globally. Moreover, while the term “dynamics crm” is the most popular it has ever been, the term “” is generating the least interest ever, with the graph going back ten years.


Google Trends could not generate the region trends so I cannot include these this quarter.

Insider and Institutional Sales


2014 Q4

2015 Q1

2015 Q2

2015 Q3

2015 Q4

Insider Sales






Institutional Sales






The big sales we saw last quarter continue. In 2015, so far, Marc Benioff has sold off close to half a million shares worth about $27m. Here are all of the sales for this year, to date.


Value of Shares Number of Shares

Marc Benioff



Parker Harris



Joe Allanson



Burke Norton



Maria Martinez



Craig Conway



Lawrence Tomlinson



Alexandre Dayon



Grand Total



To give some perspective the largest sales are by:

  • Marc Benioff, Chairman and CEO
  • Parker Harris, Co-Founder
  • Burke Norton, Chief Legal Officer

Two of the co-founders are off-loading despite one of the analysts on the call likening the quarterly results to the Lego movie song “Everything is awesome”. For some reason Benioff and Harris no longer want to be ‘part of the team’.

Looking to the Future

Last quarter I predicted revenues of $1.46b-1.48b and an operations loss of around $20m. I was off on the revenue, which was $1.44b, by around 1%, which I am quite pleased about. For the operations loss, it was almost $65m so I was much less accurate. I thought the ship would be steering towards profitability a lot quicker than it is.

For next quarter, I predict revenues of $1.56b and a loss of around $50m.


Almost a year ago, I used Newton’s First law as an analogy to the lack of desire of Salesforce’s management to change direction. This time around I will use Newton’s Second Law which states that the force needed to accelerate an object is proportionate to the mass of the object. In other words Force equals = mass times acceleration. In this case, the ‘mass’ is the financial size of Salesforce and the acceleration is the growth of the organisation.

Warren Buffet talks in his annual reports about how it is very hard for him to generate the returns of the past because Berkshire Hathaway is now so large. The same is true for Salesforce. A number of indicators are suggesting a slowing of growth (revenue growth has slowed, staff number growth is slowing and transaction growth is possibly slowing). There is no mystery to why growth is slowing; what was once an untapped market is becoming crowded. New opportunities are harder to find and those that are available are being aggressively pursued by the competition. The effort required to grow the business (force) is now much larger because of their previous success (their mass).

As Salesforce becomes a mainstream “enterprise software company”, it begins to face the same challenges as its competitors. Ten years ago, Benioff famously said of his mainstream competitor Siebel “Even dinosaurs mate a few times before they die. It's the end of software.” Today, Salesforce is becoming one of those behemoths he once had disdain for. The big question is will Salesforce evolve into a bird and soar or will it become a lumbering carnivore doomed to be a collection of bones in the fossil record.

Sunday, February 22, 2015

Why Do We Need CRM Systems?

I recently presented the “Conference Room Pilot” (sometimes reduced to the inauspicious acronym ‘CRP’) for a system we are implementing. In essence, a CRP is a review of the system before it is put through user acceptance testing (UAT), or more generally into production. The audience was about fifty people, from all levels of the organisation, many of which were unaware a new system was coming or why it was needed.

My job was to show them their new stakeholder management system but also put it into context and convince them this was not just another piece of technology coming in, to be replaced in 18 months. I needed to make the system relevant and generate a sense of urgency and excitement within the crowd. This got me thinking why we need CRM systems in the first place. What is it about the way we work that makes a CRM system indispensible? I had previously written about the ‘what’ but only touched on the ‘why’.

This is what I came with.

The Eternal Conflict


There is a battle waging in many organizations. The battle is between the end users and management. The end users come to work every day to do a good job. They sell the products and provide the services. They know the problems of the organisation, where the waste is and where attention needs to be focussed.

Management want to do everything in their power to make the end users and, by extension, the organization successful. Usually their success is directly linked to it. They are not as close to the clients as the end users, or the products and services the organization provides, so they rely on feedback from their various systems to guide the business.

This is where the problem often lies. The end users, deprived of the resources they need to service their customers, do the best they can. Time poor, they do not have the time to dot the internal ‘i’s and cross the internal ‘t’s. Information systems, when they exist, are filled in poorly or, worse, circumvented. Management, with limited and incomplete information make the best guess they can as to the issues within the business and where the resources should be best deployed. And so the cycle repeats.

Aligning People, Processes and Technology

The idea of aligning people, process and technology is a topic I have touched on in the past. The solution here is to consider all three elements and how they can work together to improve communication between the end users and management. Starting with the technology,the information systems must be simple to use (so they do not get in the way of the end users), aligned to the business process (and vice versa) so they do not hinder efficiency, and capture the essential information required to deliver great service to the clients and communicate with management the health of the business. For example, knowing how long a service call takes and the waiting times for callers is irrelevant to addressing a client’s immediate problem but is essential in setting appropriate staff levels.

Where practical, the system should be a ‘one-stop shop’ for a given end user. There is no value in having an end user jump from system to system when servicing a client or when they are ticking the internal boxes. It is inevitable that multiple systems are used within a business (for example, CRM systems make for lousy ERP systems) but as long as each end user uses as few systems as possible to do their job, this will minimise the frustration of constantly jumping from one system to the next.

Finally our system needs to have reporting tools so that, assuming it is aligned to the business’ processes and it is not getting in the way of the end users, management can extract insights into the business and deploy resources accordingly. For example, if support consistently answer questions on a specific topic, perhaps this topic should be covered on the business’ FAQ, or if a particular product consistently shows a specific defect, this can be the focus of future research and development.

The Right System For The Job

The system I am describing is, of course, a CRM system. While traditionally focused on managing sales processes, CRM systems have come a long way and are consistently used to manage all manner of processes within a business. In the case of Dynamics CRM, the tight integration with Outlook, reporting tools, and a workflow engine to automate repetitive tasks and manage escalations make it ideal for the system I am describing.


With the right people in place, efficient business process and a CRM system to help them do their job and capture the key ‘levers’ of the business, it is then the responsibility of the end users to use CRM appropriately. When they do so, management can use the reporting tools to better understand the business and their clients, and they can then deploy resources appropriately to further improve operations. The end users get the resources and system to help them do their job and the business thrives.

The Circle of ‘Business’ Life


If we now revisit our diagram, it takes on a new paradigm. Rather than describing conflict in the business, it describes a self-reinforcing process for improvement, with all elements of the business working together, rather than against one another.


A common complaint with CRM systems is that they increase end user workload or that they are ‘Big Brother’. While CRM systems do require effort to use and are a monitoring tool for the business, these criticisms need to be considered in a larger context. With centralised, consolidated information, visibility of the business is gained and the system, rather than keeping end users and management apart, bring them together and aligns them so they both work together for the business and, most importantly for the clients. This is the reason CRM systems are so important and are essential if a business is to succeed.

Sunday, February 15, 2015

Setting up Handy Links in Dynamics CRM 2013/2015

Something which is often requested by client, but which has been difficult to do is set up handy URL links on a CRM form. Before CRM 2013, the best you could do (without code) was add web links in as reports. While this worked, it was not obvious that the link was there. Also, it did not allow us to add dynamic URLs to our record.

Using a few of the new features of CRM 2013/2015, it is now possible to add default web links directly to the page.

CRM Links

How To Do It

Firstly, we need to set up the fields to hold the URL. The trick here is to make sure we tell CRM to make them URL fields. This is done by setting the format of the Text Field to URL. Make sure you do this at creation though as once it is set, you cannot change it.


Now we add these fields to the form and make them read only.


Finally, we need to insert a web link, which we do with the new Business Rules, found on the form. As I mentioned in my previous post, Business Rules are a nice way to do some things without JavaScript. In our case, the Business Rule looks like this.

Default Links

The net result is a bunch of clickable web links on our form which, when the record is saved, get auto-created. It is that easy!

Dynamic URLs

This is a nice way to add a static URL to a field and display it on the form. If you need a dynamic URL, our friend the real-time workflow comes to our aid.


In this case we construct the URL by using the ‘Append With’ Operator


In the above we append the Account name to the web string. Using this with successive Update steps we can make the URL read whatever we like.


There are always web links to applications which are useful to the CRM user but which are not worth fully integrating. This is a quick and simple way of giving access to them without code and without a lot of expense.

Saturday, January 31, 2015

Faking JavaScript Codelessly

I am quite a fan of not using code where possible and where practical. However, there is no point sacrificing code if the user experience makes the system unusable. CRM 2013/2015 gives us a few tools in our kitbag for avoiding using code without sacrificing experience. I thought I would explore them.

Real-Time Workflows

I am so pleased to see real-time workflows in CRM. In the old days, workflows could only run in the back end. The problem with this is while you could make them do lots of interesting things (Auto-numbering, Lead Assignment and Counters, for example), the user experience was sub-par. The main problem was that while the workflow did everything you wanted it to, the user did not know what was happening because it was all on the server and not on the form. This has now changed with real-time workflows.

Any workflow can be converted to run in real-time by deactivating it and hitting the ‘Convert to a real-time workflow’ button at the top of the form.


I made of use of real-time workflows in my address finder article. The experience in that case was, once the location was set, the other fields appeared updated on the save of the record. In other words, if you are looking for something which behaves in a similar way to the OnSave event, a real-time workflow gets us close.

So what other events can JavaScript trigger off? You will remember from my Developer Essentials article that JavaScript triggers off of four events:

  • OnSave (saving of the form)
  • OnLoad (when the form opens on the screen)
  • OnChange (when the value in a field changes)
  • TabStateChange (opening and closing of Tabs)

So we have covered off the first one. What about the others? For these we will need Business Rules.

Business Rules

Another new function for CRM 2013/2015, Business Rules allow us to configure form behaviours. I mentioned Business Rules in my updated Auto-Number post from last year. Business Rules are configured on the form and here is a simple one I set up to test the behaviour. In this case, when the Main Phone is populated, the value is copied to the Other Phone field.


When activated, it becomes clear Business Rules run on both the OnLoad event (on loading the form, if the Main Phone had a value and the Other Phone did not, the value was copied) and OnChange event (if I changed the Main Phone value and tabbed out of the field, it was immediately copied to the Other Phone field). Please note that, with Business Rules, synchronous plugins run first and then the Business Rules fire in the order they were activated (oldest to newest). Also, in 2015, Business Rules were changed to fire server side, not client side (as they did for 2013). This means if a value changes in the back end (via integration, for example) the rule will fire without the need for opening the record. From a user’s perspective, it still appears as if the rule is firing OnLoad and OnChange.

Tab State Changes and Other Stuff

There are no codeless equivalents for triggering off the opening or closing of a Tab and there are plenty of other things you may need to do which simply cannot be done with the limited actions available for Workflows and Business Rules. In these cases you will still need Javascript.

Also, as a word of warning, with the many ways to emulate JavaScript-like behaviour, it can be difficult to determine exactly how a form does what it does. For this reason I know of a few senior developers who prefer to use JavaScript in all cases, even though the codeless alternatives may be quicker and as effective. In their case they are considering the future administration of the form. If everything, or nearly everything can be contained in one place, it is easier for an administrator; no rifling through numerous places trying to find the right thing to change.


If you are upgrading and have a system with lots of code, there is plenty of opportunity with the improved functionality of CRM 2013/2015 to remove some of that code and replace it with configuration (especially if it is breaking in going from CRM 2011). Similarly if, like me, your coding days are a bit of a distant memory, the new functionality gives you something to impress clients and potential clients with when showing off what is possible with CRM forms and making them user friendly. Try them out and see how easy it is to configure what used to be coded.