Wednesday, 4 March 2015

Help(ing you) in Microsoft Dynamics CRM 2015 with Microsoft Word

17:40 Posted by Benitez Here , ,
Help, I need somebody
Help, not just anybody
Help, you know I need someone
Help!

Some of you may recognize the above words from the lyrics to "Help!" by the Beatles. This is the theme for today's vlog, Help! in Microsoft Dynamics CRM 2015. But I also help you by sharing some more tricks up my sleeve in providing an alternative solution for an end user guide as part of customizing Help for Microsoft Dynamics CRM 2015.

You can now customize what is to be displayed when end users click on the "?" icon a the top right hand side of the window in Microsoft Dynamics CRM 2015. It would have been really cool to see Clippy in Microsoft Dynamics CRM (this is just my personal opinion as someone who grew up in the 90's with Clippy, Power Pup, Rocky, The Genius, Scribble and that red bouncing ball called Dot). Some people thought the Office Assistants were annoying but being a kid at the time, I was sucker for the animated characters. I would be so thrilled to see an animated character help me in CRM. Here's a flashback to those characters.


Alas, this is not the type of help I'm referring to. Customized help in Microsoft Dynamics CRM 2015 provides the following abilities:
  1. have a global reference to a website/webpage that essentially acts as an e-Guide for the CRM environment as a whole
  2. have entities (including custom entities) reference a webpage that essentially acts as e-Guide for that particular entity

How do I do this?

The following are the steps to achieve customized help.

Global reference

1. To make your help information available on a website or webpage and copy the URL.Navigate to Settings > Administration > System Settings.

2. Scroll down in the General Tab and locate the heading "Set custom Help URL."

3. Change the field "Use Custom Help for customizable entities" to Yes.

4. Paste your URL in the "Global Custom Help URL" field.

5. Change the field "Append parameters to URL" if you want CRM URL references to appear on your browser.

6. Save and exit System Settings.

7. Refresh your browser that has CRM open.

8. Click on the ? icon and you should now see your website or webpage in a new browser window.

Individual entity reference

1. To make your help information available on a website or webpage and copy the URL. Navigate to Settings > Customizations > Customize the System.

2. Expand Entities on the left hand side navigation pane and select the entity of your choice. In my screenshot example I am selecting "Product."

3. Scroll down and locate the heading "Help."

4. Tick the field "Use Custom Help."

5. Paste your URL in the "Help URL:" field.

6. Refresh your browser that has CRM open.

7. Click on the ? icon and you should now see your website or webpage in a new browser window.

Ideas for your website or webpage

You could use Microsoft SharePoint to host a SharePoint Site that contains the Help information.
If you use a Learning Management System for your Organisation and it's a web application, you can use the URL of this too.

But some Organisation's don't have the budget to have Microsoft SharePoint or a Learning Management System. Or have the budget to invest in another type of application that can be the ecosystem of Help for Microsoft Dynamics CRM. I have an alternative solution from using my problem solving powers.

I have always been an advocate of the Microsoft Office suite. My dad introduced a Windows PC in our household back in 1993 and he taught me how to use Microsoft Word and Excel (he makes his own wallet sized itineraries. He still does. I'll take a screenshot and post it at the bottom of this post so that you can see how precise he is, prepare to be amaze-balled). Also, who else remembers that 90's Windows PC game Hover? I loooooved that game.

Anyways, there are some things I know intimately about Microsoft Office thanks to my Dad (hi Dad if you're reading this! I miss you!). Files in the Microsoft Office suite can be saved in different formats. Did you know you can save Microsoft Word into another file format? One of them is ".htm" or ".html." Did you also know you can create hyperlinks to sections in the document?

My workaround is creating an end user guide in Microsoft Word. Microsoft Word. It's commonly used in most Organisations. There will be some administration time (which I'll explain later) but it's a working solution to not having a learning site.

In this vlog I cover what I've mentioned above but also an alternative in creating a help guide using Microsoft Word.


So how do you use Microsoft Word as an alternative? 

The following is what I have done and will cover in the remaining of this post:

1) Use Headings
2) Use Table of Contents
3) Create hyperlinks
4) Save As .htm or .html
5) Upload web files onto a server
6) Create a web site in Internet Information Services (IIS)

My screenshots in the steps will be from Microsoft Word 2013.

1) Use Headings
The Style function in Microsoft Word is where you can format text in your document. You can change the font, colour, size, make the text italics etc based on the Style settings.


When you use Headings, it provides a means of being able to quickly access different areas of the document as well as providing formatting to the document. For example, if you click on View and tick the Navigation Pane checkbox, you'll see your headings on the left handside. Once you click on a heading, Word will jump to the page of that Heading and you can update/delete your content.


Use Headings throughout your document that will be used as the Help guide for your Microsoft Dynamcis CRM 2015 environment. My suggestion is to name your headings that can relate to what the end user is looking at in Microsoft Dynamcis CRM 2015.

2) Use Table of Contents
You can insert a Table of Contents in Microsoft Word which will retrieve the Headings in your document.

Click References tab and click on Table of Contents.

The Table of Contents will appear on your page. Table of Contents is usually placed at the beginning of the document so make sure you insert the Table of Contents in the beginning of your Word document.

3) Create hyperlinks
Headings will also appear when you want to create hyperlinks. To provide the end user to go back to the Table of Contents in the document/website/webpage, you can create a "Bookmark" back to the Table of Contents. Think of a "Bookmark" as an Anchor, Anchors are used in websites or even in Microsoft Outlook in your emails. Same concept in Microsoft Word using a Bookmark.

Go to the page in Microsoft Word that contains the Table of Contents. Click on the Insert Tab in Word and select Bookmark.

Enter a Bookmark Name and click Add. For example I'm using TOC as the Bookmark Name. You have now created a Bookmark for you Table of Contents.

The next thing I suggest to do is create a "Back to Table of Contents" hyperlink in each of the sections of the document. I have a hyperlink of "Back to Contents" in each of my sections. Being the nerd I am, I have also inserted an arrow Symbol too.

Highlight your text, click on the Insert Tab in Word and select Hyperlink.

A new Window will appear, by default you'll see "Existing File or Web page." Click on the option "Place in This document."

Now, select your Bookmark that you created at the bottom of the window. Click OK.


Repeat for every section in your Word document.

4) Save As .html or .html
Navigate to the File tab and click on Save As.

Name the file as "Index" and select the file type as Web Page (*.htm;*.html). You need to name the file Index otherwise it will not work in Step 6.

Click Save. Two files will then be created.

5) Upload web files onto a server
The next bit is to copy the two files created after you save the Microsoft Word document as a .htm file on to a server that will host the web page. I have done this in our development server otherwise this is where you kindly ask your IT team or hosting provider to do this for you.

Copy it onto the server into a new folder in the wwwroot folder within the inetpub folder located in the Local Disk (C:) drive. So C: drive > inetput > wwwroot > new folder

You may get the following error,

Don't panic (I did). One of my developer ninjas calmed me down and said all I had to do was copy the files onto the desktop of the server instead of directly in the folder. Once the files have been copied onto the desktop of the server, then cut/copy the files into the folder you've created in the wwwroot folder in the C: drive.

6) Create a web site in Internet Information Services (IIS)
Open Internet Information Services (IIS) Manager. Right click on Sites and click Add Web Site.

Enter a Site Name.

In the Physical path field, click on the ". . ." and select your folder that you created in the wwwroot folder in the C: drive.

This next part may or may not confuse you.
a) If you want to have the web site externally facing or give it a branded name, enter it into the "Host Name:" field and leave the Port as 80. You will then have to request an Infrastructure change to the DNS. This is so that the web site can be called by it's Host Name when an end user is directed to the URL. (I may not have explained this great as I'm not an Infrastructure know-it all but hopefully you some what understand me).

b) If you don't care about the web site being accessed outside of your network or having a branded name (such as https://helpingyou.com.au) then you can just change the Port number and leave the "Host Name:" field blank. Generally anything that is above 5000 is OK. I've used 5514.

Click OK.

Test your Web Site by browsing to it, click on "Browse *:<portnumber>" on the right handside of IIS Manager.

The web page will open in a new window.

If you went with option b), notice that it reads "http://localhost:5514/". Replace "local host" with the name of the server. So it will be "http://<servername>:<portnumber>".

OK, so now you can copy and paste your newly created website URL from IIS Manager into the "Global Custom Help URL" field in the System Settings of Microsoft Dynamics CRM 2015. Now when end userrs click on the ? icon, they will be directed to the lovely web page that you created using Microsoft Word.

To customize the help for the individual entities, just grab the URL generated from the Table of Contents. The trick is to do this when you are logged into the server that is hosting the web site. So browse to the web site, click on one of your headings. If you look at the browser address field, you'll see that the Bookmark Name and digits have been appended to the URL path. Copy this and paste it onto the "Help URL: field" as mentioned at the beginning of this post.

Other alternatives suggested by @andz_88

Andre and I were chatting after the CRM Melbourne User Group earlier this week about my recent post and he’s come up with more magic Microsoft Word combo’s. With his permission, I’m adding his suggestions in here too.

Web Resource

I made a comment earlier about one of my developer ninja’s suggesting using a Web Resource. Andre’s thoughts around this is that if a Web Resource is used, the benefit is that it will be solution aware. This allows the document to be deployed and hosted in any Microsoft Dynamics CRM 2015 environment within a CRM solution, therefore does not need a dedicated web server (IIS Manager is what I suggested in my alternative).

Andre tested to see if this works by creating a simple Word document to be used for custom help on the Account entity. Then following my alternative, he uploaded the files into Microsoft Dynamics CRM 2015 as a web resource - note on the "virtual folder" structure to replicate the output file from the Microsoft Word document. He created the Help folder then the Name of the folder where the images of the .html file generated from the Save As feature from Microsoft Word. This way you don't need to change the .html file at all to point to the image location.

Update the Custom Help URL for the Account entity using the URL of the web resource:
 


When you now click on the Help icon when you are in an Account record, it will open up the document where the path is pointing to the web resource. Andre’s Web Resource alternative was applied to his Microsoft Dynamics CRM online instance.
 


 A couple of things to note about this alternative is
  1. The solution file might increase if there are many images used in the Microsoft Word/.htm/.htm file.
  2. Andre has not tested what happens if this is used for a multi-tenant On-Premise deployment. Will the web resource still work?

Using One Drive (or Google Drive, etc that has capability to open document online and have proper security config)

Another alternative for those who do not have Microsoft SharePoint to host the Microsoft Word Document/.htm/.htm file is to use Microsoft One Drive.

First, create a folder, then upload the document to that folder:
 

Once uploaded, select the document and click on Share to manage the sharing option.



To make the link to this document, Click “Get a link” then make the link for View Only.
 

Copy the link and put it in the CRM entity custom help:


Now you can view the word document online:
 

For this alternative, someone in the customer Organisation or your Organisation will need a Microsoft OneDrive account or Google account if you’re using Google Drive. Or you can create a new Microsoft Outlook account and use OneDrive from there.

Cheers Andre for sharing your thoughts with me and allowing me to share it with others reading this post. Please look out for the next post as Andre and I will do a joint post on how to achieve Custom Help using Microsoft SharePoint if you have Office 365.

Summary

Microsoft Word is your friend if you (or your customer) does not have the budget for a learning management system. It is a working solution and I think it's a suitable alternative.

When I showed this to my team at work they thought it was a good alternative. One of the developer ninja's asked whether a web resource could be used that's in the CRM. The answer is Yes, a web resource can be used but any images would require a reference to the file path of where the image is stored - it could either be another web resource or the images could be stored in an image library elsewhere. Since I've converted the Word file into a .htm/.html file, it has automatically created the folder that contains the image references. When you copy the two files across to the server tie wwwroot folder and have the Website that you create in IIS Manager point to this folder, the webpage when clicked on in Microsoft Dynamics CRM 2015 will display the images (for example, the diagram of the Microsoft example of the new Product Structure). I didn't have to do any additional configuration in making references to the images. The webpage displays any images I had in the Word document with minimal configuration.

You do have to keep in mind that each time you need to update the Word document, you have to delete the two old files on the server and copy over the updated Word .htm files. If your Table of Contents is updated with new headings, there may be new links for each heading. This is an administration task you have to be aware of.

So there you have it, combine Microsoft Word and Microsoft Dynamics CRM 2015 for customized help. Thank you Microsoft Word :)

If you have a customer that expresses interest in wanting a better learning method of the CRM for their end users, think of this alternative if the customer does not have a dedicated learning management system.

PS: Big thanks to one of my developer ninja's who helped me out with the web site bit in IIS. I needed help with making my file accessible within our work network using IIS. I didn't know how to do it but now I do :) so kudos to you my friend. Cheers!

Other

OK so here's the screenshot I promised of my Dad's neat skills in Microsoft Excel. It's his flight details all organized in a single table, it even has the detail of the flight seat number (I know right!). He does this to see all his information instantly. I've always admired his dedication in preparing his version of a travel itinerary for every trip. That's my Dad and he is nerdy cool like me :) There probably is a smartphone app that can do this for him but he will still do this without fail.

Note: I have replaced the actual flight details and destinations with made-up ones. If these are real, it is pure coincidence.

Friday, 27 February 2015

Diving into the Product Structure of Microsoft Dynamics CRM 2015 (and meet ET)

09:46 Posted by Benitez Here
In my last vlog I went through Hierarchical Security in Microsoft Dynamics CRM 2015. This time round, I'm doing a deep dive into the new Product Structure in CRM 2015. This was my biggest learning curve for Microsoft Dynamics CRM 2015. The processes you have to go through is very different from CRM 2013 and earlier versions. You have to understand the steps in creating certain records to ensure your Product Structure is set up correctly.

Where do I go to create a Product? How do I create a Product relationship and where? Why do I need to create a Product Family? These are all revealed in this vlog post.

I couldn't afford to cut information out in this detailed walk through. If you don't have the time available right now to watch my vlog, try watch it when you do have time as it will help you understand the Product Hierarchy in CRM 2015.

Outline of the different components

Product

  • A Product is the item/unit you are selling. This is the base level of the Product Hierachy.
  • You can create a Product within a Product Family or Product Bundle.
  • You can create the Products prior to creating a Product Bundle.
  • Products still use the same set up from earlier versions of CRM where a Unit and Price List is required.
How do I know I'm in the Product?

Product Bundle

  • A Product Bundle allows you to sell multiple products together.
  • When you create a Product Bundle, the Product Bundle becomes a Product linked to a Price List.
  • You need to make sure your Product Bundle is created from the correct Product Family that will be the Parent.

How do I know I'm in the Product Bundle?

Product Family

  • A Product Family is where you can group your Products and Product Bundles. 
  • You can create a Parent Family with zero products initially.
  • After you create a Product, Product Bundle, or a Product Family within a certain Product Family, that Product Family becomes the Parent Family. 

How do I know I'm in the Product Family?

Product Properties

  • In the Product Family you can set up the Product Properties. Product Properties are the variances, things like size, colour, texture etc.
  • Properties are added at the Product Family level in Draft or Revision state.
  • Child Products, Product Bundles and Product Families inherit from Product Properties from the Parent Family.
  • Can override Product Properties of child Products, Product Bundles and Product Families.
  • Child families can have their own Product Properties in addition to inherited ones.

How do I know I'm in the Product Property?

Activate Product Family

To apply the Product Family in Opportunities, Quotes, Orders and Invoices, make sure you Publish the Parent Family. The top of the Product hierarchy has to be Published first before any Child Product Families can be published. Otherwise an error will be thrown (refer to my vlog).

Product Relationship

Product Relationship allows a Product or Product Bundle to be linked to other Products that can be suggested to the end user for the purpose of upselling, cross-selling, providing a substitute or accessories.

How do I know I'm in the Product Relationship?

Have a Price List default for an end user

You can automatically default Prices List’s based on the Territory record associated to the CRM end user profile.
The Price List entity has a Sub-Grid with the Connections Entity as the source.

Icons

The following are the icons to help distinguish the differences in the Products entity view.

How-to scenarios

OK so I've put together some scenarios and the end user process in CRM for these scenarios.
1. How to create Products
- I want to create a stand-alone Product
- I want to create a Product within a Product Family
- I want to create a Product Bundle within a Product Family
2. How to create Product Properties
3. How to create Product Relationships
4. How to default a Price List for an end user

The assumption is the Price List and Units have been set up, I am not covering this in these scenarios as this is not new functionality.

1. How to create Products

- I want to create a stand-alone Product

The steps are
a) Create Product from Products View by clicking on “Add Product.”
b) Create Price List Items

- I want to create a Product within a Product Family

The steps are
a) Select Product Family record from Product View.
b) Click on “Add Product.”
c) Enter relevant details and Save Product.
d) Create Price List Items.

- I want to create a Product Bundle within a Product Family

The steps are
a) Select Product Family from the Product View.
b) Click on “Add Bundle.”
c) Add the Products you want in the Product Bundle.
d) Create Price List Items.

This following is the sample Product Structure I have applied in my vlog post.

2. How to create Product Properties

The steps are
a) Open the Product Family record.
b) Click on the "+" icon of the Product Properties sub-grid.
c) Enter the relevant details.

Click here for more information on the different fields in the Product Properties record.

3. How to create Product Relationships

I want to suggest a cross-sell of a Product only from one particular Product.

a) Open the Product or Product Bundle.
b) Click on “+” Icon.
c) Selected related Product.
d) Set the Sales Relationship Type to Cross-selling.
e) Set the Direction to Uni-Directional.

My tip for Product Relationships

When you click on the Lookup, it might not be easily deciphered what records on the list are Products or Product Bundles by looking at the icon. I found it easier to add the Product Structure field as a column to the Product Lookup View.

The following is the sample Product Relationship I have applied in my vlog post.

4. How to default a Price List for an end user

a) Open the Price List.
b) Refer to the Territory Relationships tab and click on the “+” icon.
c) Either type the Territory Name
Or click on “Search For More Records.” [bug which I explain later]
Click on “Look Up More Records.”
d) Select a Territory.
Only assign a Territory to ONE PRICE LIST. If you assign a Territory to more than one price list, CRM will not apply the price list automatically to an Order, Invoice or Quote as CRM does not know which price list to apply. Don't confuse CRM.

Things you need to be aware of

Product Family

You can't later select a different parent product family for the child products, bundles or families.

Product Properties

  • Can only be configured in the Product Family.
  • Different prices for each property cannot be set. So if you want to price a Green Bag as $100 and Blue Bag as $200 based on the Product Property, it won't work using Product Properties. You have to create them as two separate Products.
  • Opportunities, Quotes, Order and Invoices display the Properties, you can't use it in a custom entity. 
  • Properties not displayed in Advanced Find.

Product Relationship

In my vlog post I could not figure out why I wasn't able to see the cross-sell relationship from the Adult Gym Membership product to the Towel Apparel Merchandise Product. This is because the Price List Item I originally created for the Towel Product was associated to the "Retail" Price List. The Order I used in my vlog post was using the "Retail Membership" Price List. Therefore the Adult Product was not displaying the suggestions of cross-selling the Towel Product due to the Price List Item being associated to the "Retail" Price List. As soon as I created a Price List Item associated to the "Retail Membership" Price List, I was then able to see the suggestion of selling the Towel Product in the Order.

So if you create a Product Bundle and any associated Product does not have a Price List Item associated to the Price List linked to the Order, Invoice or Quote, it will not show as a suggestion.

Summary


Products in Microsoft Dynamics CRM 2015 took me a while to understand and from my vlog post, you can see I slipped up when I wanted to show you how to create a Product Relationship by going to the Product Family. I had forgotten I needed to do it as the Product level.

So to help with your learning in understanding and remembering how things work in Microsoft Dynamics CRM 2015, I have conjured up a magic triangle which I have called "ET," Elaiza's Triangle. Ta da!


The following is outlined in ET:
  • Product Families are at the top of the hierarchy
  • Products and Product Bundles are underneath Product Families
  • Product Properties are created at the Product Family level and is inherited by Products and Product Bundles
  • Product Relationships are created at the Product and Product Bundle area
For further information on the Product Structure, refer to the Microsoft Customer Centre.

Thank you for watching and reading this long post. I have shared my knowledge with you and I hope you have a better understanding of the Product Structure in CRM 2015. Awesome sauce!

Toodles.

Tuesday, 10 February 2015

Exploring the Hierarchical Security model in CRM 2015

17:28 Posted by Benitez Here ,
I kicked off the new working year by starting on a new Microsoft Dynamics CRM 2015 project. I've been learning about the new features and in this vlog I am covering the new Hierarchical Security model. This is based on what I have discovered so far and I'll probably learn more about it as I work in other CRM 2015 projects so keep an eye for future related vlog's.

Trial and error over the past few years have made me understand what is easy and difficult to achieve with Business Units, Security Roles, Field Security Profiles and Access Teams in Microsoft Dynamics CRM. One of these scenarios is accounting for visibility of records from a certain level without giving too much access. For example, I am a Membership Director and I'd like to see what is happening with the Membership Reps but I don't need to update information on these Memberships. But I do need to edit the Quotes for Corporate Memberships that the Corporate Membership Manager is responsible for. The concept of Hierarchical Security accommodates this scenario which is explained in my walkthrough.


Righto, here's my thoughts in writing if you couldn't understand what I was presenting.

The following is the layout of a Membership team/department.

I have just used the standard security Sales Person and Sales Manager role where the Read Privilege is enabled to User access only (refer to my vlog). This is for the purpose of demonstrating how Hierarchical Security can be used when combined with security role where User access is enabled as the Read Privilege.

Manager Hierarchy
Manager Hierarchy is for an end user that has directly associated end users to have the ability to create, read, edit, append and appendto access of records owned by the associated end users. For example, I am a Retail Membership Manager and I have the access to any end user who I am a manager of. The Retail Membership Manager can edit the membership records owned by the Retail Reps as the Retail Manager is the direct manager of these individuals.


It can also provide a manager in a higher level to have read access to the end user records that are not associated directly to the manager, AS LONG AS there is another user who is the manager of these end user records and who is also directly reporting to the manager in the higher level. For example, the Membership Director has the ability to see the records owned by the Retail and Corporate Reps but the Membership Director canont edit these records. The Membership Director can see these records because the Membership Reps report to the Membership Manager who directly reports to the Membership Director.

Position Hierarchy
Next up is Position Hierarchy. This one took me a while to get my head around but I think I now get it. You can associate end users to a position which can give them access to records within the same "ancestor path." It uses the parent-child concept.

End Users in a higher position will only have read access of records owned by end users that do not report to their position AS LONG AS these end users is associated to an end user that is in a child position directly linked to the higher position.


During this exploration I found out the following:
  • an end user can only have one manager (applies to manager hierarchy)
  • an end user can only have one position (applies to position hierarchy)
  • you can have many child positions associated to one parent position (applies to position hierarchy)
  • an end user from another business unit can be added to a parent position if they need to create, edit, append and appendto access to records at that level (applies to position hierarchy)
  • the highest position does not need a parent position, but all lower positions require a parent position otherwise records aren't visible to end users in a higher position. I know this sounds like the obvious but it wasn't for me as I was used to modelling with Security Roles. It took me a long time to workout why I wasn't able to see lower level records (applies to position hierarchy)
  • a position can have many end users that are associated to different Business Units. For example the Membership Managers position can have two end users where one end user is linked to the Membership Business Unit and the other end user is linked to the Marketing Business Unit
  • an entity view such as Open Memberships will display the records, there is no need to add a criteria to show records where Owner is equal to XXXXX. This was previously required to see records owned by a Team or a new custom view was required to see records based on the access team an end user is linked to (if access teams is used).
  • audit history recognizes if a change has been made by a user that has been enabled for hierarchical security
  • the dashboards and advanced find also will display records owned by other users that are direct or in-direct reports to the user that has been enabled for hierarchical security.
The one odd thing I found was that if "Organisation" access was enabled in the Read privilege for an entity (eg. Opportunity) the hierarchical security did not apply. Any user that had the manager or position hiearchy enabled could only Read records when he/she was meant to have read, edit append and appendto access. I'm not sure whether this is a bug but this is what I discovered.

This was a learning curve but I'm glad I went through it because now I'm thinking twice about how to structure end users. I have a better understanding of Hiearchical Security modelling in Microsoft Dynamics CRM and I'm sure I'll learn more when combining the other methods of security. I hope you learnt something from me and hopefully this will get you thinking on how to structure end users in Microsoft Dynamics CRM 2015.
Toodles!