Tuesday, March 15, 2011

Interactive Fiction Games On The Ultimate Development Platform: Dynamics CRM 2011

OK so I may be exaggerating a little about Dynamics CRM being the ultimate development platform but for those that recall my ‘hangman’ blog:

http://leontribe.blogspot.com/2010/10/world-first-exclusive-dynamics-crm-2011.html

I set a challenge for the readers to use dialogs to create an Infocom-like game (we used to call them ‘Adventure Games’ in the UK). Apparently the Wikipedia name for them is Interactive Fiction. For those too young to remember these gems, this was in the days when computers had a keyboard, no mouse and no graphics. The screen (possibly green or yellow) would describe your situation and you would type in commands. Occasionally you chanced across a command the computer understood and something happened. Part of the fun was discovering the criminally limited vocabulary of the game and the other part was trying to match wits the programmer and solve the game.

Classic titles include the Zork series, ‘The Hulk’, ‘Hitch-Hikers Guide to the Galaxy’, ‘The Hobbit’, ‘Lord of the Rings’ and the less serious ‘Bored of the Rings’.

The last generation of interactive fiction games were probably MUDs, the pre-cursor to MMORPGs.

Given the post was about five months ago I thought it was time to step up and do my homework.

The Result: An Interactive Fiction Game Using Dynamics CRM 2011 Dialogs

image

It really works. There are actions to perform (Goto, Get, Use, Help and Inventory) and a text box to apply the actions to e.g. Goto 33. As the protagonist you move around the Microsoft Campus at Redmond (well five buildings of it) trying to find a way back to civilisation (or, in this case, Seattle).

The Entity Structure

The game has two entities: players and locations. Locations are, as expected, the places you can go in the game.

image

Player records are the launch pad for the dialog (a dialog has to be run from a record) and stores the current location of the player and their inventory.

image

The rest is dialogs.

The Dialogs

image

Each action gets its own dialog (the main reason for this is to give the asynchronous update step a chance to update your player record while you read the text). “Lost in Redmond” is the beginning dialog that launches the game.

image

Similarly, “End Game” is the end.

image

The main ‘screen’ is “The Game”.

image

This displays the current location and requests the user enter an action and an object to apply it to. “Goto” applies to a building number, “Get” and “Use” apply to an physical object in the game and “Inventory” and “Help” do not use an object.

“Help” simply displays a text message on how the game works.

image

“Inventory” uses the values on the player record, constructs a text string, stores it in a variable on the dialog and then displays it.

image

This is one use for variables. They allow you to store values and manipulate them via the “Assign Value” step.

The input variables are exclusively for child dialogs. “Goto” uses the input variable to pass through the location object from “The Game” dialog.

image

“Get” and “Use” also use input variables to work out what they being applied to and what to do.

image

image

So When Will This Excellent Game Be Available On Marketplace?

While I have packaged the dialogs and entities into a solution, there is a shortcoming with solutions. This being you cannot add records to a solution so the location records cannot be added in and be auto-installed on applying the solution. I have thought of including an on-demand workflow which could be manually run to create the locations but then there is the complication of linking the new records to the dialogs. Perhaps solutions will be expanded in the future to allow for this functionality.

Until then, if anyone can think of a way to package in the location files, let me know and we will make a fortune packaging text-based adventures to bored CRM users.

Microsoft Dynamics Top 100 Most Influential Dynamics People

If you consider me influential (and let's face it if you're here there is a fair chance). Feel free to click this link to get me in the running for the top 100 ;)

Friday, March 11, 2011

Software Advice’s Interviews With Brad Wilson

Lauren Carlson of Software Advice e-mailed me regarding a set of seven videos they had put together with Brad Wilson. She asked if I would be interested in doing a write-up, so here it is.

Brad Wilson is the Microsoft’s GM for Dynamics CRM so understanding where his focus is, gives clues to the future of the product.

The seven, five-minute videos cover the following topics:

Now while the topics do sound juicy, do not expect any ground-breaking exclusive nuggets of gold from Brad. He is seasoned, media-trained and every answer will come back to the key messages that Microsoft want to push e.g. “it is about delivering value, not being the cheapest”. You are not going to hear hard numbers for any of the above topics.

This being said, Brad does give us the following:

  • His thoughts on how the CRM market has evolved over the last 15 years
  • Microsoft is bordering on obsessed to getting people using their products via the cloud
  • How the partner model is undergoing a revolution and where the new opportunities are (hint: partners need to deliver more value than pressing the ‘next’ button on a DVD install)
  • Brad tells us why Dynamics CRM is not sold in modules but as one big package

The interesting one for me is Microsoft’s focus on getting people to use the cloud. Selling upgrades for on premise software is often criticised as a way of gouging money for arguably little gain. Microsoft being a significant player in this game also receives this criticism. Going to the cloud completely changes this model with the income coming in the form of a monthly per-user fee. Software companies cannot, as some cynics suggest, boost the bottom line by releasing a new ‘version’ if they are in the cloud. The cost of upgrades is effectively built in to the monthly fee so this fee has to be right.

It is interesting times for Microsoft and, while Microsoft are quick to claim they have been providing cloud services for over ten years, there is a difference to providing cloud services and having them as a fundamental part of your revenue stream. Just as with the partners who sell Microsoft’s products, Microsoft is undergoing a revolution and the new opportunities lie very far away from familiar ground.

Tuesday, March 1, 2011

How Salesforce Can Win the Online Battle

With the introduction of Dynamics CRM as an online offering on the international stage, Salesforce now has a viable competitor, raiding their territory, who they need to repel. How can Salesforce position themselves such that they have an unassailable position?

Porter’s Generic Strategies for Competitive Advantage

Professor Michael Porter (http://en.wikipedia.org/wiki/Michael_Porter) is a thought leader on competitive strategies for organisations who pioneered the concept of competitive strategy during the eighties. One of Porter’s concepts was that of generic strategies (http://en.wikipedia.org/wiki/Porter_generic_strategies). Here is the obligatory two-by-two matrix.

Essentially, Porter says you can either go for a specific segment of the market or you can try and attract everyone. If you try and attract everyone you can distinguish yourself by having the lowest cost (and therefore the lowest sustainable price) or you can offer something none of your competitors do, such as excellent customer service.

Competitive Advantage in the Car Industry

To understand how the theory works, let us look at the car industry. A good example of a segmentation strategy is the Bugatti Veyron (http://en.wikipedia.org/wiki/Bugatti_Veyron). The car is the most expensive modern car in the world and the fastest street-legal production vehicle in the world. There are not many people that can afford the $1.6m price tag, so this is not a broad market play. Also, of those that can afford it, there is a specific market segment interested in fast cars. Arguably, at the other end of the spectrum, is the Tata Nano (http://en.wikipedia.org/wiki/Tata_Nano ). This is the most inexpensive car in the world but gives millions of Indians the opportunity to own a car. If the car has mass-appeal, it could be labelled as a cost leadership strategy. If the car has appeal only to a small niche, it is a segmentation strategy.

A more conventional example of a cost leadership strategy would be something like Kia. Kia cars have broad market appeal but are offered at a compelling price, presumably because they are a cost leader. Toyota’s hybrid cars can also be argued as a differentiation strategy. While a little pricier than Kia, they still have broad market appeal and have the unique proposition of using a hybrid engine. Another differentiation Toyota have is their brand and the values associated to it. While Toyota has had their problems, it is still one of the world’s strongest brands (http://issuu.com/interbrand/docs/bgb_report_us_version?viewMode=presentation&mode=embed) and differentiates it from their competitors.

So Where Does Salesforce Fit?

To be competitive, Salesforce needs to find the strategy that fits them and the industry.

Cost leadership: Microsoft has come in with very aggressive pricing. They also claim that they can share the costs of the online version across complimentary technologies such as Office 365 and their on-premise version (http://www.softwareadvice.com/articles/crm/will-microsoft-dynamics-crm-2011-slow-salesforce-microsoft-executive-interview-1022211/). Given Salesforce is triple the price for similar functionality and yet barely makes double-digit profits, I do not believe cost leadership is attainable. Dynamics CRM is owning the cost leadership position.

Differentiation strategy: Salesforce likes to think they have a sustainable differentiation with products like Chatter and their ‘fun’ brand but the key is it must be a differentiation that matters to the customer. Fun is meaningless to the customer. Being ‘social’ has some resonance but when the surface is scratched, there is nothing especially social about Salesforce. Chatter is an internal collaboration tool. Customers cannot access it. Sure it is easy to consume but, with similar products like Sonoma’s Vibe, any differentiation resulting from it is rapidly eroding away. If Salesforce is a Kia, Dynamics CRM needs to be a Tata Nano to justify the price differential. The fact is, Dynamics CRM is not a Nano.

Functional differences are, generally, easily copied. There is the possibility of a complimentary offering to differentiate e.g. superior customer service but this has not yet revealed itself if it is on the cards.

Segmentation strategy: In my opinion this is the best option for Salesforce. Just as Pivotal focuses on medium-large organisations with very complex work process requirements, Salesforce also needs to find its ‘niche’ to justify the premium price. What this niche will be is not obvious.

Conclusions

Microsoft has made it clear that they wish to own the cost leadership position. This leaves one of two options for Salesforce. Differentiate its offering or focus on a specific market segment (or both). Either option is profitable but, if Salesforce believe they can continue to prosper with general appeal and no obvious difference in their service, their territory will be slowly captured until they are removed from the map.

Saturday, February 19, 2011

The Seven Ages of Dynamics CRM Reporting

I have just spent three days locked in a room with a client working out the reports they need to come out of CRM. What I got out of the exercise, other than copious notes and writer’s cramp, was a much richer appreciation of the ways we can report out of CRM.

There are, as far as I can tell, seven different ways we can report out of CRM, all with different strengths and weaknesses. Here they are in rough order of complexity.

1. Advanced Find Views and System Views

image

If we need to slice and dice our data and list the resulting records, it does not get much better than this. These can be set up for everyone (system views) or users can do it themselves and save the results (advanced find view/personal view). We can browse up to parent records (show me all contacts working for a company in the retail industry) and down into child records (show me all companies with sales opportunities over $50,000).

The big downside is there is no aggregation of data. That is, we cannot ask for the sum or average amount of a money field. For that we need something more powerful. Also, we cannot directly print. To print we need to export to Excel and print from there.

2. Entity Forms

image

This is a bit of a ‘left field’ kind of report. In the workshops, the client wanted a summary form, similar to the out-of-the-box ‘Account Overview’ report, except for opportunities. Different milestones, during the sales process, needed different summaries of the opportunity. With the multiple form capability of CRM 2011, we can now create different forms for our form-based report and then print them by going to File-Print Preview.

The downside here is that the forms are quite rigid in their formatting and can only show fields from that record (or grids of records from child records). For example, an opportunity form cannot show fields from the client record.

3. Word Merge

image

In some ways this is the extension of printing a form. The word template allows us add graphics, macros and fields from parent records.

The big disadvantage here is it is really hard to add in child records. It can be done, as evidenced by the out-of-the-box quote report, but it is not a simple process. Also, depending on the complexity, it may be simpler to create a SQL Reporting services (SRS), but more of that later.

4. Dashboards

image

Brand new to CRM 2011 are dashboards. We can drill through to sub-records, we can change the layout and we can mix and match grids, web pages and graphs, all without a single line of code. For displaying data from multiple sources in CRM the dashboard is an excellent choice.

What is the downside? Printing. I am yet to find a way to print a dashboard short of a screenshot. This is a shame because in so many other ways they are great.

5. Dynamic and Static Excel Worksheets

image

The next level up from views for tabular reporting, Excel worksheets are one of my favourite reporting tools. Practically any list in CRM can be exported to Excel for further manipulation. We can add formulae, formatting and graphs. We also have the option of a static worksheet (a direct dump of the data) or a dynamic worksheet (this sets up a connection between the spreadsheet and the CRM database such that every time the spreadsheet is opened, the data refreshes with the latest information).

There are not many limitations with Excel spreadsheets and most users have enough Excel knowledge to make them deliver exactly what they are after (or know the office Excel guru who can help them out). The only limitation I can think of is we can only export one entity record set at a time but, for most tabular reports, that should be fine.

6. Dynamic Excel Pivot Tables

image

If you do not know about Pivot Tables and you work with large sets of data, such as is available in a CRM system, you need to learn. Pivot Tables allow us to look at our data, comparing different fields against each other. I once had a client who did not know about Pivot Tables and tried to create a table like the one above using lookup formulae. It took them hours to get right. Using Pivot Tables, this takes minutes to put together.

In the above, I am looking at the status of various leads compared to when they were entered into the system. In one table it becomes obvious that most leads are still new, most were entered in on 9/2/2011 and most have not yet been qualified.

As with worksheets, these are exported with a dynamic connection back to the database so they refresh every time they open.

Again, if this is the format we are seeking for our reporting, there are not too many disadvantages with Pivot Tables, other than getting used to them and being able to work with only one entity record set.

7. SQL Reporting Services (SRS)

image

The ‘Rolls Royce’ of CRM reporting, this is a free add-on to SQL Server which integrates with CRM. We can access multiple data sources, display the data in either a tabular or form-based format, add in graphics or practically anything else we want. There are very few limitations with what we can do with SRS reports.

The big limitation is to create an SRS report requires technical knowledge beyond the scope of most users. While there is a report wizard within CRM, this is quite limited in what it can achieve and is only good for tabular reporting.

Summing it up

In the case of my workshop, we decided that most of the client’s requirements could be met with Excel reporting. Even though some of their reports were form-based, the client was happy entering in an ‘opportunity number’ to isolate the record of interest and then having an extra worksheet full of ‘vlookups’. When reviewing reporting, consider this table to see which type of report may be right for you.

  Advanced Find and System Views Entity Forms Word Merge Dashboards Excel Worksheets Excel Pivot Tables SRS Reports
Tabular Format Yes No Generally No Yes Yes Yes Yes
Form-Based Format No Yes Yes Generally No Generally No No Yes
Charts No No Generally No Yes Yes Yes Yes
Images and additional content No No Yes Yes Yes Yes Yes
Access Parent Record Fields Yes No Yes Yes Yes Yes Yes
Display Child Records No Yes Generally No Generally No No No Yes
Multiple Data Sources No No No Yes Generally No No Yes
Data Aggregation No No Generally No Yes Yes Yes Yes
Drill-through Yes Yes No Yes No No Yes
Printable Yes, indirectly through Excel export Yes Yes No Yes Yes Yes
User Configurable Yes Generally No Yes Yes Yes Yes Generally No

Saturday, February 12, 2011

Hidden Tricks of the Workflow Update Step

One of the more powerful, yet under-utilised aspects of workflows is the update step. While many administrators know that it can be used to inject a value into a field, what is not commonly known is there are a few hidden functions that can also be used to manipulate the values in the fields, rather than just replace them.

For all fields, we always have the option of ‘Set To’ and ‘Clear’. For text fields, we also have ‘Append With’ and for int, float and money fields we have ‘Increment By’, ‘Decrement By’ and ‘Multiply By’.

To access these functions, we open the update configuration screen, click into the field of interest and drop down the Operator option in the Form Assistant.

image

For all of these operators, we can apply a dynamic value via the Add button in the Form Assistant or a static value by entering it into the Default value field in the Form Assistant and clicking OK.

If we want to take two values and update a third field, we will need to use two update steps. One to insert one of our values into the result field and the second update step to apply the second value to the value in the result field.

Finally, for those using version 4, you can still do most of these things. The only difference is there is no ‘Append To’ operator in CRM 4. To achieve the same result, you do an update step and set a dynamic value of “{original attribute} {additional text}”.

Tuesday, February 8, 2011

E-mailing Attachments En-Masse in CRM

At a pre-sales meeting recently, a client mentioned they deal with foreign students and sometimes need to send all attachments associated to a contact to a government department for reporting purposes e.g. visa records, passport information etc.

This had me stumped because, at the time, I could not think of a simple solution to get around this. Certainly you can add attachments to a contact record but to attach them to an e-mail would require saving each one to the desktop and then attaching them one-by-one to an e-mail (or a bunch of custom code). Even with the new integration to SharePoint in CRM 2011, one would need a custom solution to gather all the documents in the document store and add them to an e-mail.

When I got back to the office I had a flash of inspiration; what about sales literature? A new feature of CRM 2011 is the ability to send all the attachments associated with a sales literature record with one click.

Sure enough, not only can I create a relationship between contacts and sales literature but I can rename sales literature to something more appropriate (Student Documents).

image

To print, we open up the sales literature record and click the ‘Send as E-mail’ button

image

Now this solution is not perfect. The two biggest downsides are that you have to retype in contact’s e-mail address once you click the ‘Send as E-mail’ button and I can find no way to rename the ‘Sales Attachments’ label. However, given the potentially expensive alternatives, this provides a lot of bang for minimal buck. As an added bonus, we can use this technique to cluster different kinds of documents for the contact and only print one cluster at a time. Perhaps the clusters are different reporting bodies or perhaps we want to have a set of official documents and a set of internal documents. for each one we simply create a new sales literature (student document) record.