This is a series of articles about different aspects of customization of Dynamics CRM and Salesforce. In my previous post I’ve already described security model in both systems and how it can be modified for particular business purposes. Both systems are very flexible and ready to cover the different types of customization starting from adding new fields and ending with complex workflow configuration. I will try to describe the most frequently used features briefly:
- Business model configuration: changes in existing objects/fields and creating new
- Page/Form layout configuration: particular object appearance to the different users
- Homepage layout configuration: dashboard components and their layout
- Workflows configuration
Let’s imagine the following situation: we customize CRM system for IT company in order to show information about projects. Project has a range of fields (the most common: start date, end date, status, project name, code etc.), each project belongs to some company (Account) and has it’s team (project members), new project is created when company wins opportunity. We also need to configure dashboard in order to show information about new projects for the last month.
Business model configuration
Ok, for our example we can easily list all required business model customizations:
- Create new object - Project
- Configure Project object: add fields and setup them
- Create relationship with Account (standard object) and Team member (custom object)
- Configure access to Project for different security roles.
The first thing we need to do is create new object (with custom fields and relationships). Dynamics CRM and Salesforce supports different types of fields (text, number, money, date etc.) For the first time I thought that list which provide Dynamics CRM is big enough to satisfy all basic client needs but not exactly. In reality it is very common request from client to add multiple picklist, autonumber or rich text area and it’s a pleasure to know that Salesforce supports them by default. I don’t want to say that with Dynamics CRM it is not possible to do at all but it requires more efforts from you (find and reuse existing component for that or create it from scratch). Of course, it is more painful especially when it is quite basic requirement.
|Create new object||Yes||Yes|
|Add new field for standard object||Yes*||Yes*|
|Add new field to new object||Yes||Yes|
|Add new/standard object to Site Map/Tabs||Yes||Yes|
|Use new object in reports||Yes||Yes|
|Different data types||Yes**||Yes**|
|Calculated/roll-up fields||Yes (with 2015 update)||Yes|
|Configure object access per security role/profile||Yes||Yes|
|Configure field access per security role/profile||No||Yes|
|* - not all out-of-the-box objects supports modification
** - list of available types for Salesforce and Dynamics are different
The second thing we need is to create relationship with standard object - Account and new object - Team member. There are some differences in approaches. When we create lookup field (1:N) in Dynamics we have no option to choose but later we can configure relationship behavior (e.g. setup cascade delete, sharing or repartent). In Salesforce we have a range of out-of-the box relationship types: external, indirect and so on. So, in this particular case I find Dynamics model more flexible (it supports really a lot of options in relationship configuration) and allows deep system setting. Unfortunately it is not used very often.
|* - does not exist as standard relationship type but can be created based on many-to-one|
For now we have Project which linked with Account and Team member and the last thing we need to do is set up access. You can checkout previous post to see details about security model and its configuration.
CRM systems have base range of standard objects that participate in sales process (Account, Contact, Opportunity etc.). Before creating a new one you have to think twice. Sometimes necessary objects already exists and can be reused with minor changes (renaming objects or fields) and save you time.
|Rename standard objects||Yes*||Yes*|
|Rename standard fields||Yes*||Yes*|
|*- some objects or fields can not be renamed directly (sometimes it can be done through the database or custom code)|
Page layout configuration
Let’s get back to our example. We already have all required objects with configured relationships and roles and now we want to set up representation: create different forms for Project (one for Sales manager and one for Department Coordinator).
For optimal information perception very often we need to rearrange it or replace it with some graphical representation (e.g. person full name and contact data are important and must go higher). It is really difficult to say whether one design or layout is better or worse than the other. It is better to ask “Which UI is more efficient in solving particular problems?”. And in this question a picture paints a thousand words. You may check some demos (videos with solving typical problems) in both systems and pay attention to the details that are more important for you (information readability, count of clicks to perform some actions and so on).
Below the list of configuration possibilities:
|Control fields/lists visibility||Yes||Yes|
|Control field access modifier (required, read only)||Yes||Yes|
|Customize fields appearance||Yes||Yes|
|Add external resources (such as iframes and html web pages)||Yes||Yes|
|Add charts and reports||Yes||Yes|
|Configure multiple form layouts||Yes||Yes|
|Configure page layouts per security role/profile||Yes||Yes|
Every time when user comes to system he will see the homepage (dashboard). That’s why it important to show here the most important information(e.g. his open activities, or hot opportunities). When person have a lot of responsibilities it requires multiple dashboards in order to show key indicators for each area. Dashboard is a good solution for that. It allows to show different types of information: lists, charts, summaries, links to internal or external resources, complex reports, html pages and frames.
|Add external resources (such as iframes and html web pages)||Yes||Yes|
|Configure multiple dashboards||Yes||Yes|
|Configure dashboards per security role/profile||Yes||Yes|
Except of standard objects CRM systems have some workflows with which covers basic scenario of work but it can be extended or even disabled or replace with developers forces. For our example we need to configure modify out-of-the box workflow and create new project (and auto fill some fields) after we won opportunity. This is really easy to do in both and Dynamics CRM and Salesforce supports much more: automatic sending emails based on templates, setup recurrent jobs, integration with other systems and many other things. This is only a small list and I don’t want to describe features in details because this is topic for separate discussion. The only thing I’d like to add is that both systems are flexible enough for implementation of workflows of different levels of complexity.
You will achieve much better result if will concentrate more on your product and team and provide solving these problems to out great specialists. Centaurea's team has large experience with CRM systems and we are ready to offer you our services: CRM development, consulting. We are looking forward to start working with you!
P.S. We are glad to receive a feedback from you. If you have noticed any mistakes in the article or have suggestions about it please let us know.