Salesforce started as a cloud based solution for CRM. CRM stands for Customer Relationship Management. It involves managing all aspects of relationship between an organization and its customers. For example, the contact details of the customer, the deals that are in progress or already completed, the support requests from a customer or a new lead from a new customer. Beyond the customer related information, it also involves storing and managing the details of the people and the concerned department from the seller organization that is managing the customer’s account and needs. This makes it easy to manage and enhance the relationship with the customer and hence better growth for the organization.
Following are the different features of the Salesforce platform −
To view customer contact details, activity history, customer communications, and internal account discussions, etc. In short, it manages all the data pertaining to the contact with a customer.
It provides the details of the stage a deal is in, the products involved in the deal, the quotation for the deal etc. In short it manages all the data that helps in identifying, progressing and closing a deal.
This feature is focused on making personalized contact with a customer for various campaigns designed by the marketing team. It also provides real-time sales alerts based on the level of engagement with a customer.
This feature helps in quickly finding experts who can help in closing a deal based on customer queries and feedback. In short, it helps in bringing in a collaborative effort to engage an entire team in the deal and make the deal happen.
It provides a metric-based goal setting, and also continuous feedback and rewards and recognition for the sales team. This helps in enhancing the performance of the sales team.
This feature initiates and tracks the leads that are in progress. It also helps in continually optimizing campaigns across every channel.
This feature helps in building a community with partners. It also helps in connecting directly with channel partners to share goals, objectives, and activities.
This is the mobile platform to carry out all the above activities on a mobile platform.
It is a visual design to automate the business processes. The interface provides simple drag and drop options to make this design. It helps in creating a flexible approval process with deal discounts and expense management etc.
Salesforce can integrate to an existing email platform. This helps in providing flexibility to the existing team with no additional learning curve.
This feature provides the sales team the power to easily share various files, discuss them and update them as needed. Also receive alerts when something in the file changes.
Dashboards offer a real-time picture of the business at a glance. With this, anyone can create detailed reports which can be accessed from anywhere.
This feature helps in getting a real time view of the forecast of a sales team. It provides multi-currency support and an in-line editing mode to manage the sales forecast well.
This feature is used to create multiple territory models, preview them before rollout, and continually optimize and balance territories throughout the year.
Salesforce delivers a highly customized experience to the customers, employees, and partners of an organization. Such a platform is used to customize standard functionality and create custom pages, components, apps, etc. Also it is done faster, mainly because of the superb architecture on which it is built. Below is a brief introduction to the Salesforce Architecture.
The architecture of Salesforce can be put into layers for better understanding. The purpose and function of each layer is described below −
Here multiple instances of one or multiple applications operate independently in a shared environment. The instances are referred as tenants and they logically separate from each other while physically remaining in the same hardware. It is called trusted because of both its robust nature and high security.
The metadata driven platform makes it easy for customization and scaling up as the amount of data or concurrent user instances increase.
The Enterprise Ecosystem of Sales is very large as a large number of partners contribute by creating and maintaining applications in this platform.
Salesforce includes all aspects of CRM in its list of features and also extends it by providing features for creation of apps and integrating analytics, etc.
Salesforce provides powerful suite of APIs. This helps to develop and customize the Salesforce1 Mobile App.
As Salesforce is a cloud based system it does not need any software installation on your part. All you have to do is signup for a free trial and get started. The free trial account provides nearly all features which you need to learn to understand the basics of Salesforce platform. Let us now discuss the steps to get started with the Salesforce environment.
Go to the link Salesforce and click on Free Trial.
It takes you to a window where you have to fill in some details about you and sign up.
You will receive an activation mail for your account which also contains the details of your account and the duration of the trial period. Click on the link in the email to verify your email ID and activate the account.
Again visit the link Salesforce and click on login. Give the login credentials which you just created. You will be directed to the following screen.
You are ready to learn as your environment is set up now. You may click on Take Tour of Salesforce to familiarize yourself with the user interface.
Sales Cloud part of the Salesforce.com platform which is focused on enhancing the effectiveness of the sales team of an organization and hence increases the amount of sales. It stands unique when compared to other sales methods as it provides both the account information of the customer as well as the information gathered from the social platforms about the product and customer. This helps in judging the potential of a sales lead and closing the sales faster.
Following are the Key business Goals achieved by using the Sales Cloud.
The availability of all the account information as well as product information for customer’s needs makes it easier to drive more number of leads to closure.
Mobile apps and visual design of the workflows for business process approvals makes it faster to close the deals.
Continuous optimization of campaigns depending on the market response and closure interaction with channel partners gets more deals.
The availability of reports and dashboards gives a very detailed picture of the business scenario and also increases accuracy of sales forecasting. So the business decisions are taken quickly.
In this section, we will discuss the key features of Sales Cloud. The features are described below −
Gives complete information on customers including previous communications, discussions, key contact numbers and emails.
It helps create and change quotes in response to sales interaction and deal scenario.
Gives alerts on active leads and create personalized campaigns.
Helps assign leads to right people and track the campaigns.
Helps create dashboards which can be drilled down for further information. This leads to faster decisions.
Gives accurate view of sales forecasting which can be adjusted based on real-time data.
Helps simplify the approval process and automate any business process using visual drag and drop interface.
Helps create different territory models and apply rules to them.
Search, share and find files faster. This leads to a greater collaboration.
Helps create a link between sales data and sales goals. It also helps in creating performance summaries.
Easily connect with partners and give them a view of sales performance. It also helps in easy onboarding, training and supporting sales partners.
This part of Salesforce platform is focused on providing support and help to the customers. This helps in retaining the customers, increasing their satisfaction and loyalty. Its uniqueness lies in providing faster service compared to traditional methods, giving individual attention to each customer needs and taking a proactive approach to customer issues. That ultimately enhances the customer’s experience hence loyalty which in turn creates a good impact on sales.
Following are the key business Goals achieved by using the Service Cloud −
Personalized Service − Give each customer a good service experience based on their unique problems and history of purchases and complaints.
Always-on Service − Make the service available 24/7
Multi-channel support − Meet the customers on their preferred channels like mobile, phone, chat etc.
Faster support − Managing various service needs from a single console helps in delivering support services faster.
In this section, we will discuss the key features of Service Cloud. These features help in accomplishing the business goals mentioned above. The features are described below −
It is a unified platform for managing all cases assigned to an agent so that it can help in prioritizing the tasks at hand. This also helps give personalized experience to the customer of each case.
Customer interactions and resolutions are captured and organized into a knowledgebase. This helps in faster issue resolution.
As more and more customers connect with the organization through social media, this feature helps deliver service on the social media platform itself without asking the customer to visit separate web pages for interaction.
This feature provides real-time online help with its unique chat service.
Salesforce1 platform is the mobile platform to manage customer service from any device and any place.
It allows customers to help themselves by helping each other. Many tools are available for self service on various trouble shooting requirements.
The Salesforce developer uses the setup area to configure and customize the interface. It is also used to add and support other users, and build various other functionalities. There are many paths to reach the same setup button. In this tutorial, we will see the most commonly used setup paths and configurations.
The Salesforce Home page has both classic and modern Lighting User Interface. We are referring to the modern lighting interface. All most all the features are available in both The classic and Lighting User Interface come with many features that prove beneficial to the users.
The setup link is located in the top right corner of the page as shown in the screenshot below. Clicking on the setup home takes us to the setup home page.
Below page shows the setup home where we see all the options available for the developer to configure and customize the option.
The following table lists down the important features which are frequently used in setup activity.
Sr.No | Setting & Purpose |
---|---|
1 |
Users Create, Remove Users. Manage User profiles and Permissions. |
2 |
Company Settings Information related to your org. Like - Language, Maps and Locations, Domain etc. |
3 |
Security Expire Passwords, Access Policies, Session Management and Setup Audit Trails. |
4 |
Environment Jobs, Logs and Sandboxes. |
5 |
Objects and Fields Object Manager and Schema Builder. |
6 |
User Interface App Menu, Custom Labels and Lighting App Builder. |
7 |
Custom Code Custom Metadata Types, Email Services, Remote Access etc. |
8 |
Analytics Reports and Dashboards. |
The Salesforce Platform stores data in relational tables. The records in these tables contain data for the structure of the platform itself as well as user created data. For example, the data about the configuration and settings of an account are already in-built as a relational table. But you can also create your own tables to store data specific to your business like the 'dispatch schedule' for a week assuming you are a courier company.
These relational tables are roughly referred to as API Objects or only objects in Salesforce. There are three kinds of Salesforce objects.
Standard Objects − The objects already created for you by the Salesforce platform.
Custom Objects − These are the objects created by you based on your business processes.
External Objects − The objects which you create map to the data stored outside your organization.
In this tutorial, we will focus on the standard objects in Salesforce platform.
These are the objects which already exist in the Salesforce platform to manage the configurations and settings of the environment. Once you log in to the salesforce platform, you can see the available objects.
The most commonly referred standard object is called the Account Object. It is the object which stores the preliminary information about a customer, partner, competitor or another organization. We can explore the account object by following the steps below.
Login to the Salesforce platform and follow the link path Settings → Setup Home → Object Manager - Account.
In this step, click on the Schema Builder. It shows the complete Account table with field names and data types. There are fields marked red. The fields marked red indicate that it is mandatory to fill the fields when an account is created.
Using the similar steps as above we can explore all the standard objects available.
In this section, we will discuss the important standard objects in Salesforce. The following table lists down the objects −
Object Name | Meaning | Usage |
---|---|---|
Account | Represents an individual account, which is an organization or person involved in the business like customers, competitors, partners, etc. | Use this object to query and manage accounts in your organization. |
Account History | Represents the history of changes to the values in the fields of an account. | Use this object to identify changes to an account. |
Case | Represents a case, which is a customer issue or problem. | Use the case object to manage cases for your organization. |
Contact | Represents a contact, which is an individual associated with an account. | This object is used to manage individuals who are associated with an Account in the organization. |
User | Represents a user in the organization. | This object is used to query information about users and also helps to provide and modify the information concerning the users. |
Asset | Represents an item of commercial value, such as a product sold by the company or a competitor that a customer has purchased and installed. | This object is used to track assets previously sold into customer accounts. With asset tracking, a client application can quickly determine which products were previously sold or are currently installed at a specific account. |
Domain | Read-only object that represents a custom Web address assigned to a site in your organization. | This read-only object is used to object to query the domains that are associated with each website in your organization. |
The organization’s data will always not fit into the existing standard objects. So we can extend and customize many sales force objects to meet this need. For example, a courier company can create a custom object to store the schedule and dispatch details for every week. So these objects store the data that is unique to the business. The custom objects can also have custom fields along with the standard fields available in Salesforce.
Following are the features available on Custom Objects. The features help you perform the following features −
Build page layouts to control which fields users can view and edit when entering data for the custom object record.
Import custom object records.
Create reports and dashboards to analyze custom object data.
Create a custom tab for the custom object, to display the object’s data.
Track tasks and events for custom object records.
Import custom object records.
To create a custom object, we go to the line path as shown in the following screenshot −
Now we fill in the details of the custom object we want to create. There are mandatory fields which should be filled before the object can be saved. In our case, we give the object a name called Delivery schedule and save it.
To Add more granularity to the business data, we can add custom fields on the custom object we created. In this case, let us add a field called delivery date to the custom object named Delivery schedule. To do this, we follow the path Setup Home → Objects and Fields → Object Manager → Deliver Schedule. Later, scroll down to the Fields and Relationship tab and click New. The page to add custom field appears wherein, we fill the details as shown below.
Next, we can verify the successful addition of the above custom field by following the same link path as above. The custom field appears as shown in the following screenshot −
Unlike the relationships in relational database, the relationships in Salesforce are not through Primary and Foreign Keys. The relationships are maintained by using the Relationship Fields. It is a custom field which links one object record to another. Through the creation of relationships, we can display the data of all the related records in the record's details page.
The Master Detail relationship is used when we want to control the display of detail records based on the value in the master record. For example, in the courier company model a delivery schedule is always linked to a delivery location. If we remove a delivery location from our list, then all the related delivery schedules should also be eliminated. Such a dependency can be achieved through Master-detail relationship between the sales force objects.
In this section, we will discuss the features of Master-detail Relationship. The features are listed below −
Deleting a Master Record, deletes all the detail records.
A detail record cannot be created without a Master record.
The permission on the detail record cannot be set. It inherits the permission from the master record.
The detail record also inherits the sharing rule from master records.
Both the master and detail records are automatically included in the report record types.
In the courier company example, we will consider the relationship between delivery location and delivery schedule. There is a many-to-one relationship between the delivery schedule records and the delivery location record.
Following are the steps followed to create this relationship −
In setup home, find the object named Delivery Schedule. In it under the Custom Fields and Relationships related list, click New. Choose the Master-detail Relationship as shown in the screenshot below.
In the next step, select the object with which this relationship will be created. We choose DeliveryLocation.
In this step, enter the Relationship Name as well as the name of the Field.
In the Next step we accept the defaults and move on to add the reference field to the page layout.
Next, we specify the title for the related list that is associated layout with the parent.
This completes the creation of Master-Detail relationship between DeliveryLocation and Deliveryschedule.
A Lookup relationship involves finding value of a field based on the value in another field in another object. It is mostly used in the case of commonly shared data between two objects.
In the courier company, we have a delivery location which must be related to a delivery schedule. So we have a field "DeliverySchedule" in the object Delivery location that looks up for values from the other custom Object named "Delivery Schedule". Let us now see the steps to create such a lookup relation.
First we identify the objects and the fields which need to have the relationship. In our example, these two objects are Delivery Schedule and Delivery Location.
Create a Custom Object named DeliveryLocation as we did in the previous chapter. In it, go to the tab fields and relationships. Click New → Custom Filed → Lookup Relationship. Choose the field type as lookup field and enter the details as shown below.
You can verify the lookup relationship created by going to the schema builder and choosing the two objects for display.
The various objects and their relationships of a Salesforce application can be easily viewed using the Schema builder. And just not viewing, but we can also design, modify and implement new data models using schema builder.
Schema builder has a drag and drop interface which is used to perform all the activities. It shows all the relevant details like - field values, data types, relationship with directions etc.
From Setup Home, navigate to Objects and Fields → Object Manager → Schema Builder.
We can see the various objects by selecting them form the left pane. The Element tab represents fields and relationships while the Objects tab represents the standard as well as custom objects.
We have selected three objects named - Account, Delivery Schedule and Delivery Location as shown in the following screenshot.
We can work on various schema objects by showing them in the canvas in the right pane. We can only modify the custom objects and cannot modify the standard objects as they are part of the Salesforce platform structure.
In the following screenshot, we can see various actions we can take on the custom schema objects.
We can create new objects using the schema builder. Go to the Elements Tab. Drag the element named Object into the canvas. It prompts you to fill in the details of the object.
In an organization, different kinds of data are accessible by different types of users. Salesforce has the mechanism to limit the data access in the platform to both individual users as well as groups of users. There is a flexible but layered sharing model that makes it easy to assign different data sets to different sets of users. Also the access can be defined at the level of organization, objects, fields, or individual records.
In this section, we will discuss the different levels of Data Access. There are four levels of data access.
It is created by maintaining a list of authorized users, setting password policies, and limiting login access to certain hours and certain locations.
It is done by setting permission on a particular object by allowing selective viewing, editing or deleting of any object in that record.
It is used to restrict access of users to certain fields even when the user has access to the object containing the field.
This access level permits the user to access only certain records of an object.
In this chapter, we are going to focus on Control Access to the Organization using the three mechanisms described below.
The administrators can create one or many users using the Admin Interface. Navigate to setup home → Administration → Users. It shows the options for adding one user or many.
It further asks for details of each users like Name, email Address, Role, Profile, etc. On filling those details, the users get created.
Password policies refer to the way the passwords are managed in the organization. For example, setting the expiry date of a password, the complexity requirement of a password and so on. All these options are customizable and we can also control the lock of policies. These password policies are set by navigating to setup home → Security → Password Policies.
This is an added security which allows only specific range of IP addresses to access the Salesforce platform of the organization. But if a valid user accesses the restricted page outside the trusted IP range then the system asks for additional challenge questions which should have been already configured. This is set by navigating to setup home → Security → Network Access..
The access restriction for different objects is managed by using profiles and permissions. The type of access (view, edit, create, etc.) can also customized thorough this mechanism. A user can have only one profile, but can have multiple permission sets. So through profiles the minimum basic permissions for the selected objects is granted while, through permission sets additional permissions beyond the profile can be granted.
Let us now see the details of the profiles creation and granting permission to understand how the object access is managed.
Profiles are created to address the requirements of a particular business function. For example, the HR department needs a profile which will have access to work history, medical history and attendance of employees. While the finance department will need profile which will access the attendance and remuneration details of an employee. Now depending on the user’s job role, the profile is attached to the user. Only one profile can be allocated for a user.
Go to the link path Setup Home → Users → Profiles. You can see some existing profiles which are pre-built in the salesforce platform. We can create new profiles by cloning the existing profiles and customizing them further based on our requirements.
Let us now see an existing profile named the standard user. It shows all the types of settings available to this profile. For example, we can set object permissions for both standard objects as well as custom objects. We can also set different administrative permissions and general user permissions and so on.
In order to control the permission to each of the objects through this profile, we can scroll down and find the list of both standard objects and custom objects. Here we can use the check boxes to customize the object access.
Once a new profile has been created, it can be assigned to users by going to the link path Setup Home → Users → Users. Now click on the edit to the left of the user name. You will be directed to a new window where in, you can change the profile from the dropdown.
Permission sets are additional access given to a user on some objects which are not covered through their profiles. So it just extends users access to some objects based on their profiles. For example, when a new custom object is created, we create a permission set for those objects and attach those permission sets to the users who will need access to those objects. The same logic applies when we want to grant temporary access to specific objects for a user.
We create a permission set by going to the link path Setup Home → Users → Permission Sets. Click on the New button to create a new permission set.
Once created, we can edit the permission set and choose Object Settings. Here we can see the list of objects and the level of access to these objects. We can edit the access types for each of these objects.
There are scenarios in which we grant access to an object to a user but we also want to restrict the access to certain fields of that object. So using field level security, we can control the user's access to see, edit or delete certain fields of an object.
Field level access settings are achieved in two ways −
Edit a single permission set or profile containing all the fields which require access restriction.
Edit permission on a single field to be applied in multiple profiles.
To give edit access to the field DeliverySchedule on the object DeliveryLocations, we go to the permission set named CourierObjects which we created in the last chapter. Then go to the Object settings and choose the object named DeliveryLocations. Click Edit and select the field wherein, we need to set the permission.
To set the field permission for one field across all profiles we open the object through schema builder and then right click on the specific field, choose manage Manage Field Permissions. We will now get the option to set the field permissions for many profiles for this single field.
In this chapter, we will learn about the Control Access Records in Salesforce. Many times, beyond the access restriction for the objects and fields, we also need to restrict access to certain records of an object. This requires setting up of access restriction for a user based on the values in the records.
A unique feature of Salesforce is the ownership of every stored record. Every record in every object has a field which marks the ownership of that record. A user who needs access to this record becomes part of the profile which is same as the profile of the owner of that record.
Access is granted at multiple levels like Object, Field and Records. Conflicts might come up between the access levels. There may be a read access on a record but the object containing it might not have read access for a user. In such case, the access type which is more restrictive (gives less access) will be applied. So a record without access permission will remain inaccessible even when the object containing it is accessible and an Object without access permissions will remain inaccessible even when it has some records to which the user has read access.
The Saleforce platform provides four distinct mechanisms to share the records of an object with the users.
In this mechanism, a minimal access level is created and granted to all the users. So every user who is part of the organization, gets access to these records. Then, the access for additional records is customized by clubbing the users into role hierarchies, sharing rules and also through manual sharing with each of the user.
There are four types of sharing models which implement the organization-wide default settings.
Sr.No | Settings & Result |
---|---|
1 |
Public Read/Write All users can view, edit, and report on all records. |
2 |
Public Read Only All users can view and report on records but not edit them. Only the owner, and users above that role in the hierarchy, can edit those records. |
3 |
Private Only the record owner, and users above that role in the hierarchy, can view, edit, and report on those records. |
4 |
Controlled by Parent A user can perform an action (such as view, edit, or delete) on a contact based on whether he or she can perform that same action on the record associated with it. |
In this access model, the record owners give the read and edit permissions to specific users. So it is a manual process in which individual or group of records are handled by the record owners. This is to be done for each user profile that needs the access.
In our subsequent chapters, we will discuss role hierarchies and sharing rules.
Role hierarchy is a mechanism to control the data access to the records on a salesforce object based on the job role of a user. For example, a manager needs to have access to all the data pertaining to the employees who report to him, but the employees have no access to the data that is only owned by their manager. In this manner, the access model looks similar to the org chart in an organization but it need not be exactly same as the Org chart.
The role hierarchy automatically grants record access to users above the record owner in the hierarchy. This option is enabled for all objects by default. To change this, we take help of custom objects and manual aces grants.
In this section, we will discuss how to define a role hierarchy. The steps are described below −
To create a Role Hierarchy, we go to the link path Setup Home → Users → Roles → Setup Roles. The default role hierarchy appears as shown below.
The default view is Tree View, which is easiest to use. The other two views are sorted list view and list view. You can change this view as per your need.
In the next step, we add a role to the existing hierarchy by filling in the role details. Click on Add Role. The next window appears asking for the following details.
While filling these details, we also take care to define if the users can only view the opportunities or can also edit the opportunities. On clicking save we get the Role created as shown below.
In this step, you can assign users to the roles. Click on Assign Users to Role. Upon clicking, you will be directed to a window where you can select All users form the dropdown and move users from the left box to the right box.
In this way, you can create roles within the role hierarchy and add users to them. So the users can have access to the objects and data as per their roles.
In this chapter, we will discuss how to define sharing rules in Salesforce. Though we can manage the access to different objects and records through organization-wide settings and role hierarchies, we come across situations wherein, exceptions are required. We need to grant access to specific data to specific users who are not able to access the required data because of their roles. For example, to see the case history when a user has only access to the current case details. In such scenarios, we take help of sharing rules. Through this mechanism, we create a public group which will accommodate all the users who need such exception and then add sharing rules to such a group.
In this section, we will discuss the steps to create sharing rules. The steps are described below
Create a public group which will have the users who need specific access. Go to the link path, Setup home → Users → Public Groups → New Group. We need to fill the required details. Also choose the group of users who will need to use the sharing rules. Keep the Grant access using Hierarchies checked so that the other users listed below in this hierarchy can inherit the access. Click Save.
Now we create the sharing rule for the above public group. Go to the link path Setup Home → Security → Sharing settings. From the dropdown of Manage Sharing settings for, choose Campaigns.
Then under Campaign sharing rules, click on the button New. Provide the details for the new sharing rule as shown below. We select a criteria to give access to records for which the value of the field Campaign name is camp_x.
So now all the users under the newly created public group will get access to those records of campaign object where the campaign name is camp_x.
The process builder tool helps in automating business processes. For example, all that goes into a record when a courier delivery is completed. This automation involves creating the following three steps −
Let us now create a sample process which will add a record when the courier delivery is completed.
Go to the link Setup home → Platfrom Tools → Process Automation → Process Builder. Click New .Upon clicking New, the following window appears which asks for name of the process and description. We fill in the details as shown and click Save.
Next we get a process automation window. Click New to go to the next step. And choose the Object delivery schedule as shown below. Click Save.
Click on the Add Criteria button in the canvas to add a condition for the process to be allowed to execute. Here we choose the delivery date as the filed which when updated will trigger the process. Click save to save the criteria.
Next, we add action to trigger the start of the process when the condition is met.
With this setup, when a courier delivery is completed we are able to create a record to track the completion of the delivery.
In this chapter, we will learn how to import data in Salesforce. Salesforce provides a robust platform for data manipulation. We can Insert, View, Edit and Delete the relevant data with proper user permissions. At times, we need to add a large number of records to the respective Saleforce object in one go. Most likely these records have come from another source. The format of the incoming data has to match with the format in which the salesforce object is expecting it.
The import feature is available with CSV file structures from four sources. The sources are CSV, Outlook CSV, ACT! CSV and GMail CSV. In the example given below, we will use the normal csv file for importing data to the Salesforce platform.
The import happens in the following three steps −
Navigate to Setup Home → Data → Data Import Wizard. A page opens which gives instruction on how to proceed with the Wizard. The most important point to remember is the record limits which restricts the number of records to be imported in one go to 50000. Click the Launch Wizard button to start the import process. The following screen appears, asking us to choose the kind of object to which we can import the data.
We select Accounts and Contacts in the above screen and click Next.
In this step, we choose the file containing the data to be imported. Also we are presented with the option of Adding New Records or Updating the Existing Records or both. We choose adding the new records as shown below.
We also select the field used to match the existing record with the incoming record. For this, we choose Account name and site under the dropdown Match Account by, and then we click Next.
This is the last step before the import starts. In this step, we do the very important task of matching the incoming field names with the column names of the salesforce fields. Though Salesforce does automatic matching of most of the field names, still there may be some cases where we have to match the field names manually. As you can see below, we have unmapped fields which needs to be mapped. On successfully completing the mapping, click Next and the import starts.
In this chapter, we will discuss how to export data from Salesforce. You can choose the objects from which data needs to be exported and also schedule a regular export form those objects. There is also a filtering option on how much data to export based on the age of the record.
Let us now see the steps to export data from Salesforce −
Navigate to the link Setup Home → Data → Data Export. It will present a window to schedule an export by mentioning the frequency along with the start and end date to select the records to be exported.
In the next step, we choose the Salesforce objects the data of which need to be exported by selecting the check boxes as shown below.
Upon clicking Next as in the above step, you will be directed to a window which mentions that you have to wait for some time for the exported data to be ready for download. So in this step, we wait for the download link to appear in the same screen. Also a hyperlink to download the data is sent to the email id of the person who scheduled the export.
The Download links appear in this step.
Creating reports in Salesforce is not a very complicated process. The reports are created on top of one or more Salesforce objects. It has the flexibility of applying filters and joining data sets to create sophisticated reports. The interface is called the Report builder.
Go to the Reports icon in the left bar menu of the Lightning Experience Home Page. Follow the steps below to create a report.
Click on Create New Report. Upon clicking, the following screen appears. We choose Accounts and click Create.
In this step ,we define certain settings for the report and get the resulting rows. We choose "My Accounts" from the dropdown Show. It brings all the records owned by the creator of the report. Next we choose the created date filter as All Time as shown below. We proceed by saving the report with the name - Accounts report.
Now, we will apply a filter to the above report. Click on the Add filter option in the white space just below the date filed filter. Choose the field Billing State/Provinces. Choose the equal to operator and type the value NY in the next text box. This filters out the row for NY as shown below.
Dashboards provide more insights than reports as they combine the data from many reports and show a summarized result. Looking at many reports at a time gives the flexibility of combining the results from them quickly. Also summaries in dashboards help us decide on action plans quicker. The dashboards can contain charts, graphs and Tabular data.
Let us now see the steps to create a dashboard.
Go to the Dashboard button on the left menu bar in the Salesforce Home Page. Now, click on the New Dashboard and the following window appears. Fill in the name and description.
Next we add components to the dashboards. Components are graphical objects which present the summarized or tabular data with visual indicators like colors, etc. In our case we add two components as shown below.
Choose the Opportunity Amount by Stage report and present it as a line chart.
Similarly, we choose another component to be added. Choose the report Leads Converted All Time as shown below.
In this step, we see both the components are visible in the dashboard. We can resize the components for better visibility. And there is still more place for additional components.
Many times we need to manipulate the values of the fields stored in the Salesforce object by applying a few conditions or calculations. For example, we need to get the Account number value linked to the contact object, so that we can find the Account number from the contact name. In such scenarios, we create formula field in addition to the existing fields in the object.
Let us now see the steps to create formula field.
Go to the link path Setup Home → Object Manager → Contact. Then scroll down to the Fields and Relations tab and add New. Choose Formula as the data type and click Next. The following window appears. Here we choose the return type as Text and also fill in the Field Name and Field Label.
Clicking on Next brings takes you to the next window wherein, you have to select the field based on which the formula will be built. Let us now choose Account number from the Account table. Click Insert to insert this field into the Contact object.
In this step, we can see the field Account Number appear under the fields of the Contact object as shown below.
Visualforce pages are webpages that belong to Salesforce. These webpages are created using a unique tag-based Mark-up language. It is similar to HTML but it's primary use is to access, display and update the organization’s data. The page is accessed by using a URL similar to that of a traditional webserver page.
Each tag in visual force language corresponds to some user interface component like section of a page, a list view or a field of an object. Interestingly, it can be easily mixed up with HTML markup, CSS style and Java libraries, etc.
Go to the link developer console → File → New → Visualforce page. The new window opens asking for a page name. Let us now call it HelloworldPage. Let us now write the code as shown in the following diagram.
Click Save. Then, click on Preview. This opens a new webpage showing the result as shown in the following screenshot.
In this section, we will learn how to add components to a program that is already created. Let us add some user interface components to the program created above. We add a block and a section in that block by using the following code.
On previewing the page, we get the following output.
We can set the various settings for easy navigation by going to Help → Preferences.
The data from the Salesforce objects can be brought into the Visualforce page using variables and expressions. Like other normal programming language, the Visualforce language has expressions, operators and literals, etc. The basic building block of this language is expressions.
The syntax of a Visualforce expression is as below.
{! expression }
Let us use the global variable $user. We can write the following code to get the username, First name and login name.
On previewing the output, we get the following details.
Similarly, we can use many other variables and manipulate them using formula as shown in the code below.
On previewing the output, we get the following details.
Visualforce consists of many built-in controllers which can be used to access and display data. It works on the MVC (model-view-controller) approach. The controllers interact with the database and pull the data from the database to view the data through a webpage created by apex page.
To display a specific record or group of records, we need the record ID. When integrated with other Visualforce pages the ID can flow to the controller page automatically. But in a standalone page we need to specify the record ID manually to see the controller working.
Let us create a Visualforce page to get the summary of a record in the Contact object. To do this, we use the component called standardController and put it in an apex block. The diagram given below shows the code to achieve this.
Here we display some select fields from the Object. They are Name, Email and phone. If we go to the Preview window, we find that the page only displays the labels but no data. That is because we have not associated the result from the controller with any specific record.
So next we identify a record form the Contact Object to be attached to the result from the controller. Open the contacts object and click on any of contact name. It will open the following window from which we capture the ID of the record. The ID is highlighted in the URL. In your environment, it will be a similar string of characters.
Finally, we add this ID of the record to the URL of the preview window of the Visualforce standard controller page we created. In the current example, the ID of the record is added as shown below.
https://c.ap2.visual.force.com/apex/FirstPage?core.apexpages.request.devconsole=1&id=0032800000Wih9kAAB
On visiting the above URL from the Organization's salesforce account, we get the details of the record as shown below.
We have already seen how to get the values of a record using the standard controller. But we can also display the field values in a more formatted way by using additional controllers.
In this chapter, we will see how to display the fields of an object and the data of a details table in a Master-detail relation.
When we want to display the fields of a record in a formatted manner with column headers, rather than just the labels and values, we can use the OutputField option. The code given below shows the apex program to display the filled data from Contact. As you can see, we do not need the labels to be in place to indicate the field values.
To preview the result of the above code, we use the ID of the record as described in the previous chapter. The result shows the following output showing the field values of the records along with column headers.
We can display all the records of a details table by taking a value from a master table. For example, we can display all the contacts associated with an account. In such case, we use the iteration component which in our case is the contacts table linked to account. Below is the code to display all the contacts associated with the Account table.
On previewing the output form the above code, we get the following result.
Salesforce is a data-driven platform. So viewing and editing data in its apps is a fundamental requirement. Like the traditional HTML forms, we can create similar forms in Saleforce for editing the data in Salesforce.
The Input forms are created using a Visualforce page. We open a new Visualforce page by using the path Developer Console → File → New → Visualforce Page. We write the code as shown below which uses Contact as the standard controller and the purpose is to edit the values in the 3 fields - Name, Email and Phone.
Upon running the above code for the visualforce page, we get the following output..
But we can improve the above form further by aligning the fields to one column and putting all the input fields and labels into a block. The code given below shows how we add a section and block to the form and also put the fields in one column.
Upon running the above code for the Visualforce page, we receive the following output.
In this chapter, we will discuss List Controllers in Salesforce. At times, we need to view a given set of records from a Salesforce object by applying filter criteria. This is achieved by using list controllers which allow you to create Visualforce pages that can display or act on a set of records. The standard list controllers can be used in the following set of objects.
We take the example of contact object. We fetch the records from this object and display it using list controllers. To achieve this, we create an apex page with the following code. The code creates a pageblock with column values matching the column names of the contact object.
Upon running the above code, we receive the following output.
The user interface in a Visualforce base can display dynamic content the value of which keeps changing based on user responses. But there are times when we need some content which should not change with the change in values of other components in the page. For example, an image file may be required to remain constant. Such content which cannot be changed in a page is known as a static resource.
Following are a few static resources in Salesforce −
The steps to create a static resource are as below.
Go to Develop → Static resource and mention the values for name, description and file location for the static resource.
Click Save in the above screen to get the file attached to the User Interface controller.
Next we create the apex code as in the following screenshot to reference the static object we created above.
Running the above apex code will generate the following output. The output shows a static resource.