Sunday, August 30, 2015

Creating a Codeless Opportunity Payment Schedule in CRM

This blog is a republishing of the original I did for the Microsoft Dynamics CRM Team Blog which you can find here.

The new calculated fields provide a lot of opportunity for codeless configuration in Dynamics CRM. In this example I will walk through creating an automated payment schedule in CRM for an Opportunity using calculated fields and Dialogs.

Business Case

For larger sales, we sometimes stagger payments over a period of time. Perhaps this is a lease-purchase arrangement or maybe a lay-by payment system. While, in theory, aspects such as interest, deposits and final lump payments could also be incorporated, I will leave these as an exercise for the reader.

The Key Entities

For this example, I will work with two entities: Opportunities and a custom child entity called Payments. In terms of the fields I am using we have:

  • Opportunity
    • Days Between Payments (Integer, How many days between each payment)
    • Payments Start Date (Date, When payments start)
    • Total Payments (Integer, The number of payments)
    • Estimated Revenue (Currency, The out of the box field to represent the total amount being paid back)
  • Payment
    • Amount Remaining (Currency Calculated, After this payment, how much remains to be paid)
    • Days Between Payments (Same as the field of the same name on the Opportunity)
    • Due On (Date Calculated, When the payment is to be made)
    • Payment Amount (Currency Calculated, How much the payment is for)
    • Payment Number (Integer, The nth payment)
    • Payments Start Date (Same as the field of the same name on the Opportunity)
    • Total Amount (Same as the Estimated Revenue field on the Opportunity)
    • Total Payments (Same as the field of the same name on the Opportunity)

In an ideal world, I would not repeat the fields on both the Opportunity and the Payment record, keeping them on the Opportunity record. However, it is not possible to refer to parent fields in a calculated field so it is necessary to denormalize and keep the values in both places.

The Calculations

The formulae for the calculated fields are:

Amount Remaining


Due On


Payment Amount


In theory, with the values we set on the Opportunity and the Payment Number, all other numbers can be calculated.


Automating with Dialogs

In principle, we could leave the solution there and manually create Payment records from the Opportunity. Assuming we map the fields down from the Opportunity to the Payment entity, all we need do is create a new Payment record from the Opportunity, enter the Payment Number and the system will do the rest. However, for a schedule with 100 payments, this is a lot of work.

This is where Dialogs come to the rescue. With Dialogs we can automate the creation of all Payment records. To do this I will create two Dialogs:

  • Payment Scheduler: This initializes the loop and creates the first payment record
  • Payment Creator: This is a child Dialog that calls itself and creates all the other Payment records

What is interesting about this arrangement is that it appears to circumvent the infinite loop detection which can plague workflows when we try to call them to generate multiple records. I tried creating 100 payments and it while it took a few seconds of processing, it worked fine.

The Payment Scheduler looks like this:


Both Dialogs run from the Opportunity entity. In this one we confirm the four key constants, held on the Opportunity (Total Amount, Start Date, Days Between Payments and Total Payments) and write them back to the Opportunity with the Update step.


For some reason I could not get the Estimated Revenue to appear for the Prompt and Response default value, even though I could display it as part of the prompt. If this is a problem, you may need to create a separate Total Amount field.

We then create the first Payment.


Finally we call our looping Dialog to create the rest of the Payment records, passing it the total number of Payments.

The looping Dialog looks like this:


Firstly, it takes in the previous Payment’s number and if the last Payment was the final Payment i.e. Payment Number = 1, the Dialog ends. If this is not the case a new Payment record is created.


We then update this record to reduce the Payment Number by one.


The next step in our Dialog is a bit of a dirty trick. We want to loop the Dialog but we do not want a Dialog page to appear many times. Every Dialog requires a Page with an associated Prompt and Response so, to meet this criterion, we embed it in an If-Statement which will never succeed (in my case the associated Opportunity name must be blank, which will never be the case).

Once past this, the Dialog calls itself passing through the Payment’s Payment Number.

The Final Result

The end result is a set of Payments against the Opportunity, evenly dividing the Opportunity total across all Payment records. If we want to keep track of when payment are actually made, we could add additional fields like a receipt number field or a simple tick box.

To create the Payment records, the user simply fires up the Dialog from the Opportunity.


Then, after making sure the four fields have values, they click Next and the Dialog shows its Finished screen.


After clicking Finish, the Opportunity now has a full set of Payments against it.



While a simple application of the tools, this shows how combining Dynamics CRM functions like calculated fields and Dialogs can create very powerful and intuitive tools for the user. In the past creating a tool like this for the user required plugins and extensive development with limited capacity for maintenance by the CRM Administrator. With this approach the CRM Administrator gets complete control of the tool and its behavior.

Wednesday, August 26, 2015

Salesforce: The Elusive Goal of Profitability

As some of you may know, my former employer, Oakton, was a partner with both Salesforce and Microsoft. While I did my best to judge fairly, any fear of bias is now removed as I have moved to KPMG. KPMG is “all in” with Microsoft especially with their cloud, ERP and CRM solutions. Do not get me wrong, their technology enablement arm also work with Oracle and products like Workday but, in terms of CRM, their path is pure. On to the analysis…

Last quarter, on the back of a lease termination, Salesforce made a small profit. Has lightning struck twice? Has Salesforce finally turned the profitability corner or are losses still the normal with non-GAAP reporting to cover it up?

There was also rumours of a mystery buyer looking to scoop Salesforce up. Who was this mystery buyer and why did they pull out? All will be revealed.

Salesforce Quarterly Results

The GAAP numbers, as reported to the SEC and taken from Salesforce’s web site. Any disparity to press releases, especially in regards to profitability, are an illusion created by ignoring certain expenses to generate what are called non-GAAP reporting. The promoters of non-GAAP reporting say it is designed to give a more accurate reflection of the day to day operations, ignoring those inconvenient outlying expenses. However, when the expenses you ignore are regularly occurring, this justification is harder to swallow. Also, I am yet to see a non-GAAP report which shows the business to be in a worse state than the GAAP numbers report. This is why I consider non-GAAP reporting to be little more than a public relations exercise to quell the nerves of nervous share holders and, in my opinion, it is not worthy of actual financial analysis. So here are the ‘real’, GAAP numbers.


2015 Q2

2015 Q3

2015 Q4

2016 Q1

2016 Q2







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






Total Cost % QoQ












Staff Growth YoY












Growth Difference












Accounts Receivable












Expenses Relating to Stock Based Awards






Stock Based YoY







Numbers of Note

Transaction Growth

The transaction growth numbers are calculated from the largest transaction count of any day on, on the day of writing the blog. In other words, it is the highest level of activity in the last 30 days, every quarter.


Here is the growth in the last four quarters; it has gone from just shy of 25% growth quarter on quarter, to 5%. It is clear the number of transactions being conducted by Salesforce users is slowing down. My prediction is that, by next quarter, it will be near flat and the quarter after that will begin to drop.

So what does this mean? Well it means either:

  • The user base is doing less with Salesforce
  • The user base is slowing in growth
  • Salesforce software allows you to do the same stuff with less server transactions
  • The transaction fluctuations are settling down and my use of the highest transaction in the period is in error

My guess is it is a combination of the first two but it is a guess. I was hoping the revenue growth would give an indication of what is happening but not the case.

Revenue Growth

Looking at the quarter on quarter revenue growth, we see an interesting upturn in this quarter.


So, if the user growth is slowing down, it is not reflected in the revenue. It is a bit of a mystery. The only way I can resolve this is to speculate that Salesforce are focussing more on upselling to existing customers than trying to find new customers. Therefore, the revenue is increasing by having existing customers pay more per user without resulting in a significant increase in system use.

In terms of the growth difference between revenue and costs, for the quarter this has slipped into negatives (costs are growing faster than revenues). For year on year, while they have narrowed, revenue is still outpacing costs meaning long term profitability is still an option for the future.

Staff Growth

Staff growth (year on year) has slowed down again this quarter.


Here we see the last six year’s of staff growth and a three year moving average trend line. The growth continues to slow and, as it was last quarter, reflects a staff growth rate of five years ago. As with the last quarter, the slowing of factors such as staff growth and transaction growth suggests the business is finally slowing down.


Unfortunately, Salesforce was not able to maintain a GAAP profit this quarter, again slipping into a loss, albeit a small one ($850,000). Perhaps the rumoured buyer saw this coming and backed off.

The Mystery Shopper

Towards the end of April, there was speculation that someone was looking to buy Salesforce. My assumption at the time was either Google, Oracle or IBM. It turns out the shopper was much closer to home; Microsoft. This surprised me when I first heard it but follows a bit of a trend in their market acquisition strategy. To cite a similar example, let us consider Skype. Microsoft had IM and Lync so when they acquired Skype, it was a bit of a surprise, given they already had products which did similar things. However, by taking on the millions of paying Skype subscribers, they had a path for turning a profit as well and carving out a significant part of the instant messaging market.

I think this was a similar play. While Microsoft has Dynamics CRM, the only other horse in the race these days, according to Gartner, is Salesforce. If Microsoft managed to seal the deal, they would be the only vendor in the Gartner’s leaders quadrant. Unfortunately, Marc’s price was a bit rich and Microsoft pulled out.

Earnings Call Buzzword Bingo

Still no talk of profit, of course (seriously, the word was not mentioned once in the earnings call) but our usual suspects are there. In fact there were no new key words and no words dropped off the list.

For those new to the game, I take the transcript of the quarterly earnings report, up to but not including the question and answer session and run it through a word analyser. The result are the words at the front of mind of the the Salesforce executives. As long as the word is mentioned 10 or more times in the last five quarters, it remains on the list.


2015 Q2

2015 Q3

2015 Q4

2016 Q1

2016 Q2

Number of words



















































































In fact the only things of note are the steady decline in talk about analytics and the massive spike in Dreamforce mentions. Dreamforce is in a few weeks time so it is not too surprising.

Words on notice are “Marketing” and “Enterprise(s)”. One more quarter with less than ten mentions and they are off the list. Salesforce has ExactTarget aka the Salesforce Marketing Cloud. If it was doing great things, Marc would be talking about it as much as Dreamforce (which, to my knowledge, is Salesforce’s only profitable venture). The fact that marketing barely features on Marc’s radar makes me think the acquisition is not yielding fruit.

As for the diminishing importance of the enterprise, this surprises me a little. Marc used to be about the number of 7- and 8-figure deals he had done. These days Marc does not talk in these terms so perhaps he is finding more traction in the smaller end of town.

Google Trends

Let us see how “Dynamics CRM” and “” are trending on Google.


Blue is “Dynamics CRM” which holds steady. “” continue its linear drop. In terms of the region split, it is a story we have seen before. Salesforce is concentrated on the US domestic market.


While Dynamics CRM is more international.


We also see this in the city split. While Salesforce’s cities are in the USA and India.


Dynamics CRM is more metropolitan.


While the positions juggle a little from quarter to quarter, the names remain the same. Salesforce may be well known at home but, abroad, it is a different story.

Insider and Institutional Sales

A trend is emerging in the insider trades.


2015 Q2

2015 Q3

2015 Q4

2016 Q1

2016 Q2

Insider Sales






Institutional Sales






Since the spike in insider sales in 2015 Q3, sales have slowly tapered, dropping 0.1% each quarter. Similarly institutional sales are slowing. In both case they are still selling their holdings, just not as rapidly as before. What does this mean? Perhaps the prospect of someone buying Salesforce at a premium was giving them pause for thought. Now that the deal has fallen through, maybe we will see an upturn next quarter.

Looking to the Future

My last prediction was revenues of $1.66b and breakeven on the profits. In terms of revenue I was within 2% and they did pretty much break even so I call that as a successful prediction.

Next quarter I predict revenues of around $1.78b and another breakeven result.


Salesforce looks to be fighting for profitability but it keeps eluding them. Last quarter, based on a real estate deal, they did make a small profit but this was truly a once-off adjustment and the proof is their inability to make a profit this quarter. Hopefully, as the business slows down, costs will be reined in and Salesforce will return to the profits it used to have four years ago. While every quarter Marc claims it has been “the best quarter ever” or some similar hyperbolic statement, the day they make a sustainable profit and continue to grow that profit, as they once did, I may start believing him. Until then I will continue to believe the Kool Aid being passed around is little more than shareholder Snake Oil.

Tuesday, August 18, 2015

The Best Free Apps For Your Corporate iPhone

One of the perks of a new job are the new toys. In this case, my new employer has given me a Lenovo Helix and an iPhone 5s. I am familiar with Windows laptop/tablet hybrids, owning a Surface Pro, but I have never owned an iPhone before so it has been a bit of a learning curve. One of the drawcards of iPhones are the masses of free apps available, so I dived right in to work out the best ones.

This list is the distillation of a bunch of “best apps for business” articles, the relevant top 150 categories in the iStore and the apps I already have running on my Windows Phone (I used my personal phone in my last job). Here we go…

Miscellaneous Work Apps

General apps which make the little things at work a little easier


As a Windows user, PDF documents needing a signature ARE a hassle. You print them off, sign them, rescan them and then send them on. With HelloSign you import a PDf file into the app, add a signature and email it on. Too handy, and perfect when you need to turn documents around quickly.


Take photos of your receipts and it will auto-scan them for the totals and the merchant. You then collate them into ‘reports’ for your expense reporting. Too easy.

Dragon Dictation

An interesting app that automatically translates what you say into text for distribution on various channels e.g. SMS, social or email. It even works with my Australian accent.

Voice Memos

A default app which lets you record your vocal pearls of wisdom and then share them through messaging or mail channels as an m4a sound file. Great for recording those good ideas or blog topics when a pen is not in reach.


These are the apps to mostly do with traditional media e.g. books and newspapers.


Part of the default set of apps that came with the phone, this gives you some reading time when at those airport gates. Unfortunately many of the more popular titles give you one free magazine and then need you to pay to subscribe. Also, if your company has disabled iCloud on the phone, some titles will not work. One title which was free was “Whisky Magazine” which was a special edition covering American Whiskeys. Apparently I need to check out Woodinville in Washington state, a small drive out of Seattle when I go to the MVP Summit.


Similar to Newsstand, pick the topics and Flipboard will serve you articles to while away the hours in transit.


The default book app for the phone, there are free books worth a browse. In my case “Dr Karl’s Little Book of Trivia 101”


If the previous options hold no thrall, another default app is Podcasts with an excellent array of audio and video podcasts to choose from. For me, Good Game and Dr Karl on Triplej. Yes, I am quite the fan of Dr Karl.


My preferred music streaming service of choice. Give it a song and it will build you a playlist. If you are looking to relax after a tough day in the office, feed Pandora your favourite chill-out track and see what comes back.


I recently blogged about how I am a fan of my new Netflix service. When music is not soothing the savage beast, kick back with a great range of television shows and movies (for a subscription fee). Awesome for hotel rooms where the television service does not quite pass muster.


The default photo app. This is where your receipt photos from Expensify end up.


Apps for communication on various channels outside of the traditional phone and email.


If you are not on LinkedIn, you should be. Traditionally hailed as the tool of choice for lazy recruiters, I find it invaluable as a networking/sales tool. Curious about whether that old client is still with that company where you implemented CRM? Check them out on LinkedIn. Want to distribute your blog article to hundreds of professionals who might be interested? Post into a LinkedIn group.


Now owned by Microsoft, the pervasive VOIP service is ideal for making cheap calls on your phone while overseas. Just make sure it is using the local Wi-Fi service and not the carrier’s data service otherwise you may need to mortgage your home to pay for the call.


Another social channel I embrace (@leontribe for those interested), Twitter is SMS for the internet with all messages being public. Great for research on people and organisations and also a great way to consume information on practically any topic of interest.


Often maligned as a productivity killer, there are actually many of corporate and professional pages on Facebook. The Microsoft Dynamics CRM Facebook group is an excellent group rivalling the forums for the quality of responses to questions from end users.


The same messaging system that appears in Facebook is my preferred instant messaging tool on the iPhone. With this tool you get access to all of your Facebook friends without Facebook being permanently open. For all of the CRM MVPs around the world, Messenger is my tool of choice for reaching them for a quick question about Dynamics CRM.


This is the iPhone’s default messaging tool. By default it uses the iMessage system which means when you are talking to other iDevices, it does not use SMS for communication. Therefore, to keep the message channel consistent you might want to disable the iMessage option in the settings.


Another default app which I am yet to explore in detail. I understand it is a video chatting application similar to the video chatting feature of Skype. Given Skype does the job I will probably stick with that but it is there for those more used to the Apple way.


This is a group messaging system which allows you to create groups and message within that group. We use it at the MVP Summits to keep in touch but I imagine it will be eventually replaced by one of the other tools above. Not necessarily an essential app but it is one I use.


These are the Microsoft Office and related apps which, even on the iPhone, leave the imitators for dust.


I had the pleasure of trying out the Outlook app for Android and love it for what it is. It is not a patch on the Windows equivalent but it does have one feature which the Windows version does not, which is the “Focused” option. The Focused tab shows the emails in your inbox you really need to see as opposed to the regular missives from stores, those interest groups you belong to and so on. How it works it out I am not sure but it does a pretty good job. If I have half an hour at home to see if there is an important email in my inbox, I reach for the Samsung, not the Surface.

Fortunately, the Apple version of Outlook has the same feature. Instead of getting up to date on my Facebook wall while heading to work, with my iPhone I now check my Focused inbox. Microsoft need to bring this to Windows Outlook and, hopefully, they will very soon.

In terms of how it compares to iPhone Mail app, one annoyance for me with Mail was having to set up mailboxes to see other folders. The ability to merge inboxes is nice though in the iPhone Mail app and something worth having in the Outlook app. Overall though I think my preferences are more down to familiarity than any inherent gap in either product.

Excel, Word, PowerPoint

I doubt I will be creating any of these on the iPhone but they are there so I can read the files that come into my inbox. You can also link these apps to the OneDrive, OneDrive for Business and SharePoint services to access files there but be careful not to violate corporate policies by storing work documents on these, if your company has such a policy.


OneDrive is an inexpensive cloud storage option and does the job. You can even stream mp4 movies from it, if so inclined. Again, an option in hotel rooms or Wi-Fi enabled transit lounges. Also, remember to comply with corporate policy if they have rules about storing files on third-party cloud services.

Lync 2013

Now known as “Skype for Business”, the app still bears the old name. I am struggling to get this app to connect to my work’s Lync server but, for the rest of you, try it. Even the staunchest of the anti-Microsoft crowd acknowledge how great Lync is. In terms of what it does, “Skype for Business” pretty much says it all; a corporate version of Skype where your ‘friends’ are your work colleagues and, if federated, your customers and suppliers.


As a consultant we need to get about. Here are the apps to help.


The default map application for iPhone. Given all the bad press when it first came out, I will probably stick to the alternatives but I do believe Apple has worked hard to make it practical.

Google Maps

No compelling reason other than it is really good and does not rely on locally stored maps. You can be anywhere in the world and, if you have an internet connection, you will have a map.


GPS becomes social in this great little navigation tool. People report incidences real time and the app even detects if you are moving slower than you should on a road and asks if there is a problem. When I am in traffic and need an alternative route, I reach for Waze.


The app that is so effective people call for it to be banned. This is a taxi service from your phone. What I love is that I can link it to my corporate card, book my taxi through the app, the payment is automatically deducted from my card, and the receipt is emailed to me. It could not be simpler. Being a phone app you can also see how far away the taxi is and the app gives you an estimated time of arrival based on the distance.


The apps I use when travelling by plane.


Replace with whatever airline your company uses. These apps are great for online check-in and using your phone as a boarding pass.

Virgin Australia Entertain

Needed so you can connect your iPhone to the Virgin Australia entertainment system.


A freemium app which you can send your pdf booking confirmations to and it will keep track of your flights. From there you can share the flight with loved ones or use it to check details when heading to the airport and the booking email is proving elusive. It also allows you to see who else is nearby when travelling, which is great when you are tired of ordering dinner for one.


An app which helps you book your seat. Give it an airline and flight and it will tell you which seats you should book and which you should avoid.


I use this for one purpose only; to find a decent restaurant when travelling. Tell it to find the restaurants nearby and it will give you the list, how far away they are and how they rank. You can then read the reviews to make sure.


A new app for me, it promises to keep track of all my loyalty cards. Having been in numerous hotels over the years for work, I have signed up to multiple hotel loyalty programs. Rather than carry around a stack of plastic cards I use infrequently, this app promises to keep them in one place. To get them in there there is even a scan feature to read the bar code on the card.

World Clock

The app for, this allows you to set up a series of cities and, for each one, it will display the time and date for that city. Great for international calls or for working out when you can call the loved ones back home.


While this is a business apps list, there is one game I will call out when you are travelling.


Google’s app which combines Geocaching with Capture the Flag. The missions feature is a great way to explore an unfamiliar city and see a few landmarks on the way. There is the added bonus of helping the Resistance stop the enslavement of mankind by the Enlightened. Fight evil, get some exercise and adjust, through exposure to sunlight, to the local time zone. Who says playing games is bad for you?


Apps specific to Dynamics CRM

The Two Microsoft Dynamics CRM Apps from Microsoft

While there are a mountain of apps in the App Store which work with Dynamics CRM, there are two official ones from Microsoft. I am yet to set these up but it would be remiss of me, as an Dynamics CRM consultant, not to have them available in case of that impromptu demo we are sometimes required to do in elevators or at business events.

Miscellaneous Apps

Here are the rest which defy classification.


I am yet to try it but so many “Must have” lists recommended it I was compelled to download it. Basically, you feed it a CSV file and it produces a presentation-quality graph which you can download and use.

Yahoo Weather

While the iPhone does come with its own weather app called Weather, the lists were also very complimentary of Yahoo Weather so I have downloaded it to see what the fuss is about.


If you are heading to a foreign country, this is a great little tool for learning a few words and phrases. In my case I am using it to keep my Spanish reasonably fresh. It is fun to use and very forgiving, recognising minor errors in accents and misspelling as small omissions, rather than marking them as completely wrong.


A conversion app for surviving weights and measures in the USA.

Wi-Fi Finder

An app which locates paid and free hotspots. Ideal when overseas and you cannot use phone data.


I am yet to meet an Apple user who rates Safari as a browser so I have downloaded Chrome.


So there you have it. There is my list of apps in my corporate iPhone to make my job easier. I am sure those of you with iPhones may have other suggestions so feel free to add them in the comments.

Friday, July 31, 2015

The Current State of Parature–Dynamics CRM Integration

You may have seen the video depicting the integration of Dynamics CRM and Parature and perhaps you are wondering how to set it up. If you have not seen the video, here it is (

The video portrays an exciting CRM future where we have an auto-provisioning support portal and two-way communication between the CRM agent and the customer.

Reality, as is often the case, is not completely represented by the advertising but it is possible to achieve something close to what is presented in the video with a bit of work. I know because I just finished working on a project where we did it.

What Do We Get Out of the Box?

In an ideal world, for Parature and Dynamics CRM, there would be two-way communication of entities such as:

  • Cases
  • Articles
  • Contacts
  • Accounts
  • Activities

All this is, in theory, possible because both products have an API and, if they are sitting in the same Office 365 instance, they should be able to see each other.

At this stage though, the only entity that is possible to configure without code are articles and these do not sync between Dynamics CRM and Parature but, rather, the Parature articles appear in the Social Pane on Cases (and any other entities you need it to appear for).

Setting up Knowledge Base Article Integration

The ability to surface Parature knowledge base articles is still quite new. In fact, my most recent project was the first customer site to link an existing Parature instance to CRM Online. If you are new to both Parature and Dynamics CRM Online, the process is quite simple. Once you have bought them through Office 365 and set them up, from Dynamics CRM, you go to Settings –> Service Management –> Set Up Knowledge Base Management. This pops up the configuration window where you type in the details of your Parature instance.


That is it. The knowledge base articles then appear in the Social Pane on the entities you have selected it for (in the case above, Contacts and Cases). Unfortunately, if you are using Dynamics CRM On-Premise, it is not possible, at this stage, to link it to Parature in the way described above.

For customers with an existing Parature instance, the process is slightly more complex. From Parature, you may have noticed a button.


Clicking on this button requests an Office 365 Administrator login. Once this is provided, a mapping wizard appears so you can link your existing Parature users to users in Office 365. Once this is done, you are finished. As before, you will be able to go to Dynamics CRM and configure the knowledge base integration.

In terms of those users mapped, they will now have the option of logging in directly through Parature, as before, or authenticating through Office 365. In terms of setting up new users, once the mapping is complete it is not possible to add users directly to Parature; it must be done through Office 365.

With this in place, as mentioned the Parature knowledge base articles now surface in Dynamics CRM.


A nice feature is also that when the KB RECORDS tab is clicked on, the title of the Case is automatically inserted into the search box, bringing back relevant articles.

Mousing over the article also provides three action icons.


The first links the article to the Case, copying a reference to it into a custom child entity. The second pops an email with a link to the article in the body (and clicking this icon also automatically links the article to the Case. The third icon opens the article up for review.

Overall, the integration is very practical for the Case agent giving them the information they need, where they need it.

Syncing Other Records

For Contacts, Accounts, Activities and Cases, we must get our hands dirty with code. Initially we considered using Portal2Case but this proved too difficult to adjust to meet the specific needs of the customer. In the end, to move data from Parature to Dynamics CRM, we built a windows service which polled the Parature data on a regular basis and returned new and amended records, feeding them through the Dynamics CRM API into CRM Online. To move data from Dynamics CRM to Parature, we used plugins, firing on changes and record creations, which then communicated directly with the Parature API. Go here for details on the Parature API REST endpoint.

With this in place, it was possible for agents to work out of Dynamics CRM to manage Cases without compromising the advantages of Parature. Clients could still go to the Parature Web Portal, log a Case and this Case would pass from Parature to Dynamics CRM, linked to the correct Contact. The agents, through the knowledge base integration also had access to the Parature articles and could send these to the client, if required.

For clients logging Cases via email, the support email was redirected from Parature to a Dynamics CRM queue and the automatic record creation and routing rules managed it from there.

Parature’s concept of Actions was mirrored in CRM through a custom Activity entity called Case Comments. If the client added a comment from the web portal, this came into CRM as a Case Comment. Similarly, if the agent added a Case Comment to the Case, this appeared on the Portal for viewing by the client.

Future Possibilities

While the current system works well for the customer’s needs, extending the Parature web portal is difficult. One option being considered is to move from the Parature web portal to an ADX Portal. ADX integrates, without code, to both Dynamics CRM Cases, Accounts and Contacts as well as to Parature’s knowledge base. This means the portal would show CRM Cases and the Parature knowledge base and be a lot more extendable.


If you are needing a portal with access to both Parature and Dynamics CRM, certainly consider the ADX Studios Portal product. Although I have not tested it, for portal integration it is, to my knowledge, deployment agnostic and will therefore work with CRM On-Premise as well as CRM Online.

The End Result

Although the coding of the integration between the two systems was very complex (kudos to Phil Mitchell for pulling off this lofty goal), the end result was similar in functionality to the integration video put out by Microsoft. It was possible for someone to log a request and for an agent to action it in CRM. The agent then replied to the request and this reply appeared in the client’s Case on the Parature web portal.

I imagine, over time, the integration between these two products will become tighter so unless the need is urgent I would probably recommend against coding your own integration. In our case, project deadlines meant it was necessary. However, if you have access to Parature and Dynamics CRM and want to play, setting up the knowledge base integration is very simple and worth reviewing.

Monday, July 27, 2015

Samsung Revisited and How ChromeCast Makes Everything Better

At the start of the year I bought a Samsung Galaxy Tab S 10.5 and reviewed it. My assessment at that time still reflects my thoughts on the device; a great screen but it is, ultimately, a game device for the kids. The problems at the front of my mind these days are:

  • Space is limited (16Gb on-board with a 32Gb micro-SD) which hinders game-caching leading to slow load times, hinders updating and means constant juggling as apps get installed
  • User management is annoying. Unlike Windows, where all users can be made equal, with Android there is the owner (the main administrator) and all others. In my case my wife is the primary user but I am the tech in the family but, to do tablet maintenance, I am forced to log in as her.

There have been a delight though. Outlook for Android (released after my review) is great. It automatically filters the inbox to the mail that matters. If I can figure out how to do this in Outlook 2013 I will be in Outlook nirvana. Every weekend I fire up Outlook on the Samsung to make sure there are no important emails I have missed

In terms of the apps I use today with the Samsung, these are:

  • The games my son plays (Jurassic World, Clash of Clans etc.)
  • Outlook for Android
  • My Bar Free (you tell it what is in your bar, it tells you what cocktails you can make)
  • Chrome (not often used but there when I need it)
  • Netflix (more of this later)

In my original review I lamented that I had not found a television remote app for the Samsung to control my television. With ChromeCast that is now moot.

The Netflix Workout

My journey with ChromeCast started with Netflix. I got a free six month subscription to Netflix via my internet provider. As I am on a plan with unlimited bandwidth, binge watching soon ensued. The chief problem is my TV is a plain LED TV, nothing smart, not even a USB port. Every time I wanted to watch Netflix, I had to hook up one of the house laptops to the HDMI port of the TV. Then, to browse programs, I kneeled at the media altar working the touchpad of the connected laptop. In a world of remote control, this was too much like exercise.

A bit of research revealed that there were devices available which plugged into the HDMI port and communicated wirelessly to a computer.

Miracast vs ChromeCast

Given I am talking about Android, I will not dwell on Apple TV, which does similar things for Apple. For the rest of us, it seems to be a choice of two: Miracast and ChromeCast. Miracast is, in effect,  a wireless HDMI standard; whatever is on your device screen is transmitted to the television.

For my purpose, Miracast was cheaper but had disadvantages. The first was flakiness, which I had experienced at clients who tried to use Miracast for meeting room presentations; connection was temperamental. More importantly though, whatever is on your screen gets transmitted to the television. So, no screensaver, no using the device for anything other than transmitting, the device is, effectively, locked.

ChromeCast works differently. ChromeCast is a dongle which plugs into the HDMI port of the television but it is, in effect, its own Android device. It is like an Android computer whose screen is the television and whose keyboard is your device which connects to it via your home wireless network. This means that once ChromeCast is transmitting, you can use your controlling device to do other things like read email, browse etc.

How ChromeCast Works With Apps

With apps on the Samsung, you look for the ChromeCast icon image and this means you can stream it to your television at the press of a button. Netflix is one such app but there are plenty of others. I am also a fan of Pandora and YouTube which also work.

Another is the OneDrive app. What is nice about the OneDrive app is if you have movies stored in OneDrive/OneDrive for Business, you can stream them to the television through ChromeCast without leaving your armchair. OneDrive is now my media player, thanks to ChromeCast.

One final cherry on the ChromeCast pie is the ability for it to control the television through the HDMI port. While I cannot get my old Viera to turn on, starting a cast will automatically change channel to the HDMI channel which is quite a neat trick.

ChromeCast for Windows

For Windows, ChromeCast works with the Chrome browser. This provides lots of options. Firstly, if you browse to, say, Netflix or YouTube and click the ChromeCast icon, the app opens on the ChromeCast dongle, just like it would from an Android device. You also have the option of streaming the screen or, interestingly, a tab on the Chrome browser.


This also opens the option of playing with browser options and add-ons. While you cannot mess with the settings in the Android version of Chrome, you can in the Windows version. This means you can, in theory, alter the settings and use Chrome add-ons, to display precisely what you want in Chrome and then cast the tab from your Windows device. This provides a similar experience to the Android device with the power of Windows Chrome and with the ability to minimise the tab and do other things on the device while still streaming.


For a modest price, the ChromeCast has revitalised my Samsung, turning into an internet streaming device for the media I do not own and turned my OneDrive into an online media player with unlimited storage for the media I do own. Similarly music is just a couple of clicks away with no armchair departure required. No more plugging laptops into HDMI cables and it works with everything I own, Windows and Android alike. I could not be happier.

Friday, July 24, 2015

Tracking the Movements of a Case

I am finishing up with my current employer and, in the process, finishing what has been a really interesting project using Dynamics CRM for Case management. The project forced me to learn about new CRM features like routing rules and email conversion as well as Parature integration; all of which will prove rich sources of inspiration for future articles.

In this article I will go through a bit of configuration I set up to track the movements of a Case.

Business Context

In our scenario, the client wanted to see if a Case bounced around the different areas of the business or not. To do this, they wanted a log of where the Case had been and for how long. In our situation I was using Teams instead of Queues as the client wanted the areas of the business to take responsibility (ownership) for the Cases assigned to them. Teams lent themselves nicely to this.

Setting up the Case Audit

The first step was creating a new entity to hold the history of the Case movement. I called this the Case Audit. The fields it had were:

  • Description: The default Name field for the entity
  • Created On: A date field
  • Previously Assigned: When the Case had been moved previously
  • Owner: A Team or User
  • Case Status: The Status Reason of the Case
  • Hours in Queue: Time with a particular Owner


This was a child entity to the Case. In the above example, the Case moved from being created by Ranjeet at 12:28pm to the Records (transcript) team to being picked up by me for actioning. You may notice that I am exploiting the Owner of the Case Audit to track ownership of the Case.

Creating the entity was straightforward, populating it was a little trickier.

Populating the Case Audit Log

To populate the log, I used a real time workflow.


Looking at when the process runs, it runs:

  • After the record is created (creating the first entry in the log)
  • Before the status changes
  • Before the record is assigned
  • Before fields change (Owner, Status, and Status Reason)

Then, when it fires, it firstly checks if the Case is Cancelled or Resolved (the act of trying to create a log entry on a closed Case was preventing the Case from being reopened so this got around that).

Assuming the Case is active, it then creates a Case Audit record to mark the change and changes the Last Assigned Time on the Case (a custom field).

The values for the Case Audit were:


The Name field gets populated with sensible values to assist with queries. The Previously Assigned takes the date time value from the Case record, just before it is updated in the next step by this workflow. The Owner of the Audit record is set to the Owner of the Case (meaning we can store a Team or a User), and the Case Status simply takes the Status Reason of the Case. Finally, the Hours in Queue is a calculated decimal field.


The reason I used DiffInMinutes and divided by 60, rather than DiffInHours is because the Diff functions return an integer, which for quick owner transfers simply was not accurate enough. By using minutes I could track the movement in hours but with two decimal places.

So, with this workflow, I got a new entry every time the record changed status (except when re-opening because of the error, which could be worked around with a second workflow, if required) and every time it was assigned to a Team or User.

Charts and Measures Available

With this in place and a few other tricks, a wealth of measures are now available. Firstly, using my record-level graphs trick, on the Case record it is possible to see the history of the Case and how long it had been with each Owner.


While the graph is only for one day in the above example, if the Case remained open across multiple days this would also be reflected in the above graph. On the Case, we have the following measures.image

The Initial Queue, Latest Queue, Moved Off Queue (when someone took ownership), and Queue Hops (how many Teams the Case has been to) are populated by a second workflow running after the change in ownership. The Hours in Queue measures how long the Case bounced around teams before being owned by a user and is a calculated field using the Case Created On field and the Moved Off Queue. The Hours To Resolve is a calculated field using the Moved Off Queue and the Modified On field which only populates if the Case is resolved (calculated fields can be conditional).

Non-Working Hours is a rollup field, looking at the Case Audit entries and summing up the Hours in Queue values for entries with a status other than In Progress (rollup fields can be conditional). Finally, the Last Audit Entry is the field populated by our workflow and used to generate the next Case Audit record.

With all these in place, we can also generate charts such as the average hours Cases stay with a Team and the average time for resolution.


With some of the newer tools of Dynamics CRM such as calculated fields, rollup fields and real time workflows, we can provide insight into our CRM data without resorting to BI tools or exporting to Excel, giving instant feedback to the business. If you have not yet played with these new features, I strongly recommend giving them a try.

Tuesday, June 30, 2015

Top Ten Secrets to a Successful CRM Deployment: Part Three–Technology

This is the last part of my “Top Ten” series from my MS Dynamics World talk “Secrets to a Successful CRM Deployment”.

Part One went through people aspects of CRM deployments
Part Two was about process issues with CRM deployments

This part goes through the new things in Dynamics CRM 2015 which contribute to a smooth deployment in order of, in my opinion, smallest to largest impact.

1. Data Sovereignty For Australia

This is really only for us folk in Australia. In the past, CRM Online was available for Australia through the Singapore data center. With the introduction of the data centers in Sydney and Melbourne, we now have the option of getting CRM Online without the data ever leaving Australian shores. Even the geo-redundant back-up stays in Australia. While data sovereignty is not a huge issue for most industries, for the finance industry there is still a lot of reservation about data heading overseas. One of the major regulatory bodies for the Australian financial industry, APRA, has, in the past, issued strong warnings about using online services.

While APRA’s position has relaxed over time, there is still concern in the industry about embracing the cloud. The new data centers remove this barrier by ensuring financial organisations can use CRM Online and guarantee the data stays within Australia.

2. Hierarchical Views

I talked a little about hierarchical views in my Corpse Relationship Management post. This new feature provides a graphical view of a list of records which are related to each other but is only good for one entity type at a time.


Where I see this helping deployment and user adoption is in helping users visualise their data in ways not possible before in CRM. For example, in the corpse example, where the hierarchy is the link of which zombies created other ones, it is clear that Jim Grim is very active at creating zombies whereas this information may not have been clear in the traditional form views.

3. Improvements in Business Process Flows

I must admit I have not yet fully embraced the flow bar at the top of the record forms but the idea of it certainly piques the interest of prospects during pre-sales meetings. The latest improvements bring it closer to being an integral part of the Dynamics CRM experience.

Process flows have come a long way in a relatively short period of time; they can now span multiple entities and multiple processes, for a given entity, are possible. The latest improvement is branching. Branching allows us to put conditionals into our process reflecting more closely what happens in the real world.

If you ever look at a process diagram for a real business process, more often than not there is a point where a decision needs to be made. Here is part of the standard sales process from SureStep. The green diamonds are decision points.


With the new branching options, it is these green diamonds that are managed with process flows. With a better alignment to actual processes, flows can be implemented in CRM and give a new employees a clear, guided process to follow, improving adoption and allowing them to learn the system and the business processes quickly.

4. Excel Export Fixed

Something that is a regular source of confusion for new users is the Excel export which is, more accurately, an XML export. When the export hits Excel, is throws an error because Excel is not sure if the XML file is Excel-compatible. Thankfully, the Excel export utility has been rewritten from the ground up and now exports ‘proper’ xlsx files. These work without error in Excel and work with Excel Online (the old format was incompatible with Excel Online).

One of the strengths of Dynamics CRM is their focus on giving normal users the power to analyse their data without requiring strong technical knowledge or expensive consultants. Fixing the Excel export so it works as the user expects is a great leap forward in assisting users to fully embrace Dynamics CRM.

5. New Email Editor Improved Business Rules

In my talk, I referred to a new email editor in Dynamics CRM. Unfortunately, Microsoft did not deliver on this one for Update 1 and we still have the old email editor with the new one being only available in Dynamics Marketing. However, Microsoft have improved the business rules as I discovered today when configuring a system for a client.

Business Rules (the configurable form behaviours) now allow for If-Then conditions and the grouping of conditions with AND/OR logic. So, for example, if you need a field to appear based on the value of two other fields, this is now possible.

While much could be done with JavaScript in the past, these new changes mean many form behaviours can be managed through codeless configuration. Making forms simpler and reactive to the user’s input is a great way to overcome forms which are “too busy” or “too hard to navigate”.

6. Folder Tracking for Mobility

A new feature which, for me, the jury is still out on is folder tracking for mobility. This feature brings the tracking capability, previously only available to Outlook to any device. In essence, the user simply drags an email to a special folder and CRM picks it up and tracks it to CRM.

Tracking is a very popular feature of the Outlook client and is often the driving reason for using the Outlook client. Bringing similar capabilities to any mobile device is likely to delight those users who use CRM on the road and also need an efficient way to get emails into the database against key records.

7. Custom Help Web Pages

An unsung hero for Dynamics CRM 2015 is the custom help web pages. While it was possible to create custom help web pages back in the v1.2 and, from memory, the v3 days, when CRM Online came out it became a lot harder. Thankfully CRM 2015 allows you to pepper CRM help with your own content. This is perfect for customised systems where the user may need assistance with a new entity or for the new user trying to get to grips with the system.

8. Global Search

Every user I show this to, loves it. CRM now sports a search box at the top of the web client. Typing in a key phrase searches multiple entities at once and displays the results in a friendly format in a flash, making it easy for users to quickly locate the record they are after.

In the project I am working on now, which is a customer support system, typing in the name of a client brings up their Contact record but also any Cases (Enquiries) they have raised.


For sales, this could be Accounts and Sales Opportunities. I created a similar search using workflows a number of years ago but there is no need for mine now that it is baked into the product and infinitely easier to administer.

9. Navigation Improvements

Dynamics CRM 2013 introduced the new touch-friendly navigation. The problem was it was not very mouse-friendly and, to locate areas of the system, often required scrolling around big tiles.


This is now fixed, going to a cascading menu structure which works for both touch and mouse users.


Without a doubt, for my clients moving from CRM 2011 to 2013, this was the biggest complaint. Those who have subsequently moved to CRM 2015 could not be happier and as this is the part of CRM users interact with the most, it is great Microsoft have made it so adoptable for all types of CRM users.

10. Themes

Many, many years ago, when I worked with SalesLogix, there was one thing I did to every demo system to guarantee a smile on the prospect’s face: add their logo to the system. That was over 15 years ago so it is great to see Microsoft bring the ability to add themes to Dynamics CRM.

With the new themes feature, you can add a logo to the web client and change the colours used in the product. An example of this is the canary yellow you can see in the previous example (their choice, not mine). Branding CRM with the client’s marque and colour palette helps the users see it as their system and warm them to it.


While more product-specific than the previous two articles, there is a lot to love in Dynamics CRM 2015 and Update 1 from a user adoption perspective. If you are still on CRM 2013, seriously consider upgrading for the new menu and if you are about to implement a new CRM system, consider using themes to make the system truly part of your business.

I hope you enjoyed this set of blogs and, while a set of books could be written on tips and tricks for CRM implementation and adoption, with any luck this provided some insights into how to manage the people and processes around CRM and what features of the product you can use to ensure the system gets the opportunity it deserves to thrive.