© Sanjaya Yapa  2019
Sanjaya YapaCustomizing Dynamics 365https://doi.org/10.1007/978-1-4842-4379-4_1

1. Getting Ready

Sanjaya Yapa1 
(1)
Kandy, Sri Lanka
 

In the current business world, competition is growing every minute of the day, and every business must find intuitive ways of staying ahead of the competition. One of the primary challenges businesses face is to establish better customer relationships in order to provide better service to their clients. In such a competitive and demanding environment, the requirement for customer relationship management software is increasing.

Dynamics 365 for Customer Engagement is a powerful and highly adaptable platform that has been around since 2003. As shown in Figure 1-1, the product has evolved gradually throughout the years. The platform was first released with contact management and e-mail marketing tools aimed at the small business market. Today, it is known as Dynamics 365 for Customer Engagement. You can customize the product to meet almost any business need, and with every release, new features and integrations are being introduced. Needless to say, with all these new enhancements, the platform is growing rapidly and gaining popularity among the business crowd. Many industries such as energy, insurance, people management, and health have adopted Dynamics 365 as their primary platform for serving their clients.
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig1_HTML.jpg
Figure 1-1

Dynamics history and evolution

To provide all these features the newest invension is the Microsoft Power Platform which brings all your data into one common data model. It consolidates the powerful capabilities of PowerApps, Microsoft Flow, and Power BI into one powerful business application platform that opens up a whole new domain of application development and data insights. Each part of the Power Platform is dynamic and built into Common Data Service for Apps, which is the heart of the Power Platform.

Common Data Service for Apps is an Azure-hosted database that comprises standard entities, such as accounts, contacts, and leads; it can be extended by adding new entities or new fields to the existing entities. Even business rules can be configured to apply validations and to show and hide fields. Microsoft Flow allows you to create automated workflows that can generate notifications, update data, synchronize files, and more. The analytical part of the Power Platform is Power BI, which can be used to develop descriptive reports and dashboards. Another part of the Power Platform is PowerApps, which enables developers to create standard business applications based on Common Data Service. The Power Platform is gaining popularity among the community, and it will take the Dynamics 365 ecosystem to a new era.

How This Book Is Structured

This book will cover how to develop a solution using the Dynamics 365 online platform for the membership management domain. And it will guide you from designing through developing to releasing a solution to clients. On this journey, you will discover how to use the out-of-the-box customizations, advanced customizations such as workflows and plugins, and integrations with cloud technologies such as Azure—all to build a membership management system. Also, it will guide you with best practices and show how to automate the build and release management process to establish DevOps.

Note

One important thing to remember is that all these examples are based on the Dynamics 365 for Customer Engagement online version.

The Case Study Domain

As it may sound like, membership management is not a simple domain. Many governments, nongovernment organizations, private organizations, and clubs have membership management requirements. This book will present a midrange membership management solution.

At a high level, the Small Business Members Association (SBMA) is a nonprofit organization. It has about 5,000 medium to small business owners throughout the country, and this number is growing. The association is set up to provide a wide range of benefits to the businesses owned by the members. The association is renowned for helping out the members when they face critical issues with finance, marketing, selling, and so on. It also organizes events throughout the year to educate the members to stay competitive in the market. One of the key benefits the association provides to its members is finance, marketing, and sales consulting through individual and group sessions with professionals in each domain.

Many small to medium businesses want to join the association, which is not that easy. The business owners must provide evidence of the business, for which SBMA is dedicated to safeguard. To provide these services, SBMA charges a subscription to each of their members depending on the size and annual revenue of the business.

Also, the representatives of SMBA reach out to prospective members around the country, and their objective is to increase the number of memberships. For every prospect a representative has converted, SMBA will pay a commission, which is a percentage of the annual membership fee.

Management has decided to get rid of their legacy desktop application and invest in a new feature-rich solution that improves customer engagement and provides better service to the members.

The Case Study Requirements

As an initial step, the business analysts have identified the list of requirements of the business, and they have entered them into Azure DevOps. They have used the Agile template as the project template because the end users want the project to be executed with Agile practices.

With Dynamics CRM projects in the past, source control has been a problem. But now the situation is different because there are so many advanced source control options available. As we all know, Azure DevOps supports Git and Team Foundation Server as version control options. In this book, since we are using Visual Studio Team Services (VSTS) now renamed as Azure DevOps for capturing the requirements, we will also be using it for source control, which will be explained in detail later. This must be selected when creating the project in Azure DevOps. See Figure 1-2.
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig2_HTML.jpg
Figure 1-2

Azure DevOps “Create new project” screen

By default Azure DevOps enables only two levels of work items: features and user stories to create the backlog. For this particular scenario, the business analysts also want to have an epic work item, as shown in Figure 1-3. Epics are the highest level of workitems which will be used to define the Modules of the system. You can find more details at https://docs.microsoft.com/en-us/vsts/work/customize/select-backlog-navigation-levels?view=vsts .
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig3_HTML.jpg
Figure 1-3

VSTS Settings page to enable epics

The primary objective of using Agile practices is to see the results quickly. During the analysis phase, the business analysts identified that there are high-level modules, and each module will have unique features. As the first step, they have extracted the modules. After entering the epics, the backlog looks like Figure 1-4. Epics are used mainly for future improvements of each module. The SBMA application will continue to evolve, and each module will be expanded with new features in the future.
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig4_HTML.jpg
Figure 1-4

Project backlog with epics (system modules)

Next, the business analysts have created the features identified for each of the epics (see Figure 1-5).
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig5_HTML.jpg
Figure 1-5

Project backlog with module features

The business analysts completed the backlog for the application by entering the user stories, as illustrated in Figure 1-6.
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig6_HTML.jpg
Figure 1-6

Completed project backlog with user stories

Now that the requirements have been captured, the next step is to select the platform to build the application. The next section will guide you through why SBMA has decided to use Dynamics 365 as the platform for its application.

Why Use Dynamics 365 as the Platform?

The next big challenge is to select the primary platform to develop the application. There are two options to consider.
  • Developing an application from scratch: Since the application components are developed from scratch, the development team will have more control over the application development. But the downsides are the cost and the time they have to spend building the application. SBMA is more concerned about the security aspects of the data and its operations. The usability and maintainability of the application are also major concerns. In this approach, the development team may have to spend time reinventing the wheel. It is not impossible, but these issues should be considered before taking this path.

  • Using an existing platform and configuring it: The other avenue is to buy a platform and configure it, which is inexpensive in the long run and can save loads of time because the developers are not reinventing the wheel. The usability, security aspects, document management, integrations, and so on, are just a matter of configurations and customizations.

Therefore, the conclusion is to use a platform that has already been developed and configure and customize it to the business’s needs. Among the many platforms available, the online version of Dynamics 365 is the preferred platform for these reasons:
  • Flexibility: Dynamics 365 can be customized to the way the company is working. It can be extended with simple as well as advanced customizations.

  • Usability: The new interface is easy to use and has the highest user adoption.

  • Seamless integration: Dynamics 365 integrates seamlessly with many other platforms such as SharePoint integration for document management, Microsoft Flow, Azure Logic Apps, and much more.

  • Powerful reporting with Dynamics 365 and Power BI: Dynamics 365 offers powerful reporting features using FetchXML and even extends the reporting capabilities by integrating with Power BI.

  • Regular updates: Microsoft invests heavily in Dynamics 365, and as a result, the platform is constantly being updated. These updates are also known as Waves. With every update/wave the application improves, meaning that the solutions implemented on top of the platform will also benefit from these improvements.

  • Pricing: Last but not least, the pricing is affordable when compared to the other platforms, especially given the benefits the company will be getting.

The next section will guide you through some of the key requirements and why Dynamics 365 is the ideal platform to implement them.

Implementing Features with Dynamics 365

The following are a few of the high-level business requirements that are mapped to features of Dynamics 365.

Creating a Membership

Member registration is one of the primary business processes of the application. This workflow consists of several steps. When an application is submitted, a prospect record is created. At this point, the application is not approved, but the membership officer is notified with a task to review the application. The application can be approved or rejected. For the application to be successful, SBMA has several business rules that must be met. If any of the application information fails to meet any of the rules, then the application is considered to be failed/rejected. When the application is approved or rejected, the prospect should be notified via e-mail.

The Dynamics 365 workflow engine is ideal for implementing such requirements. The requirements can be configured to automatically trigger when the prospect record is created. Also, they can trigger child workflows as required. For instance, in simple terms, a workflow can be configured to create a task and can be assigned to a membership officer for review. This workflow will move the prospect record to a Dynamics 365 queue where the membership office will select the record for further processing.

If the application is approved, the prospect will be converted to a member, and a welcome e-mail will be generated, which can be easily configured with the Dynamics 365 workflow engine. Figure 1-7 shows a typical workflow configuration window.
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig7_HTML.jpg
Figure 1-7

Dynamics 365 workflow configuration window

In addition to typical workflows, Microsoft Flow, which is also part of the Power Platform, is an attractive option for some scenarios. The graphical designer of Flow makes it easier to create workflows in no time with less training (see Figure 1-8).
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig8_HTML.jpg
Figure 1-8

Flow designer

Submitting the Required Documents

As part of the member registration, the applicants must submit several documents, such as bank statements, business registration documents, and so on. These documents must be saved securely, and members should be able to update the documents from time to time.

You might know that SharePoint is an ideal document management solution, and Dynamics 365 can be integrated with SharePoint easily. Once SharePoint is configured, the documents will be saved and mapped to Dynamics 365 records seamlessly. Figure 1-9 displays documents that are saved to the SharePoint library and attached to a Dynamics 365 record.
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig9_HTML.jpg
Figure 1-9

Dynamics 365 grid display of documents from a SharePoint repository

This book will demonstrate the server-based integration, which is the basic integration type between Dynamics 365 and SharePoint. It is suitable for most document management requirements, but if you need anything specific, you have the option to create a custom solution.

Generating a Member Subscription

When members are created, every member must pay a subscription annually. These subscription records should be raised automatically. The challenge is that the subscription dates for the members will not fall on the same day. A batch process must execute in the background to select the members on a daily basis, create the next subscription record, and notify the client automatically when the subscription is created.

This is where the Azure integrations come into play. Ideally, an Azure web job can be utilized as the background process to pick up a batch of records and create the subscription. When generating the e-mail, there are two options; either you can use a plug-in or you can use a workflow. Figure 1-10 is a theoretical illustration of the connection between Azure WebJobs and Dynamics 365. This topic will be covered in detail later in this book.
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig10_HTML.jpg
Figure 1-10

Dynamics 365 communicating with Azure WebJobs

Generating Reports

Dynamics 365 provides reporting and dashboards for management to review their data. Out of the box, a few dashboards are available, and you can also create your own. These dashboards can be shared with different users of the system. See Figure 1-11.
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig11_HTML.jpg
Figure 1-11

Dynamics 365 dashboard

Similar to dashboards, there are a few out-of-the-box reports under the Marketing section of the main menu of Dynamics 365. You can use the Report Wizard to create simple reports, or you can use FetchXML for advanced reports. Dynamics 365 online does not support SSRS reports. Figure 1-12 shows the Report Viewer.
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig12_HTML.jpg
Figure 1-12

Dynamics 365 reports

Sometimes the reporting requirements are overwhelming, and these tools may not be enough to satisfy the information cravings of management. In such situations, you can use Power BI to meet more complex demands. Connecting with Power BI is simple, and you can find a detailed explanation of this topic in Chapter 7. The Power BI design view, as shown in Figure 1-13, extracts data from Dynamics 365 online.
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig13_HTML.jpg
Figure 1-13

Power BI desktop editor connected to Dynamics 365

Processing Direct Debit Payments

Processing payments is one of the key requirements of SBMA because some of the members will be paying their subscriptions via direct debit. When a member selects direct debit as the payment method, their subscription will be deducted directly from the bank and deposited into SBMA’s account. To process these payments, the association must send the list of payments due for the month to the direct debit payment system as a CSV file. The application should create this file and drop it into a shared folder in the cloud where the finance manager will send the file to the direct debit system.

Then the system will send back a processed CSV file that contains the successful and failed transactions with the relevant code. The system should read the file and update the member subscriptions with successful payments as well as generate reminders to the members with unsuccessful payments.

The integration with Azure Logic Apps is an ideal solution to process this file on a monthly basis, as shown in Figure 1-14. This is the most reliable and cost-effective approach to processing direct debit transactions.
../images/471991_1_En_1_Chapter/471991_1_En_1_Fig14_HTML.jpg
Figure 1-14

Dynamics 365 using Azure Logic Apps for data processing

This book will describe all these requirements with detailed implementations later in this book. As you can see, Dynamics 365 is the ideal platform for the implementation. Next we will look at the data model of the proposed application.

The Entity Model

It is time to look at the high-level entity model of the application. Table 1-1 lists the entities identified based on the requirements captured. This is just a simple model that will not cover all the aspects of membership management. Figure 1-15 illustrates the high-level data model of the application. As shown in Figure 1-15, the data model is representing the data in relation to the business terms.
Table 1-1

Entities of the Proposed System

Entity

Description

Member

This is the primary entity that holds the member information. A member is actually a business.

Prospect

This is a potential member entered by a representative or an applicant awaiting his or her application to be approved by the membership officer.

Contact

As per the requirements of SBMA, every member must have a primary contact who is responsible for dealing with the membership. Also for a given member, there can be one or more contacts.

Representative

Representatives are SBMA staff in different states of the country looking to increase the number of members of the association. Based on the number of members and the size of the member business, they will be paid a commission.

Knowledge Base

This entity will hold the details of service request resolutions, which can be used by the staff to solve similar issues raised by the members in the future.

Service Requests

These are the cases or issues raised by the members. A contact from the member organization will raise a service request, and it will be processed by the membership staff.

Member Subscriptions

Subscriptions are the yearly payments done by the members to the association. These subscriptions can be paid via direct debit or credit cards.

Member Benefits

The member subscription is determined by the benefits a member is registered for. Different benefits will have different features. Members can add benefits to their membership based on the size of their business.

Member Payments

Member payments are recorded against the subscriptions, which are used to track the member payments. There will be credit card payment records as well as direct debit payment records.

Events

Events are organized by the association for the members.

Event Accommodation

If the member representatives are coming from different states, they should be provided with accommodations, which will be part of the event registration. Members have the option to buy their own accommodation as well.

Event Registrations

This entity will record the event registrations for a given event. An event registration should always be a contact of the member.

Event Programs

Every event will have a defined program targeting different business verticals. Members can decide to go for these programs based on the schedule. There could be events with only one program.

Program Location

Within the event venue, there are different locations for the programs.

Event Venue

This is the venue where the event will be held, and there are several venues where the association will always organize events.

Commission

Commission is paid to representatives for bringing in new members. Based on the annual revenue of the business and the size of the business, the commission percentage will be decided.

../images/471991_1_En_1_Chapter/471991_1_En_1_Fig15_HTML.jpg
Figure 1-15

High-Level entity-relationship diagram

In general, if you are using any platform to provide a solution, it is always a good idea to use the out-of-the-box features as much as possible, before even thinking of any customizations. This is a fundamental best practice that applies to Dynamics 365. Out of the box, Dynamics 365 comes with several entities that can be used, and others have to be created.

Note

Dynamics 365 online is also comprised of virtual entities, which you can directly connect with external data sources, and during runtime, this external data will be available in the system. For more information, please visit https://docs.microsoft.com/en-us/dynamics365/customer-engagement/customize/create-edit-virtual-entities .

Table 1-2 maps the entities from Table 1-1 to the Dynamics 365 entities.
Table 1-2

Entity Mapping to Dynamics 365

Entity

CRM Out-of-the-Box Entity

Custom Entity

CRM Entity Name

Member

 

Account

Prospect

 

Lead

Contact

 

Contact

Representative

 

Users

Knowledge Base

 

Knowledge Base Articles

Service Requests

 

Case

Member Subscriptions

 

A new custom entity must be created

Member Benefits

 

Member Payments

 

Events

 

Event Accommodation

 

Event Registrations

 

Event Programs

 

Program Location

 

Event Venue

 

Commission

 

Summary

In this chapter, you briefly looked at how Dynamics 365 has evolved into an extremely powerful platform that can be used to provide business solutions. This chapter set the stage for this book and briefly explained the problem domain that will be used as an example to explain the customizations and integrations of Dynamics 365. The chapter also demonstrated how to use Azure DevOps to capture requirements and organize the backlog. Then the chapter described the primary reasons to use Dynamics 365 as the platform to provide a solution to the problem. Finally, the chapter illustrated the high-level data model and the mapping to the Dynamics 365 entities. The next chapter will guide you through setting up the development environment.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset