Microsoft Flow Part Three: The Flow That Worked

Standard

In Part One we learned how to get started and in Part Two I introduced you to a simple Flow albeit one that did not work. In this blog we will see an alternative approach which achieves our goal.

The Mission We Chose To Accept

The problem to solve was bringing scanned documents into CRM, preferably via email. The out of the box option is to email the attachment to yourself and track it in or save the attachment and add a Note. As the client already had a coded solution bringing in attachments via Queues in CRM 4, the out of the box options were considered a step backwards.

Workflow could not quite get us there without a custom workflow step so I looked to Flow. In Part Two I tried the direct approach of simply reading the email and creating a Note in CRM. Unfortunately, Flow errors when you try and move the attachment across to CRM so I had to try something else.

The SharePoint Option

My salvation came with the client turning on SharePoint integration for Dynamics 365 (CRM). For those that are unfamiliar with this feature, you go into Dynamics 365’s settings, tell it where the SharePoint server is and which CRM entities you want it on for and SharePoint auto-provisions a document store for each record of that entity available in the Documents child link of the record (accessible from the chevron at the top).

image

Starting the Flow

Flows allow us to use variables and, for this particular Flow that makes life a lot easier. To this end we start out Flow with the trigger for the Flow and initialising our variables.

image

Our trigger is the same as in the Part Two Flow; we monitor everything coming into our Inbox. Each variable initiation requires a name, type and, optionally, a default value. The default value can be an expression, rather than a string if you want to get tricky.

image

For the purposes of this Flow we initialise three variables for the Contact’s GUID, First Name, and Last Name (all for constructing the folder path for SharePoint). In this case, I was not tricky and just set some sensible text for the default value.

The next step is to find the Contact we are going to add the attachments to.

image

The only complicated bit here is the Filter Query value. The format for an ODATA filter can be found online without too much difficulty and for my purposes can be seen above where I equate the system name of the CRM field on the Contact entity to the Subject of the incoming email.

Loops and Arrays

I hit a small problem at this point. While the contactid was unique to each record, and only one record would be returned, the List Record step returned an array (effectively a list of records). Array manipulation is not obvious in Flow but colleague and Microsoft Azure encyclopedia Doug Daley tells me you can isolate array components with the Compose function. At the time of writing I did not know this trick so I employed a loop to loop through each element in the array (of which there was one, the found Contact, or zero if none were found).

I have also found Flow is a bit twitchy when it comes to creating loops. If you try to create one and then add an array variable to work on, the Flow does not always realise you are in a loop and complains about the array. The best best is to NOT create the loop but add the step as if it was in a loop. Flow then asks if you want to put it inside a loop and you are good.

image

So what we are doing here is, once we have identified the Contact in question, we set values for our three variables. Flow makes this very easy as it automatically retrieves all the fields for the Contact entity.

Our final step is to loop through our attachments and, using these variables, place them in the right folder so that they can be seen in CRM.

image

Starting another loop (by adding a Create File step and getting Flow to build the loop around it), we get each attachment from our email and add it to the right folder. The SharePoint Create File step requires:

  • Site Address: The SharePoint Site Address. I have had some real trouble getting the value to stick in this field with Flow blanking it out whenever I clicked away. The only advice I can offer is to persist.
  • Folder Path: For us this is the formula used by Dynamics 365 (CRM). For Contacts, we use the following Expression. “concat(‘/contact/’,variables(‘FIRSTNAME’),’ ‘,variables(‘LASTNAME’),’_’,replace(variables(‘GUID’),’-‘,”))”. Basically, it uses a subfolder called ‘contact’ and after this each Contact record gets a folder with the name ‘<full name>_<contact GUID>’. If you are doing this for a production environment, consider that the full name is not always ‘<first name> <last name>’ so you may want to pull the <full name> field or construct your Expression differently.
  • File Name: The name of the attachment
  • File Content: The encoded content of the attachment. This is the part that Flow struggled to pass onto a CRM Note record. Fortunately it works fine for SharePoint.

The End Result

image

The Flow worked exactly as we would hope and a new file was created against the appropriate SharePoint folder so that the attachment could be seen in CRM.

image

Conclusions

We replaced non-trivial and, likely, expensive coding with a completely configured Flow. Moreover, I went from knowing essentially nothing about Flow to creating the above in a few hours.

In the end the client actually took the Flow further and, as the attachments were application forms, requested that for each attachment a Case was created and that the attachment was placed on the document store for that Case. It took a little over an hour to get it fully functional from scratch. I will leave it as an exercise for the reader on how to do it.

Looking at the soon-to-be-released update to CRM, erroneously known as the “July Update”, it is possible to start the process for creating Flows directly within CRM.

image

Therefore I think Flows will become more and more important as time goes on for those of us who work with Dynamics 365.

Advertisements

Microsoft Flow Part Two: The Flow That Failed

Standard

In Part One I talked about how to set up a new Flow trial and the key elements which make up Flows. In this one I will show my first attempt at creating a Flow (even though it failed) as it is a good, simple example.

My Mission: Bring Attachments Into CRM

The problem to solve was to bring attachments into Dynamics 365 (CRM) from a scanner. The client was using Dynamics CRM 4 and had written some code such that a scanned document was sent to an email address, with the “Contact ID” in the Subject of the email. The email then hit a CRM Queue, the code kicked in and the email attachments appeared under the Contact.

Obviously the client wanted a process similar to the old one to minimize disruption.

Starting With a Template

A good place to start in Flow is a pre-written template as this will save some of the configuration. There was no Exchange to Dynamics 365 template but there was an Exchange to OneDrive template which scraped the attachments from emails and put them in OneDrive.

image

A bit further down the screen is the Create Flow button which gives you a copy of the template Flow (deactivated by default) to work on. Click the Edit Flow button on the screen that appears to get into the details.

image

As you can see below, Flows are fairly straightforward. In this case there is an Office 365 Exchange Trigger which activates the Flow when a new email is received into the Inbox. A loop then kicks in which goes through each attachment in the email and creates a file in OneDrive in a specified folder.

image

What is also quite nice about Flows is, if you log in with an Office 365 account, it automatically connects to the relevant services i.e. Exchange and OneDrive.

Modifying the Template to Suit Our Needs

As can be seen in the previous screenshot, clicking the ellipsis (three dots) next to the Create file Action allows us to delete the action. In our case this is exactly what we need to do, replacing it with a Dynamics 365 (CRM) action.

Once the Action is deleted, you mouse over the same area and click the ‘+’ sign that appears. Selecting ‘Add an Action’ presents all Actions available in Flow. To get to Dynamics 365 click ‘See more’.

image

Sure enough, there are three Dynamics 365 options with the only thing to differentiate them being the icon. Ours is the first one, Dynamics 365 (not ‘for’ anything).

image

Dynamics 365 has a few options available for us and we have triggers on creation, updating and deletion.

image

In our case we chose to Create a new record (a Note).

Flow is clever enough to retrieve the entities and fields of CRM and also allows us to choose the key attributes of the source email and its attachments.

image

The final step is to update the Flow and activate it (which you can do on the screen that appears after updating).

Running the Flow and Seeing How it Went

Going to My Flows and selecting this Flow shows the summary screen, including when it has been executed. In our case, we simply send an email to the monitored Inbox and wait a few minutes. Unfortunately, in our case, the Flow fails.

image

We can click through to one of the failed runs to see the details, including the inputs and outputs of each step.

image

Interestingly, if we remove the Document and Mime Type, the Flow works fine so there is a bug with the creation of attachments. My guess is however emails manage attachments is not quite compatible with the way Dynamics 365 does.

The good news is there is another way and I will show this in the last part of this series. We will also learn about programming Flows without code.

Microsoft Flow Part One: Introduction and Setting Up a Trial

Standard

I have finally got to learning the basics of Microsoft Flow. If, like me, the curly brace keys are most under-utilized keys on the keyboard, you have a new best friend. My first mission was to bring attachments from emails into CRM. In a couple of days I have gone from zero to achievement unlocked. For the Flow curious I thought I would walk through how to set it up. There is a bit to explain so I will split this over a few blogs (probably three). This one will introduce Flow and show how to set up a trial.

What Does Flow Do?

The usual explanation for Microsoft Flow is “Microsoft’s If This Then That (IFTTT)”. If you are familiar with IFTTT, essentially Flow provides a series of Connectors which link to various online apps and you then chain them together to do something. For simple migrations and integrations, Flow offers a configurable and more manageable alternative to code.

To compare to CRM Workflows, Workflows are great at moving data around CRM and performing actions. Flows allow you to do this beyond the boundaries of CRM, interacting with products such as OneDrive, Exchange, and SharePoint (as well as quite a few non-Microsoft ones).

Getting a Trial

This is by far the easiest trial I have ever set up for a Microsoft product. Go to http://flow.microsoft.com and click “Sign up free”.

Follow the prompts and you will get a 90 day trial. Alternatively, if you already have an Office 365 account, sign in with this to make linking to your Office 365 products automatic.

image

Connectors

To see if the things you want to talk to each other are available for Flow, go Connectors. Here you will be presented with all available Connectors, including Dynamics 365 (CRM).

image

There are also some non-system Connectors called Actions (available when setting up the Flow) such as:

  • Approvals: Services for Approval Flows (discussed briefly later on in this blog)
  • Content Conversion: Not the most extensive of services but it allows HTML to be converted to plain text (maybe useful when turning emails into things like Cases)
  • Data Operations: Reasonably self-explanatory but here are the specific services offered

image

  • Notification: To send a mobile or email notification as part of the Flow
  • Schedule: To insert delays in your Flow
  • Variables: Useful for passing ‘bits’ between the Steps in your Flow and for using in loops

image

NB: Approvals and Content Conversion sit under Connectors in Flow but are Actions in my mind

Templates

Fortunately, we do not have to start from scratch when linking Connectors and Actions. Microsoft provides a large set of Templates to base your Flow on. Going to Templates, shows a series of pre-made Flows which are very useful as a starting point.

image

Other Bits

For the purpose of setting up our sample Flow we now have everything we need but there are other sections on the page:

  • My Flows: Where the Flows we make reside
  • Approvals: Specifically for setting up approval processes
  • Learn: A bunch of tutorials, documentation and the like to get you on the right track

image

In Our Next Episode

In my next blog I will show the Flow that failed (Taking Exchange email attachments and creating CRM Notes from them) and then in the last blog how I went to SharePoint to solve the problem.

Forrester Trajectories For Sales Force Automation 2015-2017

Standard

Occasionally, Forrester and Gartner release reports on CRM. Forrester just put out their 2017 report on Sales Force Automation which includes the usual CRM suspects.

Rather than pick apart the report inisolation, I like looking at the ‘trajectories’ of the products over successive reports to see which are moving ahead and which are trailing the pack.

In this case, as far as I can tell, this is the first report under the heading of “sales force automation”. Previously, Forrester did reports for “CRM Suites” and split the reports between enterprise organizations and midsize ones. For the purposes of the trajectories, I have used the midsize reports. This was a reasonably arbitrary decision based on what was readily available through Google’s image search.

The Trajectories for 2017

Forrester 2015-2017

My Photoshop/GIMP skills continue to improve but the image still needs a bit of explaining. If we remove the rainbow trails, we have the 2017 Forrester report with the products which did not feature in the previous two reports removed (CRMNEXT and Pegasystems). Strictly speaking, Oracle was not in the 2015 Forrester report but as a ‘Leader’ it would be remiss of me to leave it out.

The rainbow trails end at 2017 and start at 2015. So, for example, NetSuite starts in the Strong Performers group, heads upwards in 2016 but then severely drops, falling into the Contenders in 2017.

Let us start with the weakest and work up.

The Contenders: Infor (Red) and Netsuite (Orange)

Both products have fallen from grace in the last two years. Both started from a similar spot in the Strong Performers and both are now in the Challengers with Forrester suggesting Infor has the weaker strategy.

Reading the report, Forrester sees NetSuite as a broad play, covering ERP and CRM well but not having a deep spike in sales force automation. For Infor, Forrester sees them as having strong vertical focii but not a deep sales force automation spike.

The Strong Performers: bpm’online (Green), SAP (Blue), and SugarCRM (Yellow)

All three stayed in their segment over the three years. The only movement of note was bpm’online who has slightly improved their offering and spent 2016 in the Leaders circle.

bpm’online is hailed as easy to use and administer without deep technical knowledge but Forrester suggests this comes at the price of compromising more complex functionality such as quota management.

For SAP, Forrester is a little vague on why the product has slipped out of the Leaders ring where it was a few years ago. They talk about a lack of innovation and AI capability but hail it as the solution to pick if a company is already an ‘SAP shop’ for other areas of their business.

For SugarCRM, Forrester highlights their lack of depth but celebrates their ecosystem and point-solution marketplace which, I guess, is what put them above the Contenders.

The Leaders: Oracle (White), Microsoft (Black), and Salesforce (Purple)

The three thoroughbreds in the race remain at the head of the pack. As mentioned earlier, Oracle was not in the 2015 report for midsized enterprises so we only have two years of data. In that time Oracle’s offering has weakened relative to the others but their strategy has strengthened a little. In terms of Forrester’s commentary, it is all glowing.

The real battle in my very biased opinion is between Microsoft and Salesforce. In this battle, Microsoft has the upper hand. Forrester consider Microsoft to have an offering comparable in strength to Oracle, with Salesforce trailing both of them in terms of proximity to the top-right corner but is slightly ahead in terms of strategy.

Forrester highlights Microsoft’s innovation and maturity in AI but calls out their limited ecosystem and point-solution ISVs. For Salesforce, the report is mostly glowing. Looking at the scorecard, the biggest deltas between the two are in Product Catalogs and Price Lists, and Business Intelligence (where Microsoft is seen as stronger) and in Extensibility (where Salesforce is seen as stronger).

Industry Consolidation

Back in the 2008-2015 Forrester review, there were nine CRM vendor offerings and six offerings in the Leaders circle. Today there are ten CRM vendors with three in the Leaders circle (SAP and Pegasystems falling away). So while consolidation has slowed down, there is a group clearly leading the others.

Conclusions

Over the last three years, a couple of the Strong Performers have fallen back into the Contenders ring with the rest remaining where they are. The Leaders have danced around each other with Microsoft gaining an upper hand for now.

If we think of this as a horse race, there are three horses at the front vying for the lead (previously there were two other horses in this pack but they have fallen away). Behind them the rest of the pack follow with a couple running out of steam and dropping off.

My prediction is Oracle will be the next to drop off leaving Microsoft and Salesforce to battle it out.

Marc’s Lemonade Stand 2017

Standard

This year, I will reprise a blast from the past. Microsoft’s Lemonade stand. Possibly the only place where you will see screenshots of those early versions of Microsoft CRM.

For those unfamiliar with my annual review of Salesforce’s cash flow (here is last year’s), I take their cash flow, scaling all line entries relative to their revenue, which I set to $1 (the price of a glass of lemonade). To make the financials readable, I also convert the line entries to lemonade stand analogies.

Why is this interesting? Because while you can fake revenue and do non-GAAP acrobatics, cash flow never lies. If you want to see how a business runs, look at the cash flow.

The Numbers

2013

2014

2015

2016

2017

Sales of a Cup of Lemonade

$1.00

$1.00

$1.00

$1.00

$1.00

Cost of Ingredients From Corner Store

-$0.22

-$0.24

-$0.24

-$0.25

-$0.27

Taste Testing

-$0.14

-$0.15

-$0.15

-$0.14

-$0.14

Posters

-$0.53

-$0.53

-$0.51

-$0.49

-$0.47

Paying Sister to Make Lemonade and Sit on Stand

-$0.01

$0.00

$0.01

$0.02

$0.01

Bank Account Interest (minus fees)

$0.00

-$0.02

-$0.01

-$0.01

-$0.01

Overcharging/Undercharging

$0.00

$0.00

-$0.01

$0.00

$0.00

Uncle Sam Subsidizing/Taking a Free Lemonade

-$0.05

$0.03

-$0.01

-$0.02

$0.02

Selling sister a share of the business

$0.24

$0.19

$0.16

$0.16

$0.15

Lending Dad Money for Lemonades

-$0.06

-$0.10

-$0.10

-$0.09

-$0.07

Profit Share Paid to Sister

-$0.08

-$0.07

-$0.06

-$0.06

-$0.06

Money Put in Bank

$0.00

$0.03

$0.01

$0.01

$0.00

Money Owed to Corner Store

$0.06

-$0.01

$0.03

$0.04

$0.01

Loyalty Program

$0.16

$0.15

$0.15

$0.15

$0.14

Net Cash From Operating Activities

$0.36

$0.29

$0.27

$0.32

$0.30

Buying Out and Taking Over Other Lemonade Stands

-$0.19

-$0.65

-$0.03

-$0.11

-$0.38

Fixing up the Lemonade Stand

-$0.07

-$0.08

-$0.03

-$0.04

-$0.07

Comic Purchases and Sales

-$0.06

$0.13

-$0.08

-$0.09

$0.12

Net Cash From Investing Activities

-$0.32

-$0.61

-$0.14

-$0.24

-$0.33

Borrowing Money From Mom

$0.00

$0.33

-$0.10

-$0.04

$0.08

Net Cash From Financing Activities

$0.00

$0.33

-$0.10

-$0.04

$0.08

Cash Profit

$0.05

$0.01

$0.02

$0.04

$0.05

Generally I focus on the items which contribute 10c or more to cash flow.

Operating Activities

Traditionally, operating activities are business operations as opposed to investments (putting the money somewhere to make money) and financing (borrowing money) .

Cost of Ingredients From the Corner Store (Subscription and Support Costs)

Costs for the stand are the highest they have ever been at 27c and have been steadily increasing for about eight years. This is the first year that the ingredients (costs) have gone past 25c (25% of revenues).

It is hard to make ends meet when costs keep rising.

Taste Testing (Research and Development)

Taste Testing has been constant for about four years at 15c. In other words, Salesforce spends around 15% of revenues on research and development. This is similar to Microsoft’s 14%.

Posters (Marketing and Sales)

Marc spends a lot on posters. This year, 47% of revenues went to marketing and sales. For the dollar received for selling a lemonade, 47c goes to the printing of posters. However, this spending has reduced over the last five years.

This is where we see how far Salesforce departs from, say, Microsoft. Microsoft, by comparison, spends around 17% on Marketing and Sales. Even with the rate of reduction Salesforce have, they have a long way to go.

Selling Sister a Share of the Business (Expenses related to stock-based awards)

To prop up the sales of the lemonade, Marc selling shares in the business to his sister. His sister sees how much the business is growing and, not worrying about the profits, wants in on the action. Every year Marc prints off some more shares on the home printer and gives them to his sister in exchange for cash.

For every $1 in actual lemonade sales, Marc receives 15c in share income from his sister.

Loyalty Program (Deferred Revenue)

Salesforce receives a lot of money for services yet to be delivered. In short, they receive the subscription money up front, usually as part of an annual contract.  The contribution to the cash flow has been slowly reducing over the years and now sits at 14% of revenue. That is, for every dollar received for an actual lemonade, Marc receives 14c in loyalty coupon purchases.

Net Cash From Operating Activities

All of the above are the big ticket cash flow items for operating activities and the total cash into the business is 30c. One way to look at this is half of the cash coming into the business from business operations comes in from the sales of shares and the other half from the promise of future services with the one dollar handed over for the cup of lemonade covering ingredients, sales and marketing, and research. Salesforce is in the business of selling software but equally in the business of selling shares and selling the promise of future services..

Investing Activities

In the case of the lemonade stand, this covers the purchasing of rival stands (Business Combinations), repairs to the lemonade stands (Land activity and building improvements) and the buying and selling of comics to make some extra cash (Purchases of Marketable Securities).

Buying Out and Taking Over Other Lemonade Stands (Business Combinations)

Marc has been busy acquiring with 38% of this year’s revenue going towards it, literally more than triple the value from last year. In fact the big purchase was Demandware which Salesforce bought for $2.8b in cash; around 87% of the acquisition cash. Demandware is a cloud-based e-commerce platform so it aligns well to Salesforce’s other offerings.

Comic Purchases and Sales (Purchases of Marketable Securities)

Marc sold off some of the comic collection this year bringing in 12c for every dollar of lemonade sold. Marketable securities have taken a lot more money than they have earned Marc over the years. The two years where they have brought money into the business are 2014 and 2017. Every year other than these, since 2003, have taken money out of the business. This either means there are a lot of valuable comics sitting in Marc’s basement or he keeps purchasing because the old ones are junk.

Net Cash From Investing Activities

Overall, investing activities took 33c out of the business, despite the comic sales. So, overall, operating and investing activities meant 3c left the business whenever a lemonade sold. Let us turn to the final source of cash, financing activities.

Financing Activities

Financing activities are the borrowing of money to finance the business (it could be argued that Marc selling shares to his sister is a financing activity but traditionally it is considered an operating activity. In our case, the only line item is borrowing money from mom (Proceeds from borrowing on convertible debt). To cover the 3c shortfall from the other two areas, Marc borrowed 8c for every dollar of sale from mom meaning the cash flow into the business overall was 5c.

If we did bundle the selling of shares, the borrowing of money from mom, and the loyalty program (which is, effectively borrowing from customers) we would have the following:

  • Selling of lemonade (operating activities excluding share selling and loyalty program): 1c per lemonade coming into the business
  • Comics and stall acquisitions (investing activities): 33c per lemonade out of the business
  • Borrowing from mom, sister and customers (financing activities): 37c into the business

For every lemonade sold by Marc for one dollar, he receives 1c back, after all costs are accounted for. Borrowing allows Marc to maintain his stands, buy some comics and additional stands but to finance this he borrows from mom, his sister and the customers themselves. If any one of those sources of financing stopped, Salesforce’s cash flow would be negative. So it is fair to say Salesforce is being sustained through borrowed money and is not self-sustaining with its current activities.

Even if Marc stopped buying comics and stands, maintenance of the existing stands runs at seven cents per lemonade which still requires financing to cover. The obvious way for Marc to make the lemonade stands sustainable is to print less posters and bring marketing and sales into line with the rest of the industry. To date, Marc has been more focussed on market share than sustainability.

Conclusions

Another year and Marc is still borrowing to stay in business. With marketing and sales costs as high as they are, I cannot see this changing in the short/medium term. For me, this is the source of the problem for Salesforce and, even at the current rates of reduction, will not be under control for at least 15 years. This is a long time for his sister (the share market) to hold faith in Marc’s vision. This becomes even harder when Forrester is now suggesting Microsoft’s lemonade is better.

My Favorite Parts of Dynamics 365 v9

Standard

In the old days, mid-year releases for Dynamics CRM were the little ones. A few nice online-only features, perhaps, but little else. The big release came at the end of the year, synchronizing Dynamics CRM Online with On-Premise.

On-Premise is not such a big deal any more. Most companies have embraced the cloud in one way or another and the days of companies having an air-conditioned room full of racks of tin are fading away.

As the focus moved away from On-Premise support, so too the release cadence of Dynamics 365 evolved. In fact, the Dynamics Roadmap no longer speaks in terms of Online and On-Premise but rather it speaks almost exclusively about the two online versions of Dynamics CRM: Enterprise and Business.

The idea of an Enterprise and Business edition of Dynamics 365 is a relatively new concept but it is being pushed hard in the upcoming release (v9). In fact a lot of things are being pushed in this release. Microsoft have touted it as the “Biggest Release Ever”. While I dispute it rivals the v2011 release or the v4 release before it, it does come close and, given the product team have had six months since the last release, that is pretty impressive.

While many of my fellow bloggers are tackling v9, I thought I would also lend my voice highlighting some of the parts which exciting and where the product is going.

Business vs Enterprise

Let us tackle the big shift first of all. This shift started in the December Release, arguably before it was fully fleshed out, but it is now the way forward with Dynamics 365. In essence, the Dynamics CRM we all know and love is the Enterprise edition. If you want to code, have sandboxes, create custom security roles, and use modules like Field Service and Project Service Automation, Enterprise is for you.

For businesses with simpler needs (and less than 300 users) there is now the Business edition. This is restricted in terms of what can be changed, and has a simplified form editor, but comes packed with features such as an incredible marketing module to rival ClickDimensions (or to give pause at least). Alas, the Marketing offering will not be released in Australia initially which makes the Business edition less compelling down under.

image

In my opinion, most companies will jump straight to Enterprise. While the Business edition is a solid offering, very few companies have completely standard processes. Even though Business does have some configuration wiggle room, Enterprise is the xRM platform we are used to and the platform most partners will continue to recommend.

A Shift in Architecture

Firstly, the Outlook Client for Microsoft Dynamics CRM is officially deprecated. In other words, if you want Outlook to talk to Dynamics 365, the Outlook App is the way to go, not the Outlook client. This decision has me conflicted. On one hand, the features of the Outlook client ran rings around its competitors, such as Salesforce. Moving towards the Outlook App puts the two products roughly on par in terms of Outlook integration. However, being a VSTO add-on for Outlook meant the Outlook client was not the most stable of products. At least a couple of projects I worked on in the past were compromised by the Outlook client and its instability.

The next shift in Dynamics 365 is the move to make it a true xRM platform. Traditionally, Dynamics CRM has shipped with three modules hard-wired into the platform: sales, marketing, and service. Microsoft have started to replace the hard wired functionality with developed code, such as plugins. In doing this they get a lot more flexibility in turning modules on and off in the platform and, as developers, we get a lot more flexibility in modifying the software’s behavior.

Back when he was an MVP, Shan McArthur (owner of ADXStudios, now Microsoft’s CRM Portals) was a vocal advocate for removing hard-coded functionality from the platform. Now that he is working for Microsoft, I suspect he is driving this change from the inside.

Finally, the user interface is changing to one interface to rule them all. Goodbye  Interactive Service Hub and MoCA and hello Unified Interface with offline capabilities. At this stage it appears that the Unified Interface will be for the Business edition but I expect it will become the new standard everywhere in the near future.

image

Achieving Adequacy

Historically, Microsoft has been about the ‘wow’ factors in their releases; the things to bring in new customers. While the existing customers may have frustrations, in my opinion, these always came second. However, things may be changing. There are some new features which are little more than long-requested fixes. A good example of this is the new multi-select option set. So often in CRM workshops I face a look of unadulterated shock as I explain Dynamics CRM does not have multi-select option sets and we must fill a form with tick boxes. No more.

image

Similarly, the Social Pane, brought in to replace the Activity grid of older versions, has been reworked and now allows for configuration. You can select the fields displayed and which Activity Types are visible. Finally, the email screen now has an actual html editor so proper html emails can be created without the “pasting and praying” of the past.

image

My Delights

There are a couple of real delights for me in this release.

Buttons in Business Process Flow

We can now add buttons to the Flow Bar and trigger workflows and actions. This seems like a small thing but allows for even more flexibility in Process Flows. In many cases, the best way to manage a business process in CRM is through the Business Process Flow. Adding buttons for actions means even more processes fall within its scope.

Virtual Entities

For me, this is a huge innovation. In short, using a query to another data source, like an ODBC query, this data source can be surfaced in CRM as if it was a real entity with real records. When CRM needs to integrate with third party data, this offers a way to present the third party data within CRM without data transfers and keeping data up to date.

I have worked on a couple of projects where very large amounts of data needed to come into CRM and be regularly updated. The limitations of the data pipe into CRM made the requirement impossible at the time. Virtual entities resolves this.

Conclusions

There is a lot in this release and the direction of Dynamics 365 is changing, in my opinion, for the better. There is no official release date yet for v9 but when it does come out I truly believe it will be the biggest release since v2011.

Note: Thank you to Jukka Niiranen’s excellent three days of briefing posts on LinkedIn for the pictures.

Salesforce: The Empire Strikes Back

Standard

EmpireBenioff

Well that is probably overstating it but the Salesforce is out of balance and seeking to change their fate (yes, this blog will be full of dodgy Star Wars references and feel free to play a drinking game of taking a shot for every reference you recognise). Last month I reviewed the end of year results for Salesforce and suggested it was the end of hope. But, perhaps, there is A New Hope (see what I did there?) for Salesforce.

We have not entered a world off of our existing star maps, Salesforce is still selling 10 credit notes for 9 credits but the financial signals are mixed. Let us begin the process of gathering intelligence on The Empire.

Intercepting Quarterly Transmissions

Why LinkedIn Could Help Microsoft Beat Salesforce in the CRM Space

An interesting piece speaking at the CRM industry as a whole and the relative market share of the players within it.

Using Salesforce to access SAP? Pour yourself a stiff drink

An grey area which, in truth, affects most enterprise software architectures where integration between systems is required. The results of these cases have the potential for big impacts in the industry. Ironically, in raising the licence cost of integration, SAP have effectively lowered the barrier of exit for their product, giving incentive for companies to switch to a more integration-friendly system.

Salesforce Goes Net Zero Decades Early, Strives for 100% Renewable Energy

Reading the article there seems to be a bit of double-speak about how this was achieved, or is being achieved, but with data centers being as energy intensive as they are, Salesforce’s focus on doing the right thing is admirable.

The (Stock) Power of the Dark Side

image

Salesforce’s stock price for the three months up until the end of May. Nothing too interesting here with the price increasing from the low eighties to the high eighties. The quarterly announcement came out on May 18 with the peak at the end of the graph reflecting a positive response from the stock market.

The Manipulations of the Emperor (Insider Trades)

2017 Q1

2017 Q2

2017 Q3

2017 Q4

2018 Q1

Insider Sales

4.80%

4.80%

4.70%

4.70%

4.60%

Institutional Sales

5.75%

5.68%

5.58%

5.49%

5.45%

Clearly the percentage of sales is decreasing slowly over time but, to be clear, there are zero purchases by the insiders. In the last six months, executives at Salesforce have sold over two million shares but have purchased zero. Why would executives who talk endlessly about how their business is going from strength to strength be systematically selling out?

If you are considering buying Salesforce shares on the back of Benioff’s moon-sized personality, while he is charming to the last, ask yourself, who’s the more foolish? The fool or the fool who follows him?

The Progress of The Empire (Numbers of Note)

The Mixed Signals of Revenue and Cost

Let us look at the quarterly growth of revenues and costs. This is the imbalance I referred to at the start of this Lucas love-in.

image

In any business we want revenue growth to outpace cost growth, so our margins improve. This quarter this has happened. Revenue growth is at 4% (although the lowest in two years) while cost growth is at 3%. Sure enough margins have improved going from –2.2% to –0.3% margin (yes, Salesforce continues to make a loss).

There is another pattern here which is difficult to explain. For the most recent three years (12 quarters in total), cost growth alternates between increasing and decreasing every quarter. In other words, cost growth slows in the first and third quarters and accelerates in the second and fourth, up, down, up, down etc. Revenue fluctuations are not correlated, which also surprises me.

Now let us consider the year on year graph.

image

While the graph is smoother and the periods of margin improvement and erosion can be easily seen (margin growth up to 2011 Q1, deterioration between 2011 Q1 and 2015 Q1, growth until 2017 Q1 and now deterioration again), the counter signal comes from where the graph ends. While the quarter on quarter growth has revenue above costs, not only does the yearly graph have it the other way around, but the gap is widening. In fact it is the widest it has been in three years, since the last period of ‘dark times’.

Does this mean the long term margin prospect is poor but the short term good? What will happen to bring balance to the Salesforce? Let us look elsewhere for clues.

“Your Eyes Can Deceive You; Don’t Trust Them” (GAAP vs Non-GAAP)

Moving to the transcript, it is still all about Non-GAAP results with seven Non-GAAP mentions and zero GAAP results.

SevenSith

Interestingly, the quarterly results from the Salesforce page has this quote from our favorite middle-aged white guy in a black suit, Marc Benioff.

“With our outstanding first quarter results, we are thrilled to be raising our fiscal 2018 revenue guidance by $100 million and raising our GAAP and non-GAAP earnings per share expectations for the year”

Why is he mentioning “GAAP”? Well, it was a long time ago in a quarterly report far, far away that Salesforce could predict an actual yearly profit (six years, actually). However, for the next financial year, Marc is predicting earnings per share of between 6c and 8c GAAP!

What this means is, in the next few quarters, we should see an increase in GAAP mentions and the usual “As a reminder, our commentary today will primarily be in non-GAAP terms.” which precedes every quarterly transcript, will slowly fade like a dying Yoda.

“IT’S A (word) TRAP.” (Buzz-word Bingo)

OK, I admit it. I was struggling with the title on that one.

2017 Q1

2017 Q2

2017 Q3

2017 Q4

2018 Q1

Number of words

1997

2511

2505

3317

3278

Customers/Customer

27

17

20

26

28

Revenue

10

19

18

31

28

Cloud

6

16

12

14

22

Growth

7

9

10

15

16

Operating

8

6

3

18

11

Salesforce/Salesforce’s

20

18

40

crm

15

An insane amount of mentions of Salesforce (double the last couple of transcripts) and we have the usual mentions of Customers, Revenue, and Cloud. The interesting new addition is ‘crm’ with 15 mentions. Salesforce has been trying to shake off the CRM tag for years, given their ever expanding offering, so it is unusual that we have a Return of the Acronym.

There is a decrease in the mention of the word ‘Operating’, usually in the context of ‘Operating Cash Flow’ (where we see a significant part of the business of Salesforce is selling shares to its employees) or ‘Non-GAAP Operating Margin’. This could be part of the transition of moving to GAAP accounting for the transcripts but this will be more evident as time goes on.

Visions of the Future

Last month, as I was late in writing my report, I did not bring my Jedi powers to bare on the fortunes of Salesforce. However, my vision for the next quarter is a revenue of $2.5b and a break even/small loss for the profit. Beyond that, impossible to see, the future is.

Conclusions

Salesforce appear to be at a turning point in their fortunes and signalling this is a new day, a new beginning. If they stay on target, they will start turning a real profit. Unfortunately, I have seen this optimism before. Salesforce need to stop printing money through shares and get their house in order in regards to revenues and costs. They need to stop dealing with the vague and unconvincing Non-GAAP numbers and embrace a different path, otherwise they may choke on their aspirations.

In my experience, there is no such thing as luck and it is your focus that determines your reality. Others may find my lack of faith disturbing and suggest I should let go of my hate because a fear of (financial) loss is a path to the dark side.

I welcome the next episode in this saga and thank you for playing.