





















































(For more resources related to this topic, see here.)
Hiring the right candidate is a challenge for the recruitment team of any company. The process of hiring candidates can differ from company to company. Different sources such as job sites, networking, and consulting firms can be used to get the right candidate, but most companies prefer to hire a candidate from their own employee network. Before starting the hiring process, a recruiter should have a proper understanding of the candidate profile that fits the company's requirements.
Normally, this process starts by screening candidate resumes fetched from different sources. Once they have resumes of appropriate candidates, the recruitment team starts working on resumes one by one. Recruiters talk to potential candidates and enquire about their skills and test their interpersonal skills. Recruiters play an important role in the hiring process; they prepare candidates for interview and provide interview feedback.
In the employee recruitment applications, we will be using the key objects shown in the following figure to capture the required information:
The blocks perform the following tasks:
As we are going to use Microsoft CRM 2011 as a platform to build our application, let's map these key blocks with Microsoft CRM 2011 entities:
When a lead is converted to an account or contact or opportunity, the lead record is deactivated by Microsoft CRM 2011.
Let's talk about the process flow that we are going to use in our employee recruitment application. Recruiters will start the process of hiring a candidate by importing candidate resumes in Microsoft CRM under the Candidate entity; we will customize our OOB entities to include the required information. Once data is imported in Microsoft CRM, the recruiter will start the screening of candidates one by one. He will schedule Technical, Project Manager, and finally HR rounds. Once the candidate is selected the recruiter will create an offer letter for that candidate, send it to the respective candidate, and convert the Candidate entity to Employee. The following flowchart shows our employee recruitment application process flow:
We have identified the data model for required entities. We need to customize OOB entities based on the data model tables.
Once we have the data model ready, we need to customize the Microsoft CRM UI and OOB entities. Let's first create our solution called HR Module and add the required entities to that solution.
We need to customize the Microsoft CRM site map. We have options to modify the sitemap manually or using the site map editor tool. We need to customize the site map based on the following table:
Sr No |
Customization Detail |
1 |
Remove Left Navigation: Marketing, Service, Resource Center |
2 |
Rename Left Navigation: Sales to HR Module, Setting to Configuration |
3 |
Remove Left Navigation items under My Work: Queues, Articles,Announcements |
4 |
Remove all Left Navigation items under HR Module left navigation: except Lead, Accounts , and Contacts |
After customizing the site map, Microsoft CRM UI should look like the following screenshot:
It is recommended that you comment unwanted navigation areas out of the site map instead of removing them.
After we have customized Microsoft CRM UI, we need to rename the entity and entity views. We also need to perform the following actions:
We need to create and customize entity fields; based on the data model we just saw, let's create candidate entity fields. Use the following steps to create fields:
The Display Name field is used as a label in Microsoft CRM 2011 entity form and views, whereas the Name field is used to refer to the field in code.
You can't change the data type of a created field, but you can change its properties.
After filling in this information, our entity form should look like the following screenshot:
We need to create fields for all entities based on the preceding steps, one by one.
In Microsoft CRM 2011, we can relate two entities by creating a relationship between them. We can create three types of relationships:
We can create a self-relationship by selecting a primary entity on both sides.
We can define different relationship behaviors while creating a relationship; you can refer to http://msdn.microsoft.com/en-us/library/gg309412.aspx for more details.
After creating a relationship, we can define a mapping to transfer values from parent entity to child entity, but this functionality can only achieved when a child entity record is created from a parent entity using the Add New button from the Associated view We need to set up relationship mapping so that we can take the candidate field values to the employee entity when the recruiter converts a candidate into an employee. Use the following steps to set the mapping:
Now we need to design forms for our entity, and we need to remove unnecessary fields from entity forms.
Use the following steps to customize entity forms:
We can remove unwanted fields easily by selecting them one by one and using the Remove ribbon button on the entity form. To place the field, we just need to drag-and-drop it from the right-hand side field explorer.
Once we have customized the account entity, we need to design the account form shown in the following screenshot:
The candidate form should look like the following screenshot after customization:
After removing unwanted fields and adding required fields, the employee form should look like the following screenshot:
Microsoft CRM provides us the OOB security model that helps us to prevent unauthorized access to our data. We can enforce security in Microsoft CRM using security roles. A security role is a combination of different privileges and access levels.
We must assign at least one security role to access Microsoft CRM applications. Microsoft CRM provides us with 14 OOB security roles that can be customized based on our requirements. The following diagram is the security-role hierarchy that we have identified for the Employee Management System:
The blocks in the preceding diagram can be explained as follows:
We will be customizing the existing security roles for our ERMS . The following table shows the security role mapping that we be will using:
Microsoft CRM Security Role |
ERMS Security Role |
Sales Manager |
Manager |
Salesperson |
Salesperson |
System Administrator |
System Administrator |
We need to use the following steps to customize the existing security role:
You can also create a new Manager Security role by copying the Sales Manager role.
Once we have changed the security role name, we need to configure the Security Manager and Recruiter roles to remove unnecessary privileges. Follow the ensuing instructions to configure the Manager Security role:
Follow all the preceding steps to remove the same privileges from the Recruiter role as well.
Microsoft CRM 2011 contains an OOB feature for field-level security. Using field-level security, we can protect Microsoft CRM form fields from unauthorized access. This feature is only available in custom attributes. You can only apply field-level security to the custom fields of system entities. While creating/modifying fields, you can enable field-level security. The following screenshot shows how we can Enable/Disable the Field Security option:
Once field-level security is enabled, we can set the field-level security profile. Let's apply field-level security in the offered package section in the Candidate entity. We have already enabled field-level security for these three fields under the offered package section in Candidate entity. Use the following steps to set the field-level security profile:
Now all Microsoft CRM users with the Recruitment security role won't be able to see the values in these fields. They won't even be able to set values for these fields.