In this graduation project, our main task consist on the design and the implementation of a Loyalty solution module integrated within the existent Microsoft Dynamics CRM business modules, that helps retailers to reward their customers for past purchases and to provide them with incentives for making future purchases.
Key Word: CRM, Loyalty, ISV, xRM, Microsoft Dynamics CRM
1. Ministry of Higher Education
and Scientific Research
Carthage University
National Institute of Applied Sciences and
Technology
Graduation Project
To obtain
National Diploma of Engineer in Applied Sciences and
Technology
Faculty: Software Engineering
Subject:
Design and Implementation of Loyalty Solution Integrated in
Microsoft Dynamics CRM 2016
Presented by: Mohamed ELHOSNI
Conducted within:
Presented on the June 15, 2016
Industrial Supervisor: Mr. Moez MAAMOUN
Academic Supervisor: Mrs. Fatma BAKLOUTI
Academic Year: 2015/2016
7. List of Tables
2.1 Dynamics CRM Capabilities . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Loyalty management solutions comparison . . . . . . . . . . . . . . . . 18
3.1 Loyalty Customer - Global Use Case Description . . . . . . . . . . . . 25
3.2 Loyalty Customer - Points Management Use Case Description . . . . . 26
3.3 Loyalty Customer - Prole Management Use Case Description . . . . . 28
3.4 Loyalty Manager - Global Use Case Description . . . . . . . . . . . . . 29
3.5 Loyalty Manager - Customer Reward Management Use Case Description 31
3.6 Loyalty Manager - Business Rules Management Use Case Description . 33
5.1 Deployment Comparison for Microsoft Dynamics CRM 2016 . . . . . . 50
8. Nomenclature
CRM Customer Relationship Management
IFD Internet Facing Deployment
ISV Independent Solutions Vendor
MS Microsoft
MVC Model View Controller
SDK Software Development Kit
UI User Interface
xRM eXtended Relationship Management
x
9. General Introduction
I
n today`s competitive business environment, organizations are in a constant race
to increase protability, retain current customers and gain new ones. Customer
Relationship Management aims at building a strong long-term relationship that keeps
customers coming back repeatedly. CRM is a system that allows an organization to
reach out and interact with its current and future customers.
Within this context, we conducted our Graduation Project in Business Decision
Tunisia Company and during which our main task was to design, implement and
integrate a Microsoft Dynamics CRM Loyalty module that helps partners (Retailers)
to reward their customers for past purchases and to provide them with incentives for
making future purchases.
First we need to focus on capabilities of Dynamics CRM in maintaining customer
relationship. Second, we will develop our loyalty management system with its two
modules: Conguration module, and Loyalty program module. Finally, we have to fo-
cus on customer interaction by developing an external customer web portal to facilitate
the access for the end-user to his prole.
The report is composed of ve chapters organized as follows: In the rst chapter,
entitled Project Context, we will start by describing the general frame of the project:
introducing the host company and describing the project context. In the second chap-
ter, entitled Preliminary Study, we will dene some CRM concepts that would be
helpful in the understanding of our work, give a comparison between the existent solu-
tions and justify the choices made during the project. The third chapter is dedicated
to express the requirements analysis and specication. In the fourth chapter we will
detail the design of our solution. We conclude with the nal chapter which is devoted
to implementing the solution.
1
11. CHAPTER 1. PROJECT CONTEXT
Introduction
This chapter provides the context and the circumstances in which this project has been
carried out. Throughout this chapter, we will try to put this project in its general
framework. We will focus on presenting the host organism and the project context.
1.1 Presentation Of the Host Company
In this section we will present Business Decision Group and its activities, after
that we will deep focus on Business Decision Tunisia, the host company where this
graduation project is done, we will present its global activities and major partners.
1.1.1 Business Decision Group
1.1.1.1 General Presentation
Business Decision (frequently called BD) is an international consulting and sys-
tems integration company with its global headquarters in Paris, France. The group
specializes in Business Intelligence (BI), Customer Relationship Management (CRM),
e-Business and Enterprise Information Management (EIM) among other areas. Busi-
ness Decision has a presence in 15 countries and employs more than 2500 people
worldwide.[1]
1.1.1.2 Activities
Business Decision has worked for over 2100 clients globally. Some of its major
activities include:
1. Decision making and enterprise performance: Analytics, Business Intelligence,
Performance Management and Big Data (65% of revenue)
2. E-Business: Digital Business, Web Marketing, Search Engine Optimization (SEO),
on-line strategy, e-commerce, hosting and data warehouse (18% of revenue)
3. Customer Relationship Management: CRM front oce, marketing campaigns
management, interactive marketing, analytical CRM (17% of revenue)
4. Digital Transformation: Business consultancy approach and focus on innovative
technologies.[2]
1.1.2 Business Decision Tunisia
1.1.2.1 Presentation
Our project was realized within Business and Decision Tunisia, subsidiary of the group
Business and Decision, exercising the same activities as those of the group and being
3
12. CHAPTER 1. PROJECT CONTEXT
situated in the Berges du Lac I in Tunis. Business and Decision Tunisia was cre-
ated in 2000. It exercises all the activities of the group Business and Decision with
companies in the MENA (Middle East and North Africa) region and intervenes on
large-scale projects at the local and European level. The team consists of consultants
as well as experts in the eld of the New Information technologies and of Commu-
nications (NITC). Furthermore, Business and Decision Tunisia works as platform of
development and oshore integration at France, Luxembourg, Switzerland, Belgium,
England, Morocco, Cameroon and Algeria. All these resources met to place Business
and Decision Tunisia as leader on the Tunisian market of Business Intelligence (BI)
and of the Customer Relationship Management (CRM), but also as works on solutions
of the e-Business, the Enterprise Information Management (EIM), Business Adminis-
tration as well as the Management Consulting. Today, Business and Decision Tunisia
counts more than 180 consultants and experts. [3]
1.1.2.2 Structure
The administrative department of Business and Decision Tunisia which takes care of
the head oce of the company consists of six under departments :
• A Financial department
• A Commercial department
• A Marketing department
• A Human Resources department
• A Testing - Quality department
• And Business Units department
1.1.2.3 Partners
Business Decision has a reputation for functional and technological expertise and
has forged partnerships with all of the key technology vendors.
• Microsoft Gold Partner: Microsoft is a Business Decision strategic partner.
Business Decision has more than 220 employees who are trained on and en-
tirely dedicated to Microsoft Business Intelligence, Microsoft Dynamics GP, Mi-
crosoft Dynamics CRM, Identity Management, Microsoft SharePoint solutions
and Development tools.
• Oracle Platinum Partner: Oracle and Business Decision partnership grew
stronger.
Today, many technology areas constitute this partnership's backbone:
ˆ Business Intelligence and the performance management, with the Oracle Business
Intelligence (OBI) and Hyperion oerings.
4
13. CHAPTER 1. PROJECT CONTEXT
• CRM, with the leading market product (Siebel) and its CRM SaaS (Software as
a Service) [4]
1.2 Project Context
In this section, we will introduce the general problematic and our way to resolve it.
1.2.1 Statement Of The Problem
Within the rapid expanding literature of relationship marketing, businesstobusiness
marketing and customer relationship management, there is relatively little attention
paid to the value of the organization oered by such business strategies. Neglect-
ing customer relationships has led a lot of organization to have a reducing count of
customers in their customer data base.
1.2.2 Project Description
Within this context, we conducted our Graduation Project which was done in Business
Decision Tunisia Company and during which our main task consists in the design,
implementation and integration of a Dynamics CRM Loyalty solution that help orga-
nizations (Partners) to maintain one-to-one relationship with their customers.
First, we need to integrate a customizable loyalty module in Dynamics CRM to be
personalized by partners to meet their business needs: congure their products, prices,
promotions, marketing campaign and to congure their loyalty program preferences:
admission criteria, accrual rules, reward rules and redemption rules. The second part
of our work will be devoted for developing an external customer web portal, which will
be used by partner's customers to register online and manage their accounts, redeem
reward points, review transactions history, refer their friends, and claim for eventual
problems.
1.2.3 Project Management Methodology
We choose SCRUM as our agile methodology, which is a lightweight process for man-
aging and controlling software and product development in rapidly changing environ-
ments [15]. This choice is based on many reasons such:
This choice is based on many reasons such:
• Iterative, incremental process
• Team-based approach
• Developing systems products with rapidly changing requirements
• Controls the chaos of conicting interest and needs
5
14. CHAPTER 1. PROJECT CONTEXT
1. Scrum Process
Scrum follows, in general, this common process:
• Sprint Planning Meeting
• Sprint
• Daily Scrum
• Sprint Review Meeting
We can resume Scrum's basic concepts in the following Figure: [15]
Figure 1.1: Scrum Functionalities
1.3 Project Timeline
Project Timeline The internship was from February 1
st
to May 31, 2016. During this
period we have followed a sequence of well-dened steps. Some of them were launched
in parallel such as Project Documentation and the requirements specication. The aim
was to clearly arrange, with a convenient manner, the progress that had been made
throughout the project. As shown in the gure 1.2 below, we used a timeline to make
happen all of this steps.
6
16. CHAPTER 1. PROJECT CONTEXT
Conclusion
In this chapter we presented in the rst section, the host company and its key ac-
tivities and business areas. Moreover, the global project description was dened and
highlighted as well as the project methodology followed by the team. Once the required
tasks are outlined, the next chapter will deal with some concepts and theoretical knowl-
edge related to the customer relationship management, since they dene the perimeters
of this solution.
8
18. CHAPTER 2. PRELIMINARY STUDY
Introduction
In this chapter, we rst introduce some useful concepts and theoretical knowledge
in order to facilitate the understanding of the upcoming work. We present a study
between the existent solutions and a detailed description of the solution that we are
proposing.
2.1 Customer Relationship Management Components
CRM is a system that manages information about customers. In last few years it
has become a crucial data source for many companies worldwide. The company has
to monitor the interactions with customers through several communication channels.
Business activities are also monitored by CRM systems and that helps to meet customer
requirements and needs. The business processes are supported by CRM software and
internal workows can automate some jobs as payment of the invoice, notifying expired
contract or birthday wishes.[20]
There are a number of dierent components of Customer Relationship Management
that are essential to run an organization towards success. CRM's essentials components
can be summarized in the following gure.
Figure 2.1: Components of CRM
2.1.1 Sales Force Automation
This component is undertaken by the maximum business organizations. It includes
forecasting, recording sales processing as well as keeping a track of the potential in-
teractions. Some of the major elements of the same are Lead Management, Account
10
19. CHAPTER 2. PRELIMINARY STUDY
Management, Opportunity Management, Forecasting, Pipeline Analysis, Contact Man-
agement, Activity Management, Email Management and Reporting. [20]
2.1.2 Marketing Automation
Marketing involves implementing strategies in order to sell the product. CRM assists
in the marketing process by enhancing and improving the eectiveness of the strategies
used for marketing and promotion. This is done by making an observation and study
of the potential customers. Some of the major elements of marketing are List Manage-
ment, Campaign Management, Activity Management, Document Management, Call
Management, Mass Emails and Reporting. [20]
2.1.3 Customer Service Management
One of the more known feature about CRM is the Customer Care Service , which
allows to manage and track customer service activity in the organization. The customer
service functionality is broken down into two main function sets: service management
and service scheduling [6] .
Overall, each of the discussed components of CRM is very essential to improve the
work structure as well as the market response to the business and their products.e.
2.2 Microsoft Dynamics CRM
Microsoft Dynamics CRM is Microsoft`s CRM solution for retailers, large and mid-size
organizations.Dynamics CRM system drives sales productivity, marketing eectiveness
and service excellence through social insights, workow-driven processes and tight
integration with Microsoft Oce applications. The business solution is available in
the cloud, on-premises as well as a hybrid combination. Dynamics CRM is also a
platform used to build solutions that cater to specic business need. [5]
2.2.1 Microsoft Dynamics CRM Modules
Microsoft Dynamics CRM has three main capabilities which can be summarized in the
following table:
Sales Operations Marketing Operations Customer Service Operations
Account Management Campaign Management Account Management
Contact Management Lead Management Contact Management
Lead Management Social Engagement Contract Management
Product Management Marketing List Management Case Management
Quotation Management Resource Management
Opportunity Management Knowledge Management
Table 2.1: Dynamics CRM Capabilities
11
20. CHAPTER 2. PRELIMINARY STUDY
In order to cater with organizations business needs, Dynamics CRM platform is
based on four modules: Sales, Marketing and Service Modules, besides its three func-
tional modules, Dynamics CRM architecture is based on a platform called xRM which
mostly dedicated to .Net developer in order to extend the CRM functionalities. [25]
Figure 2.2: Microsoft Dynamics CRM Modules
2.2.2 Microsoft Dynamics xRM Platform
2.2.2.1 General Overview
Unlike most CRM solutions, Microsoft Dynamics CRM does not only focus on Sales,
Marketing, and Service sectors, a platform called xRM has also been developed which
enables partners to use its proprietary (.NET based) framework to customize special
functions and features dedicated to all kinds of requirements and industries, or create
a completely new complex line of business application [22].
2.2.2.2 The Detailed Architecture
he most obvious advantage is that the Microsoft Dynamics CRM platform comes with a
number of in-the-box entities and applications that are immediately usable.Microsoft
Dynamics CRM includes the following features for any XRM application: Security,
Workow, Reporting, Data modeling and Web Services [7]. We present in the gure
2.3 the xRM platform architecture.
12
21. CHAPTER 2. PRELIMINARY STUDY
Figure 2.3: Dynamics xRM Platform Architecture
In this part we will detail in this part the main xRM platform components : The
Business Entity Components and the Extentsibility Model showed in the gure 2.3
2. Business Entity Components
The Business Entity part of the platform is responsible for creating domain-specic
objects. These objects are created in response to instructions from the Application
platform, ultimately from the MS Dynamics standard UI or from customization code.
Except for reports, every application that interacts with Dynamics CRM does so
through Web services in the Dynamics xRM platform. This includes the Workow tools
and solutions created by ISVs(Independent Solutions Vendors) The platform layer is
providing the entire infrastructure required to implement a complete Dynamics CRM
(or Extended CRM) application. [10]
3. Domain and Business Logic
This layer contains the components for an application. However, the interaction
between these domain specic objects implements more extensible business logic
for the organization. We can apply business logic at the platform through Work-
ow processes and Plugins, or through the UI using Dialogs or event scripts on
Forms.
(a) Workows:
Dynamics CRM Workow enables us to create automated business processes at
the platform layer. Workow processes perform actions based on rules set up
by the business. Workow processes are triggered by events within Dynamics
CRM when specic actions are performed and specied conditions are met. The
13
22. CHAPTER 2. PRELIMINARY STUDY
Workows apply the business logic using built in steps or by allowing developers
to add their own custom code to carry out a step.
(b) Plugins:
Plugins are extension points made available by the Dynamics CRM platform.
There is a published set of events that a Plugin can subscribe to. As part of the
subscription, a developer must specify an event handler, which is a segment of
customized code that runs in response to the system event. [23]
The gure 2.4 illustrate the MS Dynamics xRM 's Business Logic architecture.
Figure 2.4: MS Dynamics CRM Workows Architecture
4. The Extensible Model
Dynamics CRM customizer can interact with the platform through code, the
UI, custom reports etc. Dynamics CRM platform removes the complexity that
developers may otherwise have to deal with and provides a rich environment for
customizing the application. The gure 2.5 explains the most available features
for developer to extend Dynamics CRM.
14
23. CHAPTER 2. PRELIMINARY STUDY
Figure 2.5: MS Dynamics CRM Extensible Model
2.2.2.3 Microsoft Dynamics xRM Solution Architecture:
Solutions act as a container to hold the comprehensive set of components that make
up an application's customization. Solutions are authored, packaged and maintained
as a single unit of software. Going forward each customization in the system will be
done in the context of a solution. Solution can include a number of dierent types of
components: Schema, UI, Analytics, Process, Code, Template and Security .[18, 23]
CRM solutions dier in its business services, otherwise the majority of CRM so-
lution follows the following architecture explained in gure 2.6, CRM web services
form the controller area here, the three cylinders marked below form the database
layer.Other components can also be classied into separate tiers.
15
24. CHAPTER 2. PRELIMINARY STUDY
Figure 2.6: Dynamics xRM Custom Solution Components
2.3 Loyalty Management System
In this section we will dene the scope of Loyalty management systems, investigate
the existent CRM market solution which led us to conclude the fundamental lines in
our solution.
2.3.1 Denition
Loyalty programs are specically designed to reward customers for past purchases and
to provide them with incentives for making future purchases. A rewards program
enables retention, cross-selling, and increased customer penetration while providing a
strong value proposition to the customer. These programs can also help rms drive
protable customer behaviour, enhance consumer spending, and provide valuable data
on consumer trends. [26]
2.3.2 Existent Solutions
Studying the existent solutions is an essential step in order to develop a robust product.
That's why we began our assessment by studying the CRM market solutions. To make
our comparison more valuable for the project, we focus only on the loyalty solution
providers that are based on Microsoft Dynamics CRM as it is the technology used in
this project, as well as Dynamics CRM is missing such module.
16
25. CHAPTER 2. PRELIMINARY STUDY
2.3.2.1 TCS Loyalty Management Solution for Airlines Industry
TCS MS Dynamics CRM Loyalty Management Solution for the airlines industry au-
tomates the process of accrual and redemption management of travel miles earned by
the customer along with the ticket booking procedure. This helps the airline manage
loyalty members through direct interaction, using a customer loyalty portal. The end-
customer is equipped with self-service options to manage travel miles, ticketing, and
check-in, redeem miles, upgrade from one level to another based on miles earned [21].
TCS 'Loyalty Management Solution covers only the airlines industry.
2.3.2.2 VeriTouch Loyalty Management Solution Banking
VeriTouch Loyalty Management solution provides an engine that manage simultane-
ously multiple sources, such as transactions, deposits, loans, various payment methods,
along with multiple campaigns and merchants [24]. VeriTouch Loyalty Management
solution is designated for banking sector, so it consists on the redemption of Banks
clients only.
2.3.2.3 Ignify Loyalty Management Solution
Ignify's Loyalty Program provides functionalities that helps marketers manage data
and turn into useful Marketing analytic. In additionLoyalty Management, Ignify's
Customer Portal allows customers to access and update their account information, see
award balances, redeem awards on their online accounts, and also supports mobile [12].
2.3.3 Existent solutions Comparison
Although the existent CRM market solutions cover a lot of loyalty management system
needs, every solution has its distinguished feature as well as its drawbacks. In order to
facilitate the comparison between these solutions we are going to make the following
features comparison table that deal with every solution's functionalities and target
industry.
17
26. CHAPTER 2. PRELIMINARY STUDY
Solution Business
Rules Setup
Loyalty
Program
Options
Web Portal
Access
Industry
Sector
TCS
Dene tiers,
accrual and
redemption rules
Join loyalty
programs
- Airlines
VeriTouch
Reversal
Redeem from
dierent
channels
Bonus based on
tier, segment,
target
External Partner
Redemption
Banking
Ignify Customer Award
Management
Award
Management
Rules for
Customer
Rewards
Web portal
support for
customers and
partner
Retailers
Table 2.2: Loyalty management solutions comparison
2.3.4 Our solution
A loyalty management system needs to evolve the right mix of program funding options
and redemption options in order to become not only self-sustaining but also protable.
A typical loyalty management system is composed of various operational parameters
such as transaction types, program design, and funding options. It also includes value
parameters such as redemption options, redemption thresholds, and earn rates. The
solution that we are aiming to develop is a gathering of a multitude of features that still
not existent in the CRM Market, it has to cover the most of industry sectors (Retailers,
Banking, Airlines, etc.) and be the simple to customize to meet the partner's business
needs. Their most important features are :
• Members enrollment : Dene admission rules for customer subscription
• Member prole management : Let customer manage his prole in a customer
web-portal
• Dene tiers, accrual and redemption rules
• Loyalty program conguration : Dene a set of conguration parameters to make
a personalized loyalty program without any need of development
• Business processes management : Sales Processes, Customer Incidents, Market-
ing Campaigns
18
27. CHAPTER 2. PRELIMINARY STUDY
Conclusion
In this chapter we presented rst the CRM's basic concept. After that we dened
some needed theoretical knowledge. Then we compared the existent market solutions
and described our own application. The upcoming chapter is devoted for detailing the
requirements analysis and specication.
19
29. CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Introduction
Understanding and detailing the clients' needs represents a crucial task in our work.
Misreading them may lead to developing an application that doesn't match the partners
expectations. In the upcoming sections we are going to detail the functional and the
non-functional requirements of the system. In the rst section of this chapter we are
going to identify the actors and the services that the application must provide them
with.
3.1 Requirements Analysis
In this part, we will identify the actors and detail the functional and non-functional
needs that the application must fulll.
3.1.1 Actors Identication
Our solution is destined for two categories of users: End User Client (Customer), and
the Partner's Loyalty Program Manager (Loyalty Manager)
• Customer: The actual customer that purchases the service
• Loyalty Manager : A CRM System Customizer who is responsible to manage
Loyalty programs
3.1.2 Functional Requirements
The system is composed of four main modules: Loyalty Program Conguration Mod-
ule, Accrual and Redemption Rules Management Module, Customer Loyalty Portal
Management Module and Processes Automation Module. Each one of these modules
has its own required functionalities presented below.
3.1.2.1 Loyalty Program Conguration Module
The system should allow Loyalty Manager to :
• Set up partner's business needs, it should include the possibility to manage dis-
count, product catalog, price list, promotions, marketing campaigns, etc.
• Enable/Disable features that he would to include in the loyalty program such as
:
£ Catalog, Products, Card category, concerned by loyalty program
£ Qualied points : points which is earned only after purchasing products and
are responsible to qualify customer card category
21
30. CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
3.1.2.2 Accrual and Redemption Rules Management Module
The system should allow Loyalty Manager to:
• Dene earning rules to identify the activities that a customer must complete to
earn rewards. It should also dene redemption rules to identify when and how a
customer can redeem rewards, such as :
£ Earning is based on either product quantity purchased or order total amount
value
£ If rules set to order amount value, he can setup up points calculation is
based on xed range or variable range
• Set up the types of rewards that the company wants to oer in the loyalty pro-
grams and track participation in the loyalty programs.
• Link personal loyalty cards to loyalty group card to enable the pool of loyalty
points from multiple cards and redeem them.
• View the points awarded to each Customer.
3.1.2.3 Customer Loyalty Portal Management Module
The system should give the Customer the possibility to:
• Join Loyalty Program
• Update Prole
• See a list of all used up points with the justication and expiration dates
• Redeem rewards
• Claim for missing transaction
• Refer others persons
• Transfer his points to another customer
3.1.2.4 Processes Automation Module
This module is based on the set of xed rules to automate the execution of following
processes:
• Automatically award points based on a set of rules, in SalesOrder fulllment for
example.
• Automatically subtract points based on a set of rules,for example when the sales
agent cancel a Sales Order or the customer execute a Points Redemption Order.
22
31. CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
• Track the dates of expiration and mark the remaining points of each Customer
as expired after expiration date has passed.
• Notify the Customer for the remaining points a few days before they expire.
3.1.3 Non Functional Requirements
In addition to its functional requirements, the developed solution must guarantee the
following features
• Reliability: the application must perform the required functionalities.
• Maintainability: the solution has to be easily maintained in order to maximize
the eciency, reliability and safety of the project and cope with the upcoming
needs.
• Security: the solution must have factors that protect it from accidental or mali-
cious access, use, modication, destruction or disclosure, based on Security Roles
• Ergonomics: the user interface needs to be modern and user friendly. It should
be intuitive and contain a balanced number of elements
23
32. CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
3.2 Requirements Specication
This part of the chapter will be devoted to illustrating the functional behavior of the
application through the use case diagrams and their description.
To best clarify our business needs, we separate our use cases diagrams in two global
diagrams: Loyalty Customer global use case diagram and Loyalty Manager global use
case diagram. After that each global use cases will be detailed in more specic use
cases.
3.2.1 Customer Use Case Diagram
This section will depict the global functionalities oered by our solution for the rst
category of users: Loyalty Customer.
3.2.1.1 Loyalty Customer - Global Use Case
The gure 3.1 the Customer's Global Use Case. The Authentication Provider here is
an external system that manage access credentials, it can be any access management
system, in our case we use Microsoft's Active Directory.
Figure 3.1: Loyalty Customer - Global Use Case Diagram
After joining a loyalty program, the customer can manage his account and points.
The table 3.1 describe the use case textually.
24
33. CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Use Case Name Global Use Case
Participating Actors Loyalty Customer
Pre-conditions
• Customer need to be authenticated
• Customer must be enrolled in a loyalty program
Flow of events
1. Customer view his earned points, redeem them or transfer
them.
2. Customer update his prole
Alternative ows None
Post-conditions None
Table 3.1: Loyalty Customer - Global Use Case Description
The upcoming gures represent a renement of the Global Use Case.
3.2.1.2 Loyalty Customer - Points Management Use Case
The gure 3.2 details the Customer's Point Management Use Case.
Figure 3.2: Loyalty Customer - Points Management Use Case Diagram
After joining a loyalty program, the customer can manage his account, buy more
points to reach other card category, view his earned points for future purchase of
products. The customer can check for his points expiration date. The solution must
give to the customer the possibility to redeem his points in any possible reward: get
discount, choose a gift, transform his points in balance, or simply purchased new
products.The table 3.2 describe the use case textually.
25
34. CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Use Case Name Points Management
Participating Actors Loyalty Customer
Pre-conditions
• Customer need to be authenticated
• Customer must be enrolled in a loyalty program
Flow of events
1. Customer earn points by :
(a) Purchasing products, he will gain more Qualied
points
(b) Purchasing points
(c) Receiving points transfer
(d) Refer another person Referral bonus
(e) Enroll in loyalty program Welcome bonus
2. Customer redeem his points by :
(a) Purchasing orders
(b) Receive special discount, gifts or balance
Alternative ows • None
Post-conditions
• If the customer's qualied points exceed category threshold :
£ Update customer category
£ Update customer bonus multiplicator
Table 3.2: Loyalty Customer - Points Management Use Case Description
3.2.1.3 Loyalty Customer - Prole Management Use Case
The gure 3.3 details the Customer's Prole Management Use Case.
26
35. CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Figure 3.3: Loyalty Customer - Prole Management Use Case Diagram
After joining a loyalty program, the customer can update his prole, show the
transaction history, he can also claim for possible missing transaction by sending a
customer case to the customer service, also the customer can refer another person by
sending him an email of referral. The table 3.3 describe the use case textually.
27
36. CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Use Case Name Prole Management
Participating Actors Loyalty Customer
Pre-conditions
• Customer need to be authenticated
• Customer must be enrolled in a loyalty program
Flow of events
1. Customer update his prole
2. Customer show the transaction history
3. Customer send an email of referral
Alternative ows
• Transaction missing
£ Customer can claim for possible missing transaction by
sending a customer case management to the customer
services
Post-conditions
If the receiver person enroll-in a loyalty program, the customer
will receive a bonus of points
Table 3.3: Loyalty Customer - Prole Management Use Case Description
3.2.2 Loyalty Manager Use Case Diagram
This section will depict the global functionalities oered by our solution for the second
category of users: Loyalty Manager (partner's system customizer).
3.2.2.1 Loyalty Manager - Global Use Case
The gure 3.4 details the Loyalty Manager's Global Management Use Case.
Figure 3.4: Loyalty Manager - Global Use Case Diagram
28
37. CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
After the authentication, a user with a Loyalty Manager Security Role or System
Customizer Security Role can access to the system preferences section to set up the
loyalty program prerequisites : such as set up admission rules, accrual and redemption
rules, promotions rules as well as set up the enterprise business activity needs : such
as product catalog, currency, price list, etc.The table 3.4 describe the use case textually.
Use Case Name Global Use Case
Participating Actors Loyalty Manager
Pre-conditions
• Loyalty Manager need to be authenticated
• Loyalty Manager select an activated Loyalty Program
Flow of events
1. Loyalty Manager congure Business rules
2. Loyalty Manager chose desired Reward features
Alternative ows
• Detect of missing conguration step :
£ Ask for completion
£ Default Value applied
Post-conditions
• Start loyalty processes execution
• Create new loyalty program
Table 3.4: Loyalty Manager - Global Use Case Description
The upcoming gures represent a renement of the Global Use Case.
3.2.2.2 Loyalty Manager - Customer Reward Management Use Case
The gure 3.5 details the Loyalty Manager's Customer Reward Management Use Case.
29
38. CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Figure 3.5: Loyalty Manager - Customer Reward Management Use Case Diagram
After the authentication step, loyalty manager can set up customer reward man-
agement rules by dening:
• Points attribution method either by product prices purchased or by the quantity
of products purchased.
• Gifts catalog products: gifts can be either a product from the sales catalog, or a
standalone product.
• Reward type: loyalty manager can set up a list of predened reward for customer
redemption such as a discount, product purchasing or a balance.
The table 3.5 describe the use case textually.
30
39. CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Use Case Name Customer Reward Management
Participating Actors Loyalty Manager
Pre-conditions
• Loyalty Manager need to be authenticated
• Loyalty Manager select an activated Loyalty Program
Flow of events
1. Loyalty Manager set up points attribution method:
(a) Amount of purchased products prices
(b) Amount of purchased products quantities
2. Loyalty Manager set up gifts catalog products, gifts can be:
(a) Product from the product catalog
(b) Standalone product
3. Loyalty Manager set up reward type:
(a) Predened reward
(b) Product purchasing
Alternative ows None
Post-conditions None
Table 3.5: Loyalty Manager - Customer Reward Management Use Case Description
3.2.2.3 Loyalty Manager - Business Rules Management Use Case
The gure 3.6 details the Loyalty Manager's Customer Reward Management Use Case.
31
40. CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Figure 3.6: Loyalty Manager - Business Rules Management Use Case Diagram
After the authentication step, the loyalty manager can set up loyalty program
business rules to meet the company's business needs and its loyalty strategy, he can
set up:
• List of products, product catalog concerned by the loyalty program (congure,
enable or disable for each product)
• Qualied points feature enabling : points that qualies customer card category
• Card category threshold : as each card category has its type (Basic, Silver, Gold
or Platinum) the loyalty manager can set up each category threshold which must
be reached by the customer to change loyalty status.
• The rule of purchased point, applied when customer purchase points (the pur-
chased points value must be greater than their value in an earning condition)
• Products points value and it's eventually expiration date calculation formula :
duration, prexed date, etc.
• Target loyalty program either it is designated to individual person or to an en-
terprise/group.
The table below describe the use case textually.
32
41. CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Use Case Name Business Rules Management
Participating Actors Loyalty Manager
Pre-conditions
• Loyalty Manager need to be authenticated
• Loyalty Manager select an activated Loyalty Program
Flow of events
1. Loyalty Manager set up list of products, product catalog,
product bundles concerned by the loyalty program
2. Loyalty Manager set up card category threshold :(Basic, Sil-
ver, Gold or Platinum)
3. Loyalty Manager set up :
(a) Products points' value
(b) Points expiration date calculation formula
(c) The rule of purchased point
4. Loyalty Manager set up target loyalty program :
(a) Individual
(b) Group
Alternative ows
1. Loyalty Manger skip card threshold:
• Set up Default Value applied
2. Loyalty Manger skip point validity:
• Set up No Expiration date
3. Loyalty Manger skip target loyalty program:
4. Set up Target set to : Individual
Post-conditions Loyalty Program process started
Table 3.6: Loyalty Manager - Business Rules Management Use Case Description
Conclusion
Throughout this chapter, we gave a detailed description for the essential requirement
that must be fullled in the dierent component of our solution. Also we specify the
dierent functionalities that must be ensured by the client web portal. In the next
chapter, we start highlighting the overall and detailed design adopted for this solution.
33
43. CHAPTER 4. DESIGN
Introduction
After detailing in the previous chapter the required functionalities to be developed in
our application, this part of the report is devoted for characterizing the used design.
Creating an ecient design would not only facilitate the realization of the project
but also ensure the satisfaction of the recommended needs. We present in the rst
part of this chapter the overall design which describes the architecture that we have
leant towards and a conceptual diagram englobing all the functional components of
the project. Regarding the second part of the chapter, it is dedicated for the detailed
design. A set of business diagrams are illustrated for showing the structural and
behavioral views.
4.1 Overall Design
In order to eectively customize Microsoft Dynamics CRM, we must rst have good
understanding of the application's architecture. The system's architecture inuences
how and where we can customize the system components [25]. In this section we
compare rst the existent architectures and we present our adopted architecture. After
that we present the Architecture Diagram englobing all the modules of our application.
4.1.1 Design Architectures
The key to understanding the Microsoft Dynamics CRM architecture as it relates
to customization is the CRM platform. One way to understand the value of the
Dynamics CRM Version 4.0 platform is to contrast it with the Client-Server (two-
tier) architecture that has been around for more than two decades. Otherwise, with
launch of Dynamics CRM Version 7.0 the architecture has fully changed to multi-tiers
architecture. In this part of this section, we detail the two architectures here and we
present the adopted architecture.
4.1.1.1 Client-Server Architecture of Dynamics CRM
In Dynamics CRM's old version architecture, most of the application logic is found
in the client. The client processes the information and the server is typically just
the database that processes transactions and stores the data. The services that the
database provides may be unappreciated now that users have become accustomed to
them. The client/server architecture has many shortcomings and there is only so much
that a database designed for general use can provide. The gure 4.1 details the CRM
4.0's two-tiers architecture.
35
44. CHAPTER 4. DESIGN
Figure 4.1: MS Dynamics CRM 4.0 Client-Server Architecture
4.1.1.2 Multi-Tier Architecture of Dynamics CRM
1. General Overview
The new version of Dynamics CRM is a web-based application that uses a multi-tier
architecture. This structure provides many benets that support scalability, exibility,
and extensibility that cannot be matched using client-server architecture.
In this multi-tier design, the Dynamics CRM platform serves as an intermediary
between the software developer and the database. It provides a set of CRM specic
APIs that not only handles interaction with the database, but also provides all the
building blocks for the Dynamics CRM application [14]. The global Dynamics CRM
architecture can be modeled in the gure 4.2:
36
45. CHAPTER 4. DESIGN
Figure 4.2: MS Dynamics CRM General Multi-Layer Architecture
2. Dynamics CRM's Model-View-Controller (MVC ) architectural pattern
The Model-View-Controller (MVC) pattern separates the modeling of the do-
main, the presentation, and the actions based on user input into three separate
classes [25].
(a) Model: The model manages the behavior and data of the application do-
main.
(b) View : The view manages the display of information.
(c) Controller : The controller interprets use actions, informing the model and/or
the view to change as appropriate.
As a design approach Dynamics CRM architecture is clearly having this layering
in place:
(a) CRM-Model-Layer : Dynamics CRM has a separate SQL layer which takes
care of database related operations which constitutes the model layer for
CRM.
37
46. CHAPTER 4. DESIGN
(b) CRM-View-Layer : Implemented as ASPX pages, the presentation layering
in CRM is implemented separately and product gives us features to imple-
ment forms, views, etc. with Guided User Interface.
(c) CRM-Controller-Layer : It is a mix of standard controller: web service calls,
product does on itself for out-of-box functionalities. But, it also lets us
extend them via Plugins, Workows, Actions, etc.
4.1.1.3 The Adopted Architecture
In order to meet the need for scalability, maintainability, to ensure better reuse and to
improve data integrity, we opt for the multi-tier architecture with its MVC architectural
pattern.
Our solution will have to the following conceptual architecture explained in gure
4.3.
38
48. CHAPTER 4. DESIGN
We can easily distinguish the three layer :
• Presentation Layer: Our presentation layer is rely on a multitude of organization
services, retrieved from the Service Layer and the the Authentication provider
to serve client apps requests. We opt for Restful Web Services
1
[8] , to exchange
data (Create, Retrieve, Update and Delete) with the server, and we use SOAP
2
[8] to perform operations that the REST endpoint is not yet capable of like
executing remote developed Plugins or Fetch data request.
• Service Layer: Our service layer is built on top of the Business Layer, it is
composed mainly of the four modules discussed on, 3.1.2 on Chapter III. This
modules are deployed between the CRM Backend Server whichis responsible for
backend services and the Client Frontend WebPortal application which main task
is to provide additional services for the end customer, it rely on the developed
xRM services which will be detailed in the next section in the WebPortal class
diagram. This layer relies on the Business Layer to provide the needed business
logic.
• Business Layer: This layer is responsible for all the business logic. It is built
on top of a robust Business Workow layer, that rely on Windows Workow
Foundation
3
[9] to develop custom business process like Plugin, Dialogues and
Business Process Flows. It communicate with the Data Layer through the
application of the Facade design pattern
4
to perform business operations.
• Data Layer: It uses Dynamics CRM's out-of-the-box business entities, our Loy-
alty solution Custom entities and our Conguration entities. Our Data Layer's
main role is to provide data to the the business layer.
4.1.2 Design Methodologies
A common question asked regarding Microsoft Dynamics CRM upgrades is how do
we go from CRM 4.0-2011 , which are both primarily data driven, to CRM 7.0-2015,
which are a lot more process-driven.. [18]
4.1.2.1 Data Driven Design: (DDD)
Data-driven programming is a programming paradigm in which the program state-
ments describe the data to be matched and the processing required [10]
1RESTful systems typically communicate over the Hypertext Transfer Protocol with the same
HTTP verbs to exchange data with a remote servers.
2Originally an acronym for Simple Object Access protocol, is a protocol specication for exchanging
structured information in the implementation of web services in networks. It uses XML Information
Set for its message format, and relies on other application layer protocols.
3The Microsoft .NET Framework platform contains the Windows Workow Foundation (WF),
which enables building sequential and state-driven workow capabilities into the existing applications.
4Facade pattern hides the complexities of the system and provides an interface to access the system
40
49. CHAPTER 4. DESIGN
4.1.2.2 Process Driven Design: (PDD)
In Dynamics CRM we can dene and enforce consistent business processes. Consistent
processes helps us to focus on our work and not on remembering to perform a set
of manual steps. Microsoft Dynamics CRM provides several options to dene our
processes.
There are four categories of processes we can utilize in Dynamics CRM:
1. Workows
Workows are typically initiated by system events so the user does not need to be aware
that they are running. Workows can operate in the background (asynchronously) or
in real-time (synchronously).
2. Dialogs
Create a user interface that will guide people through a script for customer interaction
or a wizard to perform complex actions consistently.
3. Actions
Expand the vocabulary available for developers to express business processes.
4. Business Process Flows
Business process ows are used to dene the steps in which people should enter data
to achieve an outcome.
4.1.2.3 The Adopted Design Methodology
We will adopt the Process-Driven methodology as we will customize many system
business process like Lead to Contact Process, Quote to Invoice Process, etc. Also,
will we use .Net plugin to extend sales process functionalities for three main purposes
:
• Calculate points when submitting sales order
• Update points when canceling sales order
• Update card category when card qualied points changed
Moreover we will use custom real-time Workows to customize some business process
such as sending referral emails, notifying customer with remaining points validity, or
sending customer cases requests to customer service.
Furthermore, to more control user actions and facilitates some manual task such
validating required form elds, start new registration process or respond to customer
incidents we will using guided dialog.
41
50. CHAPTER 4. DESIGN
4.2 Detailed Design
In this upcoming sections, we detail the Business Layer described in the gure 4.3.
Firdt ,we start by display the Loyalty Business Entities schema that we described in
our conceptual architecture. Second, we illustrate also the mainly important Business
Workow Diagram covering all the business ows generated in the system. Finally,
we present the client portal class diagram corresponding to the adopted architecture
described in the gure 4.3.
4.2.1 Business Entities
We will dene here the Business Entities Model as well as we will detail the entities
schema for our solution.
4.2.1.1 General Overview
Business entities are used to model and manage business data in Microsoft Dynamics
CRM. An entity has a set of attributes and each attribute represents a data item of a
particular type. The entities are divided into three categories: system, business, and
custom. [19, 23]
As a developer working with business data, we will use business and custom entities.
System entities are used by Microsoft Dynamics CRM to handle all internal processes,
such as workows and asynchronous jobs. We can add custom entities to Dynamics
CRM to address specic business needs of the organization.
4.2.1.2 Business Entities schema
The gure 4.4 display the important business entities for the developed Loyalty Solu-
tion, we can identify each business entities category with the key colors code beside
the schema. Technical, security and setting attributes are removed here to keep the
diagram readable.
42
51. CHAPTER 4. DESIGN
Figure 4.4: Entities Relationship Diagram
4.2.2 Business Workows
In order to explain more the dierent interactions between the system and others
actors, we will use the functional process ows. As Dynamics CRM is based on a
sophisticated business process engine, we try to identify in each step the several action
done and executed process.
4.2.2.1 Enrollment Functional Process
We will explain in the gure 4.5 the registration process for new or existent user as
well as the enrollment in a Loyalty program, the registration is done by lling-in a
registration form either online in the customer web-portal or in partner's oce with
paper, the registration cannot proceed only if the Loyalty manager conrm it.
43
53. CHAPTER 4. DESIGN
4.2.2.2 Purchase orders Functional Process
The gure 4.6 details all possible steps for the purchasing process, which can be reached
either online from customer web-portal or in the partner store from the Sales Area
in Dynamics. The sales person will create the order guided by the Quote-to-Order
system process and the calculation of points will be done in a transparency manner.
Figure 4.6: Purchase orders Functional Process
4.2.2.3 Earning points Functional Process
Either purchasing products, receiving loyalty points by a transfer or buying points, the
customer with a valid loyalty card can earn points and enhance his loyalty. The gure
4.7 display the dierent business rules being applied (update card category, points
45
54. CHAPTER 4. DESIGN
validity, etc.) to meet the partner's need.
Figure 4.7: Earning points Functional Process
4.2.2.4 Redeeming points Functional Process
After earning some loyalty points, the customer can redeem their by either purchasing
other products or receive gift-products, which are already added by the loyalty man-
ager. The customer will have the possibility for points simulation.The gure 4.8 will
explain more the redemption process as well as the creation of Points Redemption
Order.
46
55. CHAPTER 4. DESIGN
Figure 4.8: Redeeming points Functional Process
4.2.3 Web Portal Class Diagram
The gure 4.9 present the web portal application's class UML diagram that follow the
designed architecture. We can distinguish the dierent application layer similar to the
CRM backend server's layers.
47
56. CHAPTER 4. DESIGN
Figure 4.9: WebPortal Class Diagram
Conclusion
In this chapter we presented and described the Overall and Detailed Design. We started
by studying the existent architectures, design methodology and choose the best that
t our needs. In the second section, we detailed our architecture, listed the entities
relationships and gave the most signicant functional processes ows. The upcoming
chapter is devoted for displaying the results of the achieved work.
48
57. Chapter 5
Achievements
Introduction
This chapter allows us to present the achieved work. First, we detail the implementa-
tion of our Loyalty solution modules in the Dynamics CRM Server. Then we present
the Loyalty Client WebPortal developed module. In both, we present the used tech-
nologies in order to justify our choices, as well as we display the dierent scenarios of
our application.
5.1 CRM Server Backend Implementation
In this section, we present our Loyalty solution FIDEO 's backend modules imple-
mentation in a Dynamics CRM 2016 server. We begin by choosing the most suitable
deployment option, then we discuss the development tools used to accelerate the im-
plementation process. After presenting the technical choice,we display for each module
the dierent possible scenarios.
5.1.1 Technical Choice
5.1.1.1 Deployment Option
Dynamics CRM 2016 can be hosted in three dierent deployment : On-Premise, On-
Line or on an Internet Facing Deployment (IFD) Hosted Deployment. To choose
the most suitable approach, we have elaborated the following comparison table. The
columns corresponding to the deployment options and the rows listing the most im-
portant features.
49
58. CHAPTER 5. ACHIEVEMENTS
ON-PREMISE HOSTED (IFD) ONLINE
Customization Yes Yes Yes
Configuration Yes Yes Yes
Scripting Yes Yes Yes
Client Extensions Yes Yes Yes
Plug-ins Yes Partner specic No
Workflow Yes Partner specic No
Web Services Yes Yes Yes
Authentication Yes No No
Custom Reports Yes Yes No
Table 5.1: Deployment Comparison for Microsoft Dynamics CRM 2016
Given the need to extend system business process and the need to implement our
custom workows , we have chosen the on-premise deployment as the development en-
vironment, besides our production environment will be an on-line hosting to minimize
the maintenance task.
5.1.1.2 Development Tools
1. Software Development Kit (SDK) for Microsoft Dynamics CRM Online and CRM
2016
The SDK contains a wealth of resources, including code samples, which are designed
to help us build powerful vertical applications using the Microsoft Dynamics CRM
platform. It is a guide for developers writing solutions, server-side code, client appli-
cations and extensions, custom business logic, plug-ins, integration modules, custom
workow modules and more. The SDK contains an architectural overview of Microsoft
Dynamics CRM, the entity model, security model, web services, and sample code [11].
2. Plugin Registration Tool
Plug-ins and custom workow activities are custom code that you develop to extend the
existing functionality of Microsoft Dynamics CRM. Before a plug-in or custom workow
activity can be used, it must be registered with the server. We can programmatically
register plug-ins and custom workow activities with Microsoft Dynamics CRM 2016
(on-premises) by writing registration code using certain SDK classes. However, to ease
the learning curve and to speed up development and deployment of custom code, a
plug-in and custom workow activity registration tool is included in Bin folder of the
SDK [16].
50
59. CHAPTER 5. ACHIEVEMENTS
Figure 5.1: Plugin Registration Tool
3. Dynamics CRM Developer Extensions
The goal of this project is to be a free alternative to the CRM Developer Toolkit that
shipped with the Dynamics CRM 2011 2013 SDK. Currently it contains project
and item templates to help jump start the development process, code snippets, a tool
to search for CRM related MSDN content, and tooling to assist with managing and
deploying web resources, plug-ins, and reports. [13].
In order to develop a our plugins, we have used the Plugin project template to
develop our plugins, also we have tested the developed plugin with the Plugin test
project template.
4. XrmToolBox
XrmToolBox is an application that can connect to Microsoft Dynamics CRM 2011,
2013, 2015 and 2016 (Online, OnPremise of IFD). It is shipped with more than 20
plugins to handle several administration, customization or conguration tasks. One of
the great point about XrmToolBox is its capability to welcome external plugins written
by other developers, just by implementing specic part of XrmToolBox code [17].
51
60. CHAPTER 5. ACHIEVEMENTS
We have used this grate tool in most development scenarios such managing web
resources (JavaScript, HTML, Images), automatic plugin deployment and solution
components management. The following gure display the most common used plugins
in XrmToolBox.
Figure 5.2: XrmToolBox
5. Dynamics CRM 2016 Solution Manager
A CRM solution is a le that you can import to apply a set of customization. The
gure 5.3 shows our solution FIDEO structure.
Figure 5.3: FIDEO - Solution Structure
52
61. CHAPTER 5. ACHIEVEMENTS
After implementation of the solution , we must integrate it in Dynamics CRM
ribbon through the customization of the sitemap, the gure 5.4 present our solution
FIDEO 's new ribbon area with their dierent menus.
Figure 5.4: FIDEO - Main Area
5.1.2 Loyalty Program Conguration Module
In this part, we will describe the dierent conguration steps must be taken to congure
a new Loyalty Program. First, the loyalty manager must enable the desired features
for the new created loyalty program. Then, after the loyalty manager conrm his
enrollment demand, the customer desired to enroll in the loyalty program will be
associated to its recently created card.
5.1.2.1 Loyalty Features Activation
As discussed in the 3.1.2.1, the Loyalty Program Conguration module let the Loyalty
Manager to enable/disable loyalty features like product, catalog, earning rule, etc. We
present the gure 5.5 the dierent features that the Loyalty Manager can enables.
Those features will aect the Accrual and Redemption module.
53
62. CHAPTER 5. ACHIEVEMENTS
Figure 5.5: FIDEO - Loyalty Program Features Activation
If the Loyalty Manager wants to activate the Purchasing Point feature, that let
customer pay an amount of money to purchase points, so the Loyalty Manager can set
up the conversion formula. The gure 5.6 shows an example of this feature in which
the customer has to pay 1.5 TND for purchasing 1 point.
Figure 5.6: FIDEO - Loyalty Point Purchasing Formula
5.1.2.2 Loyalty Card Association
Also the Loyalty Manager has to aect Loyalty card and Group Loyalty card to the
customer desire to enroll-in a loyalty program, the gure 5.7 an example of Loyalty
Card with its Group card association.
54
63. CHAPTER 5. ACHIEVEMENTS
Figure 5.7: FIDEO - Loyalty Card
5.1.3 Accrual and Redemption Rules Management Module
5.1.3.1 Accrual Process Scenario
To meet the partner's needs , we give the possibility to choose the point attribution
method either by product purchased , shown in the gure 5.8, or by order amount
value presented in the gure 5.9 .
For the product conguration, the manager has to choose the Product Catalog,
the Product, after that he specify for that product the Quantity Range and its
corresponding points value.
55
64. CHAPTER 5. ACHIEVEMENTS
Figure 5.8: FIDEO - Product Manager
For the amount conguration, we give the possibility to choose the desired calcula-
tion method, either by a xed range, for example here when an order have an amount
of of 100 TND, the customer will receive 5000 points if the Fixed Range feature is
activated, otherwise, he will receive for each dinar spent one point, which is equivalent
in our case to 300 points.
56
65. CHAPTER 5. ACHIEVEMENTS
Figure 5.9: FIDEO - Amount Manager
After conguring the desired accrual options, the Loyalty Program processes start,
and the the customer can purchase product to earn points. The gure 5.10 display an
earning points scenario when customer with a loyalty card group purchase an order,
we show to the sales agent only card owned by the selected customer.
57
66. CHAPTER 5. ACHIEVEMENTS
Figure 5.10: FIDEO - Earning Points Order
After order execution, the parent card like our case here will receive point, otherwise
the selected card will receive points. The gure 5.11 show the result of purchasing this
order on the parent card after the execution of the OrderFulllment Plugin.
Figure 5.11: FIDEO - Earning Points Order Card Update
Otherwise, the customer decide to cancel the purchased order, before their trans-
formation in invoice, we give the exibility to intercept this system process (Order
to Invoice) by the CancelOrder Plugin. The gure 5.12 display the result of the
cancellation of the previous order.
Figure 5.12: FIDEO - Earning Points Cancel Order Card Update
In order to enhance customer loyalty we give the possibility to choose the best
suitable card category threshold, like the example shown in the gure 5.13. In this
case, the Silver category is congured to have 5000 points threshold and a 1.5 points
multiplicator.
58
67. CHAPTER 5. ACHIEVEMENTS
Figure 5.13: FIDEO - Card Category Setup
When purchasing an order that have point value exceeded the card category thresh-
old, like the order shown in the gure 5.14.
Figure 5.14: FIDEO - Basic Card Order
The card category will be updated automatically due to the execution of the Card-
CategoryUpdate Plugin, the gure 5.15 display the result of the execution of the pre-
vious order.
59
68. CHAPTER 5. ACHIEVEMENTS
Figure 5.15: FIDEO - Basic Card Update to Silver
5.1.3.2 Redemption Process Scenario
After earning an amount of loyalty points, the customer can redeem his points by
submitting a Redemption Order to the sales agent. The gure 5.16 display a example
of a redemption order.
Figure 5.16: FIDEO - Redemption Order
After a redemption order execution, the customer card Earned Points will be
updated as well as his Redeemed Points, the gure 5.17 display the result of the
execution of the previous order.
60
69. CHAPTER 5. ACHIEVEMENTS
Figure 5.17: FIDEO - Redeeming Points Order Card Update
Otherwise, the customer card points dosen't t the order's total points, like the
card presented in the gure 5.18.
Figure 5.18: FIDEO - Redemption Needed Amount Card
The gure 5.19. display the response of server plugin after the execution of the
order that exceed customer's card points with 5 points dierence. So the customer is
asked to pay the amount needed calculated based on conguration rule.
61
70. CHAPTER 5. ACHIEVEMENTS
Figure 5.19: FIDEO - Redemption Needed Amount Order
If the customer pay the amount needed, the order will be executed, the gure 5.20
display the result of the execution of the previous order.
Figure 5.20: FIDEO - Redemption Needed Amount Order Execution
62
71. CHAPTER 5. ACHIEVEMENTS
5.1.4 Processes Automation Module
We present in this part the dierent SDK messages, explained in 4.1.1.2 -3, begin
processed by the the Loyalty Plugins in response to CRM Server workows in order to
extends system processes as well as the most important business rules applied either
to control user action or to automate some business service like sending email or track
user activities.
5.1.4.1 Loyalty Business Process
In order to automate regular task : Notify customer, Send Referral Emails, Notify
Loyalty Manager, we use Dynamics CRM's built-in process manager to extends our
business needs. The gure 5.21 display the dierent steps taken to make an email
notier for customers whose loyalty card validity will be expire in one month.
Figure 5.21: FIDEO - Notify Point Validity Email Business Process Overview
The gure 5.22 display the automatic generic email template.
63
72. CHAPTER 5. ACHIEVEMENTS
Figure 5.22: FIDEO - Notify Point Validity Email Busines Process Detail
5.1.4.2 Loyalty Business Rules
The gure 5.23 display an overview of dierent activated workow .
64
73. CHAPTER 5. ACHIEVEMENTS
Figure 5.23: FIDEO - Processes Overview
5.2 CRM Client Web Portal Implementation
This section will present the Customer Loyalty Portal Management module 's most
common scenarios executed by the customer from his online account. As we consider
this module as an optional feature in the our loyalty solution which is stell under test
for the security and protability reasons, we present themost important scenarios.
5.2.1 Web Portal Project Structure
We present in the gure 5.24 the WebPortal project structure.
65
74. CHAPTER 5. ACHIEVEMENTS
Figure 5.24: FIDEO - Web Portal Project Structure
5.2.2 Web Portal Scenarios
1. Customer Prole Management
The gure 5.25 display the customer prole.
Figure 5.25: FIDEO - Web Portal User Login
66
75. CHAPTER 5. ACHIEVEMENTS
We give to the customer the possibility to edit his prole. The gure 5.26 illustrate
the update action.
Figure 5.26: FIDEO - Web Portal User Prole Update
2. Customer Order Management
When the customer submit an online order description by ll in the order description,
the sales agent in the CRM Server backend, will receive the submitting order as shown
in the gure 5.27.
Figure 5.27: FIDEO - Web Portal User Order Received
He start by ll in the asked products, if customer doesn't valid his order in X days
the order will be canceled automatically. The gure 5.28 display the order received.
67
76. CHAPTER 5. ACHIEVEMENTS
Figure 5.28: FIDEO - Web Portal User Order Fulllment
After validating his order the customer card will be updated as being explained in
previous section.
Conclusion
In this chapter we have described in the rst place the CRM server backend modules
implementation, after that we go through the Client WebPortal module, in both we
began by detailing our technological choices. Then we illustrated our achievements
using several screenshots.
68
77. General Conclusion
Throughout this report, we presented the several steps taken to design and implement
a CRM Loyalty solution integrated in MS Dynamics CRM platform.
In order to guarantee the understanding of the required theoretical knowledge, we
have begun our project by demystifying the needed concepts. This was followed by
a comparison between the existing solutions which allowed us to do a deep Market
research.
Starting from this evaluation we xed the goals , detailed and specied the require-
ments that our application need to aord. After that we studied multiple architectures
for the sake of opting for the right choice. Then we described the global and detailed
design of our solution which was illustrated by dierent diagrams.
Along the implementation phase, we faced a lot of challenges. We had at the begin-
ning to discover new concepts related to Workows implementation and integration.
We had also to get familiar with the new solution framework of Dynamics CRM 2016
and its customization feature. Then, we go through the implementation of a robust
Web Portal to facilitate the customer interaction. Finally we had to integrate our work
to Business Decision online deployment. We presented the result of our work through
screenshots and it was preceded by a description of the work technical environment.
For the short term perspectives, we can enhance the customer tracking by launching
more accurate targeting campaign based on customer activities. We can also allow the
user to simulate the redemption operation online to estimate the needed points. For
the long term perspectives, we can add other conguration features to cover more
industry sectors like Banking.
Above all, research and development never stops, new things are being discovered
and ideas sooner or later come to the developer's minds.
69
78. Bibliography
[1] Business Decision, . URL https://en.wikipedia.org/wiki/Business__
Decision. Consulted the 18 of February 2016.
[2] Business Decision Group, . URL http://group.businessdecision.com/.
Consulted the 18 of February 2016.
[3] Business Decision Tunisia, . URL http://www.businessdecision.tn. Con-
sulted the 19 of February 2016.
[4] Business Decision Tunisia Partners, . URL http://www.businessdecision.
tn/752-partenaires.htm. Consulted the 18 of February 2016.
[5] Microsoft Dynamics CRM, . URL https://www.microsoft.com/en-us/
dynamics/CRM.aspx. Consulted the 22 of February 2016.
[6] Customer Service Management, . URL http://crmbook.powerobjects.com/
basics/service-management-overview/. Consulted the 24 of February 2016.
[7] An Introduction to XRM for a .NET Developer. URL https://msdn.microsoft.
com/en-us/library/ee830281(v=crm.6).aspx. Consulted the 25 of March 2016.
[8] CRM SOAP VS REST, March 2015. URL https://community.dynamics.
com/crm/b/zsoltzombiksblog/archive/2015/03/09/crm-soap-vs-rest. Con-
sulted the 18 of April 2016.
[9] Microsoft Corporation. Write workows to automate business processes. URL
https://msdn.microsoft.com/en-us/library/gg328264.aspx. Consulted the
28 of April 2016.
[10] Microsoft Corporation. Microsoft CRM Product Architecture. Microsoft Corpora-
tion, April 2003.
[11] Microsoft Corporation. Software Development Kit for Microsoft Dynamics CRM
2016 (on-premises), 2016. URL https://msdn.microsoft.com/en-us/library/
hh547453.aspx. Consulted the 31 of March 2016.
[12] Ignify. Loyalty Management with Microsoft Dynamics CRM. Ignify, 2014.
70
79. CHAPTER 5. ACHIEVEMENTS
[13] Jason Lattimer. Dynamics CRM Developer Extensions, April
2016. URL https://visualstudiogallery.msdn.microsoft.com/
0f9ab063-acec-4c55-bd6c-5eb7c6cffec4. Consulted the 24 of March
2016.
[14] T. Arisawa M. Beckner. Microsoft Dynamics CRM API Development. Apress,
October 2013.
[15] M. Masunov V. Filippov M. Belkina, J. Schiller. SCRUM Agile Project Man-
agement, April 2006. URL http://wwwmayr.in.tum.de/konferenzen/Jass06/
courses/3/presentations/Scrum.ppt.
[16] Mic. Register and Deploy Plug-Ins, 2016. URL https://msdn.microsoft.com/
en-us/library/gg309620.aspx. Consulted the 26 of March 2016.
[17] MscrmTools. XrmToolBox, 2015. URL http://www.xrmtoolbox.com/. Con-
sulted the 08 of April 2016.
[18] M. Pal. Microsoft Dynamics CRM 2015 Application Design. Packt Publishing
Ltd, 2015.
[19] D. Kapadia V. Phadkay. Microsoft Dynamics CRM Customization Essentials.
Packt Publishing Ltd, 2014.
[20] M. Taylor. CRM Customer Relationship Management, September 2014. URL
http://crm.walkme.com/components-customer-relationship-management/.
Consulted the 23 of February 2016.
[21] Tata Consultancy Services (TCS). MS Dynamics CRM Loyalty Management
Solution.
[22] M. J. Wolenik R. Vardhan. Microsoft Dynamics CRM 4 Integration UN-
LEASHED. Pearson Education, Inc, October 2009.
[23] D. Varghese. Microsoft Dynamics CRM 2011 Applications (MB2-868) Certica-
tion Guide. Packt Publishing Ltd, April 2013.
[24] Veripark. VeriTouch Loyalty Management Solution Banking.
[25] M. J. Wolenik. Microsoft Dynamics CRM 2013 UNLEASHED. Pearson Educa-
tion, Inc, April 2014.
[26] R. Yadav. Next Generation of Loyalty Management Systems : Trends, Challenges
and Recommendation, 2012.
71