Introduction to MS Dynamics CRM

Hi Habr! In this article, I would like to talk about some standard features of Dynamics CRM (to understand what it is all about), its main business processes and means of expanding functionality right out of the box.

To get started, let's go over some facts about Microsoft's CRM system:

  • Currently included in the TOP 5 CRM systems in the world. The number of customers is gradually growing from year to year.
  • New customers can only start working in the form of a cloud - the online version. Prior to this, a version was available on a personal server - on-premise, old clients continue to use it further.
  • Available for work through a browser, Outlook plug-in, mobile applications, and through a special Unified Interface application.
  • In the latest rethinking, marketers became known under the new names Dynamics 365 for Sales and Dynamics 365 for Customer Engagement. Popularly continues to be called Dynamics CRM.
  • Out of the box, the client receives sales management, a catalog of products and services, and action tracking. Marketing campaign management and incident management are also available.

It’s good for developers to know that:

  • Average US sn on the US market: Junior - $ 87163, Middle - $ 127614, Senior - $ 151321
  • For the selection of consultants and programmers, there are entire agencies, for example Nigel Frank.

Also, let's take a look at where CRM (Sales) is in the Microsoft ecosystem of solutions.

Start use

From the point of view of the user - everything is simple. We get the url address and go there using your favorite browser.

Until recently, Microsoft recommended using only Internet Explorer, but nothing lasts forever, and now, with a clear conscience, you can work through Chrome.
When you go to the address, you will have to enter the account username and password (CRM uses ADFS to authenticate users), and we get to the home page.

Sales Module

Let's imagine ourselves as a sales manager.

Our company conducted an advertising campaign a week ago, and the marketing director entered the lead system (Lead or Potential Client) and assigned them to us.
What is Lead? Well, there is some kind of company that seems to be interested in our services, and we have the opportunity to offer them something, but they still do not know what they definitely need.

Lida’s form looks like this:

We call them and find out what needs to be done, they seem to agree with the proposal and are ready to discuss further. Excellent! This means that we can qualify the lead, and CRM will automatically create as many as 3 from one record: Contact, Organization and Account and Opportunity.

The next stage after Lida is the Possible Deal. At this stage, there is an active clarification of the needs of the client, we begin to fill in the Products of the Possible Transaction, which are taken from the Product Catalog.

Standard fields for Opportunity Transaction:

  • Potential Client - can be either Contact or Organization. This relationship allows you to track the entire history of working with a client.
  • Expected closing date - shows the time of completion of the order. It can be used for an approximate calculation of the receipt of funds or for the preparation of labor for the project.

Additionally, you can fill out the Competitors table. It helps to analyze competition in general, and stores a history of winnings and losses for each company rivals.

Table (Sub-Grid) The Sales Team allows you to have a list of people working on a deal.

When adding Products to a Possible Transaction, the expected profit is automatically calculated. Developers have the opportunity to redefine it if it is necessary to add new fields to the calculation formula. Do you want to immediately include a possible rollback in your profit calculation? No problem.

It is important to note that the deal can be closed as lost. CRM will certainly ask for a reason and record it in the client’s history as an action.

The next step is to create a Quote.

Commercial offer has its own life cycle. It is created from a Possible Transaction in the Draft status with pulling up its products. The user can change the products and their price. As soon as he reaches the point that he is ready to send an offer to the client, the record goes into Active status and the record becomes uneditable.

If the client agrees with the offer, then it closes with the status of Won (Won) and we proceed to the Order stage. If something needs to be changed, then we select Revise, and a new quotation will be created, with again the tightened products.

An order is essentially an approved quotation. It contains information about the products or services that the client ordered. From it, you can create an Invoice, which can be closed with the status Paid or Canceled.

Further integrations with other systems should come into play. For example, MS NAV. Microsoft provides a turnkey connector for this.

Having such a history of customers, you can build the most important graph in CRM - Sales Funnel:

It allows you to analyze the dynamics of sales at various stages, from the lead to the order. For example, you can find bottlenecks in which most customers are lost and try to fix them. Also, the sales director can estimate future profits, depending on the number of leads at the moment.

Customer Service Management Module

Contains Cases, which are created by the support team, automatically via email or through integration with third-party systems. Incidents store information about a client’s problem. They can be added to special queues, which allows you to more efficiently distribute the load on the support desk.

Dynamics CRM has a Knowledge Base functionality to help solve problems. The database contains articles that are grouped by topic.

It is also possible to monitor KPIs (Key Performance Indicators) using custom SLAs (Service Level Agreements). SLAs are customizable based on business hours, business days, and weekend schedules. When creating an Incident, these SLAs are taken and the time taken to resolve the problem is calculated.

For the user, this can be seen in the form of a timer on the main form of the Incident. The return stroke can be stopped if, for example, the user is waiting for a response from the client.

Marketing Module

Marketing lists are a convenient way to group Contacts, Organizations and Leads into groups by any criterion or manually. They can be either static or dynamic (obviously, for those created according to a predetermined criterion). Ultimately, these lists are used for any kind of marketing action: sending newsletters, promotional materials, etc.

Campaigns in Dynamics CRM are represented by regular campaigns (Campaings) and fast campaigns (Quick Campaigns). In general, they are created to control the actions for each of them, as well as for convenient calculation of ROI (Return on investemnts / Return on Investment).

Campaigns have a Campaign Responses list that is created to understand its success. Responses can be made either manually or automatically using incoming electronic messages.

What are the differences between Campaign and Quick Campaign?

A quick campaign can have only one type of activity, one list of customers, does not have built-in metrics, cannot be created from campaign templates, it requires fast execution. As an example, a Thanksgiving email campaign before the sale. We generated a mailing list, produced it, received feedback, calculated the number of leads and ROI generated based on the conversion of Lead into a Possible Transaction, and closed the campaign.

Functionality Expansion Tools

Finally, you can move on to why I started all this.

There are many ways to extend the functionality of CRM. In this article, I will describe basic things, such as creating new Entities, Fields, Forms, Views.


First, you need to talk about Solutions. These are packages containing the full or partial state of any object added there. They are used to transfer components from one system to another, as well as to develop new components. You can get to the list of solutions by going through the menu through Settings / Solutions.

Before us is the form of the newly created Solution.

Pay attention to the Publisher field. It stores the Name and Prefix of the Component Developer. Depending on which Solution the component will be created in, it will have such a prefix. For example, the Publisher has the prefix habr, so the new User entity will have a system name of the form habr_user.

Solutions can be Exported or Imported. When exporting, you can choose what it should be. Managed or Unmanaged.

Solutions are divided into 3 types.

  1. Default Solution - The default solution or global solution. Each CRM system has one default solution. It contains in general everything that is in the current system.
  2. Managed Solution - can be created during the export of an unmanaged solution by selecting the appropriate option. Everything that is inside this decision cannot be further changed. Typically, this type is used to distribute the finished product for CRM systems of several clients.
  3. Unmanaged Solution - everything that is inside such a solution can be deleted or changed, you can also add new customizations to it. If you customize CRM individually (for each client - your own changes), then you will most likely use only this type of solution.

In order for the changes to take effect, they must be published (Publish). To do this, just click on the desired button by selecting the desired Solution.


Or Entities. With their help, you can determine the types of records. The closest analogy is the database table.

Let's create our first Entity. Go to the Entities section and click New.

A new form for creating an entity will open.

Ownership type - allows you to choose the owner of the record. By default, this is Organization, i.e. there is no owner as such. If you select User or Group, then the entity will have an Owner field. In the future, depending on the type of ownership, you can flexibly configure user access to records and their visibility in units.

If you select Define as an activity entity, then the entity will become an action. Actions are entries that can be displayed on a calendar. For such an entity, the Start Time, End Time, and Duration fields will be automatically added. The action can be Undo or Execute. Only the User or the Group can be the owner of such an entity.

In the Primary Field tab, you can specify the parameters of the Main field, which will be required.

If desired, you can change the name or type to something else. In this case, I recommend that you make sure that it is filled out for each entry, and is unique. The value of this field is used as a designation for the Lookup field. As an example, lookup the Publisher field on the Solutions form. (PS field types will be lower)

There is also a fairly large list of settings that you can set. Let's go through the most used ones.

Areas of the entity's visibility (Areas that display this entity) - you can set the tabs of the main menu in which the entity will be available.

Allow quick create - by default, a new entry is created in a new window. When this function is activated, it becomes possible to create a record from the active window, with the input of only the necessary fields.

Duplicate detection - allows you to prohibit the creation of identical records using rules.

Auditing - you can select entity fields for which the entire history of changes will be stored. You need to be careful with this setting, you can get a significant increase in the volume of the database.


Or Fields. Used to identify individual data items.

After creating the entity, CRM will automatically create the base fields.

Let's complement the entity with our own. Click New and see the form creating a new field.

Display Name - the name that will be displayed on the recording form.

Field Requirement - sets the required field. There are 3 types in total. Optional - allows you to create a record without filling in the field; Business recommended - similar to optional, but there will be an asterisk next to the field as a recommendation for completion; Required - you cannot create a record without filling in this field.

Name - the system name of the field.

Searchable - allows you to use the field to search for records by its value.

Field Security - allows you to additionally configure who this field is shown to.

Auditing - allows you to enable audit of the field. (Change history will be saved)

Data Type - data type of the field. There are 12 data types in total.

Single Line of Text - a line of text. It can contain up to 4000 characters, but can be limited to a smaller number.

Option Set - list Name-Value

Two Options - regular Boolean

Image - picture

Whole Number - An integer in the range from -2,147,483,648 to 2,147,483,647.

Floating Point Number - a number in the range from -100,000,000,000 to 100,000,000,000, which may contain up to 5 decimal places

Decimal Number - a number in the range from -100,000,000,000 to 100,000,000,000, which can contain up to 10 decimal places

Currency - monetary values ​​in the range from -922 337 203 685 477 to 922 337 203 685 477

Multiple Lines of Text - a few lines of text. It can contain up to 1,048,576 characters, but can be limited to a smaller number.

Date and Time - date and time. In the database, this field is stored in UTC, the field can be configured to display UTC or local user time. You can also display the date and time or only the date.

Lookup - is a link to a record of any entity. It stores immediately 3 values ​​(Record name, GUID and entity type). According to the rule of good tone, 'id' is written at the end of the name, as the designation of the lookup field. A small digression: a guide from Microsoft translates the name of this field as Search. However, everyone calls him simply Lucap.

Customer - in fact it is multi Lookup, which can refer only to 2 entities - Contact or Account.

There are 3 types of fields. Not every data type can have all 3 types of fields.

  • Simple - regular field
  • - Calculated - the content can be customized using the editor. Example:

  • Rollup - contains the aggregated value calculated from the child records. Configurable using the editor. An example of such a field is the total amount of all transactions for a manager.


Each entity contains its own Forms. They allow you to customize the display of fields for different cases.

There are 4 types of forms in total:

Main - the form that will be displayed when opening a record through a browser.

Mobile - this form will open on a mobile device.

Quick View - allows you to embed this form in the forms of other entities. For example, the Main form of the Post entity contains the Author field (which refers to the User entity), and we display additional User data through its Quick View form.

Quick Create - a form for quickly creating a record (Without opening a new browser window)

Form Settings

Dynamics CRM allows you to flexibly customize the form and functionality of Forms.

Key features of the form editor:

  • Adding a field
  • Field deletion
  • Hiding field
  • Adding Business Rules
  • Change the layout of a form
  • Adding JS scripts and registering them with form events

This is what the form editor for our Post entity will look like.

In our case, we have only 1 Tab named General (circled in blue), inside which there is one Section also with the name General.

Home tab

Generally, Main forms consist of 4 parts: Header, Body, Footer, and Navigation on the left.

In order to choose what you currently want to edit, you will have to use the Select group on the ribbon ribbon.

Fields are added by double-clicking or dragging.

They are deleted with the Remove button. Required fields (which are with a red asterisk), so simply cannot be removed from the form. You will have to first change their type to Optional.

The Form Properties button allows you to add JS files to the form, and register their functions for form events and fields.

Insert tab

In the Insert tab, we work only with the body of the form. Here we change its layout.

Ribbon ribbon commands in this case:

Section - adds a section to the selected tab. May contain 1-4 columns.

Tabs - many options add a tab with the number of sections 1-3 of different widths.

Here is an example of a tab with three sections. One section has three columns, the other two one at a time. Each column is a potential field location.

Sub-Grid - adds a list of records of the related (or not) entity to the form.

Briefly about what it is.

For example, Habr added a function of donations for articles. Create a Donations entity that contains a lookup on Post. In this case, when creating a field, an N: 1 relationship is created.

That's it, now we can add a Sub-Grid showing donations. The Sub-Grid settings window looks like this:

And our form will look like this:

Spacer - creates an empty space

Quick View Form - adds a quick view form. We have already done this for the author.

Web Resource - Adds a web resource to the form. For example, an interactive html page or Silverlight application.

IFrame - you can add them too

Notes - adds a panel for creating notes


or Views, are used to display lists of records.

You can specify the displayed fields, their width, as well as filters and sorting.

Here is an example that shows only active posts.

Views are:

General - views available to all users. When creating a new entity, Active and Inactive views are automatically created.

Personal - owned by individual users. They can be created by the administrator, and then separately assigned to another.

System - are not directly accessible for selection from the list of views, but exist as add-ons that extend the functionality of individual interface elements. For example, quick search, advanced search.

Create your own personal view?

Click on the list of views and select Create Personal View.

A new window opens to customize the view. You can take an existing view as a basis by selecting it in Use Saved View.

Edit Columns allows you to select the displayed fields.

Results allows you to check which records will be displayed after applying the filter.

The filter is built by adding conditions using Select and grouping them through AND / OR.

This is what the finished filter looks like. We save it at the same time giving the name, and get a ready-made personal presentation.


In this article, I gave information for a great start in development for Dynamics CRM. In the following articles, we will deal with other available customizations, the official SDK, must have applications, write plugins and workflows.

I would be grateful for the feedback and thank you for reading the article.

Also popular now: