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!

Thursday, 11 December 2014

Microsoft Dynamics CRM 2013 Quiz Master

12:16 Posted by Benitez Here
2014 is/was the year of Microsoft Dynamics CRM 2013 so to wrap up the year I've decided to share my quiz I put together so that you can test your knowledge of Microsoft Dynamics CRM 2013. I did this in our last team meeting over some chocolate cake (yum!).

These questions have been derived from the Microsoft Dynamics CRM 2013 Administration and Customisation Guide + my experience and knowledge so far with Microsoft Dynamics CRM 2013. The questions however do not contain anything related to things like Unified Service Desk, Social Listening or Marketing.

Alright, enjoy and give yourself a pat on the back if you pass 50% of the questions.

Note: The slides will automatically change after 15 seconds.



The answers to these questions can be found here.


Other news

I recently attended the Partner Microsoft Dynamics Marketing training in Microsoft Australia HQ in Sydney and was stoked to meet other CRM'ers. I was lucky enough to meet other CRM bloggers too. Pics below.


Stephanus and I - follow his blog.



Ah zabenyahhhhh! (Lion King) - Kirsty and I


Amelia, Leon - follow his blog, and Craig - follow his blog.

Friday, 14 November 2014

Automatically populating Order address fields using customisations

17:58 Posted by Benitez Here , ,

Sometimes I have a "I wish" moment with Microsoft Dynamics CRM. If I had a lamp where a genie came out and granted me wishes, it would probably be depleted in a short amount of time. There are some things Microsoft Dynamics CRM could have out-of-the-box but I also have to remind myself that it's a system to be utilized across a whole Organisation so it does somewhat make sense when there are certain things that are not "standard" as it may not be relevant for all Business End Users.

Anyhoo... one thing that gets raised ocassionally is the address fields on the Order entity. When you create an Order, the address fields remain blank. The address fields aren't automatically populated.

Have no fear citizens, address fields on the Order can be achieved using customisations. Checkout my vlog.

Method 1 - Entity and attribute mapping

Field mapping is a handy dandy trick in Microsoft Dynamics CRM. You can map fields from one entity to another to help make creating and populating records more efficient. In this case, map the fields from the Contact address fields to the Order address fields. You do need to be aware of some of the limitations. I mentioned some of them but you can find the full stack - http://msdn.microsoft.com/en-us/library/gg334512.aspx 
This method is applicable if you are creating the Order from the Order Associated View of the Contact or Account record.

Method 2 - Custom fields, real time workflows and business rules

Sooo... if you don't want to create an Order from the Order Associated View of the Contact or Account, you can stick with this method. 1. Create two fields on the Order, Copy Contact Address and Copy Account Address. Add these two fields on the Order form. I chose to create these fields because of how the Potential Customer field on the Order is a lookup field. It only allows you to select Contact or Account. In a workflow, I wasn't able to set this condition as it's a lookup field pointing to an entity type (unless you have a suggestion?). So my way around this is creating two custom fields.
2. Add the Address fields on the Order. I didn't use the Composite address field as most customers I have worked with usually want to see all of the address fields in the Order instead of the CRM 2013 Composite style. 3. Create two real time workflows where it will set the address fields in the Order from the Contact or Account address fields.
4. Too make it more tidier, I created two Business Rules to prevent Copy Contact Address and Copy Account Address field being selected at the same time. I only want one of these fields to be selected since you can only choose a Contact or an Account for a Customer on the Order.

Now when you create an Order, just select either of the custom fields to copy the address from the Contact or Account.

------------------------------------------------------------------------
Super, now you know to use customisations to help you out. Before you go ahead with these methods, please do make sure you do add the address fields on your Contact or Account record. I used Address 1 for Physical and Address 2 for Shipping.
Give it a go :)

You can apply this for Invoices as well. Either map the address fields from the Order to the Invoice, or go with Method 2 if you aren't creating Invoices directly from the Contact or Account.

Thanks for tuning in. Toodles.

Thursday, 7 August 2014

CRM 2013 no code approval process - Version 2.0

22:26 Posted by Benitez Here ,
I have a previous vlog post where I showed how to create a simple approval process without code. This was more of a proof of concept of how an approval process could be achieved using customisations - zero development. I've since implemented the approval process for a client but it's somewhat changed from what you last saw. I demonstrated this new version of the approval process at the Melbourne CRM User Group earlier this week.

The client requirement is to prevent a Salesperson from progressing to the next stage/phase of an Opportunity until the Sales Manager approves an Opportunity.

Previously I used a "Two Option" attribute which is a "Yes/No" field to represent whether the Opportunity is Approved or Not Approved.  This is now repelaced with an "Option Set" attribute which is a dropdown field that contains approval status values. I used real time workflows like last time but the conditions are different and revolve around two of my custom fields. Curious for more? Watch my vlog.


OK, I'll do my best to explain this approval process in writing. Here we go... I used the same customisations as last time.

Custom fields
As mentioned earlier, I now have an Approval Status field which are made up of three values. These are,
  • Awaiting Approval
  • Not Approved 
  • Approved
This Approval Status field is to be used in all three workflows, whereas the other custom field Request Approval is used in two workflows.

Field Security
The Approval Status field is enabled for field security. This means field security profiles need to be created.
  1. Sales Manager has Read and Write access on the Field Security Profile
  2. Salesperson has Read access on the Field Security Profile 
Business Process Flow
Three custom fields is added as required steps in the Business Process Flow. This is to ensure the fields are populated in the Business Process Flow Stage.


If you want to create a new Business Process Flow Stage Category, you need to create a new value that represents your Stage in the Stage Category Global Option Set.

Check out this great blog post on how to do this. Read the section "Adding our custom stage categories."

Real Time Workflows
The star of the approval process is the Real Time workflows.

Workflow #1
Notify the Sales Manager when the Salesperson requests for approval.

The trigger of the workflow is when the Request Approval field changes. This is done in the following scenarios,
  1. The Salesperson is requesting approval for the first time. At this point, the Approval Status is updated from null (this means blank, no value) to Awaiting Approval. The Sales Manager is sent an email. 
  2. The Salesperson is requesting approval after the Sales Mangaer does not approve the Opportunity. At this point, the Approval Status is updated from Not Approved back to Awaiting Approval. The Sales Manager is sent an email. 

One thing I forgot to mention at the CRM User Group is that this workflow needs to be executed as the "Owner of the Workflow" because of how the Approval Status has been enabled as field security.
If the workflow is set to "User who made the changes to the record," you will get an error message. This is because it uses the security role of the User. Since the Salesperson does not have "write" access to the Approval Status field, the workflow will fail as one of the steps is to update the Approval Status to "Awaiting Approval."


Workflow #2
Notify the Salesperson when the Sales Manager updates the Approval Status field.

The trigger for this workflow is when the Approval Status field changes.

This is done in the following scenarios,
  1. The Sales Manager approves the Opportunity record. At this point, the Approved By field is updated to the Sales Manager and the Approval Status is updated to Approved. The Salesperson is sent an email. 
  2. The Sales Manager does not approve the Opportunity record. At this point, the Approved By field is updated to the Sales Manager and the Approval Status is updated to Approved. The "Request Approval" field is also updated back to NO in order of the Salesperson to resubmit a request for the Opportunity to be approved. The Salesperson is sent an email. 


Workflow #3
 In my journey of testing my new approval process, I discover that I still needed an extra 'stop gate' as the Salesperson could still click on "Next Stage" if the Approval Status is Awaiting Approval. This is because the required field in the Business Process Flow stage is now populated so CRM recognizes this and allows the Salesperson to move forward.

I knew that the Salesperson should not progress if Approval Status does not equal Approved,but I also needed a variable that links to the Business Process Flow Stage. I can't control the "Next Stage" button. This led to my investigation as seen in my previous vlog post and how I discovered the function of the Pipeline Phase field. The Pipeline Phase field is being updated to match the Stage of the Business Process Flow each time an end user clicks on "Next Stage." This is because it is linked to the Stage Category Option Set. So what I did was used the Pipeline Phase field in my final workflow. The trigger for this worfklow is when the Pipeline Phase field changes.
  1. If Approval Status does not equal Approved and Stage Category is equal to Close, cancel the workflow and present warning message. 
  2. If Approval Status does not equal Approved and Stage Category does not equal Close, do not cancel the workflow. I did this particular condition because I discovered if I did not provide this then the Salesperson could not move to a previous Sales Stage (eg. Develop) without the error message throwing. 
 

And there you go, you have an approval process using CRM 2013 customisations.

Ta da! This is where I break out into my Captain Planet chant:
 EARTH! Option Set!
 FIRE! Field Security!
 WIND! Business Process Flow!  
WATER! Real Time workflow!
 HEART! CRM 2013!
By your powers combined...
 I AM CAPTAIN PLANET I AM A CUSTOMIZED OPPORTUNITY APPROVAL PROCESS!!!

Wait!! I'm not done though! I would also like to direct you to this blog post of Gareth Tucker (another CRM professional) where I learnt earlier this year about how the Stop Workflow function can be utilized in real time worfklows to prevent certain end user actions. I wouldn't have been able to achieve Workflow #3 if I hadn't read his post earlier this year. Check it out.

Now I'm done :) Thanks for watching and reading.

Also, to all who were patient and stayed to watch me present at the Melbourne CRM User Group - thank you. Big thanks to Rowan and Richard for helping me out with the projector connection problems.

Toodles.

PS: Here's some photos of me in action. Thanks Andre for the photos.


Saturday, 19 July 2014

Pipeline Phase field deciphered

14:35 Posted by Benitez Here
I've been working on a project where we are implenting Microsoft Dynamics CRM 2013 and the area of CRM that will be used intially is the Sales module. The last time I customised the Sales module was in Microsoft Dynamics CRM 4. Yup, that was in 2009.

So when I started customising the Opportunity entity, I was confused about a field in Microsoft Dynamics CRM 2013 where my memory kicked in - I was sure this wasn't how it used to be in Microsoft Dynamics CRM 4. The field that I couldn't figure out in terms of the significance and what it was used for in Microsoft Dynamics CRM 2013 is "Sales Stage."

There were two things that needed to be customised,
  1. Add new Sales Stage values that my client wanted. eg. "Quote"
  2. Update the Sales Stage to match the Stage Name of the Opportunity Business Process Flow. eg. When the Stage in the Business Process Flow changes to Quote, the Sales Stage field should also be "Quote"
In this vlog I share my learnings with you.



The first thing I did was added the Sales Stage field to the entity form and it didn't update at all when changing to and from stages in the Business Process Flow. Hmmm... The second thing I did was to check out the Sales Stage field. I scratched my head when I discovered Sales Stage is an Option Set field where you cannot edit the values. I was sure the values could be changed previously.


My next step was researching the online sphere for some clues regardings the Sales Stage Option Set field. There were CRM 2013 blogs that discussed how to show the Stage Name of the current stage in the Business Process Flow of the Opportunity using a custom field which is then added to the entity form or view. However nothing in detail that pointed to my discovery about this particular field. The next step was that I checked Micrososft Dynamics CRM 2011. Yup, the same as CRM 2013. Option Set cannot be updated. I decided to check a Microsoft Dynamics CRM 4 environment to further investigate this field. Luckily there was a legacy environment available that I could access. In Microsoft Dynamics CRM 4 you can change the values however back in CRM 4 land, the field type was not an "Option Set," it was a "Picklist." I don't know whether this is related but this is what I noticed.


OK, but it didn't help me since I'm now customising in CRM 2013 where editing the Option Set for Sales Stage is not possible. My trip back to CRM 4 only confirmed that my memory did not fail me. Self-high five! So what to do now in CRM 2013 about getting new values in the Sales Stage field? I could get around this inconvenience by creating a new custom field in CRM 2013 with the required values where this custom field was to be used instead of the out-of-the-box Sales Stage. For a moment I thought this was the route to be taken. Something inside of me told me, "This is not where your journey ends little caterpillar, there's something else." So I trusted my instincts and got on with it. Back to staring at this field - mentally questioning it and more online research. Within an hour I found two separate pieces of information in these two blogs,
  1. Create Business Process Flow for custom or any OOB entity in CRM 2013 - refer to the first two comments
  2. Dynamics CRM 2013 Sales Pipeline 2
Here's what I found:
  1. Sales Stage is not really used but possibly only exists for the purpose of an old version of Microsoft Dynamics CRM upgrading to a newer version as seen in the first blog. Hmmm but in CRM 4 the field can be edited so how on earth did it become not editable in future versions. Or was Sales Stage used differently in CRM 2011? 
  2. From the second blog I learnt that when progressing in the Business Process Flow Stages, another field in CRM 2013 is being updated, "Pipeline Phase." So then I checked it out. I added and Pipeline Phase fields to the Opportunity entity form. I moved to and from Stages in the Business Process Flow. The Sales Stage field never updated, yet the Pipeline Phase field did. Referring back to the second blog, the Stages are driven by a Global Option Set, "Stage Category." The Pipeline Phase is being updated by the Business Process Flow Stage, and the Business Process Flow Stage is driven by the Global Option Set. I had to insert the client's Sales Stage values in the Stage Category Option Set and update the Opportunity Business Process Flow with the new stage categories. This will then update the Pipeline Phase field whenever the Business Process Flow Stage changes. 


I did this and it worked. This will also coincide with the out-of-the-box Sales Dashboards. The funnel chart will also display the new Stage Category value in the Global Option Set. Boom.


Summary
I suggest using the Pipeline Phase field rather then the Sales Stage field to identify the progress of Opportunities in Microsoft Dynamic CRM 2013. The Pipeline Phase field is tied into the Business Process Flow where the Stage Category of the Business Process Flow is reflected in the Pipeline Phase field. This will also save the need to create a custom field in the Opportunity entity that will be popluated when the Business Process Flow changes from stage to stage. The Sales Stage is not customisable and I think is only there in case a legacy CRM Organisation was previously using Sales Stage.

The only gotcha is to make sure you order your values correctly in the Stage Category Option Set as the digit number of the order will be displayed in the Pipeline Phase field and Sales Dashboards.

Awesome sauce!