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.
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.
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?
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.
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.
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.
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.
Generating Reports
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.
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
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. |
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 .
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.