SlideShare a Scribd company logo
1 of 79
Download to read offline
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
Contents
List Of Figures vii
List Of Tables ix
Nomenclature x
General Introduction 1
1 Project Context 2
1.1 Presentation Of the Host Company . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Business & Decision Group . . . . . . . . . . . . . . . . . . . . 3
1.1.1.1 General Presentation . . . . . . . . . . . . . . . . . . . 3
1.1.1.2 Activities . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Business & Decision Tunisia . . . . . . . . . . . . . . . . . . . . 3
1.1.2.1 Presentation . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2.2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2.3 Partners . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Project Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Statement Of The Problem . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Project Description . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3 Project Management Methodology . . . . . . . . . . . . . . . . 5
1.3 Project Timeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Preliminary Study 9
2.1 Customer Relationship Management Components . . . . . . . . . . . . 10
2.1.1 Sales Force Automation . . . . . . . . . . . . . . . . . . . . . . 10
2.1.2 Marketing Automation . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.3 Customer Service Management . . . . . . . . . . . . . . . . . . 11
2.2 Microsoft Dynamics CRM . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.1 Microsoft Dynamics CRM Modules . . . . . . . . . . . . . . . . 11
2.2.2 Microsoft Dynamics xRM Platform . . . . . . . . . . . . . . . . 12
2.2.2.1 General Overview . . . . . . . . . . . . . . . . . . . . . 12
2.2.2.2 The Detailed Architecture . . . . . . . . . . . . . . . . 12
2.2.2.3 Microsoft Dynamics xRM Solution Architecture: . . . 15
CONTENTS
2.3 Loyalty Management System . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.2 Existent Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.2.1 TCS Loyalty Management Solution for Airlines Industry 17
2.3.2.2 VeriTouch Loyalty Management Solution Banking . . . 17
2.3.2.3 Ignify Loyalty Management Solution . . . . . . . . . . 17
2.3.3 Existent solutions Comparison . . . . . . . . . . . . . . . . . . . 17
2.3.4 Our solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Requirements Analysis and Specication 20
3.1 Requirements Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.1 Actors Identication . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.2 Functional Requirements . . . . . . . . . . . . . . . . . . . . . . 21
3.1.2.1 Loyalty Program Conguration Module . . . . . . . . 21
3.1.2.2 Accrual and Redemption Rules Management Module . 22
3.1.2.3 Customer Loyalty Portal Management Module . . . . . 22
3.1.2.4 Processes Automation Module . . . . . . . . . . . . . . 22
3.1.3 Non Functional Requirements . . . . . . . . . . . . . . . . . . . 23
3.2 Requirements Specication . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.1 Customer Use Case Diagram . . . . . . . . . . . . . . . . . . . . 24
3.2.1.1 Loyalty Customer - Global Use Case . . . . . . . . . . 24
3.2.1.2 Loyalty Customer - Points Management Use Case . . . 25
3.2.1.3 Loyalty Customer - Prole Management Use Case . . . 26
3.2.2 Loyalty Manager Use Case Diagram . . . . . . . . . . . . . . . . 28
3.2.2.1 Loyalty Manager - Global Use Case . . . . . . . . . . . 28
3.2.2.2 Loyalty Manager - Customer Reward Management Use
Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.2.3 Loyalty Manager - Business Rules Management Use Case 31
4 Design 34
4.1 Overall Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.1 Design Architectures . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.1.1 Client-Server Architecture of Dynamics CRM . . . . . 35
4.1.1.2 Multi-Tier Architecture of Dynamics CRM . . . . . . . 36
4.1.1.3 The Adopted Architecture . . . . . . . . . . . . . . . . 38
4.1.2 Design Methodologies . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1.2.1 Data Driven Design: (DDD) . . . . . . . . . . . . . . . 40
4.1.2.2 Process Driven Design: (PDD) . . . . . . . . . . . . . 41
4.1.2.3 The Adopted Design Methodology . . . . . . . . . . . 41
4.2 Detailed Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.1 Business Entities . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.1.1 General Overview . . . . . . . . . . . . . . . . . . . . . 42
4.2.1.2 Business Entities schema . . . . . . . . . . . . . . . . . 42
4.2.2 Business Workows . . . . . . . . . . . . . . . . . . . . . . . . . 43
v
CONTENTS
4.2.2.1 Enrollment Functional Process . . . . . . . . . . . . . 43
4.2.2.2 Purchase orders Functional Process . . . . . . . . . . . 45
4.2.2.3 Earning points Functional Process . . . . . . . . . . . 45
4.2.2.4 Redeeming points Functional Process . . . . . . . . . . 46
4.2.3 Web Portal Class Diagram . . . . . . . . . . . . . . . . . . . . . 47
5 Achievements 49
5.1 CRM Server Backend Implementation . . . . . . . . . . . . . . . . . . . 49
5.1.1 Technical Choice . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1.1.1 Deployment Option . . . . . . . . . . . . . . . . . . . 49
5.1.1.2 Development Tools . . . . . . . . . . . . . . . . . . . . 50
5.1.2 Loyalty Program Conguration Module . . . . . . . . . . . . . . 53
5.1.2.1 Loyalty Features Activation . . . . . . . . . . . . . . . 53
5.1.2.2 Loyalty Card Association . . . . . . . . . . . . . . . . 54
5.1.3 Accrual and Redemption Rules Management Module . . . . . . 55
5.1.3.1 Accrual Process Scenario . . . . . . . . . . . . . . . . . 55
5.1.3.2 Redemption Process Scenario . . . . . . . . . . . . . . 60
5.1.4 Processes Automation Module . . . . . . . . . . . . . . . . . . . 63
5.1.4.1 Loyalty Business Process . . . . . . . . . . . . . . . . . 63
5.1.4.2 Loyalty Business Rules . . . . . . . . . . . . . . . . . 64
5.2 CRM Client Web Portal Implementation . . . . . . . . . . . . . . . . . 65
5.2.1 Web Portal Project Structure . . . . . . . . . . . . . . . . . . . 65
5.2.2 Web Portal Scenarios . . . . . . . . . . . . . . . . . . . . . . . . 66
General Conclusion 69
Bibliography 70
vi
List of Figures
1.1 Scrum Functionalities . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Project Timeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1 Components of CRM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Microsoft Dynamics CRM Modules . . . . . . . . . . . . . . . . . . . . 12
2.3 Dynamics xRM Platform Architecture . . . . . . . . . . . . . . . . . . 13
2.4 MS Dynamics CRM Workows Architecture . . . . . . . . . . . . . . . 14
2.5 MS Dynamics CRM Extensible Model . . . . . . . . . . . . . . . . . . 15
2.6 Dynamics xRM Custom Solution Components . . . . . . . . . . . . . . 16
3.1 Loyalty Customer - Global Use Case Diagram . . . . . . . . . . . . . . 24
3.2 Loyalty Customer - Points Management Use Case Diagram . . . . . . 25
3.3 Loyalty Customer - Prole Management Use Case Diagram . . . . . . . 27
3.4 Loyalty Manager - Global Use Case Diagram . . . . . . . . . . . . . . . 28
3.5 Loyalty Manager - Customer Reward Management Use Case Diagram . 30
3.6 Loyalty Manager - Business Rules Management Use Case Diagram . . . 32
4.1 MS Dynamics CRM 4.0 Client-Server Architecture . . . . . . . . . . . 36
4.2 MS Dynamics CRM General Multi-Layer Architecture . . . . . . . . . 37
4.3 Loyalty Solution Conceptual Architecture . . . . . . . . . . . . . . . . 39
4.4 Entities Relationship Diagram . . . . . . . . . . . . . . . . . . . . . . 43
4.5 Enrolment Functional Process . . . . . . . . . . . . . . . . . . . . . . . 44
4.6 Purchase orders Functional Process . . . . . . . . . . . . . . . . . . . . 45
4.7 Earning points Functional Process . . . . . . . . . . . . . . . . . . . . 46
4.8 Redeeming points Functional Process . . . . . . . . . . . . . . . . . . . 47
4.9 WebPortal Class Diagram . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.1 Plugin Registration Tool . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2 XrmToolBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3 FIDEO - Solution Structure . . . . . . . . . . . . . . . . . . . . . . . 52
5.4 FIDEO - Main Area . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.5 FIDEO - Loyalty Program Features Activation . . . . . . . . . . . . 54
5.6 FIDEO - Loyalty Point Purchasing Formula . . . . . . . . . . . . . . 54
5.7 FIDEO - Loyalty Card . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.8 FIDEO - Product Manager . . . . . . . . . . . . . . . . . . . . . . . 56
LIST OF FIGURES
5.9 FIDEO - Amount Manager . . . . . . . . . . . . . . . . . . . . . . . 57
5.10 FIDEO - Earning Points Order . . . . . . . . . . . . . . . . . . . . . 58
5.11 FIDEO - Earning Points Order Card Update . . . . . . . . . . . . . 58
5.12 FIDEO - Earning Points Cancel Order Card Update . . . . . . . . . 58
5.13 FIDEO - Card Category Setup . . . . . . . . . . . . . . . . . . . . . 59
5.14 FIDEO - Basic Card Order . . . . . . . . . . . . . . . . . . . . . . . 59
5.15 FIDEO - Basic Card Update to Silver . . . . . . . . . . . . . . . . . 60
5.16 FIDEO - Redemption Order . . . . . . . . . . . . . . . . . . . . . . . 60
5.17 FIDEO - Redeeming Points Order Card Update . . . . . . . . . . . . 61
5.18 FIDEO - Redemption Needed Amount Card . . . . . . . . . . . . . . 61
5.19 FIDEO - Redemption Needed Amount Order . . . . . . . . . . . . . 62
5.20 FIDEO - Redemption Needed Amount Order Execution . . . . . . . 62
5.21 FIDEO - Notify Point Validity Email Business Process Overview . . 63
5.22 FIDEO - Notify Point Validity Email Busines Process Detail . . . . . 64
5.23 FIDEO - Processes Overview . . . . . . . . . . . . . . . . . . . . . . 65
5.24 FIDEO - Web Portal Project Structure . . . . . . . . . . . . . . . . 66
5.25 FIDEO - Web Portal User Login . . . . . . . . . . . . . . . . . . . . 66
5.26 FIDEO - Web Portal User Prole Update . . . . . . . . . . . . . . . 67
5.27 FIDEO - Web Portal User Order Received . . . . . . . . . . . . . . . 67
5.28 FIDEO - Web Portal User Order Fulllment . . . . . . . . . . . . . . 68
viii
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
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
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
Chapter 1
Project Context
Contents
1.1 Presentation Of the Host Company . . . . . . . . . . . . . 3
1.1.1 Business  Decision Group . . . . . . . . . . . . . . . . . . . 3
1.1.2 Business  Decision Tunisia . . . . . . . . . . . . . . . . . . . 3
1.2 Project Context . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Statement Of The Problem . . . . . . . . . . . . . . . . . . . 5
1.2.2 Project Description . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3 Project Management Methodology . . . . . . . . . . . . . . . 5
1.3 Project Timeline . . . . . . . . . . . . . . . . . . . . . . . . . 6
2
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
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
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
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
CHAPTER 1. PROJECT CONTEXT
Figure 1.2: Project Timeline
7
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
Chapter 2
Preliminary Study
Contents
2.1 Customer Relationship Management Components . . . . . 10
2.1.1 Sales Force Automation . . . . . . . . . . . . . . . . . . . . . 10
2.1.2 Marketing Automation . . . . . . . . . . . . . . . . . . . . . . 11
2.1.3 Customer Service Management . . . . . . . . . . . . . . . . . 11
2.2 Microsoft Dynamics CRM . . . . . . . . . . . . . . . . . . . 11
2.2.1 Microsoft Dynamics CRM Modules . . . . . . . . . . . . . . . 11
2.2.2 Microsoft Dynamics xRM Platform . . . . . . . . . . . . . . . 12
2.3 Loyalty Management System . . . . . . . . . . . . . . . . . 16
2.3.1 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.2 Existent Solutions . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3 Existent solutions Comparison . . . . . . . . . . . . . . . . . 17
2.3.4 Our solution . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9
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
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
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
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
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
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
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
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
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
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
Chapter 3
Requirements Analysis and
Specication
Contents
3.1 Requirements Analysis . . . . . . . . . . . . . . . . . . . . . 21
3.1.1 Actors Identication . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.2 Functional Requirements . . . . . . . . . . . . . . . . . . . . . 21
3.1.3 Non Functional Requirements . . . . . . . . . . . . . . . . . . 23
3.2 Requirements Specication . . . . . . . . . . . . . . . . . . . 24
3.2.1 Customer Use Case Diagram . . . . . . . . . . . . . . . . . . 24
3.2.2 Loyalty Manager Use Case Diagram . . . . . . . . . . . . . . 28
20
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
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
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
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
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
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
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
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
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
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
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
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
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
Chapter 4
Design
Contents
4.1 Overall Design . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.1 Design Architectures . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.2 Design Methodologies . . . . . . . . . . . . . . . . . . . . . . 40
4.2 Detailed Design . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.1 Business Entities . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.2 Business Workows . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2.3 Web Portal Class Diagram . . . . . . . . . . . . . . . . . . . . 47
34
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
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
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
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
CHAPTER 4. DESIGN
Figure 4.3: Loyalty Solution Conceptual Architecture
39
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
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
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
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
CHAPTER 4. DESIGN
Figure 4.5: Enrolment Functional Process
44
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

More Related Content

What's hot

Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webRapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webSalma Gouia
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développementDonia Hammami
 
réaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testréaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testahmed oumezzine
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiDonia Hammami
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITLina Meddeb
 
Rapport PFE réalisation d’un Framework Kinect
Rapport PFE réalisation d’un Framework KinectRapport PFE réalisation d’un Framework Kinect
Rapport PFE réalisation d’un Framework KinectAmine MEGDICHE
 
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...Nawres Farhat
 
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...
Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...Hajer Dahech
 
Rapport de sprint finale (All Project part)
Rapport de sprint finale (All Project part)Rapport de sprint finale (All Project part)
Rapport de sprint finale (All Project part)Ghodbane Heni
 
Rapport de Mémoire Master Recherche
Rapport de Mémoire Master RechercheRapport de Mémoire Master Recherche
Rapport de Mémoire Master RechercheRouâa Ben Hammouda
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
Conception et réalisation d'une application mobile cross-platform "Taki Academy"
Conception et réalisation d'une application mobile cross-platform "Taki Academy"Conception et réalisation d'une application mobile cross-platform "Taki Academy"
Conception et réalisation d'une application mobile cross-platform "Taki Academy"Ibtihel El Bache
 
Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Mohamed Aziz Chetoui
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Nawres Farhat
 

What's hot (20)

PFE .NET CRM
PFE .NET CRMPFE .NET CRM
PFE .NET CRM
 
iRecruite
iRecruiteiRecruite
iRecruite
 
Rapport
RapportRapport
Rapport
 
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webRapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développement
 
réaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testréaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de test
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
 
Rapport PFE réalisation d’un Framework Kinect
Rapport PFE réalisation d’un Framework KinectRapport PFE réalisation d’un Framework Kinect
Rapport PFE réalisation d’un Framework Kinect
 
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
 
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...
Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...
 
Rapportpfe
RapportpfeRapportpfe
Rapportpfe
 
Rapport de sprint finale (All Project part)
Rapport de sprint finale (All Project part)Rapport de sprint finale (All Project part)
Rapport de sprint finale (All Project part)
 
Rapport de Mémoire Master Recherche
Rapport de Mémoire Master RechercheRapport de Mémoire Master Recherche
Rapport de Mémoire Master Recherche
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
Pfe psi gribiss bouchta
Pfe psi gribiss bouchtaPfe psi gribiss bouchta
Pfe psi gribiss bouchta
 
Conception et réalisation d'une application mobile cross-platform "Taki Academy"
Conception et réalisation d'une application mobile cross-platform "Taki Academy"Conception et réalisation d'une application mobile cross-platform "Taki Academy"
Conception et réalisation d'une application mobile cross-platform "Taki Academy"
 
software engineering
software engineeringsoftware engineering
software engineering
 
Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
 

Viewers also liked (18)

DJCV Daniel Johnston
DJCV Daniel JohnstonDJCV Daniel Johnston
DJCV Daniel Johnston
 
deklaracija - formiranje Srpskog kluba
deklaracija - formiranje Srpskog klubadeklaracija - formiranje Srpskog kluba
deklaracija - formiranje Srpskog kluba
 
AYHAM ABIAD CV
AYHAM ABIAD CVAYHAM ABIAD CV
AYHAM ABIAD CV
 
Reading 1 postgrado
Reading 1 postgradoReading 1 postgrado
Reading 1 postgrado
 
CV . CU9
CV . CU9CV . CU9
CV . CU9
 
เจนจิรา สร้อยดอกไม้
 เจนจิรา  สร้อยดอกไม้   เจนจิรา  สร้อยดอกไม้
เจนจิรา สร้อยดอกไม้
 
67 21 3_118_profile_18230
67 21 3_118_profile_1823067 21 3_118_profile_18230
67 21 3_118_profile_18230
 
TBSK
TBSKTBSK
TBSK
 
Thank you 7.23.2016
Thank you 7.23.2016Thank you 7.23.2016
Thank you 7.23.2016
 
Vocación profesional
Vocación profesionalVocación profesional
Vocación profesional
 
Unit 1 lesson 1 conv.
Unit 1 lesson 1 conv.Unit 1 lesson 1 conv.
Unit 1 lesson 1 conv.
 
Vanilla Campaign
Vanilla CampaignVanilla Campaign
Vanilla Campaign
 
Handout # 24
Handout # 24Handout # 24
Handout # 24
 
IEEEXtreme 2016
IEEEXtreme 2016IEEEXtreme 2016
IEEEXtreme 2016
 
drinkforpeace
drinkforpeacedrinkforpeace
drinkforpeace
 
Simple present simple past
Simple present simple pastSimple present simple past
Simple present simple past
 
Surveillance and Prevention of Dengue Fever in the Community
Surveillance and Prevention of Dengue Fever in the CommunitySurveillance and Prevention of Dengue Fever in the Community
Surveillance and Prevention of Dengue Fever in the Community
 
Community and Toxic Waste Management
Community and Toxic Waste ManagementCommunity and Toxic Waste Management
Community and Toxic Waste Management
 

Similar to Mohamed Elhosni PFE Report

BPM Solution Implementation Guide
BPM Solution Implementation GuideBPM Solution Implementation Guide
BPM Solution Implementation GuideFrancis Benintende
 
Ibm web sphere datapower b2b appliance xb60 revealed
Ibm web sphere datapower b2b appliance xb60 revealedIbm web sphere datapower b2b appliance xb60 revealed
Ibm web sphere datapower b2b appliance xb60 revealednetmotshop
 
Sappress service with_sap_crm
Sappress service with_sap_crmSappress service with_sap_crm
Sappress service with_sap_crmMayankk28
 
Deployment guide series ibm tivoli compliance insight manager sg247531
Deployment guide series ibm tivoli compliance insight manager sg247531Deployment guide series ibm tivoli compliance insight manager sg247531
Deployment guide series ibm tivoli compliance insight manager sg247531Banking at Ho Chi Minh city
 
Deployment guide series ibm tivoli compliance insight manager sg247531
Deployment guide series ibm tivoli compliance insight manager sg247531Deployment guide series ibm tivoli compliance insight manager sg247531
Deployment guide series ibm tivoli compliance insight manager sg247531Banking at Ho Chi Minh city
 
Deployment guide series ibm tivoli security compliance manager sg246450
Deployment guide series ibm tivoli security compliance manager sg246450Deployment guide series ibm tivoli security compliance manager sg246450
Deployment guide series ibm tivoli security compliance manager sg246450Banking at Ho Chi Minh city
 
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Banking at Ho Chi Minh city
 
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Banking at Ho Chi Minh city
 
Software Requirement Specification on Online Purchasing System
Software Requirement Specification on Online Purchasing SystemSoftware Requirement Specification on Online Purchasing System
Software Requirement Specification on Online Purchasing Systemsabafarheen
 
SW Deployment best practices
SW Deployment best practicesSW Deployment best practices
SW Deployment best practicesSyed Danish Irfan
 
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...EnriqueJoseCaleroGal
 
Managing sap upgrade_projects
Managing sap upgrade_projectsManaging sap upgrade_projects
Managing sap upgrade_projectsKishore Kumar
 
Implementation best practices for ibm tivoli license manager sg247222
Implementation best practices for ibm tivoli license manager sg247222Implementation best practices for ibm tivoli license manager sg247222
Implementation best practices for ibm tivoli license manager sg247222Banking at Ho Chi Minh city
 
Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569
Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569
Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569Banking at Ho Chi Minh city
 
Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)Priyanka Kapoor
 
Solmanfocusedbuild
SolmanfocusedbuildSolmanfocusedbuild
SolmanfocusedbuildGhassen B
 
Risk analyticsmaster
Risk analyticsmasterRisk analyticsmaster
Risk analyticsmasterMamadou Bass
 
Sg247692 Websphere Accounting Chargeback For Tuam Guide
Sg247692 Websphere Accounting Chargeback For Tuam GuideSg247692 Websphere Accounting Chargeback For Tuam Guide
Sg247692 Websphere Accounting Chargeback For Tuam Guidebrzaaap
 

Similar to Mohamed Elhosni PFE Report (20)

BPM Solution Implementation Guide
BPM Solution Implementation GuideBPM Solution Implementation Guide
BPM Solution Implementation Guide
 
Ibm web sphere datapower b2b appliance xb60 revealed
Ibm web sphere datapower b2b appliance xb60 revealedIbm web sphere datapower b2b appliance xb60 revealed
Ibm web sphere datapower b2b appliance xb60 revealed
 
Sappress service with_sap_crm
Sappress service with_sap_crmSappress service with_sap_crm
Sappress service with_sap_crm
 
Deployment guide series ibm tivoli compliance insight manager sg247531
Deployment guide series ibm tivoli compliance insight manager sg247531Deployment guide series ibm tivoli compliance insight manager sg247531
Deployment guide series ibm tivoli compliance insight manager sg247531
 
Deployment guide series ibm tivoli compliance insight manager sg247531
Deployment guide series ibm tivoli compliance insight manager sg247531Deployment guide series ibm tivoli compliance insight manager sg247531
Deployment guide series ibm tivoli compliance insight manager sg247531
 
Deployment guide series ibm tivoli security compliance manager sg246450
Deployment guide series ibm tivoli security compliance manager sg246450Deployment guide series ibm tivoli security compliance manager sg246450
Deployment guide series ibm tivoli security compliance manager sg246450
 
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
 
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
 
Software Requirement Specification on Online Purchasing System
Software Requirement Specification on Online Purchasing SystemSoftware Requirement Specification on Online Purchasing System
Software Requirement Specification on Online Purchasing System
 
SW Deployment best practices
SW Deployment best practicesSW Deployment best practices
SW Deployment best practices
 
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
 
Managing sap upgrade_projects
Managing sap upgrade_projectsManaging sap upgrade_projects
Managing sap upgrade_projects
 
Implementation best practices for ibm tivoli license manager sg247222
Implementation best practices for ibm tivoli license manager sg247222Implementation best practices for ibm tivoli license manager sg247222
Implementation best practices for ibm tivoli license manager sg247222
 
This is
This is This is
This is
 
test6
test6test6
test6
 
Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569
Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569
Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569
 
Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)
 
Solmanfocusedbuild
SolmanfocusedbuildSolmanfocusedbuild
Solmanfocusedbuild
 
Risk analyticsmaster
Risk analyticsmasterRisk analyticsmaster
Risk analyticsmaster
 
Sg247692 Websphere Accounting Chargeback For Tuam Guide
Sg247692 Websphere Accounting Chargeback For Tuam GuideSg247692 Websphere Accounting Chargeback For Tuam Guide
Sg247692 Websphere Accounting Chargeback For Tuam Guide
 

Recently uploaded

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 

Recently uploaded (20)

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 

Mohamed Elhosni PFE Report

  • 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
  • 2. Contents List Of Figures vii List Of Tables ix Nomenclature x General Introduction 1 1 Project Context 2 1.1 Presentation Of the Host Company . . . . . . . . . . . . . . . . . . . . 3 1.1.1 Business & Decision Group . . . . . . . . . . . . . . . . . . . . 3 1.1.1.1 General Presentation . . . . . . . . . . . . . . . . . . . 3 1.1.1.2 Activities . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.2 Business & Decision Tunisia . . . . . . . . . . . . . . . . . . . . 3 1.1.2.1 Presentation . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.2.2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1.2.3 Partners . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Project Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.1 Statement Of The Problem . . . . . . . . . . . . . . . . . . . . 5 1.2.2 Project Description . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.3 Project Management Methodology . . . . . . . . . . . . . . . . 5 1.3 Project Timeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2 Preliminary Study 9 2.1 Customer Relationship Management Components . . . . . . . . . . . . 10 2.1.1 Sales Force Automation . . . . . . . . . . . . . . . . . . . . . . 10 2.1.2 Marketing Automation . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.3 Customer Service Management . . . . . . . . . . . . . . . . . . 11 2.2 Microsoft Dynamics CRM . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.1 Microsoft Dynamics CRM Modules . . . . . . . . . . . . . . . . 11 2.2.2 Microsoft Dynamics xRM Platform . . . . . . . . . . . . . . . . 12 2.2.2.1 General Overview . . . . . . . . . . . . . . . . . . . . . 12 2.2.2.2 The Detailed Architecture . . . . . . . . . . . . . . . . 12 2.2.2.3 Microsoft Dynamics xRM Solution Architecture: . . . 15
  • 3. CONTENTS 2.3 Loyalty Management System . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.1 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.2 Existent Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.2.1 TCS Loyalty Management Solution for Airlines Industry 17 2.3.2.2 VeriTouch Loyalty Management Solution Banking . . . 17 2.3.2.3 Ignify Loyalty Management Solution . . . . . . . . . . 17 2.3.3 Existent solutions Comparison . . . . . . . . . . . . . . . . . . . 17 2.3.4 Our solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3 Requirements Analysis and Specication 20 3.1 Requirements Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.1.1 Actors Identication . . . . . . . . . . . . . . . . . . . . . . . . 21 3.1.2 Functional Requirements . . . . . . . . . . . . . . . . . . . . . . 21 3.1.2.1 Loyalty Program Conguration Module . . . . . . . . 21 3.1.2.2 Accrual and Redemption Rules Management Module . 22 3.1.2.3 Customer Loyalty Portal Management Module . . . . . 22 3.1.2.4 Processes Automation Module . . . . . . . . . . . . . . 22 3.1.3 Non Functional Requirements . . . . . . . . . . . . . . . . . . . 23 3.2 Requirements Specication . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.1 Customer Use Case Diagram . . . . . . . . . . . . . . . . . . . . 24 3.2.1.1 Loyalty Customer - Global Use Case . . . . . . . . . . 24 3.2.1.2 Loyalty Customer - Points Management Use Case . . . 25 3.2.1.3 Loyalty Customer - Prole Management Use Case . . . 26 3.2.2 Loyalty Manager Use Case Diagram . . . . . . . . . . . . . . . . 28 3.2.2.1 Loyalty Manager - Global Use Case . . . . . . . . . . . 28 3.2.2.2 Loyalty Manager - Customer Reward Management Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.2.3 Loyalty Manager - Business Rules Management Use Case 31 4 Design 34 4.1 Overall Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.1 Design Architectures . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.1.1 Client-Server Architecture of Dynamics CRM . . . . . 35 4.1.1.2 Multi-Tier Architecture of Dynamics CRM . . . . . . . 36 4.1.1.3 The Adopted Architecture . . . . . . . . . . . . . . . . 38 4.1.2 Design Methodologies . . . . . . . . . . . . . . . . . . . . . . . . 40 4.1.2.1 Data Driven Design: (DDD) . . . . . . . . . . . . . . . 40 4.1.2.2 Process Driven Design: (PDD) . . . . . . . . . . . . . 41 4.1.2.3 The Adopted Design Methodology . . . . . . . . . . . 41 4.2 Detailed Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.1 Business Entities . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.1.1 General Overview . . . . . . . . . . . . . . . . . . . . . 42 4.2.1.2 Business Entities schema . . . . . . . . . . . . . . . . . 42 4.2.2 Business Workows . . . . . . . . . . . . . . . . . . . . . . . . . 43 v
  • 4. CONTENTS 4.2.2.1 Enrollment Functional Process . . . . . . . . . . . . . 43 4.2.2.2 Purchase orders Functional Process . . . . . . . . . . . 45 4.2.2.3 Earning points Functional Process . . . . . . . . . . . 45 4.2.2.4 Redeeming points Functional Process . . . . . . . . . . 46 4.2.3 Web Portal Class Diagram . . . . . . . . . . . . . . . . . . . . . 47 5 Achievements 49 5.1 CRM Server Backend Implementation . . . . . . . . . . . . . . . . . . . 49 5.1.1 Technical Choice . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.1.1.1 Deployment Option . . . . . . . . . . . . . . . . . . . 49 5.1.1.2 Development Tools . . . . . . . . . . . . . . . . . . . . 50 5.1.2 Loyalty Program Conguration Module . . . . . . . . . . . . . . 53 5.1.2.1 Loyalty Features Activation . . . . . . . . . . . . . . . 53 5.1.2.2 Loyalty Card Association . . . . . . . . . . . . . . . . 54 5.1.3 Accrual and Redemption Rules Management Module . . . . . . 55 5.1.3.1 Accrual Process Scenario . . . . . . . . . . . . . . . . . 55 5.1.3.2 Redemption Process Scenario . . . . . . . . . . . . . . 60 5.1.4 Processes Automation Module . . . . . . . . . . . . . . . . . . . 63 5.1.4.1 Loyalty Business Process . . . . . . . . . . . . . . . . . 63 5.1.4.2 Loyalty Business Rules . . . . . . . . . . . . . . . . . 64 5.2 CRM Client Web Portal Implementation . . . . . . . . . . . . . . . . . 65 5.2.1 Web Portal Project Structure . . . . . . . . . . . . . . . . . . . 65 5.2.2 Web Portal Scenarios . . . . . . . . . . . . . . . . . . . . . . . . 66 General Conclusion 69 Bibliography 70 vi
  • 5. List of Figures 1.1 Scrum Functionalities . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 Project Timeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1 Components of CRM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2 Microsoft Dynamics CRM Modules . . . . . . . . . . . . . . . . . . . . 12 2.3 Dynamics xRM Platform Architecture . . . . . . . . . . . . . . . . . . 13 2.4 MS Dynamics CRM Workows Architecture . . . . . . . . . . . . . . . 14 2.5 MS Dynamics CRM Extensible Model . . . . . . . . . . . . . . . . . . 15 2.6 Dynamics xRM Custom Solution Components . . . . . . . . . . . . . . 16 3.1 Loyalty Customer - Global Use Case Diagram . . . . . . . . . . . . . . 24 3.2 Loyalty Customer - Points Management Use Case Diagram . . . . . . 25 3.3 Loyalty Customer - Prole Management Use Case Diagram . . . . . . . 27 3.4 Loyalty Manager - Global Use Case Diagram . . . . . . . . . . . . . . . 28 3.5 Loyalty Manager - Customer Reward Management Use Case Diagram . 30 3.6 Loyalty Manager - Business Rules Management Use Case Diagram . . . 32 4.1 MS Dynamics CRM 4.0 Client-Server Architecture . . . . . . . . . . . 36 4.2 MS Dynamics CRM General Multi-Layer Architecture . . . . . . . . . 37 4.3 Loyalty Solution Conceptual Architecture . . . . . . . . . . . . . . . . 39 4.4 Entities Relationship Diagram . . . . . . . . . . . . . . . . . . . . . . 43 4.5 Enrolment Functional Process . . . . . . . . . . . . . . . . . . . . . . . 44 4.6 Purchase orders Functional Process . . . . . . . . . . . . . . . . . . . . 45 4.7 Earning points Functional Process . . . . . . . . . . . . . . . . . . . . 46 4.8 Redeeming points Functional Process . . . . . . . . . . . . . . . . . . . 47 4.9 WebPortal Class Diagram . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.1 Plugin Registration Tool . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2 XrmToolBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3 FIDEO - Solution Structure . . . . . . . . . . . . . . . . . . . . . . . 52 5.4 FIDEO - Main Area . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.5 FIDEO - Loyalty Program Features Activation . . . . . . . . . . . . 54 5.6 FIDEO - Loyalty Point Purchasing Formula . . . . . . . . . . . . . . 54 5.7 FIDEO - Loyalty Card . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.8 FIDEO - Product Manager . . . . . . . . . . . . . . . . . . . . . . . 56
  • 6. LIST OF FIGURES 5.9 FIDEO - Amount Manager . . . . . . . . . . . . . . . . . . . . . . . 57 5.10 FIDEO - Earning Points Order . . . . . . . . . . . . . . . . . . . . . 58 5.11 FIDEO - Earning Points Order Card Update . . . . . . . . . . . . . 58 5.12 FIDEO - Earning Points Cancel Order Card Update . . . . . . . . . 58 5.13 FIDEO - Card Category Setup . . . . . . . . . . . . . . . . . . . . . 59 5.14 FIDEO - Basic Card Order . . . . . . . . . . . . . . . . . . . . . . . 59 5.15 FIDEO - Basic Card Update to Silver . . . . . . . . . . . . . . . . . 60 5.16 FIDEO - Redemption Order . . . . . . . . . . . . . . . . . . . . . . . 60 5.17 FIDEO - Redeeming Points Order Card Update . . . . . . . . . . . . 61 5.18 FIDEO - Redemption Needed Amount Card . . . . . . . . . . . . . . 61 5.19 FIDEO - Redemption Needed Amount Order . . . . . . . . . . . . . 62 5.20 FIDEO - Redemption Needed Amount Order Execution . . . . . . . 62 5.21 FIDEO - Notify Point Validity Email Business Process Overview . . 63 5.22 FIDEO - Notify Point Validity Email Busines Process Detail . . . . . 64 5.23 FIDEO - Processes Overview . . . . . . . . . . . . . . . . . . . . . . 65 5.24 FIDEO - Web Portal Project Structure . . . . . . . . . . . . . . . . 66 5.25 FIDEO - Web Portal User Login . . . . . . . . . . . . . . . . . . . . 66 5.26 FIDEO - Web Portal User Prole Update . . . . . . . . . . . . . . . 67 5.27 FIDEO - Web Portal User Order Received . . . . . . . . . . . . . . . 67 5.28 FIDEO - Web Portal User Order Fulllment . . . . . . . . . . . . . . 68 viii
  • 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
  • 10. Chapter 1 Project Context Contents 1.1 Presentation Of the Host Company . . . . . . . . . . . . . 3 1.1.1 Business Decision Group . . . . . . . . . . . . . . . . . . . 3 1.1.2 Business Decision Tunisia . . . . . . . . . . . . . . . . . . . 3 1.2 Project Context . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.1 Statement Of The Problem . . . . . . . . . . . . . . . . . . . 5 1.2.2 Project Description . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.3 Project Management Methodology . . . . . . . . . . . . . . . 5 1.3 Project Timeline . . . . . . . . . . . . . . . . . . . . . . . . . 6 2
  • 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
  • 15. CHAPTER 1. PROJECT CONTEXT Figure 1.2: Project Timeline 7
  • 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
  • 17. Chapter 2 Preliminary Study Contents 2.1 Customer Relationship Management Components . . . . . 10 2.1.1 Sales Force Automation . . . . . . . . . . . . . . . . . . . . . 10 2.1.2 Marketing Automation . . . . . . . . . . . . . . . . . . . . . . 11 2.1.3 Customer Service Management . . . . . . . . . . . . . . . . . 11 2.2 Microsoft Dynamics CRM . . . . . . . . . . . . . . . . . . . 11 2.2.1 Microsoft Dynamics CRM Modules . . . . . . . . . . . . . . . 11 2.2.2 Microsoft Dynamics xRM Platform . . . . . . . . . . . . . . . 12 2.3 Loyalty Management System . . . . . . . . . . . . . . . . . 16 2.3.1 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.2 Existent Solutions . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.3 Existent solutions Comparison . . . . . . . . . . . . . . . . . 17 2.3.4 Our solution . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 9
  • 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
  • 28. Chapter 3 Requirements Analysis and Specication Contents 3.1 Requirements Analysis . . . . . . . . . . . . . . . . . . . . . 21 3.1.1 Actors Identication . . . . . . . . . . . . . . . . . . . . . . . 21 3.1.2 Functional Requirements . . . . . . . . . . . . . . . . . . . . . 21 3.1.3 Non Functional Requirements . . . . . . . . . . . . . . . . . . 23 3.2 Requirements Specication . . . . . . . . . . . . . . . . . . . 24 3.2.1 Customer Use Case Diagram . . . . . . . . . . . . . . . . . . 24 3.2.2 Loyalty Manager Use Case Diagram . . . . . . . . . . . . . . 28 20
  • 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
  • 42. Chapter 4 Design Contents 4.1 Overall Design . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.1 Design Architectures . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.2 Design Methodologies . . . . . . . . . . . . . . . . . . . . . . 40 4.2 Detailed Design . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.1 Business Entities . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.2 Business Workows . . . . . . . . . . . . . . . . . . . . . . . . 43 4.2.3 Web Portal Class Diagram . . . . . . . . . . . . . . . . . . . . 47 34
  • 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
  • 47. CHAPTER 4. DESIGN Figure 4.3: Loyalty Solution Conceptual Architecture 39
  • 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
  • 52. CHAPTER 4. DESIGN Figure 4.5: Enrolment Functional Process 44
  • 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