Configuration in Salesforce CRM

Exclusive offer: get 50% off this eBook here
Salesforce CRM: The Definitive Admin Handbook

Salesforce CRM: The Definitive Admin Handbook — Save 50%

A comprehensive, power-packed guide for all Salesforce Administrators covering everything from setup and configuration, to the customization of Salesforce CRM

€28.99    €14.50
by Paul Goodey | November 2011 | CRM Enterprise Articles

In this article by Paul Goodey, author of Salesforce CRM: The Definitive Admin Handbook, we will describe in detail the Salesforce CRM record storage features and user interface that can be customized such as objects, fields, and page layouts. In addition, we will see an overview of the relationship that exists between the profile and these customizable features that the profile controls.

This article looks at the methods for configuring and tailoring the application to suit the way your company information can be best represented within the Salesforce CRM application.

(For more resources on this topic, see here.)

We will look at the mechanisms for storing data in Salesforce and at the concepts of objects and fields. The features that allow these data to be grouped and arranged within the application are then considered by looking at Apps, Tabs, Page Layouts, and Record Types. Finally, we take a look at some of the features that allow views of data to be presented and customized by looking in detail at related lists and list views.

Relationship between profile and the features that it controls

The following diagram describes the relationship that exists between the profile and the features that it controls:

The profile is used to:

  • Control access to the type of license specified for the user and any login hours or IP address restrictions that are set.
  • Control access to objects and records using the role and sharing model. If the appropriate object-level permission is not set on the user's profile, then the user will be unable to gain access to the records of that object type in the application.

In this article, we will look at the configurable elements that are set in conjunction with the profile. These are used to control the structure and the user interface for the Salesforce CRM application.

Objects

Objects are a key element in Salesforce CRM as they provide a structure for storing data and are incorporated in the interface, allowing users to interact with the data.

Similar in nature to a database table, objects have properties such as:

  • Fields which are similar in concept to a database column
  • Records which are similar in concept to a database row
  • Relationships to other objects
  • Optional tabs which are user interface components to display the object data

Standard objects

Salesforce provides standard objects in the application when you sign up and these include Account, Contact, Opportunity, and so on. These are the tables that contain the data records in any standard tab such as Accounts, Contacts, or Opportunities.

In addition to the standard objects, you can create custom objects and custom tabs.

Custom objects

Custom objects are the tables you create to store your data. You can create a custom object to store data specific to your organization. Once you have the custom objects and have created records for these objects, you can also create reports and dashboards based on the record data in your custom object.

Fields

Fields in Salesforce are similar in concept to a database column and store the data for the object records. An object record is analogous to a row in a database table.

Standard fields

Standard fields are predefined fields that are included as standard within the Salesforce CRM application. Standard fields cannot be deleted but non-required standard fields can be removed from page layouts whenever necessary.

With standard fields, you can customize visual elements that are associated to the field such as field labels and field-level help as well certain data definitions such as picklist values, the formatting of auto-number fields (which are used as unique identifiers for the records), and setting of field history tracking. Some aspects, however, such as the field name cannot be customized and some standard fields (such as Opportunity Probability) do not allow the changing of the field label.

Custom fields

Custom fields are unique to your business needs and can not only be added and amended, but also deleted. Creating custom fields allow you to store the information that is necessary for your organization.

Both standard and custom fields can be customized to include custom help text to help users understand how to use the field:

Object relationships

Object relationships can be set on both standard and custom objects and are used to define how records in one object relates to records in another object. Accounts, for example, can have a one-to-many relationship with opportunities and these relationships are presented in the application as related lists.

Apps

An app in Salesforce is a container for all the objects, tabs, processes, and services associated with a business function.

There are standard and custom apps that are accessed using the App menu located at the top-right of the Salesforce page as shown in the following screenshot:

When users select an app from the App menu, their screen changes to present the objects associated with that app. For example, when switching from an app that contains the Campaign tab to one that does not, the Campaign tab no longer appears. This feature is applied to both standard and custom apps.

Standard apps

Salesforce provides standard apps such as Sales, Call Center, and Marketing.

Custom apps

A custom app can optionally include a custom logo.
Both standard and custom apps consist of a name, a description, and an ordered list of tabs.

Tabs

A tab is a user-interface element which, when clicked, displays the record data on a page specific to that object.

Hiding and showing tabs

To customize your personal tab settings follow the path Your Name Setup | My Personal Settings | Change My Display | Customize My Tabs|. Now, choose the tabs that will display in each of your apps by moving the tab name between the Available Tabs and the Selected Tabs sections and click Save. The following shows the section of tabs for the Sales app:

To customize the tab settings of your users, follow the path Your Name Setup | Administration Setup | Manage Users | Profiles|. Now select a profile and click Edit. Scroll down to the tab settings section of the page as shown in the following screenshot:

Standard tabs

Salesforce provides tabs for each of the standard objects that are provided in the application when you sign up. For example, there are standard tabs for Accounts, Contacts, Opportunities, and so on:

Visibility of the tab depends on the setting on the tab display setting for the app.

Custom tabs

You can create three different types of custom tabs: Custom Object Tabs, Web Tabs, and Visualforce Tabs.

Custom Object Tabs allow you to create, read, update, and delete the data records in your custom objects. Web Tabs display any web URL in a tab within your Salesforce application. Visualforce Tabs display custom user-interface pages created using Visualforce. Creating custom tabs:

  • The text displayed on the custom tab is set from the Plural label of the custom object which is entered when creating the custom object. If the tab text needs to be changed this can be done by changing the Plural label stored on the custom object.
  • Salesforce.com recommends selecting the Append tab to users' existing personal customizations checkbox. This benefits your users as they will automatically be presented with the new tab and can immediately access the corresponding functionality without having to first customize their personal settings themselves.
  • It is recommended that you do not show tabs by setting appropriate permissions so that the users in your organization cannot see any of your changes until you are ready to make them available.
  • You can create up to 25 custom tabs in Enterprise Edition and as many as you require in Unlimited Edition.

To create custom tabs for a custom object, follow the path Your Name Setup | App Setup | Create | Tabs|. Now select the appropriate tab type and/or object from the available selections as shown in the following screenshot:

(Move the mouse over the image to enlarge.)

Creating custom objects

Custom objects are database tables that allow you to store data specific to your organization in Salesforce.com. You can use custom objects to extend Salesforce functionality or to build new application functionality.

You can create up to 200 custom objects in Enterprise Edition and 2000 in Unlimited Edition.

Once you have created a custom object, you can create a custom tab, custom-related lists, reports, and dashboards for users to interact with the custom object data.

To create a custom object, follow the path Your Name Setup | App Setup | Create | Objects|. Now click New Custom Object, or click Edit to modify an existing custom object. The following screenshot shows the resulting screen:

On the Custom Object Definition Edit page, you can enter the following:

  • Label: This is the visible name that is displayed for the object within the Salesforce CRM user interface and shown on pages, views, and reports, for example.
  • Plural Label: This is the plural name specified for the object which is used within the application in places such as reports and on tabs if you create a tab for the object.
  • Gender (language dependent): This field appears if your organization-wide default language expects gender. This is used for organizations where the default language settings is for example, Spanish, French, Italian, German among many others. Your personal language preference setting does not affect whether the field appears or not. For example, if your organization's default language is English but your personal language is French, you will not be prompted for gender when creating a custom object.
  • Starts with a vowel sound: Use of this setting depends on your organization's default language and is a linguistic check to allow you to specify whether your label is to be preceded by "an" instead of "a". For example, resulting in reference to the object as "an Order" instead of "a Order" as an example.
  • Object Name: A unique name used to refer to the object. Here, the Object Name field must be unique and can only contain underscores and alphanumeric characters. It must also begin with a letter, not contain spaces, not contain two consecutive underscores, and not end with an underscore.
  • Description: An optional description of the object. A meaningful description will help to explain the purpose for your custom objects when you are viewing them in a list.
  • Context-Sensitive Help Setting: Defines what information is displayed when your users click the Help for this Page context-sensitive help link from the custom object record home (overview), edit, and detail pages, as well as list views and related lists. The Help & Training link at the top of any page is not affected by this setting. It always opens the Salesforce Help & Training window.
  • Record Name: This is the name that is used in areas such page layouts, search results, key lists, and related lists as shown next.
  • Data Type: The type of field for the record name. Here the data type can be either text or auto-number. If the data type is set to be text, then when a record is created, users must enter a text value which does not need to be unique. If the data type is set to be Auto Number, it becomes a read-only field whereby new records are automatically assigned a unique number:

  • Display Format: As in the preceding example, this option only appears when the Data Type is set to Auto Number. It allows you to specify the structure and appearance of the Auto Number field. For example: {YYYY}{MM}-{000} is a display format that produces a 4-digit year, 2-digit month prefix to a number with leading zeros padded to 3 digits. Example data output would include: 201203-001; 201203-066; 201203-999; 201203-1234.
    It is worth noting that although you can specify the number to be 3 digits if the number of records created becomes over 999 the record will still be saved but the automatically incremented number becomes 1000, 1001, and so on.
  • Starting Number: As described, Auto Number fields in Salesforce CRM are automatically incremented for each new record. Here you must enter the starting number for the incremental count (which does not have to be set to start from 1).
  • Allow Reports: This setting is required if you want to include the record data from the custom object in any report or dashboard analytics.

    Such relationships can be either a lookup or a master-detail. Lookup relationships create a relationship between two records so you can associate them with each other. Master-detail relationship creates a relationship between records where the master record controls certain behaviors of the detail record such as record deletion and security.

    When the custom object has a master-detail relationship with a standard object or is a lookup object on a standard object, a new report type will appear in the standard report category. The new report type allows the user to create reports that relate the standard object to the custom object which is done by selecting the standard object for the report type category instead of the custom object.

  • Allow Activities: Allows users to include tasks and events related to the custom object records which appear as a related list on the custom object page.
  • Track Field History: Enables the tracking of data field changes on the custom object records, such as who changed the value of a field and when it was changed. Fields history tracking also stores the value of the field before and after the fields edit. This feature is useful for auditing and data quality measurement and is also available within the reporting tools.
  • Deployment Status: Indicates whether the custom object is now visible and available for use by other users. This is useful as you can easily set the status to In Development until you are happy for users to start working with the new object.
  • Add Notes & Attachments: This setting allows your users to record notes and attach files to the custom object records. When this is specified, a related list with New Note and Attach File buttons automatically appears on the custom object record page where your users can enter notes and attach documents.
  • The Add Notes & Attachments option is only available when you create a new object.

  • Launch the New Custom Tab Wizard: Starts the custom tab wizard after you save the custom object.

The New Custom Tab Wizard option is only available when you create a new object.

Creating custom object relationships

Considerations to be observed when creating object relationships:

  • Create the object relationships as a first step before starting to build the custom fields, page layouts, and any related list
  • The Related To entry cannot be modified after you have saved the object relationship

    Each custom object can have up to two master-detail relationship and up to 25 total relationships.

  • When planning to create a master-detail relationship on an object be aware that it can only be created before the object contains record data
  • Clicking Edit List Layout allows you to choose columns for the key views and lookups
  • The Standard Name field is required on all custom object-related lists and also on any page layouts
Salesforce CRM: The Definitive Admin Handbook A comprehensive, power-packed guide for all Salesforce Administrators covering everything from setup and configuration, to the customization of Salesforce CRM
Published: October 2011
eBook Price: €28.99
Book Price: €46.99
See more
Select your format and quantity:

(For more resources on this topic, see here.)

Creating custom fields

Before you begin to create custom fields, it is worth spending some time to first plan and choose the most appropriate type of field to create. You can create many different custom field types in Salesforce CRM, including text, number, currency as well as relationship types that enable lookup, master-detail, and hierarchical relationships.
Adding custom fields can be carried out by navigating to the fields area of the appropriate object:

  • For standard objects, follow the path Your Name Setup | App Setup | Customize|. Now select the appropriate object from the Customize menu, click Fields, and then click New in the Custom Fields & Relationships section of the object page.
  • For custom task and event fields, follow the path Your Name Setup | App Setup | Customize | Activities | Activity Custom Fields|. Now click the New button.
  • For custom objects, follow the path Your Name Setup | App Setup | Create | Objects|. Now select one of the custom objects in the list. Now click New in the Custom Fields & Relationships section of the page.

Field dependencies and field history tracking
From these pages, you can set field dependencies and field history tracking for the objects. Field history tracking captures information for the date, time, nature of the change, and who made the change. A dependent field is a picklist field for which the valid values depend on the value of another field. Field dependencies and field history tracking are not available for task and event fields as described later in this article.
Whenever history tracking is set, a separate history data object is created for the object. This history data comprises the record ID and the history tracked field names whose value has been changed. Here, both the old and the new record values are recorded.

Choose the data type of the field to create. The following screenshot shows a full list of data types that are available to choose:

Field types not listed in custom field types may appear if your organization installed a package from the AppExchange that uses those custom field types.

Some data types are only available for certain configurations. For example, the Master-Detail Relationship option is available only for custom objects when the custom object does not already have a master-detail relationship. The Roll-Up Summary option is only available for objects defined as Master in master-detail relation and is used to record an aggregate of the child records using functions such as SUM, MAX, MIN, and so on (This is described in more detail later).

Click on Next and enter a field label. The field name is a mandatory field and must be unique within the Salesforce CRM application. There are also some restrictions on what can be entered. Here, you can only enter alphanumeric characters and underscores. In addition, the text must start with a letter, it cannot include spaces, it cannot contain two consecutive underscores, and the final character must not be an underscore.

For relationship fields, choose the object that you want to associate with it:

The number of custom fields allowed per object is 500 for Enterprise and Unlimited Editions of Salesforce and relationship fields count towards these custom field limits.

Make both the custom field name and label unique in your application
Ensure that both the custom field name and label are unique and not the same as any existing standard or custom field for that object. Creating identical values may result in unexpected behavior when you reference that name in a merge field. If a standard field and custom field have matching names or labels, the merge field displays the value of the custom field. If two custom fields have matching names or labels, the merge field may not display the value of the field you expect. For example, if you create a field label called Phone, the field name automatically populates as Phone__c. If you also have a standard field with the label Phone, the merge field may not be able to distinguish between the standard and custom field names. Make both the custom field name and label unique by adding a suffix to each, such as Phone_ Custom and Phone_Custom__c, respectively.

Enter any field attributes. In this example, a new checkbox field is set as checked by default:

Object relationship fields, allow you to create a lookup filter that can be used to further control the associated returned records and lookup dialog results for the field. These are available for Lookup, Master-detail, and Hierarchical relationship fields. Here, you can select multiple fields and selection criteria to restrict the results. This is presented in an additional step of the field creation process and is available at the bottom section Lookup Filter available from the setup page "Step 3. Enter the label and name for lookup field".
Click on Next to continue and specify the field's access settings for each profile:

To set the field-level security, enable the following settings:

  • Users can view and edit the field: Visible checked and Read-Only not checked
  • Users can view but not edit the field: Visible checked and Read-Only checked
  • Users can neither view nor edit the field: Both Visible and Read-Only not checked

Click on Next and choose the page layouts that you would to add the new field to:

The new field is automatically positioned on the page layout as the final field in the first two-column section. However, there is an exception for Text Area (Long) and Text Area (Rich) fields. These fields, due to their double width, are placed as the final field on the first one-column section on the page layout.

For user custom fields, the field is automatically added to the bottom of the user detail page.
For universally required fields, you cannot remove the field from page layouts or make it read only.

Click Save to finish or Save & New to create more custom fields.
For relationship fields, choose whether to create a related list that displays information about the associated records or not. You can choose to put the related list on any page layouts for that object.
To change the label of the custom-related list as it will appear on the page layouts of the associated object, edit the Related List Label.
To add the new related list to page layouts that users have already customized, check Append-related list to users' existing personal customizations.

Building formulas

Custom formula fields require additional settings as specified by the Salesforce CRM application, which are carried out using the following actions and steps:

  1. Create the Formula field.
  2. Choose the data type for the formula based on the output of the calculation.
  3. Enter the number of decimal places for currency, number, or percent data types.
  4. The number of decimal places setting is ignored for currency fields in multicurrency organizations. Instead, the decimal places for your currency setting apply. Salesforce uses the round half up tie-breaking rule for numbers in formula fields. For example, 12.345 becomes 12.35 and -12.345 becomes -12.34.

  5. Click Next to display the formula creation screen.

Basic formula

To create a basic formula that passes specific Salesforce data, select the Simple Formula tab, choose the field type in the Select Field Type drop-down list, and choose one of the fields listed in the Insert Field drop-down list.
To insert an operator, choose the appropriate operator icon from the Insert Operator drop-down list.

Advanced formula

The basic formula feature is quite restricted and you will likely seek to create more complicated formulas which can be performed by selecting the Advanced Formula tab.
Within this tab, click on Insert Field, choose a field, and then click on Insert.
You can now include merge fields along with advanced operators as well as functions, which are pre-built Salesforce CRM formulas that you can invoke and pass your input values.

Function description and example usage
Select a function and click Help on this function to view a description and examples of formulas using that function.

  1. Click on Check Syntax to check your formula for errors.
  2. Enter a description of the formula in the Description box.
  3. If your formula references any number, currency, or percent fields, choose an option for handling blank fields. To give any blank fields a zero value, choose Treat blank fields as zeros. To leave these fields blank, choose Treat blank fields as blanks.
  4. Click on Next.
  5. Set the field-level security to determine whether the field should be visible for specific profiles or not, and click on Next.
  6. Choose the page layouts that should display the field. The field is added as the last field in the first two-column section on the page layout. For user custom fields, the field is automatically added to the bottom of the user detail page.
  7. Formula fields are automatically calculated, therefore they are not visible on edit pages and are read-only on record detail pages. Formula fields do not update last modified date fields.

  8. Click Save to finish or Save & New to create more custom fields.

Formula fields have character and byte size limits and cannot contain more than 3,900 characters.

Building formulas best practices

Some best practices and methods to improve the creation and maintenance of formula fields are as follows:

  • Formatting with carriage returns and spacing
  • Commenting

Formatting with carriage returns and spacing

Consider the following formula:

Sales Tax (Percent) =
  IF( TEXT(Account.Market__c) = "US", IF(TEXT(Account.State__c) =
  "California", 0.0925, IF(TEXT(Account.State__c)= "Nevada", 0.081,
  IF(TEXT(Account.State__c) = "Utah", 0.0835, 0) )) , 0)

To improve the readability of formula fields, you can add spacing and carriage returns. The preceding formula can be made far easier to understand simply by adding spaces and carriage returns as follows:

Sales Tax (Percent) =
  IF( TEXT(Account.Market__c) = "US",
  IF(TEXT(Account.State__c) = "California", 0.0925,
  IF(TEXT(Account.State__c)= "Nevada", 0.081,
  IF(TEXT(Account.State__c) = "Utah", 0.0835, 0) ))
  , 0)

Commenting

Salesforce CRM allows you to put comments in your formulas. These are sections of text that are not run as part of the formula and are typically used to make notes about the formula code especially if it is particularly complicated. Comments must start with a forward slash followed by an asterisk (/*), and finish with an asterisk followed by a forward slash (*/).
Comments are useful for explaining specific parts of a formula to other system administrators viewing the formula definition. For example:

Sales Tax (Percent) =
/* value only set for US opportunities */
  IF( TEXT(Account.Market__c) = "US",
/*Check for the US State of the Account record and set accordingly*/
  IF(TEXT(Account.State__c) = "California", 0.0925,
  IF(TEXT(Account.State__c)= "Nevada", 0.081,
  IF(TEXT(Account.State__c) = "Utah", 0.0835, 0) ))
 )
 , 0)

By carefully using comments to prevent parts of the formula from being activated allows you to test and verify the syntax as you construct and iron out bugs in the formula. However, if you try to comment out the entire formula a syntax error is shown. You will also experience a syntax error if you try to place comments within other comments because this is not supported in the Salesforce CRM application.

/* /* comment */ */

Including comments and formatting with carriage returns and spacing adds to the number of characters used and so count against the character and byte size limits.

Building formula text and compiled character size limits

There is a text character and byte size limit of 3,900 characters and 5,000 characters for the compiled characters for formulas.
When this limit is reached, you will be unable to save the formula field and will be presented with the following error:
Compiled formula is too big to execute (7,085 characters). Maximum size is 5,000 characters.
It is common to encounter these limits when building complicated formula field calculations and particularly so when building formula that reference other formula fields. While there is no way to increase this limit, there are some methods to help avoid and workaround these limitations as follows:

  • Use the CASE function for branch conditions
  • Use Algebra

For formulas that use multiple branch conditions to derive the values, as in the preceding example formula, the check if the market is US and the state is California, Nevada, or Utah, you can replace the nested IF statements and instead use the CASE statement.
Nested IF statements often result in larger compiled sizes where the IF function is used multiple times as in our example:

IF(TEXT(Account.State__c) = "California", 0.0925,
IF(TEXT(Account.State__c)= "Nevada", 0.081,
IF(TEXT(Account.State__c) = "Utah", 0.0835, 0) ))

Using the CASE statement can provide better logic and often results in a smaller compiled size for the formula.

IF( TEXT(Account.Market__c) = "US",
  CASE(Account.State__c,
    "California", 0.0925,
    "Nevada", 0.0685,
    "Utah", 0.0475, 0) ,
  0)

Using algebra

The compiled size of formula fields increases as you increase the number of fields that are referenced. This is compounded when you are referencing fields which are themselves formula fields. A way to reduce the overall size is to use algebra to avoid the need to reference fields, wherever possible. The following example shows how the Sales Tax field is used several times:

Total Price =
(Item_Price__c + (Item_Price__c * Sales_Tax__c)) +
(Support_Price__c + (Support_Price__c * Sales_Tax__c))

To reduce the compiled size, use simple algebra to avoid calling the Sales Tax, for example:

Total Price =
(Item_Price__c * (1 + Sales_Tax__c)) +
(Support_Price__c * (1 + Sales_Tax__c))

Formula field size limits workarounds

There may be situations where the logic that is required for a formula is simply too complex for the current size limitations in formula fields. The proven methods to overcome this are to implement a solution using either of the following:

  • Workflow field updates
  • Apex trigger update

There are two ways in which workflow field updates can help to provide the formula logic workaround. Firstly, larger and more complex formulas can be saved using the formula building function within the workflow mechanism. Secondly, this approach also serves to decompose large formula logic into smaller functions of resulting data. For example, you could create simple formulas that gets the data fed from fields that have been updated by multiple workflow field updates.
The general approach for implementing a workflow field update to provide a solution to the formula field limit is to:

  • Create a non-formula field on the object such as a currency or number field in place of the desired formula field. Administrators often identify this field with a suffix to indicate it is a workflow field for example, Total Price (workflow). This field is then set as read-only on page layouts as the field can be considered a system field as it should not be available for manual updating.
  • Create a workflow rule that will always fire.
  • Create a field update with an appropriate formula to update the workflow field; Total Price (workflow) in our preceding example.

Any subsequent formulas can reference the populated field. The disadvantages to this workaround is that creating many workflows can add to the complexity of the application and eventually may eventually introduce performance issues. Also, whenever an object has multiple complex workflows assigned, the order in which the workflows are evaluated cannot always be guaranteed, which if not properly maintained, can lead to subtle data discrepancies.

Salesforce CRM: The Definitive Admin Handbook A comprehensive, power-packed guide for all Salesforce Administrators covering everything from setup and configuration, to the customization of Salesforce CRM
Published: October 2011
eBook Price: €28.99
Book Price: €46.99
See more
Select your format and quantity:

(For more resources on this topic, see here.)

Custom field governance

Controlling the creation of fields is necessary to avoid adding unnecessary new fields in Salesforce. Without appropriate field creation governance, there is a risk of producing an application with a complex data structure that provides a poor user experience.
This issue can often be observed due to the ease of creating new custom fields, however, there are other causes such as:

  • Configuring spontaneous responses to end-user field creation requests without gathering full requirements
  • Lack of specification or understanding of reporting requirements for field usage
  • Creation of fields that are too specific for common uses, thus driving the need to create ever more fields
  • Lack of knowledge or awareness of existing fields that could be used rather than creating from new

As the number of unnecessary fields increase, users will find it ever more difficult to enter the correct data into the correct fields. Therefore, the amount of entered data is reduced along with users' satisfaction because the application requires more effort to work with. It is all too easy for your users to become dissatisfied and this can lead to less usage overall and hence poor data quality due to a lack of user participation.

Addressing the issue

Create new fields with care because as each new custom field is added, your application structure increases in complexity. As the system administrator, you are responsible for knowing which fields are used, where they appear on Page Layouts, and which fields are required for reporting.
If the benefits and long-term use for a new field cannot be easily understood, it is unlikely to be of much use. One method to help determine its use is to consider where and how the proposed new field would be used in a report. If it is never going to be reported, it may be worth querying its purpose and value. The following considerations can be made when creating new fields:

More generic field names

Try to make your field names more generic so that they can serve multiple purposes. In some situations, different business units share objects but track different information. Although they may have different requirements, they can often share fields. Here you need to be proactive, forward-thinking, and reach out to the business and propose fields that can be used across multiple business units.

Field history tracking

Often there are unnecessary date fields used to track milestones or data processing dates. With native field history tracking, these milestones can be tracked and reported without the need to always create new fields.

Milestone objects

Create milestone objects and related lists to avoid hard-coding date fields on a record. For example, avoid creating fields to track dated historical financial information within an object. Here you may have to create redundant fields for each year. For example, 2011 Budgets, 2012 Budgets, and so on. Instead, create an Financials object with one set of fields and a corresponding date field where you can create a new record each year. This can result in fewer fields and far better display and reporting.

Chatter

Consider the use of Chatter to eliminate unnecessary fields. Often text area boxes are used to track conversation flow such as support comments, internal review, and so on. These may be no longer be necessary after Chatter is established.

Page layouts

Page layouts are used to organize the display of fields, custom links, and related lists on an object detail or edit page. They are used to establish unique layouts for different business scenarios.
The displayed fields within a related list are controlled by the page layout; the name of the related list is determined by the lookup/master-detail relationship on the related object.
Page layouts are comprised of sections and within each section the user interface can be set to make a field required or read only as shown in the following screenshot:

Enhanced page layout editor showing read-only settings as indicated with the padlock icons:

In the corresponding Account Edit page the read-only fields are displayed with no edit capabilities.
You can combine page layouts and field-level security to make the lowest possible permission. For example, a hidden field (field-level permission) will never display regardless of page layout. Likewise, a field marked Always require a value in this field to save a record will always be required on the page layout.
Page layouts allow you to create and organize sections on a page and to show or hide fields within sections.

Hidden fields may still be accessible elsewhere in the application. Use field-level security to restrict all possible means of accessing a field.

Creating and modifying a page layout

To create or modify a page layout, follow the path Your Name Setup | App Setup | Customize|, select the appropriate object and click Page Layouts. In the Page Layouts page, you can either click the New button or choose the existing page layout to modify and click Edit as shown:

When clicking the New button, you can optionally choose an existing layout to copy.

Create a page layout based on an existing page layout
In the enhanced page-layout editor, select an existing page layout from the list of page layouts, then click Save As to create a copy of the layout. In the original page-layout editor, select an existing page layout from the list of page layouts, then click the Clone button.

Enter a name for the new page layout and finally click on Save.
You can set different page layouts for profiles and different page layouts for record types

Record types

Record Types are a feature of Salesforce CRM to allow you to provide different sets of object picklists, different page layouts, and custom business processes to specific users based on their profile. Record types can be used in various ways, for example:

  • Create record types for opportunities to differentiate your internal sales deals from your field sales deals and show different fields and picklist values
  • Create record types for leads to display different page layouts for your tele-sales leads versus your internal sales prospecting functions.

To create a record type:

The record type called Master is always set for every object and contains all the picklist and process options. It is not, however, listed under the record types list and it can be assigned as a record type for a profile, provided it is the only assigned record type for that profile.
Since each record type is assigned to one page layout type per profile, the numbers of page assignments can easily increase. So this means, if you have two custom record types for an account and five profiles, you will have fifteen page assignments (five×two for each custom record type, and five for the Master record type).
Selectable record types are assigned per profile and field-level security is configured separately for each record type. Consider the following when creating a record type:

  • Which record types are associated with the current profile?
  • If more than one record type, prompt user for record-type selection
  • If only one, select that record type without prompting (this would be set as default)
  • Based upon record type and profile, assign appropriate page layout
  • Based upon record type, assign the appropriate process and picklist values

By associating different record types to different page layouts, fields and picklist values you can formulate a set of object-specific processes and in Salesforce CRM the following are available:

  • The Lead process using the Lead object which is governed by the Status field which is configured to be open, closed, and so on.
  • The Sales process which uses the Opportunity object and the fields Stage field (set to be won, lost etc.) plus the Amount and Probability fields.
  • The Support process which uses the Case object and is controlled by the Case Status field which may be set to open, closed, and so on.
  • The Solutions process which used the Solution object and and the fields Status which are set to be draft, deployed,and so on.

Example: Your sales team creates an opportunity that represents a sales deal. Your sales support team then up sells on this deal. You can then create two sales processes with two different record types and two different page layouts: Sales and Support.
You would want to create a lookup relationship from opportunity to opportunity, and only require or display this relationship for the support team profile.
You would also be able to configure the sharing rules so that they could not modify each other's opportunities.

Related lists

Related lists display on the lower portion of the object detail page to display the related record details. Related lists show the object records that are associated with that record.
From a related list, you can:

  • Click the object record name to view detailed information
  • Click Edit or Del to edit or delete the object record
  • Click New to create a new object record that is associated with the record you are viewing

To define if an object can be related to another type of record, you would use either a master-detail or a lookup relationship.

Here we show how editing a page layout for the account object enables the arrangement and configuration of any related list:

The following screen shows the results of changing the related lists in the page layout editor screen when navigating to the Account detail page:

List views

When you click on a tab, for example the Accounts tab, you will be shown the My Accounts in that view. This is termed as a list view and can be seen as shown in the following screenshot:

Other list views can be selected from the picklist:

You can modify existing views and define which columns and buttons (including both standard and custom buttons) are to be displayed. You can click New to create new views:

The following applies to list views:

  • Every object in Salesforce CRM that is associated with a tab automatically has at least one list view and if there is no tab set up for the object then there would be no corresponding list view.
  • List views can be modified by assigning filter criteria to control which records are returned for the object affected.
  • List views can be set up to be seen and accessed you just yourself or you can set it to be accessed by certain roles and groups of individuals.
  • List view have a print feature that can be used by you and your users. To print from a list view click the printable view button located at the top right of the page as shown next:

Printable list-views need to be enabled organization-wide for the print feature to be available.

Summary

In this article, we described the ways in which the data structure and user interface features can be configured within Salesforce CRM.
We looked at how object and records information can be accessed and at the mechanisms for managing the methods that users view this information using views and page layouts.
We were shown how these record structures and user interfaces are controlled by the profile and the wider picture for the way configuration of these concepts are applied for users.
We discussed some techniques to help govern the way the configuration and creation of fields can be carried out and some common pitfalls to try to avoid.


Further resources on this subject:


About the Author :


Paul Goodey

Paul Goodey is the author of Salesforce CRM Admin Cookbook by Packt Publishing.

He has over 15 years' experience in developing web-technology solutions for companies of all sizes across a variety of industries, and has been building solutions with Salesforce CRM since 2006.

Paul has enjoyed a variety of roles while working with Salesforce CRM, having worked as a developer, business analyst, consultant, and as a system administrator to provide solutions for both in-house and consultancy-based end-users.

Based in the UK near London, Paul's professional qualifications include Salesforce.com Certified Developer DEV-401. In his spare time, he is a keen runner, having run several marathons and half-marathons since 2001.

Paul is a keen and active member of the salesforce.com administrator and developer online community and can be found at LinkedIn at http://www.linkedin.com/in/paulgoodey.

Books From Packt


Using CiviCRM
Using CiviCRM

Oracle Siebel CRM 8 Developer's Handbook
Oracle Siebel CRM 8 Developer's Handbook

Implementing SugarCRM 5.x
Implementing SugarCRM 5.x

Microsoft Dynamics CRM 2011 New Features
Microsoft Dynamics CRM 2011 New Features

Oracle Siebel CRM 8 Installation and Management
Oracle Siebel CRM 8 Installation and Management

Microsoft Dynamics CRM 2011: Dashboards Cookbook
Microsoft Dynamics CRM 2011: Dashboards Cookbook

vtiger CRM Beginner's Guide
vtiger CRM Beginner's Guide

SugarCRM Developer's Manual: Customize and extend SugarCRM
SugarCRM Developer's Manual: Customize and extend SugarCRM


Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software