Microsoft Ignite Australia 2017: Blogging Like a Boss


I am up here at the Microsoft Ignite 2017 conference (#msigniteau) and I have been asked to give a 15 minute presentation on my experience blogging for the past 8-9 years. Rather than put together a PowerPoint, I thought I would write a blog instead and use this for my presentation.


I began writing ‘Leon’s CRM Musings’ back in August 2008. I used Google’s Blogger platform but, for various reasons, I found it quite frustrating so at the end of 2015 I migrated the blog to WordPress and renamed it ‘That CRM Blog’. I have written at least three articles per month for most of this time although I am now moving to two articles per month.

In terms of readership, I get around 1,500 views per month mostly from English speaking countries (USA, UK, Canada, Australia, and India).

Here is what I have learned.

Get Good Tools

Open Live Writer

Usually I write my blogs with Open Live Writer but, as I have not brought my personal computer up to the conference, I am writing directly within WordPress. Open Live Writer is good because it works offline and allows you to manage multiple blog sites at once. I actually have a couple of other blogs I write so being able to do everything in the one place is very useful.


I employ the old writers’ trick of carrying a ‘notepad’ with my wherever I go to capture article ideas. In my case it is a Word document on OneDrive. It literally has five pages of titles for potential articles. These days I would use Wunderlist. If you are unfamiliar with Wunderlist, check it out. I use it for recipes, to-dos, and a whole raft of things.


These days I write my blog on WordPress. I have a free account and it does the job really well. If you are unsure how to use WordPress and the many add-ons available for it, go to YouTube. There are plenty of one-hour tutorials on there which, after watching one, will make you a guru.

Analytics:, WordPress Stats, Google Analytics and a blog statistics tools are a simple way to gather information on your articles and the blog in general. Good for information and feedback but they should not be the focus.

Distribution Channels (LinkedIn, Facebook, Twitter, Internal Collaboration)

Reviewing my statistics, it is clear a good amount of the traffic to my blog comes from the promotion I do on these channels. LinkedIn is, by far, my favourite. I have subscribed to 50 groups (which used to be the maximum) and if my blog article is relevant to one of the groups, I promote it. I could use social automation tools to help with this process but, at this stage, I do it manually.

I also post my articles on KPMG’s internal collaboration site. Regular posting is a great way to get your name familiar with people who you would ordinarily not interact with as well as establishing a perception of yourself as an expert in your field.

The key message here is write once, distribute many. This talk is a great example of this as my blog serves as my presentation, the post-presentation collateral, and a blog article.

Keep Your Motives Pure and Be Authentic

If you are not writing a blog because you enjoy it, you are doing it for the wrong reason. Doing anything you consider a chore is hard to maintain. Also, if you are doing it for the money, you are doing it for the wrong reason. I make zero dollars from my blog and I am fine with that.

Similarly, be generous in your content. Share your intellectual property with no expectation of return. Delivering value is a keep part of blogging so make sure you do.

In terms of how to write the blog, I write as I speak and try to be myself. My hope is if you asked me about a topic I had written about, you would hear something very similar to what I had written. Similarly, if I gain followers, I would hope they like my articles for their content and the person behind them.

In showing the person behind the article, I recommend making a splash. Be bold, express an opinion. I have been called a ‘Salesforce Hater’ for some of my articles. I wear it as a badge of honour and being ‘the Dynamics CRM guy who keeps tabs on Salesforce’ has not hurt my reputation at all.

Finally, be dogged in maintaining your brand and reputation. Do not steal content, do not do paid endorsements without disclosure. I write book reviews and software reviews in exchange for a copy but I give full disclosure in my articles and make it clear that I will be impartial in my assessment.

Reputations take a long time to build but can be lost very quickly. A friend of mine, who knows CRM very well and is an excellent consultant has a blog and, unfortunately, stole content when he was short of time and wanted to publish. This killed his reputation in the small CRM community.

You Are Your Best Audience

In terms of what to write, my best advice is write what is interesting to you. The topics I write down in my Word document are ones which are interesting to me. The topic I choose to write about in my list is the one which is interesting to me at that moment in time. If you want to sanity check or refine the scope of your blog, check the analytic tools. I recently blogged about my most popular articles in 2016. This gave me a very clear message about the kinds of articles my audience enjoys. I will still write for myself but, if there are a few topics which interest me, my audience’s preferences give me a great way to decide what to write on.

Do Not Sweat the Small Stuff

There is a bunch of stuff I do not do which I could. Things like using clickbait headings e.g. I could label this blog article “25 Things to Make You a Blogging God” and it might get more hits. I prefer to generate my audience through word of mouth than manipulation but that is me.

I also do not worry about search engine optimisation or keyword seeding my articles to get hits. I simply cannot be bothered. I write and if people enjoy the articles, great stuff. If they tell others about them, even better.


The best tip I can give is just start writing. At first it will be random and disjointed but you will develop your own rhythm, especially if you commit to write regularly. Also, there is no better way to improve your writing than to write regularly and a blog is a great way to do that.

Finally, enjoy the experience. You will gain a reputation and people will appreciate your efforts. I had been at Microsoft Ignite Australia 2017 for no more than a couple of hours and I was approached and congratulated on my blog by a Regional Director. You simply cannot buy that kind of exposure, not to mention the boost to the ego.

Actions: The New Workflow Function


Actions have been with CRM since 2013 but, until now, they have been for developers. With Dynamics 365 this is no longer the case.

What is an Action?

Not being much of a developer, I have not had a lot to do with Actions to date. In essence, they are Workflow-like processes which can be called from code.

So, if you are a developer looking to emulate a series of steps which can be easily defined with a Workflow, the Action is a good idea. Similarly, if there are steps which the client wishes to maintain without getting involved with code, Actions provide an easy way to expose this.


To be honest, to date, I have not seen Actions used a lot in my projects. As mentioned, I do not use them and often developers prefer to keep things in the one place for maintainability (when they are the ones maintaining it), rather than using three or four different tools to solve a problem. Hopefully, thanks to the improvements in Dynamics 365, Actions will become more popular.

Calling Actions From Workflows

In Dynamics 365 (and in CRM Online with the December update) you can call Actions with the Perform Action step.


Unlike Workflows (and like Dialogs) values can be passed into Actions from where they are called. In a way they are like programmatic functions for Workflows.

Imagine you want a workflow to act on an Opportunity but for it to do different things depending on the stage it is up to. You could fill your Workflow up with a bunch of If statements, making it hard to read, or you could pass them off to an Action, passing through the stage as a parameter, making the Workflow much easier to read.

Similarly, if there are stages in a process where approvals need to be made, the Action could hold the approval process while the Workflow provides the context. While I have not explored this myself, it is possible that security could restrict access to one part of the process while leaving the other part open.


I can see a lot of value in bringing some of the flexibility of Dialogs to Workflows as well as making Workflows more manageable and scalable. If you find yourself creating complex Workflows with repetition, consider Actions as a way to simply them.

My Most Popular Posts of 2016


A new year and a lot of new blogs to write but before I do that I thought I would review what got the clicks in 2016. My hope is to see what you like reading about so I can write articles of greater interest. To measure popularity I am using the count of links I use when promoting my articles on Facebook, Twitter and LinkedIn.

Microsoft’s LinkedIn Acquisition

The most popular article by far was The Real Reason Microsoft Is Buying LinkedIn (And It Is Not For Their Profitability) from June. In over six months Microsoft has stayed very quiet as to their intentions. Dynamics 365, the obvious home for LinkedIn integration, still has nothing. I know of nothing coming in the next 12 months so how Microsoft will recoup the large investment they made in acquiring LinkedIn is still a mystery.

Dynamics 365

The second most popular article was Dynamics 365: The Quiet Revolution from July where I talked about the newly announced Dynamics 365. The simplification of integration between Dynamics CRM and Dynamics NAV/AX is certainly exciting and bridging the products with Common Data Services (CDS) takes a lot of the headaches away from these enterprise implementations.

In my original article I thought CRM and the ERP products were literally in the same database. We know now this is not the case; they are linked through integration with a database of common tables, the Common Data Model or, as it is now called Common Data Services.

Linking Power Apps to CDS makes for a powerful framework. This is a framework I will be exploring with Doug Daley in our presentation at Microsoft Ignite Australia this year. Come along for free beer and informative information.


While, traditionally, my quarterly financial reviews of Salesforce do not gather large amounts of hits, one Salesforce article did resonate this year. My article, back in January, comparing the new look and feel for Salesforce, Salesforce Lightning, and Dynamics CRM 2013/15 was of great interest.

I maintain my position that Salesforce Lightning was directly ‘inspired’ by the great work done by the Dynamics CRM product team in the user interface. Fortunately for Salesforce, Microsoft have continued to innovate the design with the Dynamics 365 interface smoothing off the rough edges of the Lightning-like interface. From what I hear there is also much more to come so watch this space over 2017.


There is a common theme with the three most popular articles; all three relate to recent product improvements or acquisitions. Therefore you, the audience has spoken. When new updates or acquisitions are announced, I will cover them and try to provide my own insights into the minds behind the decision. I look forward to seeing what 2017 brings for the Dynamics suite of products.

Moving To Two Posts A Month


For six years I have put out three blogs per month. While I cannot go into too much detail I have been encouraged to participate in the community across a more diverse range of channels. To this end, I intend to devote more time to:

  • Event participation
  • Publishing white papers
  • Community speaking engagements

This, in turn will leave less time for blogs so I will be going down to two blogs per month i.e. around 24 per year. Also, if you are considering writing a white paper and need a co-author or need someone to speak at an event, feel free to reach out.

Analyzing And Clearing Space In Dynamics 365 (Dynamics CRM Online)


For Dynamics CRM Online you pay for the amount of storage you use. Therefore, it is important to keep on top of how much space you are using and how quickly it is growing.

If I am a CRM Administrator in my client’s systems, I will get a warning when space is approaching capacity.

Storage Email (002)

So what do I do when I see this? Generally I am not an Dynamics 365 Administrator so accessing the details through the portal is not an option. I have access to CRM and that is about it.

Audit Logs

If you have been liberal with your auditing, the audit logs can blow out. A common problem is integration to an entity will trigger the creation of audit logs. Lots of integration transactions means lots of audit entries and there goes your storage.

Tracking the size of audit partitions is quite easy. You go to Settings-Auditing-Audit Log Management and the size is shown.


However, there is a problem. While, in the past, you could delete date ranges of log records, this is not possible in the most recent versions of Dynamics CRM Online. You can delete the partitions (split into calendar quarters) but only if they are not the active partition. As I am writing this in 2016, the partition in the screenshot is active and I can do nothing to reduce it. I am stuck with the 3G of audit entries.

The moral of this story is be very careful what you audit. In this case, we were auditing the Contact entity and also integrating to Contacts. The initial load of records from the external system blew the audit logs out. Roll on the new year.

Reviewing the Size of Common Entities

There are no tools in Dynamics CRM Online to review the sizes of ‘entity tables’. However, there is an excellent free third party tool which does a great job of pointing you in the right direction.

The UDS Storage Analyzer gives a report of how much space the various entities are taking up in your system. To get the solution file, you need to provide an email address but that is it. Once you install the solution into your CRM instance, you just double-click on the solution entry in the Settings-Solutions list and a report is generated in a few minutes.


This will guide you to the entities taking up the space and, if you run it regularly, it will give an indication of growth rates.

Email Attachments and Notes

In the case of email attachments and notes, you can also, indirectly, get an idea of size through the Advanced Find. File size of attachments is stored as a field so asking for all emails or notes where the attachment is of a certain size can also give insight into outlying records.


Deleting Records

Other than audit which, as mentioned, is managed through the Audit Log Management area, most other entities can be managed through Bulk Deletion (Settings-Data Management-Bulk Record Deletion).

The bulk record deletion guides you through a wizard to identify the records to delete and then CRM schedules a job in the background to delete them. The wizard uses an Advanced Find interface to select the records. For example, if you wanted to delete a large collection of workflows which were stuck in a Waiting state because the configuration did not account for all situations appropriately, you could use something like this.



While tactics can be put in place to handle storage needs, such as integration to OneDrive or SharePoint, there are times when systems get weighed down with data. At these times you need to work out what is eating up the storage and what needs to be done. Using the tools above you should be able to get a handle on what is happening and bring the situation under control.

Installing Windows 10 IoT onto a Raspberry Pi 3


A bit of a departure in this blog as I talk of my new adventures into the Raspberry Pi. I am presenting at Microsoft Ignite Australia with Dynamics Wunderkind Doug Daley and part of this is showing how the Internet of Things can interact with Dynamics 365.

The first step is getting a ‘Thing’ to send information back to the internet or, in our case, Windows Azure so we can feed it into Dynamics 365.

In our case, that ‘Thing ‘is a Wii Balance Board talking to a Raspberry Pi.

What is a Raspberry Pi?

A Raspberry Pi is a computer the size of a largish business card which costs around US$35. For us Aussies, it is around $55. This is what it looks like.


This is the latest version, Raspberry Pi 3, which comes with WiFi and Bluetooth built in. Power is via a Micro USB port. Basically you plug it into the HDMI port of a monitor, connect a keyboard and mouse, insert a Micro-SD card with an OS on it and power it up and you have a working computer.

Where Do You Buy One?

In my case I bought it from Element 14. I also bought a power supply, pre-loaded Micro-SD card and plastic case. I had a spare keyboard, mouse and HDMI cable so no worries there. What is good about Element 14 is, for Australian buyers, they distribute within Australia so no problems with strange-shaped plugs or expensive shipping. They even send to PO Boxes.

What Happens When You Boot It Up?

Once you have plugged it in and booted, the default operating system starts up (Raspbian).

Image result for rasbbian

This is a form of Linux with a GUI so even if you do not know the essentials of Linux you can still mouse around. It even comes with Minecraft. In my case I do not want to use Raspbian but Windows 10 IoT.

What Is Windows 10 IoT?

Windows 10 IoT is not a standard version of Windows but one which acts as a foundation for IoT apps you can install via Visual Studio or directly. How you install these apps will have to wait for another blog.

How to Install Windows 10 IoT onto the Raspberry Pi (IoT Dashboard)

There are two ways to get Windows 10 IoT onto the Raspberry Pi if it is not on the Micro-SD by default. The first is to download the IoT Dashboard onto a Windows 10 device.


The process is pretty straightforward but, for me, when it came to mounting the ISO file, which sets up the OS, the process ended abruptly and errored with “Failed to unpack installer”. Online forums suggested enabling the Administrator account on my Windows 10 PC and running it through this but this seemed a bit extreme so I looked for another way.

How to Install Windows 10 IoT onto the Raspberry Pi (NOOBS)

The other way to install a new OS is through NOOBS. NOOBS is sort of the BIOS for the Raspberry Pi and can be accessed by hitting the Shift key on your keyboard when you boot.

With the version of NOOBS that came with my Raspberry Pi, WiFi was not supported when booting up NOOBS and a network cable was needed. I am told that the latest version of NOOBS fixes this and WiFi works. Either way, a set of OSes appear which can be loaded onto the Micro-SD card from the internet.

Image result for NOOBS

Selecting Windows will begin the download process. This will be at least a Gig or two of data so be careful of your internet charges.

Once done, you reboot and, with any luck, you will be booting to Windows 10 IoT. In my case, my HDMI television was sucking too much current and preventing the boot process but once I plugged the Raspberry Pi into a normal monitor everything went fine.



If you are IoT curious or Linux curious, the Raspberry Pi might be an interesting way to go. It is inexpensive and plays nicely with Arduinos. If you are not sure and want to see it in action, feel free to see Doug and I at Ignite.

Salesforce: The Old Dog Cannot Learn a New Trick


Image result for dog accountant

I had such high hopes for Salesforce. Two quarters in a row with a profit and a third would make it a pattern (one is an outlier, two is a coincidence, three is a pattern). Alas, Salesforce failed to come through with the goods and have fallen back into the bad habit of losing money.

News At The Hydrant

Recent Salesforce news of note:

Salesforce breaks up with Microsoft

Salesforce cries foul at Microsoft’s acquisition of LinkedIn

One of the reasons Salesforce dropped its Twitter bid

The Dog-Eat-Dog World of the Stock Market

The markets have not been kind to Salesforce since the latest quarterly announcement (November 17). Whatever they said was not what the markets wanted to hear. Since the announcement, over two weeks, the price has lost around 10%. You may recall that at the beginning of the previous quarter, the price was in the low eighties and now we are in the sixties.


Let us examine what the executives and institutions thought and what could have made the overall market so unhappy.

Insider and Institutional Sales

The fact is executives exclusively sell Salesforce shares but do not buy them. In the last six months, executives have sold over two million Salesforce shares and purchased zero. Here are the sales as a percentage of holdings.


2016 Q3

2016 Q4

2017 Q1

2017 Q2

2017 Q3

Insider Sales






Institutional Sales






While the percentage is reducing for both insiders and institutions, the sell-off continues. Why is it the executives continue to talk about each quarter being the “best so far”, encouraging employees to invest, while they divest their holdings?

Numbers of Note

Back to Losses


The last couple of quarters saw Salesforce going from strength to strength. Margins were up to 10%, which is great. However, this quarter, we are back to square one with a 3% loss on sales. You can dance with the numbers as much as you like but a real accounting loss is never sustainable and rarely a good thing.

Flat Revenue Growth and Accelerating Costs

Historically, the market has responded to strong revenue growth. Here are the year on year revenue and cost growth charts.


As you can see, on a yearly basis, revenue growth is pretty much flat at 20% (nothing to be ashamed of, by any means). However, for the last couple of years cost growth has been accelerating and we have crossed the threshold with cost growth now outpacing sales growth.

While revenue growth was larger than cost growth, margins improved. However, now we will start to see margins deteriorate again if things do not change. In other words, there is no way for Salesforce to become profitable while the green line is above the red one.

Perhaps the drop in share price is temporary or perhaps the market is starting to care about profitability.

Staff Growth Slowed


Staff growth has tanked this quarter. It does not appear to be a seasonal thing as staff growth increased in the previous Q3 quarter.

Transaction Growth Slowing


We finally have enough data to look at the year-on-year trending of the transactions from the Salesforce Trust site. While still growing, the trend is clear. Every year the number of additional transactions is less. Looking at the revenue graph above, over the same time period revenue growth was constant, around 20%.

Were Salesforce handing out twice as many free/heavily discounted subscriptions for every fully paid one a year ago? Has this practice now stopped due to financial pressure? I really do not understand how the transactions and revenue can be so out of step.

Employee Stock Purchases Growing Significantly

This quarter, the stock-based cashflow jumped 42%. This is Salesforce’s main source of cash and represents staff purchases of Salesforce stock. While the executive are systematically selling their stock, the company is keeping itself solvent through the stock purchases of its employees.

Overall Summary

So we have a company maintaining a reasonably constant revenue growth but accelerating marketing spend to achieve it. They are making a financial loss and slowing down in terms of employee and transaction growth. To keep cash coming in through the door they are ‘printing’ shares and selling them to employees. All the while, the executives are selling their shares and pocketing the cash.

If the market sees a fraction of the above in their analysis of the company, it is not surprising the share price is falling.

Dog Bowls of Delusion

Measuring the difference between Non-GAAP (accounting trickery) and GAAP statements in the transcript, Marc’s Golden Retriever Koa receives three dog bowls. The transcript has three Non-GAAP statements all about profit and, not surprisingly, turning their GAAP loss into a Non-GAAP profit. GAAP statements are nowhere to be seen.

Earnings Call Buzz Word Bingo


2016 Q3

2016 Q4

2017 Q1

2017 Q2

2017 Q3

Number of words



















































Here are the most common words uttered in the latest earnings call transcript by Marc and the executives. Sadly, Marc no longer talks about Service, Cash or Dreamforce but he does talk about customers as much as he talks about his own company.

Running a close second is his talk about revenue. Earnings and profit are not mentioned once.

Talk about platforms and software is on the wane with both risking falling below the threshold of being mentioned ten times in the most recent five quarters.

Looking Into the Future

Last quarter I predicted revenue at $2.3b, which was quite far from the mark (about 10% off). Similarly, I predicted a profit of a few percent, which they also failed to deliver.

I will double down and predict revenues of $2.3b again and a breakeven on profit. Without a steady trajectory, Salesforce proves quite hard to predict.


I had big hopes for Salesforce this quarter and my prediction reflected that. Unfortunately, it was too good to be true and the executive have put the company back to where they were a year ago, struggling to find profits and control spending.

Turning their back on Microsoft and getting friendly with Amazon seems to be their strategy for success. I am not sure how this will work as Amazon does not have the breadth of services and, as I see it, the opportunities to make the sum greater than the parts but we may have better insight into this in the next quarter.